From 60d0018fa9c99c5367f2e6d826974275917f7285 Mon Sep 17 00:00:00 2001 From: emil28092005 Date: Thu, 17 Sep 2026 16:59:32 +0300 Subject: [PATCH] Initial Spatial Lab release with verified Blender bridge --- .gitattributes | 2 + .gitignore | 18 + README.md | 138 + blender/bridge.py | 151 + docs/DESIGN.md | 13 + docs/FORMAT.md | 49 + examples/braided_atrium.spatial.json | 284 + examples/verified/Braided_Atrium.blend | 3 + examples/verified/blender_verification.json | 56 + examples/verified/braided_atrium.bundle.json | 56353 +++++++++++++++++ examples/wave_extension.py | 17 + pyproject.toml | 19 + spatial-lab | 4 + spatial_lab/__init__.py | 7 + spatial_lab/__main__.py | 2 + spatial_lab/cli.py | 61 + spatial_lab/examples.py | 28 + spatial_lab/expressions.py | 56 + spatial_lab/kernel.py | 170 + spatial_lab/math3d.py | 111 + spatial_lab/operators.py | 142 + spatial_lab/project.py | 101 + spatial_lab/server.py | 61 + spatial_lab/web/app.js | 116 + spatial_lab/web/index.html | 17 + spatial_lab/web/style.css | 1 + tests/blender_roundtrip.py | 85 + tests/test_kernel.py | 103 + tests/test_project.py | 34 + tests/test_server.py | 36 + 30 files changed, 58238 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 README.md create mode 100644 blender/bridge.py create mode 100644 docs/DESIGN.md create mode 100644 docs/FORMAT.md create mode 100644 examples/braided_atrium.spatial.json create mode 100644 examples/verified/Braided_Atrium.blend create mode 100644 examples/verified/blender_verification.json create mode 100644 examples/verified/braided_atrium.bundle.json create mode 100644 examples/wave_extension.py create mode 100644 pyproject.toml create mode 100755 spatial-lab create mode 100644 spatial_lab/__init__.py create mode 100644 spatial_lab/__main__.py create mode 100644 spatial_lab/cli.py create mode 100644 spatial_lab/examples.py create mode 100644 spatial_lab/expressions.py create mode 100644 spatial_lab/kernel.py create mode 100644 spatial_lab/math3d.py create mode 100644 spatial_lab/operators.py create mode 100644 spatial_lab/project.py create mode 100644 spatial_lab/server.py create mode 100644 spatial_lab/web/app.js create mode 100644 spatial_lab/web/index.html create mode 100644 spatial_lab/web/style.css create mode 100644 tests/blender_roundtrip.py create mode 100644 tests/test_kernel.py create mode 100644 tests/test_project.py create mode 100644 tests/test_server.py diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..144d9bf --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +*.blend filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d4aee93 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +.spatial_lab/ +out/ +*.egg-info/ +build/ +dist/ + +__pycache__/ +*.py[cod] +.venv/ +*.blend[0-9] +*.blend[0-9][0-9] +*.blend@ +*.log +*.tmp +.DS_Store +.env +.env.* +!.env.example diff --git a/README.md b/README.md new file mode 100644 index 0000000..56bd379 --- /dev/null +++ b/README.md @@ -0,0 +1,138 @@ +# Spatial Lab + +An agent-operated mathematical geometry workbench for designing intricate architectural structures before building the final environment in Blender. The editable source is a construction graph of curves, transported frames, sections, surfaces and transforms. The browser observes the current design; authoring happens through Python or CLI transactions. + +**Working loop:** inspect → edit parameters or graph → observe → validate → export → update Blender → inspect again. A project remains editable throughout this loop, with persistent undo/redo. Nothing depends on reconstructing shapes from an image. + +## Run + +Clone this repository with Git LFS to retrieve the Blender example: + +```sh +git clone https://github.com/emil28092005/spatial-lab.git +cd spatial-lab +git lfs pull +``` + +Python 3.11+ and a browser with WebGL2 are required. There are no runtime Python dependencies, CDN assets or accounts to configure. From this directory: + +```sh +./spatial-lab serve examples/braided_atrium.spatial.json --port 8767 +``` + +Open . The launcher also works by absolute path from another working directory. `python3 -m spatial_lab` is equivalent when run from this directory. Optional installation: `python3 -m pip install -e .` provides the `spatial-lab` command. + +The viewer automatically rebuilds on source changes. Drag to orbit, Shift-drag to pan, scroll to zoom. Use Top/Front/Side, Fit, Surface/Wire, node selection, Isolate and Section Z to inspect the structure. Viewer controls never edit geometry. Invalid source displays an error and labels the previous valid view as stale. The HTTP server binds only to localhost and exposes no write API. + +## Iterative authoring + +```sh +./spatial-lab init out/my-study.json --example simple +./spatial-lab inspect out/my-study.json +./spatial-lab param out/my-study.json height 12 +./spatial-lab undo out/my-study.json +./spatial-lab redo out/my-study.json +./spatial-lab build out/my-study.json --out out/my-study.bundle.json +./spatial-lab check out/my-study.bundle.json +./spatial-lab ops +``` + +Use `init --example atrium` for the larger demo. Existing files are never overwritten by `init`. Command output is JSON; validation failures return exit code 2. + +For several related changes, write a JSON array and apply it with `./spatial-lab patch PROJECT changes.json`: + +```json +[ + {"action":"set_parameter","name":"width","value":1.8}, + {"action":"patch_node","id":"braided-galleries","patch":{"params":{"count":2}}} +] +``` + +The entire graph must build successfully before any edit is saved. `upsert_node` adds/replaces an operation; `patch_node` merges its `params` and `inputs`; `remove_node` rejects a node with dependents unless `cascade:true`. `node PROJECT node.json` and `remove PROJECT ID --cascade` are CLI shortcuts. Persistent history retains 64 revisions beside the project in `.spatial_lab/`. Direct external JSON edits start a new undo chain. Keep source projects in Git for long-term history. + +Python uses the same transaction layer: + +```python +from spatial_lab import Project + +project = Project("examples/braided_atrium.spatial.json") +bundle = project.apply([ + {"action": "set_parameter", "name": "width", "value": 1.8}, +]) +project.travel("undo") +``` + +## Construction vocabulary + +All built-in operators currently use version 1. Node IDs remain stable during edits. Inputs reference other node IDs; graph order is resolved automatically. Set `visible:false` on intermediate nodes to avoid exporting duplicate construction geometry. Hidden nodes still evaluate and feed downstream operations. + +| Operator | Inputs | Main parameters | +| --- | --- | --- | +| `curve` | — | `xyz`: three expressions in `t`; `domain` (default `[0,"tau"]`); `segments` (128); `closed` (false); optional `max_chord_error` in metres | +| `polyline` | — | `points`: 3D vectors; `closed` (false); do not repeat the first point | +| `frames` | `path` | `up` (`[0,0,1]`); `twist_degrees` (0); parallel transport with closed-loop seam correction | +| `sweep` | `frames` | `profile`: a simple closed 2D polygon in local X/Z; `cap` (true) | +| `surface` | — | `xyz` in `u,v`; `u_domain`,`v_domain` (`[0,1]`); `u_segments` (32), `v_segments` (16); `wrap_u`,`wrap_v` (false); `thickness` (0) | +| `loft` | `sections`: list of curves | Corresponding closed contours with equal point counts; `cap` (true), requiring planar ends | +| `transform` | `source` | `translate`, `rotate` (XYZ Euler degrees), `scale` (positive scalar or 3D vector); curve or mesh input | +| `repeat` | `source`: mesh | `count` (2); `translate`,`rotate`,`scale` define a cumulative step; instances share geometry | +| `merge` | `sources`: list of meshes | Groups parts without performing a boolean union | + +Numeric fields accept arithmetic expressions using project parameters, `pi`, `tau`, `e`, trigonometry and basic math functions. Global parameters are constants: they cannot refer to one another. Formula evaluation uses a bounded arithmetic AST, not Python `eval`. Local frames use X=right, Y=tangent, Z=up. A closed frame loop requires twist to be a multiple of 360°. Positive-scale transforms preserve orientation. Cumulative repetition applies the step matrix repeatedly, so translation can rotate or scale between instances. + +Curves have explicit sampling resolution. `estimated_chord_error_m` measures deviation at interval midpoints; it is an estimate, not a certified maximum or adaptive subdivision. Inspect it and increase `segments` when needed. Thin shells offset sampled normals; large offsets can intersect themselves. + +## Exact Blender handoff + +```sh +./spatial-lab build examples/braided_atrium.spatial.json --out out/braided_atrium.bundle.json +blender -b --factory-startup --python-exit-code 1 --python blender/bridge.py -- \ + --bundle out/braided_atrium.bundle.json \ + --save out/Braided_Atrium.blend --report out/blender_verification.json +``` + +For a live Blender session (including through Blender MCP), load the bridge once, select the intended dedicated scene, then repeat `import_bundle` after rebuilding: + +```python +import importlib.util +from pathlib import Path + +lab = Path("/absolute/path/to/spatial-lab") +spec = importlib.util.spec_from_file_location("spatial_bridge", lab / "blender/bridge.py") +bridge = importlib.util.module_from_spec(spec) +spec.loader.exec_module(bridge) +scene = bridge.create_scene("Spatial study") # Reuse this scene on subsequent imports. +bridge.import_bundle(lab / "out/braided_atrium.bundle.json", scene) +report = bridge.verify_bundle(lab / "out/braided_atrium.bundle.json", scene) +assert report["passed"], report +``` + +The importer updates objects by stable ID and prunes only obsolete objects tagged with this project ID in the supplied scene. Existing object identity, modifiers and object-level material assignments survive updates. It replaces the owned base mesh and transforms: do final base-mesh editing on a separate copy or after the mathematical design is finished. Per-face authored material assignments are not preserved. Other scene objects are untouched. Imported guides are wire meshes and frame empties. Scene unit scale must be 1. + +The JSON contract is documented in [FORMAT.md](docs/FORMAT.md). Vertices, triangle indices and transformation matrices are transferred directly. Verification compares base-mesh coordinates in local and world space, exact connectivity/winding, IDs and matrices; artist modifiers are excluded. The supplied demo was tested in Blender 5.2.2 LTS with maximum world-coordinate error below 0.000004 m. No manual reconstruction or random regeneration occurs during import. + +Ready-made artifacts: [Blender scene](examples/verified/Braided_Atrium.blend), [technical bundle](examples/verified/braided_atrium.bundle.json), [verification report](examples/verified/blender_verification.json). Retrieve the `.blend` with Git LFS when cloning the repository. + +## Extend + +`examples/wave_extension.py` demonstrates a composable curve-deformation operator: + +```sh +./spatial-lab --plugin examples/wave_extension.py ops +``` + +Register a function with `@register_operator(name, version=1, inputs=(...))`. It receives `(context, params, resolved_inputs)` and returns a `curve`, `frames` or `mesh` entity. Use `context.number`, `vec`, `count` and `expression` to evaluate bounded numeric parameters. See built-ins in `spatial_lab/operators.py` for entity shapes. Load the same plugin for every authoring/build/viewer command using that operator. Blender can import the already evaluated bundle without the plugin. Plugins are explicitly trusted local Python code; project JSON cannot auto-load them. + +## Validation and current limits + +```sh +python3 -m unittest discover -s tests -v +node --check spatial_lab/web/app.js +blender -b --factory-startup --python-exit-code 1 --python tests/blender_roundtrip.py +``` + +The Blender integration test changes geometry, removes an instance, checks artist-work preservation, undoes the transaction and verifies the restored bundle. It writes a report, bundle and `.blend` into `out/`. Kernel tests include analytical volumes, frame orthogonality, closed seams, concave caps, graph dependencies, safe expressions, deterministic hashes and transactional history. HTTP tests cover live updates and error handling. + +Version 0.1 checks triangle degeneracy, edge incidence/orientation, expected boundaries, finite coordinates and transfer parity. It does **not** solve constraints, detect 3D self-intersections/collisions, prove walkability, perform solid booleans or implement portals/non-Euclidean runtime space. The braided atrium is a geometric study, not a finished playable level or cinematic scene. Those remain subsequent design and Blender/engine stages. Engine-specific adapters, UVs, textures and production detailing are deliberately outside the current mathematical handoff. + +Runtime limits include 256 nodes, 4,096 exported objects, 200,000 vertices per mesh and 500,000 unique vertices per bundle. Large compositions should be split into projects. [Design notes](docs/DESIGN.md) describe the architecture and viewer choices. diff --git a/blender/bridge.py b/blender/bridge.py new file mode 100644 index 0000000..a7a90ec --- /dev/null +++ b/blender/bridge.py @@ -0,0 +1,151 @@ +"""Import and verify exact Spatial Lab base geometry in Blender. + +From Blender Python: import_bundle(path, scene=dedicated_scene). +CLI: blender -b --factory-startup --python bridge.py -- --bundle X --save Y --report Z +Only tagged objects of the same project in the specified scene are owned by this adapter. +""" +import argparse +import json +import math +import sys +from pathlib import Path + +LAB=Path(__file__).resolve().parents[1] +if str(LAB) not in sys.path:sys.path.insert(0,str(LAB)) +from spatial_lab.kernel import validate_bundle +from spatial_lab.project import read_json,write_json +from spatial_lab.math3d import point + +def enum_set(owner,property_name,value): + valid=[item.identifier for item in owner.bl_rna.properties[property_name].enum_items] + if value not in valid:raise ValueError(f'{value} is not a supported {property_name}: {valid}') + setattr(owner,property_name,value) + +def create_scene(name='Spatial Lab'): + import bpy + scene=bpy.data.scenes.new(name);scene.unit_settings.scale_length=1;enum_set(scene.unit_settings,'system','METRIC') + return scene + +def _owned(scene,project_id): + result={} + for o in scene.objects: + if o.get('spatial_lab_project')==project_id: + key=o.get('spatial_lab_id') + if key in result:raise ValueError('Duplicate imported object ID: '+str(key)) + result[key]=o + return result + +def import_bundle(source,scene=None,prune=True): + import bpy + from mathutils import Matrix + bundle=read_json(source) if isinstance(source,(str,Path)) else source + validate_bundle(bundle) + scene=scene or bpy.context.scene + if abs(scene.unit_settings.scale_length-1)>1e-9:raise ValueError('Import into a scene with unit scale 1 (metres)') + pid=bundle['project_id'];old=_owned(scene,pid) + for spec in bundle['objects']: + if spec['id'] in old and old[spec['id']].get('spatial_lab_kind')!=spec['kind']:raise ValueError('An existing stable ID changed object kind: '+spec['id']) + collection=next((c for c in scene.collection.children if c.get('spatial_lab_project')==pid),None) + if collection is None: + collection=bpy.data.collections.new('Spatial Lab / '+bundle['name']);collection['spatial_lab_project']=pid;scene.collection.children.link(collection) + cache={};created=0;updated=0 + for gid,g in bundle['geometries'].items(): + me=bpy.data.meshes.new('SL geometry '+gid[:12]);me.from_pydata(g['vertices'],[],g['faces']);me.update() + me['spatial_lab_project']=pid;me['spatial_lab_geometry']=gid;cache[gid]=me + def material(spec): + key=spec['node_id'];mat=next((m for m in bpy.data.materials if m.get('spatial_lab_project')==pid and m.get('spatial_lab_node')==key),None) + if mat is None: + mat=bpy.data.materials.new('SL / '+key);mat['spatial_lab_project']=pid;mat['spatial_lab_node']=key;mat.use_nodes=True + shader=next(n for n in mat.node_tree.nodes if n.type=='BSDF_PRINCIPLED');shader.inputs['Base Color'].default_value=(*spec['color'],1);shader.inputs['Roughness'].default_value=.76 + mat.diffuse_color=(*spec['color'],1) + return mat + seen=set() + for spec in bundle['objects']: + oid=spec['id'];seen.add(oid);kind=spec['kind'] + data=cache.get(spec.get('geometry')) + if kind=='curve': + pts=spec['points'];edges=[(i,i+1) for i in range(len(pts)-1)] + if spec.get('closed'):edges.append((len(pts)-1,0)) + data=bpy.data.meshes.new('SL guide '+oid);data.from_pydata(pts,edges,[]);data.update();data['spatial_lab_project']=pid + obj=old.get(oid);old_materials=[] + if obj is None: + obj=bpy.data.objects.new('SL / '+oid,data);collection.objects.link(obj);created+=1 + else: + old_materials=[s.material for s in obj.material_slots];obj.data=data;updated+=1 + if obj.name not in collection.objects:collection.objects.link(obj) + obj['spatial_lab_project']=pid;obj['spatial_lab_id']=oid;obj['spatial_lab_kind']=kind;obj['spatial_lab_node']=spec['node_id'];obj['spatial_lab_role']=spec.get('role','geometry') + obj['spatial_lab_source_hash']=bundle['bundle_hash'];obj.matrix_world=Matrix(spec['matrix']);obj.color=(*spec['color'],1) + if kind=='mesh': + assigned=old_materials or [material(spec)] + while len(data.materials)tolerance:errors.append('Local-coordinate error exceeds tolerance') + if world_error>tolerance:errors.append('World-coordinate error exceeds tolerance') + if matrix_error>tolerance:errors.append('Transform error exceeds tolerance') + return {'passed':not errors,'project_id':bundle['project_id'],'bundle_hash':bundle['bundle_hash'],'objects_checked':len(expected),'vertices_checked_including_instances':vertices,'triangles_checked_including_instances':faces,'tolerance_m':tolerance,'max_local_vertex_error_m':local_error,'max_world_vertex_error_m':world_error,'max_matrix_component_error':matrix_error,'errors':errors,'scope':'Base mesh coordinates, connectivity, orientation and transforms. Artist modifiers are deliberately excluded.'} + +def main(): + import bpy + parser=argparse.ArgumentParser();parser.add_argument('--bundle',required=True);parser.add_argument('--save');parser.add_argument('--report');parser.add_argument('--exercise-update',action='store_true') + args=parser.parse_args(sys.argv[sys.argv.index('--')+1:] if '--' in sys.argv else []) + bundle=read_json(args.bundle);scene=create_scene('Spatial Lab / '+bundle['name']);bpy.context.window.scene=scene + imported=import_bundle(bundle,scene);verified=verify_bundle(bundle,scene) + if args.exercise_update: + marker=bpy.data.objects.new('Unrelated object must survive',None);scene.collection.objects.link(marker) + mesh_obj=next(o for o in scene.objects if o.get('spatial_lab_kind')=='mesh');pointer=mesh_obj.as_pointer() + modifier=mesh_obj.modifiers.new('Artist bevel survives reimport','BEVEL');modifier.width=.015;modifier.segments=2 + mat=bpy.data.materials.new('Artist material survives reimport');mesh_obj.material_slots[0].link='OBJECT';mesh_obj.material_slots[0].material=mat + second=import_bundle(bundle,scene) + assert mesh_obj.as_pointer()==pointer and mesh_obj.modifiers.get(modifier.name) is not None and mesh_obj.material_slots[0].material==mat + assert marker.name in scene.objects and second['created']==0 + # Restore the original base appearance for the delivered demo, after testing preservation. + mesh_obj.modifiers.remove(modifier);mesh_obj.material_slots[0].material=next(m for m in bpy.data.materials if m.get('spatial_lab_project')==bundle['project_id'] and m.get('spatial_lab_node')==mesh_obj['spatial_lab_node']) + bpy.data.objects.remove(marker,do_unlink=True) + verified=verify_bundle(bundle,scene);verified['reimport_preserves_object_identity_modifiers_materials_and_unrelated_objects']=True + if args.save: + Path(args.save).parent.mkdir(parents=True,exist_ok=True);bpy.ops.wm.save_as_mainfile(filepath=str(Path(args.save).resolve())) + result={'import':imported,'verification':verified} + if args.report:write_json(args.report,result) + print(json.dumps(result,indent=2)) + if not verified['passed']:raise RuntimeError('Blender transfer verification failed') + +if __name__=='__main__':main() diff --git a/docs/DESIGN.md b/docs/DESIGN.md new file mode 100644 index 0000000..24be4d1 --- /dev/null +++ b/docs/DESIGN.md @@ -0,0 +1,13 @@ +# Spatial Lab design + +The author is an agent operating through Python and a CLI. The browser is an observation surface, not a manual modeller. The primary artifact is an editable construction graph; the derived bundle is the exact geometric handoff to Blender. + +The viewer uses a cool drafting surface (#e9eef3), ink (#213348), quiet guides (#bccbd7), geometry blue (#668aa6), and a selection amber (#d18b42). System sans-serif carries navigation; fixed-width numerals and formulas use monospace. A narrow construction outline sits beside a large geometry viewport. A compact inspector shows the selected operation and its parameters. Controls only change observation: orbit, projections, visibility, section height, and wire/surface mode. Geometry never mutates through the viewer. + +The visual emphasis is the construction itself. There is no marketing header, ornamental dashboard, animation, or material editor. Graph relationships, axes, and units are functional markings. Node colour is semantic and stable, not random decoration. + +The kernel contains a versioned operator registry, bounded arithmetic evaluator, dependency-ordered graph execution, rotation-minimizing frames, triangulated geometry, structural validation, and deterministic content hashes. The project layer adds transactional edits and persistent undo/redo. No network service or third-party Python dependency is required to build geometry. + +The JSON bundle uses metres, a right-handed Z-up basis, row-major matrix arrays, and column-vector multiplication. Objects reference shared geometric data by content hash. Stable object IDs derive from node IDs and instance keys. The Blender importer owns only tagged objects, updates them in place, preserves existing modifiers and material assignments, and verifies the imported base mesh against the bundle. + +Version 0.1 does not claim collision-free architecture, walkability, a general constraint solver, solid booleans, or non-Euclidean runtime behaviour. Structural mesh checks and transfer parity are implemented; spatial design remains an iterative agent task. diff --git a/docs/FORMAT.md b/docs/FORMAT.md new file mode 100644 index 0000000..048aabf --- /dev/null +++ b/docs/FORMAT.md @@ -0,0 +1,49 @@ +# Spatial Lab JSON contract, version 1 + +## Editable project: `spatial-lab.project/1` + +```json +{ + "schema": "spatial-lab.project/1", + "id": "corridor-study", + "name": "Corridor study", + "parameters": {"length": 10}, + "nodes": [ + {"id":"axis","op":"polyline","version":1,"visible":false, + "params":{"points":[[0,0,0],[0,"length",0]]}}, + {"id":"basis","op":"frames","visible":false,"inputs":{"path":"axis"}}, + {"id":"deck","op":"sweep","inputs":{"frames":"basis"}, + "params":{"profile":[[-1,-0.15],[1,-0.15],[1,0.15],[-1,0.15]]}, + "color":[0.4,0.56,0.68],"role":"gallery"} + ] +} +``` + +`id` identifies a project for ownership in the Blender adapter. Use a different project ID for independently managed studies in the same scene. Node IDs identify graph operations, never rename them during ordinary parameter edits. Version defaults to 1; visibility defaults to true. `name`, `color` and `role` are optional semantic presentation metadata. Parameters may be numbers or bounded arithmetic expressions. Dependencies are explicitly listed in `inputs`, as a node ID or list of node IDs. Cycles and missing references fail validation. + +## Evaluated bundle: `spatial-lab.bundle/1` + +| Field | Meaning | +| --- | --- | +| `project_id`, `name` | Source project identity | +| `units`, `handedness`, `up_axis` | Always `meters`, `right`, `+Z` | +| `matrix_convention` | Row arrays, column vectors, local-to-world matrices | +| `recipe` | Complete original project for further editing | +| `project_hash` | SHA-256 of canonical recipe JSON | +| `nodes` | Evaluated node summaries, input links and parameters | +| `geometries` | Dictionary keyed by geometry hash; each value has `vertices` and `faces` | +| `objects` | Stable ID, node ID, kind, transform, semantic metadata and geometry reference/data | +| `bounds` | World-space axis-aligned `min`/`max` | +| `validation` | Mesh reports, warnings, and explicit flags for checks not performed | +| `stats` | Node/object counts, unique vertex/mesh counts, triangles including instances | +| `bundle_hash` | SHA-256 of canonical bundle JSON excluding this field | + +Every vertex is `[x,y,z]` in metres. Every face is exactly three zero-based vertex indices with outward winding for solid meshes. Geometry hash covers the complete `{"vertices":...,"faces":...}` object. Mesh instances reference it through `geometry`; they do not duplicate vertex arrays. + +Every object has `id`, `node_id`, `name`, `kind`, `role`, `color` and a 4×4 `matrix`. Its bottom row is `[0,0,0,1]`; matrices are invertible and orientation-preserving. Translation is in the last column. A local position becomes `matrix * [x,y,z,1]`. Colour has three normalized RGB components. + +Mesh object IDs combine node ID and part key, e.g. `braided-galleries/0000/main`. A curve object instead embeds `points` and `closed` and uses ID `NODE/path`. Its points are joined in order, with the final-to-first edge added only for closed curves. Frames are individual objects of kind `frame`, with local axes in matrix columns and their origin in its last column; ID `NODE/frame-0000`. + +Canonical JSON is the Python kernel's `json.dumps(value, sort_keys=True, separators=(',', ':'), allow_nan=False)` encoded as UTF-8. These integrity hashes are for reproducibility and accidental-corruption detection, not authentication. `validate_bundle` checks the supported convention, hashes, references, finite coordinates, transforms and triangle/edge structure before import. Bundles should be generated by `build` rather than assembled manually. A consumer only needs the evaluated geometry and matrices to reproduce the shape; it does not need the expression evaluator or custom operators. + +Blender natively uses the same axis convention. Unity/Godot/custom-engine adapters must explicitly convert basis/units and triangle winding if their chosen basis changes handedness. No such engine adapter is included yet. diff --git a/examples/braided_atrium.spatial.json b/examples/braided_atrium.spatial.json new file mode 100644 index 0000000..c26e6ec --- /dev/null +++ b/examples/braided_atrium.spatial.json @@ -0,0 +1,284 @@ +{ + "schema": "spatial-lab.project/1", + "id": "braided-atrium", + "name": "Braided atrium", + "parameters": { + "radius": 11, + "lobe": 3.2, + "rise": 4.8, + "width": 1.25, + "thickness": 0.24, + "twist": 360, + "samples": 240, + "levels": 3 + }, + "nodes": [ + { + "id": "braid-path", + "op": "curve", + "params": { + "xyz": [ + "(radius+lobe*cos(3*t))*cos(2*t)", + "(radius+lobe*cos(3*t))*sin(2*t)", + "rise*sin(3*t)" + ], + "domain": [ + 0, + "tau" + ], + "segments": "samples", + "closed": true + }, + "visible": false, + "role": "route" + }, + { + "id": "braid-frames", + "op": "frames", + "inputs": { + "path": "braid-path" + }, + "params": { + "twist_degrees": "twist" + }, + "visible": false + }, + { + "id": "braid-section", + "op": "sweep", + "inputs": { + "frames": "braid-frames" + }, + "params": { + "profile": [ + [ + "-width/2", + "-thickness/2" + ], + [ + "width/2", + "-thickness/2" + ], + [ + "width/2", + "thickness/2" + ], + [ + "-width/2", + "thickness/2" + ] + ] + }, + "visible": false + }, + { + "id": "braided-galleries", + "name": "Braided galleries", + "op": "repeat", + "inputs": { + "source": "braid-section" + }, + "params": { + "count": "levels", + "translate": [ + 0, + 0, + 6.5 + ], + "rotate": [ + 0, + 0, + 37 + ], + "scale": 0.87 + }, + "color": [ + 0.37, + 0.56, + 0.68 + ], + "role": "gallery" + }, + { + "id": "ring-path", + "op": "curve", + "params": { + "xyz": [ + "(radius+lobe+2.6)*cos(t)", + "(radius+lobe+2.6)*sin(t)", + "-6+0.65*sin(4*t)" + ], + "segments": 144, + "closed": true + }, + "visible": false + }, + { + "id": "ring-frames", + "op": "frames", + "inputs": { + "path": "ring-path" + }, + "visible": false + }, + { + "id": "ring-section", + "op": "sweep", + "inputs": { + "frames": "ring-frames" + }, + "params": { + "profile": [ + [ + -0.13, + -0.11 + ], + [ + 0.13, + -0.11 + ], + [ + 0.13, + 0.11 + ], + [ + -0.13, + 0.11 + ] + ] + }, + "visible": false + }, + { + "id": "outer-rings", + "name": "Contour rings", + "op": "repeat", + "inputs": { + "source": "ring-section" + }, + "params": { + "count": 9, + "translate": [ + 0, + 0, + 2.8 + ], + "rotate": [ + 0, + 0, + 11 + ] + }, + "color": [ + 0.63, + 0.68, + 0.73 + ], + "role": "structure" + }, + { + "id": "spine-path", + "op": "curve", + "params": { + "xyz": [ + "(radius+lobe+2.6)*cos(t)", + "(radius+lobe+2.6)*sin(t)", + "-6+18*t/pi" + ], + "domain": [ + 0, + "1.35*pi" + ], + "segments": 112 + }, + "visible": false + }, + { + "id": "spine-frames", + "op": "frames", + "inputs": { + "path": "spine-path" + }, + "visible": false + }, + { + "id": "spine-section", + "op": "sweep", + "inputs": { + "frames": "spine-frames" + }, + "params": { + "profile": [ + [ + -0.18, + -0.18 + ], + [ + 0.18, + -0.18 + ], + [ + 0.18, + 0.18 + ], + [ + -0.18, + 0.18 + ] + ] + }, + "visible": false + }, + { + "id": "spiral-spines", + "name": "Spiral spines", + "op": "repeat", + "inputs": { + "source": "spine-section" + }, + "params": { + "count": 4, + "rotate": [ + 0, + 0, + 90 + ] + }, + "color": [ + 0.69, + 0.47, + 0.29 + ], + "role": "structure" + }, + { + "id": "saddle-shell", + "name": "Lower saddle", + "op": "surface", + "params": { + "xyz": [ + "u", + "v", + "0.025*(u*u-v*v)-9" + ], + "u_domain": [ + -7, + 7 + ], + "v_domain": [ + -7, + 7 + ], + "u_segments": 28, + "v_segments": 28, + "thickness": 0.22 + }, + "color": [ + 0.57, + 0.66, + 0.58 + ], + "role": "shell" + } + ] +} diff --git a/examples/verified/Braided_Atrium.blend b/examples/verified/Braided_Atrium.blend new file mode 100644 index 0000000..4bba313 --- /dev/null +++ b/examples/verified/Braided_Atrium.blend @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f64fefdb5c0fcf9f729d117cfe3da8921fcc77e6aa99d24e3a167525ff0dc9e5 +size 230338 diff --git a/examples/verified/blender_verification.json b/examples/verified/blender_verification.json new file mode 100644 index 0000000..862b23f --- /dev/null +++ b/examples/verified/blender_verification.json @@ -0,0 +1,56 @@ +{ + "blender_version": "5.2.2 LTS", + "initial": { + "passed": true, + "project_id": "braided-atrium", + "bundle_hash": "c7fbfd0528618a64c9868a908dbc19de3a40cec5e6a6247ef52937b0ace462eb", + "objects_checked": 17, + "vertices_checked_including_instances": 11554, + "triangles_checked_including_instances": 23088, + "tolerance_m": 1e-05, + "max_local_vertex_error_m": 1.0060402715329934e-06, + "max_world_vertex_error_m": 3.1225857623483306e-06, + "max_matrix_component_error": 7.629394538355427e-07, + "errors": [], + "scope": "Base mesh coordinates, connectivity, orientation and transforms. Artist modifiers are deliberately excluded." + }, + "edited": { + "passed": true, + "project_id": "braided-atrium", + "bundle_hash": "48d124fa042aa478054370e11d7a063edae36f2b5541a578429227ca1fd46b13", + "objects_checked": 16, + "vertices_checked_including_instances": 10594, + "triangles_checked_including_instances": 21168, + "tolerance_m": 1e-05, + "max_local_vertex_error_m": 1.0060402715329934e-06, + "max_world_vertex_error_m": 3.1225857623483306e-06, + "max_matrix_component_error": 7.629394538355427e-07, + "errors": [], + "scope": "Base mesh coordinates, connectivity, orientation and transforms. Artist modifiers are deliberately excluded." + }, + "undo": { + "passed": true, + "project_id": "braided-atrium", + "bundle_hash": "c7fbfd0528618a64c9868a908dbc19de3a40cec5e6a6247ef52937b0ace462eb", + "objects_checked": 17, + "vertices_checked_including_instances": 11554, + "triangles_checked_including_instances": 23088, + "tolerance_m": 1e-05, + "max_local_vertex_error_m": 1.0060402715329934e-06, + "max_world_vertex_error_m": 3.1225857623483306e-06, + "max_matrix_component_error": 7.629394538355427e-07, + "errors": [], + "scope": "Base mesh coordinates, connectivity, orientation and transforms. Artist modifiers are deliberately excluded." + }, + "changed_import": { + "created": 0, + "updated": 16, + "removed": [ + "braided-galleries/0002/main" + ], + "collection": "Spatial Lab / Braided atrium", + "bundle_hash": "48d124fa042aa478054370e11d7a063edae36f2b5541a578429227ca1fd46b13" + }, + "preserved_object_identity_modifiers_materials_and_unrelated_objects": true, + "undo_restored_identical_bundle": true +} diff --git a/examples/verified/braided_atrium.bundle.json b/examples/verified/braided_atrium.bundle.json new file mode 100644 index 0000000..2226fce --- /dev/null +++ b/examples/verified/braided_atrium.bundle.json @@ -0,0 +1,56353 @@ +{ + "schema": "spatial-lab.bundle/1", + "project_id": "braided-atrium", + "name": "Braided atrium", + "project_hash": "30d86cf6d13a4908aa191b70eec329de47bde05746cd21b3cd40579d9cd2819e", + "units": "meters", + "handedness": "right", + "up_axis": "+Z", + "matrix_convention": "row arrays; column vectors; local-to-world", + "recipe": { + "schema": "spatial-lab.project/1", + "id": "braided-atrium", + "name": "Braided atrium", + "parameters": { + "radius": 11, + "lobe": 3.2, + "rise": 4.8, + "width": 1.25, + "thickness": 0.24, + "twist": 360, + "samples": 240, + "levels": 3 + }, + "nodes": [ + { + "id": "braid-path", + "op": "curve", + "params": { + "xyz": [ + "(radius+lobe*cos(3*t))*cos(2*t)", + "(radius+lobe*cos(3*t))*sin(2*t)", + "rise*sin(3*t)" + ], + "domain": [ + 0, + "tau" + ], + "segments": "samples", + "closed": true + }, + "visible": false, + "role": "route" + }, + { + "id": "braid-frames", + "op": "frames", + "inputs": { + "path": "braid-path" + }, + "params": { + "twist_degrees": "twist" + }, + "visible": false + }, + { + "id": "braid-section", + "op": "sweep", + "inputs": { + "frames": "braid-frames" + }, + "params": { + "profile": [ + [ + "-width/2", + "-thickness/2" + ], + [ + "width/2", + "-thickness/2" + ], + [ + "width/2", + "thickness/2" + ], + [ + "-width/2", + "thickness/2" + ] + ] + }, + "visible": false + }, + { + "id": "braided-galleries", + "name": "Braided galleries", + "op": "repeat", + "inputs": { + "source": "braid-section" + }, + "params": { + "count": "levels", + "translate": [ + 0, + 0, + 6.5 + ], + "rotate": [ + 0, + 0, + 37 + ], + "scale": 0.87 + }, + "color": [ + 0.37, + 0.56, + 0.68 + ], + "role": "gallery" + }, + { + "id": "ring-path", + "op": "curve", + "params": { + "xyz": [ + "(radius+lobe+2.6)*cos(t)", + "(radius+lobe+2.6)*sin(t)", + "-6+0.65*sin(4*t)" + ], + "segments": 144, + "closed": true + }, + "visible": false + }, + { + "id": "ring-frames", + "op": "frames", + "inputs": { + "path": "ring-path" + }, + "visible": false + }, + { + "id": "ring-section", + "op": "sweep", + "inputs": { + "frames": "ring-frames" + }, + "params": { + "profile": [ + [ + -0.13, + -0.11 + ], + [ + 0.13, + -0.11 + ], + [ + 0.13, + 0.11 + ], + [ + -0.13, + 0.11 + ] + ] + }, + "visible": false + }, + { + "id": "outer-rings", + "name": "Contour rings", + "op": "repeat", + "inputs": { + "source": "ring-section" + }, + "params": { + "count": 9, + "translate": [ + 0, + 0, + 2.8 + ], + "rotate": [ + 0, + 0, + 11 + ] + }, + "color": [ + 0.63, + 0.68, + 0.73 + ], + "role": "structure" + }, + { + "id": "spine-path", + "op": "curve", + "params": { + "xyz": [ + "(radius+lobe+2.6)*cos(t)", + "(radius+lobe+2.6)*sin(t)", + "-6+18*t/pi" + ], + "domain": [ + 0, + "1.35*pi" + ], + "segments": 112 + }, + "visible": false + }, + { + "id": "spine-frames", + "op": "frames", + "inputs": { + "path": "spine-path" + }, + "visible": false + }, + { + "id": "spine-section", + "op": "sweep", + "inputs": { + "frames": "spine-frames" + }, + "params": { + "profile": [ + [ + -0.18, + -0.18 + ], + [ + 0.18, + -0.18 + ], + [ + 0.18, + 0.18 + ], + [ + -0.18, + 0.18 + ] + ] + }, + "visible": false + }, + { + "id": "spiral-spines", + "name": "Spiral spines", + "op": "repeat", + "inputs": { + "source": "spine-section" + }, + "params": { + "count": 4, + "rotate": [ + 0, + 0, + 90 + ] + }, + "color": [ + 0.69, + 0.47, + 0.29 + ], + "role": "structure" + }, + { + "id": "saddle-shell", + "name": "Lower saddle", + "op": "surface", + "params": { + "xyz": [ + "u", + "v", + "0.025*(u*u-v*v)-9" + ], + "u_domain": [ + -7, + 7 + ], + "v_domain": [ + -7, + 7 + ], + "u_segments": 28, + "v_segments": 28, + "thickness": 0.22 + }, + "color": [ + 0.57, + 0.66, + 0.58 + ], + "role": "shell" + } + ] + }, + "nodes": [ + { + "id": "braid-path", + "op": "curve", + "kind": "curve", + "inputs": {}, + "params": { + "xyz": [ + "(radius+lobe*cos(3*t))*cos(2*t)", + "(radius+lobe*cos(3*t))*sin(2*t)", + "rise*sin(3*t)" + ], + "domain": [ + 0, + "tau" + ], + "segments": "samples", + "closed": true + }, + "visible": false, + "role": "route", + "points": 240, + "length_m": 158.75557274979317, + "estimated_chord_error_m": 0.007332053842423709 + }, + { + "id": "braid-frames", + "op": "frames", + "kind": "frames", + "inputs": { + "path": "braid-path" + }, + "params": { + "twist_degrees": "twist" + }, + "visible": false, + "role": "geometry", + "frames": 240 + }, + { + "id": "braid-section", + "op": "sweep", + "kind": "mesh", + "inputs": { + "frames": "braid-frames" + }, + "params": { + "profile": [ + [ + "-width/2", + "-thickness/2" + ], + [ + "width/2", + "-thickness/2" + ], + [ + "width/2", + "thickness/2" + ], + [ + "-width/2", + "thickness/2" + ] + ] + }, + "visible": false, + "role": "geometry", + "parts": 1 + }, + { + "id": "braided-galleries", + "op": "repeat", + "kind": "mesh", + "inputs": { + "source": "braid-section" + }, + "params": { + "count": "levels", + "translate": [ + 0, + 0, + 6.5 + ], + "rotate": [ + 0, + 0, + 37 + ], + "scale": 0.87 + }, + "visible": true, + "role": "gallery", + "parts": 3 + }, + { + "id": "ring-path", + "op": "curve", + "kind": "curve", + "inputs": {}, + "params": { + "xyz": [ + "(radius+lobe+2.6)*cos(t)", + "(radius+lobe+2.6)*sin(t)", + "-6+0.65*sin(4*t)" + ], + "segments": 144, + "closed": true + }, + "visible": false, + "role": "geometry", + "points": 144, + "length_m": 106.17684843127013, + "estimated_chord_error_m": 0.004696278142029138 + }, + { + "id": "ring-frames", + "op": "frames", + "kind": "frames", + "inputs": { + "path": "ring-path" + }, + "params": {}, + "visible": false, + "role": "geometry", + "frames": 144 + }, + { + "id": "ring-section", + "op": "sweep", + "kind": "mesh", + "inputs": { + "frames": "ring-frames" + }, + "params": { + "profile": [ + [ + -0.13, + -0.11 + ], + [ + 0.13, + -0.11 + ], + [ + 0.13, + 0.11 + ], + [ + -0.13, + 0.11 + ] + ] + }, + "visible": false, + "role": "geometry", + "parts": 1 + }, + { + "id": "outer-rings", + "op": "repeat", + "kind": "mesh", + "inputs": { + "source": "ring-section" + }, + "params": { + "count": 9, + "translate": [ + 0, + 0, + 2.8 + ], + "rotate": [ + 0, + 0, + 11 + ] + }, + "visible": true, + "role": "structure", + "parts": 9 + }, + { + "id": "spine-path", + "op": "curve", + "kind": "curve", + "inputs": {}, + "params": { + "xyz": [ + "(radius+lobe+2.6)*cos(t)", + "(radius+lobe+2.6)*sin(t)", + "-6+18*t/pi" + ], + "domain": [ + 0, + "1.35*pi" + ], + "segments": 112 + }, + "visible": false, + "role": "geometry", + "points": 113, + "length_m": 75.27704949838571, + "estimated_chord_error_m": 0.0030111858276884226 + }, + { + "id": "spine-frames", + "op": "frames", + "kind": "frames", + "inputs": { + "path": "spine-path" + }, + "params": {}, + "visible": false, + "role": "geometry", + "frames": 113 + }, + { + "id": "spine-section", + "op": "sweep", + "kind": "mesh", + "inputs": { + "frames": "spine-frames" + }, + "params": { + "profile": [ + [ + -0.18, + -0.18 + ], + [ + 0.18, + -0.18 + ], + [ + 0.18, + 0.18 + ], + [ + -0.18, + 0.18 + ] + ] + }, + "visible": false, + "role": "geometry", + "parts": 1 + }, + { + "id": "spiral-spines", + "op": "repeat", + "kind": "mesh", + "inputs": { + "source": "spine-section" + }, + "params": { + "count": 4, + "rotate": [ + 0, + 0, + 90 + ] + }, + "visible": true, + "role": "structure", + "parts": 4 + }, + { + "id": "saddle-shell", + "op": "surface", + "kind": "mesh", + "inputs": {}, + "params": { + "xyz": [ + "u", + "v", + "0.025*(u*u-v*v)-9" + ], + "u_domain": [ + -7, + 7 + ], + "v_domain": [ + -7, + 7 + ], + "u_segments": 28, + "v_segments": 28, + "thickness": 0.22 + }, + "visible": true, + "role": "shell", + "parts": 1 + } + ], + "geometries": { + "fcde8763c3b44c8c85737dea193a91c590c8d3649547beb9ee2a527b6c420627": { + "vertices": [ + [ + 13.575, + 0.054273095524310096, + -0.10702537597322045 + ], + [ + 14.825, + 0.0542730955243086, + -0.10702537597322045 + ], + [ + 14.825, + -0.054273095524310096, + 0.10702537597322045 + ], + [ + 13.575, + -0.0542730955243086, + 0.10702537597322045 + ], + [ + 13.543640046977714, + 0.7482185628499762, + 0.2679554816152459 + ], + [ + 14.789874876188009, + 0.8451152895851928, + 0.2710819510599742 + ], + [ + 14.797736713940889, + 0.7370900550137591, + 0.4852518373720655 + ], + [ + 13.551501884730595, + 0.6401933282785426, + 0.48212536792733723 + ], + [ + 13.45774521185831, + 1.436805502811865, + 0.6406004386528272 + ], + [ + 14.69270555974739, + 1.6300318289019218, + 0.6466441169549668 + ], + [ + 14.708313641583356, + 1.5235665734271573, + 0.861170425733389 + ], + [ + 13.473353293694275, + 1.3303402473371004, + 0.8551267474312494 + ], + [ + 13.318165255439308, + 2.115265311525789, + 1.0087092710375336 + ], + [ + 14.534405639564511, + 2.4036858330829753, + 1.0172492223054008 + ], + [ + 14.557528209635851, + 2.2998107965984733, + 1.2323662219791582 + ], + [ + 13.341287825510648, + 2.011390275041287, + 1.223826270711291 + ], + [ + 13.126263372399709, + 2.778963370939038, + 1.3701138007323748 + ], + [ + 14.316447143608436, + 3.160872331383678, + 1.380512679684992 + ], + [ + 14.346735201032693, + 3.060602744595176, + 1.5964493452671202 + ], + [ + 13.156551429823967, + 2.6786937841505356, + 1.586050466314503 + ], + [ + 12.883894287091994, + 3.423461850253905, + 1.7226932026820334 + ], + [ + 14.040842322995662, + 3.896580594353935, + 1.7340904040866016 + ], + [ + 14.077828136595656, + 3.8009098997252924, + 1.9510677480228282 + ], + [ + 12.920880100691988, + 3.3277911556252624, + 1.93967054661826 + ], + [ + 12.59337389146074, + 4.044579150979903, + 2.064388964597787 + ], + [ + 13.710118459238853, + 4.6060538271028655, + 2.075691991214023 + ], + [ + 13.753213856734032, + 4.515946136937153, + 2.2939198329018615 + ], + [ + 12.636469288955919, + 3.9544714608141898, + 2.282616806285626 + ], + [ + 12.257440864251324, + 4.638444887580762, + 2.393219332463742 + ], + [ + 13.327286112020412, + 5.284845412816964, + 2.4030938856312947 + ], + [ + 13.375780795719676, + 5.201227009772924, + 2.622766888809366 + ], + [ + 12.305935547950588, + 4.554826484536721, + 2.6128923356418134 + ], + [ + 11.879210847725151, + 5.201549337162318, + 2.7072930505643424 + ], + [ + 12.8958013137492, + 5.92887097951685, + 2.714152565978133 + ], + [ + 12.948861542760248, + 5.852620691998659, + 2.9354453714433997 + ], + [ + 11.9322710767362, + 5.125299049644127, + 2.928585856029609 + ], + [ + 11.462123902230278, + 5.730786344878743, + 3.004822173881803 + ], + [ + 12.419522277826374, + 6.534455659876136, + 3.0068178035017388 + ], + [ + 12.476190358754671, + 6.466393989088507, + 3.2298790900879597 + ], + [ + 11.518791983158575, + 5.6627246740911135, + 3.227883460468024 + ], + [ + 11.009886114900736, + 6.223488739591329, + 3.2841336939039945 + ], + [ + 11.9026612136751, + 7.098376016170356, + 3.2791460803906727 + ], + [ + 11.961856356810001, + 7.039252960205622, + 3.504091405486861 + ], + [ + 11.069081258035636, + 6.164365683626595, + 3.5090790190001826 + ], + [ + 10.526406411924848, + 6.677455402187111, + 3.543679679000281 + ], + [ + 11.349731827822506, + 7.617896200368493, + 3.5293142812364606 + ], + [ + 11.410253049556866, + 7.5683778214871245, + 3.7562175907600146 + ], + [ + 10.586927633659208, + 6.627937023305742, + 3.770582988523835 + ], + [ + 10.015729819350598, + 7.0909692456362485, + 3.78204559311565 + ], + [ + 10.76549303374182, + 8.090798000397532, + 3.755633787076587 + ], + [ + 10.826024909042738, + 8.051451922798329, + 3.984517552883845 + ], + [ + 10.076261694651517, + 7.051623168037045, + 4.010929358922907 + ], + [ + 9.481968637998161, + 7.462805524128391, + 3.997956431121164 + ], + [ + 10.154889295650628, + 8.515404472395556, + 3.956565096141139 + ], + [ + 10.214011470446007, + 8.486684685816162, + 4.18738914667812 + ], + [ + 9.54109081279354, + 7.4340857375489975, + 4.228780481658145 + ], + [ + 8.929233240661409, + 7.792230105113794, + 4.1902803103362745 + ], + [ + 9.522987902983722, + 8.89059685864172, + 4.13073305418588 + ], + [ + 9.579189340304241, + 8.872828440361143, + 4.363382321872057 + ], + [ + 8.985434677981928, + 7.7744616868332175, + 4.422929578022451 + ], + [ + 8.361564450799788, + 8.078987631515504, + 4.358029205642726 + ], + [ + 8.874913334789392, + 9.215824426799879, + 4.2769426827540356 + ], + [ + 8.92661225577209, + 9.20918907505637, + 4.511214306465625 + ], + [ + 8.413263371782486, + 8.072352279771996, + 4.592300829354316 + ], + [ + 7.7828696915461535, + 8.323279888263649, + 4.500356634825201 + ], + [ + 8.21577876444552, + 9.491106730222096, + 4.394195428149837 + ], + [ + 8.261349112805053, + 9.495630306506666, + 4.6297859216082715 + ], + [ + 7.828440039905686, + 8.327803464548218, + 4.735947128283636 + ], + [ + 7.196865251027007, + 8.52573517405331, + 4.616552316433221 + ], + [ + 7.550614729539616, + 9.717027588550776, + 4.481705404667128 + ], + [ + 7.588419689161065, + 9.732571157145458, + 4.7181989193844736 + ], + [ + 7.234670210648456, + 8.541278742647991, + 4.853045831150567 + ], + [ + 6.607027020916507, + 8.687370050781555, + 4.706034152300427 + ], + [ + 6.884295117521637, + 9.894719854830923, + 4.5389148737389124 + ], + [ + 6.912727707123728, + 9.920975926097691, + 4.775773917412895 + ], + [ + 6.635459610518598, + 8.713626122048323, + 4.94289319597441 + ], + [ + 6.016551839803581, + 8.809545449711251, + 4.768338328805332 + ], + [ + 6.221460963696191, + 10.02583983530892, + 4.565507812094566 + ], + [ + 6.238991002113355, + 10.062335585085236, + 4.802068075032696 + ], + [ + 6.0340818782207455, + 8.846041199487567, + 5.004898591743462 + ], + [ + 5.428331024279526, + 8.893919660346056, + 4.803108847887293 + ], + [ + 5.56644317029487, + 10.112530161874487, + 4.561420038283579 + ], + [ + 5.571668975720476, + 10.158639222911594, + 4.796891152112707 + ], + [ + 5.4335568297051315, + 8.940028721383163, + 5.038579961716421 + ], + [ + 4.8449367486103165, + 8.94240107656369, + 4.810088305633175 + ], + [ + 4.923186123459397, + 10.157370108833383, + 4.526844089520344 + ], + [ + 4.914888267556692, + 10.212334032057655, + 4.760318098204853 + ], + [ + 4.836638892707612, + 8.997364999787962, + 5.043562314317684 + ], + [ + 4.26862066972227, + 8.957103563477782, + 4.789112098074424 + ], + [ + 4.295175207950636, + 10.163312910882533, + 4.462227000933424 + ], + [ + 4.272368651245677, + 10.22627253693942, + 4.692695971638898 + ], + [ + 4.245814113017311, + 9.02006318953467, + 5.019581068779898 + ], + [ + 3.7013227399094255, + 8.940306801483501, + 4.740108285798225 + ], + [ + 3.6853721877691634, + 10.133610633517202, + 4.368259466598663 + ], + [ + 3.6473523972814395, + 10.203646438399637, + 4.59464295001947 + ], + [ + 3.6633029494217015, + 9.010342606365937, + 4.966491769219032 + ], + [ + 3.144686787067277, + 8.894422916879043, + 4.663104942955904 + ], + [ + 3.0961630374491493, + 10.071728509680186, + 4.245855632732214 + ], + [ + 3.042541471181399, + 10.147907634278424, + 4.4670376134775704 + ], + [ + 3.0910652207995266, + 8.97060204147728, + 4.884286923701261 + ], + [ + 2.6000785377020637, + 8.821969232684928, + 4.558245887583605 + ], + [ + 2.5293227623801893, + 9.981252174409144, + 4.096123954230677 + ], + [ + 2.4600475870891523, + 10.062678557742505, + 4.310997624524748 + ], + [ + 2.5308033624110267, + 8.903395616018289, + 4.773119557877676 + ], + [ + 2.068601654771699, + 8.725545357841257, + 4.425814319604509 + ], + [ + 1.986000828843938, + 9.865792556257098, + 3.9203309568111555 + ], + [ + 1.9013599757562927, + 9.951655662614924, + 4.127848312603822 + ], + [ + 1.9839608016840542, + 8.811408464199083, + 4.633331675397176 + ], + [ + 1.5511082394914304, + 8.607811493303842, + 4.266262327906582 + ], + [ + 1.4667290481000574, + 9.728893929366421, + 3.719861080093099 + ], + [ + 1.3673345772776315, + 9.818511261564314, + 3.9190832498927035 + ], + [ + 1.4517137686690045, + 8.697428825501735, + 4.4654844977061865 + ], + [ + 1.0482020049959104, + 8.471464184655051, + 4.080242835063533 + ], + [ + 0.971451413368379, + 9.573950497211635, + 3.4961766767302427 + ], + [ + 0.8582063363099234, + 9.666799573098615, + 3.6863203109359617 + ], + [ + 0.9349569279374549, + 8.564313260542031, + 4.270386469269252 + ], + [ + 0.5602345776213172, + 8.319206048119138, + 3.8686397001009847 + ], + [ + 0.4995729860521483, + 9.40413579958738, + 3.250782430428322 + ], + [ + 0.37362375803081327, + 9.499872501433565, + 3.43125756965931 + ], + [ + 0.4342853495999822, + 8.414942749965324, + 4.049114839331973 + ], + [ + 0.08729754189099298, + 8.153707220032866, + 3.6325916389506565 + ], + [ + 0.05002304140323736, + 9.222347422537913, + 2.9851978413256255 + ], + [ + -0.08729754189098804, + 9.320809380373232, + 3.155633460440203 + ], + [ + -0.0500230414032324, + 8.252169177868184, + 3.8030272580652342 + ], + [ + -0.3707856443685953, + 7.97755812388266, + 3.3735063681183397 + ], + [ + -0.3786732533877174, + 9.031167382996603, + 2.700940152245636 + ], + [ + -0.5259073235840588, + 9.132362964546694, + 2.8611948958514275 + ], + [ + -0.5180197145649367, + 8.07875370543275, + 3.533761111724131 + ], + [ + -0.8144632304792873, + 7.793215133015882, + 3.093062721171449 + ], + [ + -0.7883201996418637, + 8.832836661035541, + 2.3995184757071084 + ], + [ + -0.9439450210607404, + 8.936921831448265, + 2.549675700836294 + ], + [ + -0.9700880518981639, + 7.897300303428605, + 3.2432199463006346 + ], + [ + -1.244450149604182, + 7.602942347547236, + 2.793200079551911 + ], + [ + -1.180978457297024, + 8.629241063403237, + 2.082438312074235 + ], + [ + -1.343461310192596, + 8.736487551589578, + 2.222786141721198 + ], + [ + -1.406933002499754, + 7.710188835733577, + 2.933547909198874 + ], + [ + -1.6617116265544665, + 7.408753669559054, + 2.47609593630624 + ], + [ + -1.5588963392057749, + 8.421905104727404, + 1.7512144383331458 + ], + [ + -1.7267412644048252, + 8.532663825797345, + 1.8822128611934095 + ], + [ + -1.8295565517535168, + 7.519512390628994, + 2.6070943591665037 + ], + [ + -2.0674343832013755, + 7.21235954550538, + 2.1441335106814803 + ], + [ + -1.924446677731149, + 8.211990836292363, + 1.407389458405584 + ], + [ + -2.0962318513303377, + 8.326654387525977, + 1.5296274400233827 + ], + [ + -2.239219556800564, + 7.327023096738992, + 2.266371492299279 + ], + [ + -2.4629861285331476, + 7.015122247200985, + 1.7998619428677087 + ], + [ + -2.280068999931593, + 8.000299320970415, + 1.052555140153276 + ], + [ + -2.4544749403797805, + 8.119266729292564, + 1.1667012031317872 + ], + [ + -2.637392068981335, + 7.134089655523135, + 1.9140080058462199 + ], + [ + -2.8498654265350267, + 6.818022603683131, + 1.4459517529082722 + ], + [ + -2.6282157966820043, + 7.787273470184817, + 0.6883739025379297 + ], + [ + -2.8040456901979494, + 7.910919419268664, + 0.7951237401084211 + ], + [ + -3.0256953200509717, + 6.941668552766978, + 1.5527015904787635 + ], + [ + -3.229644972155466, + 6.621639924683203, + 1.0851480679955552 + ], + [ + -2.9713012465899915, + 7.573001977240388, + 0.3165982879454069 + ], + [ + -3.1474953191359836, + 7.701651681903643, + 0.416622796390662 + ], + [ + -3.405839044701458, + 6.750289629346458, + 1.1851725764408103 + ], + [ + -3.6039117517098576, + 6.426145680864904, + 0.7202237607234148 + ], + [ + -3.311650788574532, + 7.357224931930304, + -0.0609132040034544 + ], + [ + -3.487296851900847, + 7.491134821309977, + 0.03298355826389793 + ], + [ + -3.7795578150361724, + 6.560055570244577, + 0.8141205229907671 + ], + [ + -3.9742075824553322, + 6.231310463568607, + 0.353934234414324 + ], + [ + -3.651450304710935, + 7.1393423012442785, + -0.4421850540282864 + ], + [ + -3.825792417544664, + 7.278685835468637, + -0.35393423441432276 + ], + [ + -4.148549695289062, + 6.3706539977929655, + 0.4421850540282876 + ], + [ + -4.341973214222127, + 6.03652290559343, + -0.011024762909476238 + ], + [ + -3.992694250931059, + 6.9184267943460815, + -0.825119190359553 + ], + [ + -4.16514095044981, + 7.063284139755658, + -0.7421825560778297 + ], + [ + -4.514419913740878, + 6.181380251003007, + 0.07191187137224703 + ], + [ + -4.708498628076695, + 5.840818623945595, + -0.3720551667209613 + ], + [ + -4.337132755740791, + 6.693242718260341, + -1.2074955010931299 + ], + [ + -4.507265623394209, + 6.843592675103518, + -1.1297156976652536 + ], + [ + -4.878631495730113, + 5.991168580788773, + -0.2942753632930851 + ], + [ + -5.074881455467554, + 5.642916841500533, + -0.7266894788646182 + ], + [ + -4.686218426843843, + 6.462272306157549, + -1.5869787748097264 + ], + [ + -4.8538009489103695, + 6.617984827805367, + -1.5143860141520684 + ], + [ + -5.24246397753408, + 5.798629363148351, + -0.6540967182069602 + ], + [ + -5.441994615597758, + 5.441262150820408, + -1.0726175735736536 + ], + [ + -5.041054317423911, + 6.223750688345915, + -1.961132382646333 + ], + [ + -5.206040174344351, + 6.384578545225945, + -1.8939455724258365 + ], + [ + -5.606980472518198, + 5.602090007700437, + -1.0054307633531572 + ], + [ + -5.8104633661970695, + 5.234068903491407, + -1.4077065156212183 + ], + [ + -5.402345171105674, + 5.975710189767356, + -2.327438944823483 + ], + [ + -5.564884332302569, + 6.141278795008233, + -2.2660544350836425 + ], + [ + -5.973002527393964, + 5.399637508732284, + -1.3463220058813778 + ], + [ + -6.180651026433792, + 5.019365957536668, + -1.7300125333925092 + ], + [ + -5.7703546404946255, + 5.716033981239791, + -2.6833280847367864 + ], + [ + -5.930795051398898, + 5.885829073239102, + -2.6282962641071386 + ], + [ + -6.341091437338065, + 5.189161049535979, + -1.6749807127628613 + ], + [ + -6.552651728383369, + 4.795040011537818, + -2.0377844552437416 + ], + [ + -6.14487158684426, + 5.442518294520593, + -3.0262110985673734 + ], + [ + -6.303753917725732, + 5.615872004959469, + -2.97820176602937 + ], + [ + -6.711534059264841, + 4.968393721976693, + -1.9897751227057383 + ], + [ + -6.9262877925577815, + 4.558876498190256, + -2.3294582699604867 + ], + [ + -6.525188715375427, + 5.152941468788713, + -3.3535219110450227 + ], + [ + -6.683231701691229, + 5.3290182000996635, + -3.3132801520472546 + ], + [ + -7.084330778873583, + 4.7349532295012065, + -2.2892165109627185 + ], + [ + -7.301108851335783, + 4.308597960424935, + -2.6036430622689575 + ], + [ + -6.910096559564337, + 4.84513711092973, + -3.662763040203108 + ], + [ + -7.0681709840147935, + 5.022921473431609, + -3.631058201700801 + ], + [ + -7.4591832757862395, + 4.486382322926814, + -2.5719382237666504 + ], + [ + -7.6763898293450215, + 4.041900880248139, + -2.8590994013003463 + ], + [ + -7.297895087502738, + 4.517067767592217, + -3.951554507732406 + ], + [ + -7.456985465459544, + 4.695357419954906, + -3.929125698090509 + ], + [ + -7.835480207301828, + 4.220190532610828, + -2.836670591658449 + ], + [ + -8.051125471539185, + 3.7564928854624604, + -3.0947122440230417 + ], + [ + -7.68642391710309, + 4.166894921224096, + -4.217682833680047 + ], + [ + -7.847578392229891, + 4.344301347103292, + -4.2051850257372525 + ], + [ + -8.212279946665985, + 3.933899311341656, + -3.082214436080247 + ], + [ + -8.424020330258447, + 3.4501328741656074, + -3.309461385929222 + ], + [ + -8.073110370552264, + 3.793041049410763, + -4.459146640044036 + ], + [ + -8.237381035151742, + 3.968000951153816, + -4.457101760070271 + ], + [ + -8.588290994857925, + 3.6250927759086604, + -3.307416505955458 + ], + [ + -8.79347485888119, + 3.120676623060069, + -3.5023932039812555 + ], + [ + -8.45503261154803, + 3.394240087126785, + -4.6741951822813 + ], + [ + -8.623410153550427, + 3.565039135559788, + -4.682952373818032 + ], + [ + -8.961852400883588, + 3.291475671493072, + -3.511150395517987 + ], + [ + -9.157570193257774, + 2.7661297274893504, + -3.672597635512627 + ], + [ + -8.828993282041273, + 2.969573926762481, + -4.861356514006301 + ], + [ + -9.00234117730991, + 3.1343831586520055, + -4.881064996695704 + ], + [ + -9.330918088526412, + 2.930938959378875, + -3.69230611820203 + ], + [ + -9.514055863883362, + 2.3847082894784033, + -3.8191938442229327 + ], + [ + -9.191597843199801, + 2.518494403146406, + -5.019453024852871 + ], + [ + -9.370591926544071, + 2.675417835312809, + -5.05004966788542 + ], + [ + -9.693049947227632, + 2.5416317216448063, + -3.849790487255482 + ], + [ + -9.860345581698615, + 1.9749058870991565, + -3.9413268330951863 + ], + [ + -9.539331598408316, + 2.0408321685066197, + -5.1476036454197365 + ], + [ + -9.724410551988617, + 2.187962537823277, + -5.188815723338286 + ], + [ + -10.045424535278917, + 2.122036256415814, + -3.9825389110137364 + ], + [ + -10.193526044550413, + 1.5355634727507832, + -4.038175577643109 + ], + [ + -9.868630265355318, + 1.5367954937255819, + -5.245213777032643 + ], + [ + -10.059961358645225, + 1.6722737942244064, + -5.296575658174586 + ], + [ + -10.38485713784032, + 1.6710417732496077, + -4.089537458785052 + ], + [ + -10.510382387832985, + 1.0659374574885132, + -4.10897144438313 + ], + [ + -10.1759407784741, + 1.0069629235962954, + -5.311955573240047 + ], + [ + -10.373403305963548, + 1.129036867310242, + -5.372836625330194 + ], + [ + -10.707844915322433, + 1.1880114012024598, + -4.169852496473277 + ], + [ + -10.807441757602948, + 0.5657607144284037, + -4.1530241520001665 + ], + [ + -10.457771272876064, + 0.45227366306996014, + -5.347742211328321 + ], + [ + -10.66095795730832, + 0.5593504393907701, + -5.417382251837862 + ], + [ + -11.010628442035204, + 0.6728374907492137, + -4.222664192509707 + ], + [ + -11.081034058057938, + 0.03529168729105182, + -4.169751653518382 + ], + [ + -10.710731341070202, + -0.12598133795484506, + -5.352700050161084 + ], + [ + -10.918965941942055, + -0.035291687291039354, + -5.430248346481617 + ], + [ + -11.28926865892979, + 0.12598133795485755, + -4.247299949838916 + ], + [ + -11.3273667967361, + -0.524651954655331, + -4.158710193378983 + ], + [ + -10.931565168556508, + -0.7261660768144342, + -5.327142103975758 + ], + [ + -11.143933017553877, + -0.653018966215017, + -5.411696210459047 + ], + [ + -11.53973464573347, + -0.4515048440559138, + -4.243264299862272 + ], + [ + -11.542609543376217, + -1.1126769887059347, + -4.119621331512568 + ], + [ + -11.117180790816722, + -1.3463039874820573, + -5.2715452881774745 + ], + [ + -11.332568159031277, + -1.2916010702720493, + -5.362186738200756 + ], + [ + -11.757996911590773, + -1.0579740714959267, + -4.2102627815358495 + ], + [ + -11.722982992181993, + -1.726815814918551, + -4.052393682443104 + ], + [ + -11.264678501224324, + -1.9840815108605498, + -5.186532719448493 + ], + [ + -11.481816590808425, + -1.948463379876416, + -5.282357553374593 + ], + [ + -11.940121081766094, + -1.6911976839344172, + -4.148218516369203 + ], + [ + -11.864847878131314, + -2.3645439345520427, + -3.9571382004106006 + ], + [ + -11.371380617700481, + -2.636852784797537, + -5.072861263254094 + ], + [ + -11.5888904204689, + -2.6207020365069265, + -5.173004356022874 + ], + [ + -12.082357680899733, + -2.3483931862614322, + -4.057281293179381 + ], + [ + -11.964789791417722, + -3.022811634082707, + -3.8341768098633136 + ], + [ + -11.434863712937906, + -3.3016476952355913, + -4.931413704224668 + ], + [ + -11.651298774873851, + -3.305100225636979, + -5.035066702245041 + ], + [ + -12.181224853353667, + -3.0262641644840946, + -3.937829807883687 + ], + [ + -12.019696963511244, + -3.6980873742423954, + -3.6840448927517273 + ], + [ + -11.452993326243787, + -3.9751852770228244, + -4.7631944374314825 + ], + [ + -11.666878382907825, + -3.998147492113933, + -4.869617739456605 + ], + [ + -12.233582020175282, + -3.721049589333504, + -3.7904681947768504 + ], + [ + -12.026829116738543, + -4.386410369172385, + -3.507488560860187 + ], + [ + -11.42396030395311, + -4.653893911407097, + -4.569327413607747 + ], + [ + -11.63382463670672, + -4.696063652200962, + -4.6778570169391 + ], + [ + -12.236693449492153, + -4.42858010996625, + -3.6160181641915408 + ], + [ + -11.98387632262322, + -5.083450071088174, + -3.305457798380787 + ], + [ + -11.346317347013628, + -5.333939107482332, + -4.351055137353095 + ], + [ + -11.550722448241034, + -5.394828398927609, + -4.46110534761871 + ], + [ + -12.188281423850626, + -5.14433936253345, + -3.4155080086464014 + ], + [ + -11.889007441278139, + -5.78457061381506, + -3.079096529357474 + ], + [ + -11.219014076230124, + -6.0112590095147445, + -4.109737719125641 + ], + [ + -11.41657575924097, + -6.090217142159245, + -4.220800740402821 + ], + [ + -12.086569124288985, + -5.8635287464595605, + -3.1901595506346547 + ], + [ + -11.740908121890241, + -6.484898612919906, + -2.829730524329516 + ], + [ + -11.041428902537948, + -6.681607222063268, + -3.846851237314553 + ], + [ + -11.230834349820496, + -6.777843086877038, + -3.958494575061342 + ], + [ + -11.930313569172789, + -6.581134477733676, + -2.941373862076305 + ], + [ + -11.538808577033256, + -7.179393012019988, + -2.558853875086033 + ], + [ + -10.813396137364588, + -7.340602124298966, + -3.563984918528715 + ], + [ + -10.993416577214822, + -7.453205094784661, + -3.675847388883728 + ], + [ + -11.71882901688349, + -7.291995982505682, + -2.670716345441046 + ], + [ + -11.282501457031277, + -7.862915881158224, + -2.2681145803189082 + ], + [ + -10.535227026276997, + -7.9837815551306885, + -3.262836860151852 + ], + [ + -10.704726801217404, + -8.111740521420673, + -3.3746238416888357 + ], + [ + -11.452001231971684, + -7.990874847448209, + -2.379901561855892 + ], + [ + -10.972350196110467, + -8.530303215179725, + -1.959299623205744 + ], + [ + -10.207723682340475, + -8.60666157454396, + -2.945208186610664 + ], + [ + -10.365666461887157, + -8.748881974515825, + -3.0566865980673703 + ], + [ + -11.130292975657149, + -8.67252361515159, + -2.0707780346624505 + ], + [ + -10.609288218797932, + -9.176434862203674, + -1.6343197948428416 + ], + [ + -9.832185196156665, + -9.204797919978331, + -2.612995649840542 + ], + [ + -9.97763802437472, + -9.36011678681032, + -2.7239890026568085 + ], + [ + -10.754741047015987, + -9.331753729035663, + -1.7453131476591086 + ], + [ + -10.194809408697836, + -9.796302753584625, + -1.2951944257133534 + ], + [ + -9.410405484997963, + -9.773848755952052, + -2.2681827619613077 + ], + [ + -9.542541265010616, + -9.941047920123824, + -2.378566524991514 + ], + [ + -10.32694518871049, + -9.963501917756396, + -1.4055781887435599 + ], + [ + -9.730950266551767, + -10.385076625667176, + -0.9440361266495184 + ], + [ + -8.944662702748978, + -10.30963734068137, + -1.9128295934368964 + ], + [ + -9.062761623295883, + -10.487454999291812, + -2.0225270193499787 + ], + [ + -9.849049187098672, + -10.562894284277618, + -1.0537335525626008 + ], + [ + -9.220264225960063, + -10.938166435507114, + -0.5830356046721775 + ], + [ + -8.437700261743053, + -10.808213290186822, + -1.5490613920765919 + ], + [ + -8.54115057585487, + -10.995354199293697, + -1.658039888344521 + ], + [ + -9.32371454007188, + -11.125307344613988, + -0.6920141009401066 + ], + [ + -8.665788653287475, + -11.451280689005653, + -0.21444660118358427 + ], + [ + -7.892699717367164, + -11.265911197870148, + -1.1790561848565684 + ], + [ + -7.980998196110439, + -11.461055764442918, + -1.2873242632026343 + ], + [ + -8.754087132030747, + -11.646425255578423, + -0.3227146795296502 + ], + [ + -8.071005129868468, + -11.920479928329115, + 0.15942900542805832 + ], + [ + -7.313245938694005, + -11.679405458846142, + -0.8050315216823708 + ], + [ + -7.385998246120779, + -11.881218015920457, + -0.9126363244153679 + ], + [ + -8.143757437295243, + -12.12229248540343, + 0.05182420269506127 + ], + [ + -7.4397936948978085, + -12.342224670764356, + 0.5362558882073882 + ], + [ + -6.7032851361141415, + -12.045760248951538, + -0.42923051223417036 + ], + [ + -6.760206305102203, + -12.252896796713692, + -0.5362558882073907 + ], + [ + -7.49671486388587, + -12.54936121852651, + 0.429230512234168 + ], + [ + -6.776381811099387, + -12.71341715569215, + 0.9136796995607823 + ], + [ + -6.067076442579379, + -12.362473715397186, + -0.053907296994374965 + ], + [ + -6.10799157382997, + -12.573589406421155, + -0.16047238057346908 + ], + [ + -6.817296942349979, + -12.924532846716119, + 0.8071146159816882 + ], + [ + -6.085288897276626, + -13.031436340927467, + 1.289341178396842 + ], + [ + -5.409137850855798, + -12.62751554740345, + 0.318687916421719 + ], + [ + -5.433983106767152, + -12.841272188760119, + 0.21242968598936318 + ], + [ + -6.11013415318798, + -13.245192982284136, + 1.1830829479644862 + ], + [ + -5.371267347386655, + -13.29416569397144, + 1.6608898675474058 + ], + [ + -4.7341873970058925, + -12.839357209190212, + 0.6863241288751245 + ], + [ + -4.743011315873569, + -13.054431048953646, + 0.5801856254692963 + ], + [ + -5.380091266254332, + -13.509239533734874, + 1.5547513641415776 + ], + [ + -4.639241020472395, + -13.500013446718217, + 2.025997365704267 + ], + [ + -4.047080551885648, + -12.99699423288307, + 1.046805019964271 + ], + [ + -4.040045663112367, + -13.212084293774993, + 0.9405657802952255 + ], + [ + -4.632206131699114, + -13.71510350761014, + 1.9197581260352217 + ], + [ + -3.894242235552788, + -13.64792512231869, + 2.3823700346317027 + ], + [ + -3.352744839514558, + -13.099960083886154, + 1.3979844969791806 + ], + [ + -3.330129514426406, + -13.313797301368961, + 1.2913909160731607 + ], + [ + -3.871626910464636, + -13.861762339801496, + 2.275776453725683 + ], + [ + -3.141348336471251, + -13.737388298189003, + 2.727761083992573 + ], + [ + -2.6561127458038296, + -13.148331224971084, + 1.7377822023786373 + ], + [ + -2.618313168550881, + -13.35968863874205, + 1.6305477135070658 + ], + [ + -3.1035487592183024, + -13.948745711959969, + 2.6205265951210017 + ], + [ + -2.3856188997202383, + -13.768429736897978, + 3.0599819647834687 + ], + [ + -1.962054015824123, + -13.142723117243618, + 2.0641988482109985 + ], + [ + -1.909586102253146, + -13.350427350151268, + 1.956004256489634 + ], + [ + -2.333150986149261, + -13.976133969805629, + 2.9517873730621043 + ], + [ + -1.632034639146785, + -13.741605193204736, + 3.376913020591374 + ], + [ + -1.2753084656531828, + -13.084277006851112, + 2.375331225344641 + ], + [ + -1.2088094930899589, + -13.287221238535148, + 2.2658254014163584 + ], + [ + -1.5655356665835611, + -13.944549424888772, + 3.2674071966630915 + ], + [ + -0.8854390106138788, + -13.657982385582073, + 3.676513376631794 + ], + [ + -0.600420459456146, + -12.97463745811003, + 2.6693867035691774 + ], + [ + -0.5206500961229812, + -13.171796055189823, + 2.5581878873379695 + ], + [ + -0.805668647280714, + -13.855140982661867, + 3.5653145604005863 + ], + [ + -0.1504834323495163, + -13.519117796432926, + 3.9568300931059834 + ], + [ + 0.05832377240984944, + -12.815920711545367, + 2.9446969936342695 + ], + [ + 0.15048343234951142, + -13.00636560316098, + 2.831395006284871 + ], + [ + -0.05832377240985431, + -13.709562688048539, + 3.843528105756585 + ], + [ + 0.5684230916966583, + -13.327028125632262, + 4.216006675005508 + ], + [ + 0.6969547696081686, + -12.61067407744157, + 3.1997308830011617 + ], + [ + 0.8005006473407411, + -12.79359285401628, + 3.083890594754789 + ], + [ + 0.6719689694292308, + -13.509946902206972, + 4.100166386759136 + ], + [ + 1.2671593309234022, + -13.084157351063135, + 4.45229111723719 + ], + [ + 1.3118731937532007, + -12.361826734288229, + 3.433105584303945 + ], + [ + 1.4256847115475038, + -12.536542287387226, + 3.3142720287623026 + ], + [ + 1.3809708487177053, + -13.258872904162132, + 4.333457561695548 + ], + [ + 1.9419317722818776, + -12.793340425952959, + 4.664043771386224 + ], + [ + 1.8998966209741912, + -12.072632503465202, + 3.643596253618689 + ], + [ + 2.022741872719215, + -12.238623805364945, + 3.521301806413062 + ], + [ + 2.064777024026901, + -12.959331727852701, + 4.541749324180596 + ], + [ + 2.589309008365226, + -12.457764639041676, + 4.849745443199373 + ], + [ + 2.458298470075929, + -11.746605435991585, + 3.8301431546700133 + ], + [ + 2.588843757088193, + -11.90352877278959, + 3.70391718900896 + ], + [ + 2.71985429537749, + -12.614687975839681, + 4.72351947753832 + ], + [ + 3.206250707555629, + -12.08092954944941, + 5.008006254636118 + ], + [ + 2.9848377565667708, + -11.387449392782779, + 3.991855883163455 + ], + [ + 3.1216611521640756, + -11.535159016842153, + 3.8612372574722387 + ], + [ + 3.343074103152934, + -12.228639173508784, + 4.877387628944901 + ], + [ + 3.790131578028984, + -11.666606154989264, + 5.137575906645628 + ], + [ + 3.4777784143246446, + -10.998983237696686, + 4.128014050477499 + ], + [ + 3.6193879162200235, + -11.13755001084003, + 3.992566649787845 + ], + [ + 3.931741079924363, + -11.805172928132608, + 5.002128505955974 + ], + [ + 4.338760959273877, + -11.218795543922322, + 5.237356020924116 + ], + [ + 3.9358970779265627, + -10.585063785573011, + 4.238063895684821 + ], + [ + 4.080753683528458, + -10.714789982071434, + 4.0973952148935755 + ], + [ + 4.483617564875773, + -11.348521740420745, + 5.0966873401328705 + ], + [ + 4.850398782621557, + -10.741686725986623, + 5.306415170733706 + ], + [ + 4.358478521592993, + -10.149509216471726, + 4.321610492630315 + ], + [ + 4.505024191745703, + -10.270937309870627, + 4.175392898979615 + ], + [ + 4.996944452774267, + -10.863114819385524, + 5.1601975770830055 + ], + [ + 5.323768565235233, + -10.239612694024174, + 5.344006977089438 + ], + [ + 4.745298453874475, + -9.696026198250346, + 4.37840558320343 + ], + [ + 4.891988407137817, + -9.809939261642675, + 4.22639942674859 + ], + [ + 5.4704585184985755, + -10.353525757416504, + 5.192000820634598 + ], + [ + 5.758067778525662, + -9.717003147732921, + 5.34959120227379 + ], + [ + 5.096594095193201, + -9.228144317327061, + 4.408331615234803 + ], + [ + 5.241932221474341, + -9.335555735524732, + 4.25040879772621 + ], + [ + 5.903405904806802, + -9.824414565930592, + 5.1916683847651965 + ], + [ + 6.152975338663077, + -9.178331892836745, + 5.322857107614161 + ], + [ + 5.413023891171111, + -8.749161427300225, + 4.411383264398838 + ], + [ + 5.5555993600811755, + -8.851292061965434, + 4.247549296223869 + ], + [ + 6.295550807573141, + -9.280462527501955, + 5.159023139439192 + ], + [ + 6.508655152716037, + -8.628056926737923, + 5.263747510022283 + ], + [ + 5.695618733901907, + -8.262103011185257, + 4.387648478306367 + ], + [ + 5.834141220112548, + -8.36034484888053, + 4.218060559691041 + ], + [ + 6.647177638926679, + -8.726298764433196, + 5.094159591406957 + ], + [ + 6.825753765911043, + -8.070551828836528, + 5.172481109143266 + ], + [ + 5.9457279850017875, + -7.7696975050302255, + 4.337291728953295 + ], + [ + 6.079058500093724, + -7.865564144071437, + 4.16227012667443 + ], + [ + 6.959084281002979, + -8.166418467877739, + 4.997459506864402 + ], + [ + 7.105389435224558, + -7.510028375224371, + 5.0495699806805705 + ], + [ + 6.164964166201454, + -7.2743677838831395, + 4.26054247857971 + ], + [ + 6.292138440214006, + -7.369433751010657, + 4.080572575752904 + ], + [ + 7.232563709237111, + -7.605094342351888, + 4.8696000778537645 + ], + [ + 7.349129688772896, + -6.9504521829990376, + 4.895828893323442 + ], + [ + 6.355150160636529, + -6.778236905430158, + 4.157691646046433 + ], + [ + 6.475391976863316, + -6.874069482637181, + 3.9734146187849113 + ], + [ + 7.469371504999683, + -7.046284760206061, + 4.71155186606192 + ], + [ + 7.558954855654643, + -6.395455313602612, + 4.712373510505957 + ], + [ + 6.518272013053746, + -6.28314417986879, + 4.029097994805635 + ], + [ + 6.630994884385049, + -6.381232820712206, + 3.841289121702371 + ], + [ + 7.671677726985946, + -6.493543954446029, + 4.524564637402692 + ], + [ + 7.737206241157513, + -5.848251599916384, + 4.500605643274363 + ], + [ + 6.656438990332625, + -5.79066622111858, + 3.875204912787799 + ], + [ + 6.761235954505037, + -5.892355396331922, + 3.6847399345249263 + ], + [ + 7.842003205329925, + -5.949940775129726, + 4.31014066501149 + ], + [ + 7.886519415051868, + -5.311561453013838, + 4.262185377980253 + ], + [ + 6.771850754164892, + -5.3021372860095735, + 3.6965662821987273 + ], + [ + 6.868473609052483, + -5.408568479420407, + 3.5043777680192445 + ], + [ + 7.983142269939459, + -5.417992646424672, + 4.06999686380077 + ], + [ + 8.009745091112778, + -4.78755267399093, + 3.9989917684592156 + ], + [ + 6.866769757718783, + -4.818664106411857, + 3.4938784484748737 + ], + [ + 6.955100437004168, + -4.93073164299604, + 3.3009055013010915 + ], + [ + 8.098075770398163, + -4.899620210575113, + 3.8060188212854333 + ], + [ + 8.109861811880817, + -4.277802307254474, + 3.7130754184771777 + ], + [ + 6.943495774206215, + -4.341132375644014, + 3.2680141096701494 + ], + [ + 7.02351348292375, + -4.459455992948568, + 3.075149680913675 + ], + [ + 8.189879520598351, + -4.396125924559028, + 3.5202109897207032 + ], + [ + 8.189885686684068, + -3.7832821604481675, + 3.4066073040696567 + ], + [ + 7.0043391095429826, + -3.8702045537953187, + 3.0200535420082097 + ], + [ + 7.0760871166191714, + -3.995119494124646, + 2.8280939599001114 + ], + [ + 8.261633693760258, + -3.9081971007774947, + 3.2146477219615583 + ], + [ + 8.252782549178836, + -3.3043678722308862, + 3.081828400877445 + ], + [ + 7.051589593565787, + -3.4063110549575772, + 2.751309005257253 + ], + [ + 7.115145196610208, + -3.5378743939433446, + 2.560910021130299 + ], + [ + 8.316338152223258, + -3.4359312112166536, + 2.891429416750491 + ], + [ + 8.301387158704962, + -2.8408689607867394, + 2.7410041296520133 + ], + [ + 7.087479674363641, + -2.949638608122626, + 2.4633392538060597 + ], + [ + 7.142929947200909, + -3.087648921852793, + 2.2749820916210948 + ], + [ + 8.356837431542232, + -2.9788792745169066, + 2.5526469674670484 + ], + [ + 8.338332739795511, + -2.392075596764793, + 2.3863865471803702 + ], + [ + 7.114141489171784, + -2.5001203335950755, + 2.1579524938091845 + ], + [ + 7.161566228996472, + -2.64414686781584, + 1.9719222503192737 + ], + [ + 8.3857574796202, + -2.5361021309855576, + 2.2003563036904596 + ], + [ + 8.365992602825038, + -1.956817104328998, + 2.02018590949443 + ], + [ + 7.133559266456155, + -2.0574318414032198, + 1.8371975325680616 + ], + [ + 7.173021330206318, + -2.2068491302027162, + 1.653575041210423 + ], + [ + 8.405454666575201, + -2.1062343931284944, + 1.8365634181367916 + ], + [ + 8.38643415007192, + -1.5335273296748702, + 1.6445520127783684 + ], + [ + 7.147519538682061, + -1.6209966650161178, + 1.5033440064201213 + ], + [ + 7.179061708783123, + -1.7750209507723202, + 1.3220111332211137 + ], + [ + 8.417976320172983, + -1.6875516154310726, + 1.4632191395793608 + ], + [ + 8.401384465648832, + -1.1203127839784353, + 1.2615647684098035 + ], + [ + 7.157562274734081, + -1.1900029291638985, + 1.1588533228350368 + ], + [ + 7.181209055462069, + -1.3477275696674642, + 0.9795107246068875 + ], + [ + 8.42503124637682, + -1.278037424482001, + 1.0822221701816541 + ], + [ + 8.412206001393576, + -0.715020569445548, + 0.8732328652906809 + ], + [ + 7.1649361741587265, + -0.7634316406177746, + 0.8063423109686616 + ], + [ + 7.180698541368781, + -0.9238597380921811, + 0.6285379990955304 + ], + [ + 8.427968368603631, + -0.8754486669199546, + 0.6954285534175497 + ], + [ + 8.419880583829915, + -0.31530427163580166, + 0.4814990891298013 + ], + [ + 7.170561091327806, + -0.3400956270872869, + 0.44854162640659373 + ], + [ + 7.178442184452733, + -0.50216918519, + 0.27170822985751786 + ], + [ + 8.427761676954841, + -0.4773778297385147, + 0.30466569258072546 + ], + [ + 8.424999999999999, + 0.0813129315512748, + 0.08825081961397412 + ], + [ + 7.175, + 0.08131293155127357, + 0.0882508196139739 + ], + [ + 7.175, + -0.08131293155129247, + -0.08825081961395355 + ], + [ + 8.425, + -0.08131293155129125, + -0.08825081961395333 + ], + [ + 8.427761676954841, + 0.47737782973851256, + -0.30466569258072196 + ], + [ + 7.178442184452733, + 0.5021691851899951, + -0.2717082298575147 + ], + [ + 7.170561091327806, + 0.3400956270872815, + -0.4485416264065901 + ], + [ + 8.419880583829915, + 0.315304271635799, + -0.4814990891297974 + ], + [ + 8.427968368603631, + 0.875448666919952, + -0.6954285534175462 + ], + [ + 7.1806985413687805, + 0.923859738092176, + -0.628537999095527 + ], + [ + 7.1649361741587265, + 0.7634316406177694, + -0.806342310968658 + ], + [ + 8.412206001393576, + 0.7150205694455454, + -0.8732328652906772 + ], + [ + 8.42503124637682, + 1.2780374244819985, + -1.0822221701816506 + ], + [ + 7.181209055462069, + 1.3477275696674589, + -0.9795107246068843 + ], + [ + 7.157562274734081, + 1.190002929163893, + -1.1588533228350337 + ], + [ + 8.401384465648832, + 1.1203127839784326, + -1.2615647684098 + ], + [ + 8.417976320172983, + 1.6875516154310704, + -1.4632191395793577 + ], + [ + 7.179061708783123, + 1.7750209507723145, + -1.3220111332211104 + ], + [ + 7.147519538682061, + 1.620996665016112, + -1.5033440064201182 + ], + [ + 8.386434150071922, + 1.533527329674868, + -1.6445520127783655 + ], + [ + 8.405454666575201, + 2.1062343931284917, + -1.8365634181367878 + ], + [ + 7.173021330206316, + 2.206849130202711, + -1.6535750412104198 + ], + [ + 7.133559266456154, + 2.0574318414032144, + -1.8371975325680583 + ], + [ + 8.365992602825038, + 1.9568171043289955, + -2.020185909494426 + ], + [ + 8.3857574796202, + 2.536102130985553, + -2.200356303690455 + ], + [ + 7.161566228996471, + 2.6441468678158357, + -1.9719222503192717 + ], + [ + 7.114141489171784, + 2.500120333595071, + -2.1579524938091827 + ], + [ + 8.338332739795511, + 2.3920755967647884, + -2.3863865471803662 + ], + [ + 8.356837431542234, + 2.9788792745169044, + -2.552646967467045 + ], + [ + 7.142929947200911, + 3.087648921852788, + -2.2749820916210917 + ], + [ + 7.087479674363642, + 2.949638608122621, + -2.463339253806057 + ], + [ + 8.301387158704966, + 2.8408689607867372, + -2.7410041296520102 + ], + [ + 8.316338152223258, + 3.435931211216651, + -2.8914294167504884 + ], + [ + 7.115145196610207, + 3.537874393943339, + -2.5609100211302964 + ], + [ + 7.051589593565787, + 3.406311054957571, + -2.75130900525725 + ], + [ + 8.252782549178837, + 3.304367872230883, + -3.081828400877442 + ], + [ + 8.261633693760258, + 3.9081971007774916, + -3.2146477219615552 + ], + [ + 7.076087116619172, + 3.99511949412464, + -2.8280939599001087 + ], + [ + 7.004339109542983, + 3.870204553795313, + -3.0200535420082075 + ], + [ + 8.18988568668407, + 3.7832821604481643, + -3.406607304069654 + ], + [ + 8.189879520598351, + 4.396125924559025, + -3.5202109897207006 + ], + [ + 7.02351348292375, + 4.459455992948562, + -3.0751496809136722 + ], + [ + 6.943495774206215, + 4.3411323756440074, + -3.2680141096701467 + ], + [ + 8.109861811880817, + 4.277802307254471, + -3.713075418477175 + ], + [ + 8.098075770398163, + 4.89962021057511, + -3.8060188212854307 + ], + [ + 6.955100437004168, + 4.930731642996034, + -3.3009055013010897 + ], + [ + 6.866769757718783, + 4.818664106411852, + -3.493878448474872 + ], + [ + 8.009745091112778, + 4.787552673990928, + -3.998991768459213 + ], + [ + 7.983142269939459, + 5.417992646424667, + -4.0699968638007675 + ], + [ + 6.868473609052482, + 5.408568479420402, + -3.5043777680192427 + ], + [ + 6.771850754164892, + 5.302137286009568, + -3.696566282198726 + ], + [ + 7.886519415051869, + 5.311561453013833, + -4.26218537798025 + ], + [ + 7.842003205329927, + 5.949940775129724, + -4.310140665011487 + ], + [ + 6.761235954505039, + 5.892355396331918, + -3.6847399345249254 + ], + [ + 6.656438990332628, + 5.790666221118576, + -3.8752049127877983 + ], + [ + 7.737206241157517, + 5.848251599916382, + -4.50060564327436 + ], + [ + 7.671677726985947, + 6.493543954446026, + -4.524564637402691 + ], + [ + 6.63099488438505, + 6.381232820712199, + -3.84128912170237 + ], + [ + 6.518272013053747, + 6.283144179868782, + -4.0290979948056345 + ], + [ + 7.558954855654644, + 6.395455313602609, + -4.712373510505955 + ], + [ + 7.469371504999684, + 7.046284760206057, + -4.711551866061918 + ], + [ + 6.475391976863317, + 6.874069482637173, + -3.9734146187849095 + ], + [ + 6.35515016063653, + 6.778236905430151, + -4.157691646046431 + ], + [ + 7.349129688772897, + 6.950452182999035, + -4.89582889332344 + ], + [ + 7.232563709237107, + 7.605094342351889, + -4.869600077853763 + ], + [ + 6.292138440214002, + 7.369433751010657, + -4.080572575752904 + ], + [ + 6.16496416620145, + 7.27436778388314, + -4.26054247857971 + ], + [ + 7.105389435224556, + 7.510028375224373, + -5.049569980680569 + ], + [ + 6.959084281002981, + 8.166418467877735, + -4.9974595068644 + ], + [ + 6.079058500093725, + 7.865564144071432, + -4.1622701266744295 + ], + [ + 5.945727985001789, + 7.769697505030221, + -4.337291728953295 + ], + [ + 6.8257537659110445, + 8.070551828836525, + -5.172481109143265 + ], + [ + 6.6471776389266815, + 8.726298764433189, + -5.094159591406956 + ], + [ + 5.834141220112549, + 8.360344848880523, + -4.2180605596910405 + ], + [ + 5.695618733901908, + 8.26210301118525, + -4.3876484783063665 + ], + [ + 6.50865515271604, + 8.628056926737916, + -5.263747510022282 + ], + [ + 6.295550807573147, + 9.280462527501953, + -5.159023139439191 + ], + [ + 5.555599360081179, + 8.851292061965431, + -4.24754929622387 + ], + [ + 5.413023891171115, + 8.749161427300223, + -4.411383264398839 + ], + [ + 6.152975338663082, + 9.178331892836745, + -5.32285710761416 + ], + [ + 5.903405904806804, + 9.824414565930589, + -5.191668384765196 + ], + [ + 5.241932221474346, + 9.335555735524725, + -4.250408797726211 + ], + [ + 5.096594095193207, + 9.228144317327054, + -4.408331615234804 + ], + [ + 5.758067778525665, + 9.717003147732918, + -5.349591202273789 + ], + [ + 5.470458518498578, + 10.353525757416499, + -5.192000820634597 + ], + [ + 4.891988407137819, + 9.809939261642667, + -4.226399426748591 + ], + [ + 4.745298453874478, + 9.696026198250337, + -4.378405583203431 + ], + [ + 5.323768565235237, + 10.239612694024169, + -5.344006977089437 + ], + [ + 4.996944452774271, + 10.863114819385519, + -5.160197577083005 + ], + [ + 4.505024191745705, + 10.27093730987062, + -4.175392898979616 + ], + [ + 4.358478521592996, + 10.14950921647172, + -4.321610492630316 + ], + [ + 4.8503987826215615, + 10.74168672598662, + -5.306415170733705 + ], + [ + 4.483617564875779, + 11.34852174042074, + -5.0966873401328705 + ], + [ + 4.080753683528462, + 10.714789982071428, + -4.097395214893577 + ], + [ + 3.935897077926566, + 10.585063785573006, + -4.238063895684823 + ], + [ + 4.338760959273882, + 11.218795543922317, + -5.237356020924116 + ], + [ + 3.931741079924369, + 11.805172928132606, + -5.002128505955975 + ], + [ + 3.6193879162200284, + 11.137550010840027, + -3.992566649787847 + ], + [ + 3.477778414324649, + 10.998983237696685, + -4.128014050477502 + ], + [ + 3.7901315780289897, + 11.666606154989264, + -5.13757590664563 + ], + [ + 3.3430741031529387, + 12.228639173508782, + -4.877387628944901 + ], + [ + 3.1216611521640814, + 11.53515901684215, + -3.86123725747224 + ], + [ + 2.9848377565667765, + 11.387449392782777, + -3.991855883163457 + ], + [ + 3.206250707555634, + 12.08092954944941, + -5.008006254636118 + ], + [ + 2.719854295377495, + 12.61468797583968, + -4.7235194775383205 + ], + [ + 2.5888437570881986, + 11.903528772789585, + -3.703917189008962 + ], + [ + 2.458298470075935, + 11.74660543599158, + -3.8301431546700155 + ], + [ + 2.5893090083652317, + 12.457764639041674, + -4.8497454431993745 + ], + [ + 2.064777024026908, + 12.9593317278527, + -4.541749324180597 + ], + [ + 2.0227418727192203, + 12.23862380536494, + -3.5213018064130646 + ], + [ + 1.8998966209741965, + 12.072632503465197, + -3.643596253618692 + ], + [ + 1.9419317722818839, + 12.793340425952957, + -4.664043771386225 + ], + [ + 1.3809708487177121, + 13.25887290416213, + -4.33345756169555 + ], + [ + 1.4256847115475093, + 12.536542287387224, + -3.3142720287623044 + ], + [ + 1.3118731937532062, + 12.361826734288227, + -3.4331055843039473 + ], + [ + 1.267159330923409, + 13.084157351063133, + -4.452291117237193 + ], + [ + 0.6719689694292371, + 13.509946902206968, + -4.10016638675914 + ], + [ + 0.8005006473407466, + 12.793592854016277, + -3.083890594754795 + ], + [ + 0.6969547696081745, + 12.610674077441567, + -3.1997308830011684 + ], + [ + 0.568423091696665, + 13.327028125632259, + -4.216006675005513 + ], + [ + -0.058323772409847936, + 13.709562688048536, + -3.8435281057565893 + ], + [ + 0.15048343234951872, + 13.006365603160974, + -2.8313950062848767 + ], + [ + 0.058323772409856055, + 12.815920711545363, + -2.9446969936342757 + ], + [ + -0.15048343234951062, + 13.519117796432925, + -3.9568300931059883 + ], + [ + -0.8056686472807081, + 13.855140982661869, + -3.565314560400588 + ], + [ + -0.5206500961229732, + 13.171796055189823, + -2.558187887337973 + ], + [ + -0.6004204594561385, + 12.974637458110028, + -2.669386703569181 + ], + [ + -0.8854390106138734, + 13.657982385582073, + -3.676513376631796 + ], + [ + -1.5655356665835418, + 13.944549424888768, + -3.267407196663097 + ], + [ + -1.208809493089941, + 13.287221238535144, + -2.2658254014163646 + ], + [ + -1.2753084656531644, + 13.084277006851108, + -2.375331225344648 + ], + [ + -1.6320346391467653, + 13.741605193204732, + -3.37691302059138 + ], + [ + -2.333150986149265, + 13.976133969805629, + -2.9517873730621074 + ], + [ + -1.9095861022531526, + 13.350427350151264, + -1.9560042564896367 + ], + [ + -1.9620540158241295, + 13.142723117243614, + -2.0641988482110016 + ], + [ + -2.3856188997202423, + 13.768429736897978, + -3.0599819647834723 + ], + [ + -3.1035487592182855, + 13.948745711959967, + -2.6205265951210115 + ], + [ + -2.6183131685508596, + 13.359688638742048, + -1.6305477135070783 + ], + [ + -2.6561127458038083, + 13.148331224971082, + -1.7377822023786496 + ], + [ + -3.1413483364712342, + 13.737388298189002, + -2.7277610839925828 + ], + [ + -3.87162691046463, + 13.861762339801498, + -2.275776453725685 + ], + [ + -3.3301295144263983, + 13.31379730136896, + -1.2913909160731645 + ], + [ + -3.3527448395145507, + 13.099960083886153, + -1.3979844969791846 + ], + [ + -3.8942422355527824, + 13.647925122318691, + -2.3823700346317054 + ], + [ + -4.6322061316991086, + 13.71510350761014, + -1.9197581260352243 + ], + [ + -4.04004566311236, + 13.212084293774993, + -0.9405657802952297 + ], + [ + -4.0470805518856405, + 12.99699423288307, + -1.0468050199642756 + ], + [ + -4.639241020472389, + 13.500013446718217, + -2.0259973657042702 + ], + [ + -5.380091266254338, + 13.509239533734872, + -1.554751364141572 + ], + [ + -4.7430113158735745, + 13.054431048953644, + -0.5801856254692919 + ], + [ + -4.734187397005899, + 12.83935720919021, + -0.6863241288751203 + ], + [ + -5.371267347386662, + 13.294165693971438, + -1.6608898675474004 + ], + [ + -6.110134153187974, + 13.245192982284138, + -1.1830829479644889 + ], + [ + -5.433983106767144, + 12.841272188760119, + -0.21242968598936762 + ], + [ + -5.40913785085579, + 12.627515547403451, + -0.3186879164217238 + ], + [ + -6.0852888972766195, + 13.03143634092747, + -1.2893411783968451 + ], + [ + -6.817296942349985, + 12.924532846716115, + -0.807114615981682 + ], + [ + -6.107991573829973, + 12.573589406421151, + 0.16047238057347274 + ], + [ + -6.067076442579383, + 12.362473715397183, + 0.05390729699437874 + ], + [ + -6.776381811099395, + 12.713417155692147, + -0.9136796995607761 + ], + [ + -7.496714863885854, + 12.54936121852652, + -0.42923051223417025 + ], + [ + -6.760206305102185, + 12.252896796713703, + 0.536255888207386 + ], + [ + -6.703285136114124, + 12.045760248951549, + 0.4292305122341656 + ], + [ + -7.439793694897793, + 12.342224670764367, + -0.5362558882073907 + ], + [ + -8.143757437295235, + 12.122292485403436, + -0.051824202695059884 + ], + [ + -7.3859982461207725, + 11.88121801592046, + 0.9126363244153683 + ], + [ + -7.313245938693999, + 11.679405458846146, + 0.8050315216823709 + ], + [ + -8.071005129868462, + 11.920479928329122, + -0.15942900542805732 + ], + [ + -8.754087132030746, + 11.646425255578427, + 0.3227146795296519 + ], + [ + -7.980998196110434, + 11.461055764442921, + 1.2873242632026343 + ], + [ + -7.89269971736716, + 11.265911197870151, + 1.1790561848565682 + ], + [ + -8.665788653287471, + 11.451280689005657, + 0.21444660118358572 + ], + [ + -9.323714540071874, + 11.125307344613995, + 0.6920141009401078 + ], + [ + -8.54115057585486, + 10.9953541992937, + 1.6580398883445215 + ], + [ + -8.437700261743045, + 10.808213290186826, + 1.549061392076592 + ], + [ + -9.220264225960058, + 10.93816643550712, + 0.5830356046721784 + ], + [ + -9.849049187098654, + 10.56289428427764, + 1.0537335525625888 + ], + [ + -9.062761623295868, + 10.48745499929183, + 2.022527019349968 + ], + [ + -8.944662702748964, + 10.309637340681387, + 1.9128295934368853 + ], + [ + -9.73095026655175, + 10.385076625667198, + 0.9440361266495063 + ], + [ + -10.326945188710479, + 9.963501917756409, + 1.40557818874355 + ], + [ + -9.542541265010604, + 9.94104792012384, + 2.378566524991502 + ], + [ + -9.410405484997952, + 9.773848755952068, + 2.2681827619612953 + ], + [ + -10.194809408697827, + 9.796302753584637, + 1.2951944257133432 + ], + [ + -10.754741047015994, + 9.33175372903565, + 1.7453131476591186 + ], + [ + -9.977638024374723, + 9.36011678681031, + 2.7239890026568157 + ], + [ + -9.832185196156669, + 9.204797919978322, + 2.6129956498405487 + ], + [ + -10.60928821879794, + 9.176434862203662, + 1.6343197948428516 + ], + [ + -11.130292975657152, + 8.672523615151583, + 2.0707780346624594 + ], + [ + -10.36566646188716, + 8.748881974515816, + 3.0566865980673783 + ], + [ + -10.207723682340479, + 8.60666157454395, + 2.945208186610671 + ], + [ + -10.97235019611047, + 8.530303215179716, + 1.959299623205752 + ], + [ + -11.452001231971678, + 7.9908748474482145, + 2.379901561855889 + ], + [ + -10.704726801217397, + 8.111740521420678, + 3.3746238416888326 + ], + [ + -10.535227026276992, + 7.983781555130692, + 3.2628368601518485 + ], + [ + -11.282501457031273, + 7.862915881158229, + 2.268114580318905 + ], + [ + -11.718829016883491, + 7.291995982505683, + 2.6707163454410474 + ], + [ + -10.99341657721482, + 7.453205094784661, + 3.6758473888837275 + ], + [ + -10.813396137364586, + 7.340602124298965, + 3.5639849185287145 + ], + [ + -11.538808577033258, + 7.179393012019988, + 2.5588538750860343 + ], + [ + -11.93031356917279, + 6.581134477733678, + 2.941373862076306 + ], + [ + -11.230834349820496, + 6.777843086877039, + 3.9584945750613425 + ], + [ + -11.041428902537946, + 6.681607222063268, + 3.846851237314553 + ], + [ + -11.740908121890241, + 6.484898612919907, + 2.8297305243295163 + ], + [ + -12.086569124288983, + 5.863528746459581, + 3.1901595506346467 + ], + [ + -11.416575759240969, + 6.090217142159263, + 4.220800740402813 + ], + [ + -11.219014076230122, + 6.011259009514761, + 4.109737719125633 + ], + [ + -11.889007441278137, + 5.784570613815079, + 3.079096529357466 + ], + [ + -12.188281423850627, + 5.144339362533463, + 3.4155080086463947 + ], + [ + -11.550722448241034, + 5.394828398927624, + 4.461105347618703 + ], + [ + -11.34631734701363, + 5.3339391074823475, + 4.351055137353088 + ], + [ + -11.983876322623223, + 5.083450071088187, + 3.30545779838078 + ], + [ + -12.236693449492154, + 4.428580109966262, + 3.616018164191536 + ], + [ + -11.633824636706722, + 4.696063652200976, + 4.677857016939095 + ], + [ + -11.423960303953113, + 4.653893911407112, + 4.569327413607741 + ], + [ + -12.026829116738545, + 4.386410369172397, + 3.5074885608601822 + ], + [ + -12.233582020175286, + 3.72104958933351, + 3.7904681947768477 + ], + [ + -11.666878382907829, + 3.998147492113943, + 4.869617739456601 + ], + [ + -11.45299332624379, + 3.9751852770228338, + 4.763194437431478 + ], + [ + -12.019696963511247, + 3.6980873742424007, + 3.6840448927517246 + ], + [ + -12.181224853353669, + 3.0262641644841217, + 3.937829807883681 + ], + [ + -11.651298774873853, + 3.3051002256370103, + 5.035066702245034 + ], + [ + -11.434863712937908, + 3.301647695235623, + 4.931413704224661 + ], + [ + -11.964789791417724, + 3.0228116340827342, + 3.834176809863308 + ], + [ + -12.08235768089974, + 2.348393186261456, + 4.057281293179377 + ], + [ + -11.588890420468905, + 2.62070203650695, + 5.1730043560228705 + ], + [ + -11.371380617700485, + 2.636852784797559, + 5.07286126325409 + ], + [ + -11.86484787813132, + 2.3645439345520654, + 3.957138200410597 + ], + [ + -11.940121081766096, + 1.6911976839344132, + 4.148218516369203 + ], + [ + -11.481816590808426, + 1.9484633798764122, + 5.282357553374592 + ], + [ + -11.264678501224326, + 1.9840815108605454, + 5.186532719448492 + ], + [ + -11.722982992181995, + 1.7268158149185464, + 4.052393682443103 + ], + [ + -11.757996911590775, + 1.057974071495921, + 4.2102627815358495 + ], + [ + -11.332568159031277, + 1.2916010702720464, + 5.362186738200755 + ], + [ + -11.117180790816724, + 1.3463039874820542, + 5.271545288177473 + ], + [ + -11.542609543376221, + 1.1126769887059287, + 4.119621331512567 + ], + [ + -11.539734645733475, + 0.4515048440559226, + 4.24326429986227 + ], + [ + -11.143933017553882, + 0.6530189662150296, + 5.411696210459045 + ], + [ + -10.931565168556514, + 0.7261660768144469, + 5.327142103975756 + ], + [ + -11.327366796736106, + 0.5246519546553399, + 4.158710193378981 + ], + [ + -11.289268658929796, + -0.1259813379548494, + 4.247299949838917 + ], + [ + -10.91896594194206, + 0.035291687291051754, + 5.430248346481617 + ], + [ + -10.710731341070208, + 0.1259813379548575, + 5.352700050161083 + ], + [ + -11.081034058057943, + -0.03529168729104368, + 4.169751653518382 + ], + [ + -11.010628442035204, + -0.6728374907492142, + 4.222664192509707 + ], + [ + -10.66095795730832, + -0.559350439390769, + 5.417382251837862 + ], + [ + -10.457771272876064, + -0.45227366306995875, + 5.347742211328321 + ], + [ + -10.807441757602948, + -0.5657607144284039, + 4.1530241520001665 + ], + [ + -10.707844915322429, + -1.1880114012024656, + 4.169852496473276 + ], + [ + -10.373403305963544, + -1.1290368673102444, + 5.3728366253301925 + ], + [ + -10.175940778474097, + -1.0069629235962976, + 5.311955573240044 + ], + [ + -10.510382387832982, + -1.0659374574885188, + 4.108971444383128 + ], + [ + -10.384857137840326, + -1.6710417732495964, + 4.0895374587850535 + ], + [ + -10.05996135864523, + -1.6722737942243913, + 5.2965756581745875 + ], + [ + -9.868630265355323, + -1.5367954937255666, + 5.245213777032645 + ], + [ + -10.193526044550419, + -1.5355634727507717, + 4.038175577643111 + ], + [ + -10.045424535278922, + -2.1220362564158055, + 3.982538911013738 + ], + [ + -9.724410551988619, + -2.187962537823267, + 5.188815723338289 + ], + [ + -9.539331598408317, + -2.0408321685066104, + 5.147603645419738 + ], + [ + -9.86034558169862, + -1.9749058870991487, + 3.941326833095188 + ], + [ + -9.693049947227635, + -2.541631721644802, + 3.849790487255482 + ], + [ + -9.370591926544071, + -2.675417835312804, + 5.05004966788542 + ], + [ + -9.191597843199801, + -2.5184944031464016, + 5.019453024852871 + ], + [ + -9.514055863883366, + -2.3847082894783993, + 3.8191938442229327 + ], + [ + -9.330918088526413, + -2.9309389593788713, + 3.692306118202029 + ], + [ + -9.002341177309912, + -3.134383158652, + 4.881064996695703 + ], + [ + -8.828993282041274, + -2.9695739267624757, + 4.8613565140063 + ], + [ + -9.157570193257776, + -2.766129727489347, + 3.672597635512626 + ], + [ + -8.961852400883584, + -3.291475671493072, + 3.5111503955179844 + ], + [ + -8.623410153550424, + -3.5650391355597852, + 4.682952373818029 + ], + [ + -8.455032611548026, + -3.394240087126782, + 4.674195182281298 + ], + [ + -8.793474858881186, + -3.120676623060069, + 3.5023932039812524 + ], + [ + -8.58829099485792, + -3.625092775908663, + 3.3074165059554548 + ], + [ + -8.237381035151737, + -3.9680009511538157, + 4.45710176007027 + ], + [ + -8.073110370552259, + -3.793041049410763, + 4.4591466400440325 + ], + [ + -8.424020330258442, + -3.4501328741656105, + 3.3094613859292186 + ], + [ + -8.212279946665982, + -3.933899311341658, + 3.0822144360802435 + ], + [ + -7.847578392229885, + -4.3443013471032925, + 4.205185025737248 + ], + [ + -7.686423917103085, + -4.166894921224097, + 4.217682833680042 + ], + [ + -8.05112547153918, + -3.756492885462463, + 3.0947122440230377 + ], + [ + -7.83548020730182, + -4.220190532610835, + 2.836670591658441 + ], + [ + -7.456985465459538, + -4.695357419954909, + 3.9291256980905036 + ], + [ + -7.297895087502732, + -4.517067767592221, + 3.951554507732401 + ], + [ + -7.6763898293450135, + -4.041900880248147, + 2.8590994013003384 + ], + [ + -7.459183275786247, + -4.486382322926811, + 2.571938223766656 + ], + [ + -7.068170984014801, + -5.022921473431603, + 3.6310582017008084 + ], + [ + -6.910096559564344, + -4.845137110929723, + 3.6627630402031146 + ], + [ + -7.3011088513357905, + -4.308597960424932, + 2.6036430622689624 + ], + [ + -7.084330778873587, + -4.734953229501205, + 2.2892165109627207 + ], + [ + -6.6832317016912315, + -5.32901820009966, + 3.3132801520472577 + ], + [ + -6.52518871537543, + -5.152941468788709, + 3.353521911045026 + ], + [ + -6.926287792557786, + -4.558876498190254, + 2.329458269960489 + ], + [ + -6.71153405926484, + -4.968393721976696, + 1.989775122705736 + ], + [ + -6.303753917725734, + -5.615872004959467, + 2.978201766029372 + ], + [ + -6.144871586844261, + -5.442518294520591, + 3.0262110985673747 + ], + [ + -6.552651728383367, + -4.79504001153782, + 2.037784455243739 + ], + [ + -6.3410914373380765, + -5.189161049535975, + 1.6749807127628737 + ], + [ + -5.9307950513989125, + -5.885829073239093, + 2.628296264107156 + ], + [ + -5.770354640494641, + -5.716033981239781, + 2.6833280847368033 + ], + [ + -6.180651026433805, + -5.019365957536663, + 1.7300125333925214 + ], + [ + -5.973002527393974, + -5.3996375087322805, + 1.34632200588139 + ], + [ + -5.56488433230258, + -6.141278795008226, + 2.266054435083657 + ], + [ + -5.402345171105686, + -5.975710189767349, + 2.327438944823497 + ], + [ + -5.810463366197079, + -5.234068903491403, + 1.40770651562123 + ], + [ + -5.606980472518208, + -5.6020900077004345, + 1.005430763353169 + ], + [ + -5.206040174344362, + -6.3845785452259385, + 1.8939455724258516 + ], + [ + -5.041054317423923, + -6.223750688345909, + 1.9611323826463478 + ], + [ + -5.4419946155977685, + -5.441262150820405, + 1.0726175735736652 + ], + [ + -5.242463977534087, + -5.7986293631483505, + 0.654096718206971 + ], + [ + -4.853800948910377, + -6.617984827805365, + 1.514386014152081 + ], + [ + -4.68621842684385, + -6.462272306157546, + 1.586978774809739 + ], + [ + -5.074881455467561, + -5.642916841500532, + 0.726689478864629 + ], + [ + -4.878631495730118, + -5.991168580788773, + 0.29427536329309273 + ], + [ + -4.507265623394214, + -6.843592675103517, + 1.1297156976652618 + ], + [ + -4.337132755740796, + -6.693242718260339, + 1.2074955010931376 + ], + [ + -4.7084986280767, + -5.840818623945594, + 0.37205516672096867 + ], + [ + -4.514419913740882, + -6.181380251003007, + -0.0719118713722397 + ], + [ + -4.165140950449813, + -7.063284139755656, + 0.7421825560778381 + ], + [ + -3.992694250931063, + -6.91842679434608, + 0.8251191903595612 + ], + [ + -4.341973214222132, + -6.03652290559343, + 0.011024762909483454 + ], + [ + -4.148549695289062, + -6.370653997792966, + -0.4421850540282849 + ], + [ + -3.825792417544664, + -7.278685835468637, + 0.35393423441432714 + ], + [ + -3.6514503047109352, + -7.139342301244278, + 0.4421850540282908 + ], + [ + -3.974207582455333, + -6.231310463568607, + -0.35393423441432126 + ], + [ + -3.779557815036171, + -6.56005557024458, + -0.8141205229907655 + ], + [ + -3.4872968519008434, + -7.491134821309979, + -0.032983558263896096 + ], + [ + -3.311650788574528, + -7.357224931930305, + 0.06091320400345568 + ], + [ + -3.603911751709856, + -6.426145680864906, + -0.7202237607234138 + ], + [ + -3.4058390447014673, + -6.7502896293464545, + -1.1851725764408028 + ], + [ + -3.1474953191359902, + -7.7016516819036385, + -0.416622796390654 + ], + [ + -2.971301246589998, + -7.5730019772403825, + -0.31659828794539935 + ], + [ + -3.229644972155475, + -6.6216399246831985, + -1.085148067995548 + ], + [ + -3.0256953200509744, + -6.941668552766975, + -1.5527015904787596 + ], + [ + -2.8040456901979547, + -7.91091941926866, + -0.795123740108414 + ], + [ + -2.6282157966820106, + -7.787273470184813, + -0.688373902537922 + ], + [ + -2.8498654265350303, + -6.818022603683128, + -1.4459517529082677 + ], + [ + -2.6373920689813404, + -7.1340896555231295, + -1.9140080058462081 + ], + [ + -2.4544749403797823, + -8.119266729292558, + -1.1667012031317752 + ], + [ + -2.280068999931594, + -8.000299320970408, + -1.0525551401532651 + ], + [ + -2.462986128533152, + -7.01512224720098, + -1.799861942867698 + ], + [ + -2.2392195568005686, + -7.327023096738993, + -2.2663714922992844 + ], + [ + -2.09623185133034, + -8.326654387525977, + -1.5296274400233885 + ], + [ + -1.9244466777311502, + -8.211990836292365, + -1.407389458405591 + ], + [ + -2.0674343832013786, + -7.212359545505381, + -2.144133510681487 + ], + [ + -1.8295565517535284, + -7.519512390628991, + -2.607094359166499 + ], + [ + -1.7267412644048383, + -8.53266382579734, + -1.882212861193401 + ], + [ + -1.5588963392057882, + -8.421905104727399, + -1.7512144383331374 + ], + [ + -1.6617116265544782, + -7.408753669559051, + -2.476095936306235 + ], + [ + -1.4069330024997635, + -7.710188835733575, + -2.933547909198871 + ], + [ + -1.343461310192607, + -8.736487551589574, + -2.2227861417211923 + ], + [ + -1.1809784572970363, + -8.629241063403231, + -2.082438312074229 + ], + [ + -1.2444501496041929, + -7.602942347547232, + -2.793200079551908 + ], + [ + -0.9700880518981583, + -7.897300303428605, + -3.243219946300633 + ], + [ + -0.9439450210607357, + -8.936921831448263, + -2.549675700836289 + ], + [ + -0.7883201996418587, + -8.83283666103554, + -2.399518475707104 + ], + [ + -0.8144632304792813, + -7.793215133015881, + -3.0930627211714476 + ], + [ + -0.51801971456493, + -8.078753705432757, + -3.5337611117241416 + ], + [ + -0.5259073235840531, + -9.132362964546699, + -2.8611948958514364 + ], + [ + -0.3786732533877102, + -9.03116738299661, + -2.700940152245646 + ], + [ + -0.3707856443685871, + -7.977558123882668, + -3.3735063681183513 + ], + [ + -0.05002304140323856, + -8.252169177868186, + -3.8030272580652342 + ], + [ + -0.08729754189099377, + -9.320809380373232, + -3.1556334604402014 + ], + [ + 0.050023041403231064, + -9.222347422537911, + -2.9851978413256237 + ], + [ + 0.08729754189098628, + -8.153707220032866, + -3.6325916389506565 + ], + [ + 0.4342853495999824, + -8.414942749965325, + -4.049114839331977 + ], + [ + 0.37362375803081227, + -9.499872501433565, + -3.431257569659312 + ], + [ + 0.49957298605214745, + -9.404135799587381, + -3.250782430428324 + ], + [ + 0.5602345776213176, + -8.319206048119142, + -3.8686397001009887 + ], + [ + 0.9349569279374575, + -8.564313260542036, + -4.2703864692692575 + ], + [ + 0.8582063363099246, + -9.666799573098618, + -3.6863203109359635 + ], + [ + 0.9714514133683801, + -9.573950497211637, + -3.4961766767302445 + ], + [ + 1.048202004995913, + -8.471464184655055, + -4.0802428350635385 + ], + [ + 1.4517137686690076, + -8.697428825501738, + -4.46548449770619 + ], + [ + 1.3673345772776377, + -9.818511261564318, + -3.919083249892707 + ], + [ + 1.4667290481000628, + -9.728893929366425, + -3.7198610800931027 + ], + [ + 1.5511082394914326, + -8.607811493303846, + -4.266262327906586 + ], + [ + 1.9839608016840447, + -8.811408464199078, + -4.633331675397173 + ], + [ + 1.9013599757562833, + -9.951655662614918, + -4.127848312603819 + ], + [ + 1.986000828843928, + -9.865792556257093, + -3.920330956811151 + ], + [ + 2.0686016547716894, + -8.725545357841252, + -4.425814319604505 + ], + [ + 2.530803362411021, + -8.903395616018287, + -4.773119557877675 + ], + [ + 2.460047587089143, + -10.062678557742501, + -4.310997624524743 + ], + [ + 2.52932276238018, + -9.981252174409143, + -4.096123954230673 + ], + [ + 2.600078537702058, + -8.821969232684928, + -4.558245887583604 + ], + [ + 3.091065220799521, + -8.97060204147728, + -4.884286923701261 + ], + [ + 3.042541471181394, + -10.147907634278422, + -4.467037613477569 + ], + [ + 3.0961630374491445, + -10.071728509680183, + -4.245855632732212 + ], + [ + 3.1446867870672714, + -8.89442291687904, + -4.663104942955904 + ], + [ + 3.6633029494216776, + -9.010342606365933, + -4.9664917692190285 + ], + [ + 3.647352397281417, + -10.203646438399632, + -4.594642950019465 + ], + [ + 3.6853721877691403, + -10.133610633517195, + -4.368259466598658 + ], + [ + 3.701322739909401, + -8.940306801483496, + -4.740108285798221 + ], + [ + 4.245814113017292, + -9.020063189534664, + -5.019581068779896 + ], + [ + 4.272368651245651, + -10.226272536939415, + -4.692695971638894 + ], + [ + 4.295175207950611, + -10.163312910882528, + -4.462227000933421 + ], + [ + 4.268620669722251, + -8.957103563477776, + -4.789112098074423 + ], + [ + 4.8366388927076205, + -8.997364999787962, + -5.043562314317686 + ], + [ + 4.914888267556692, + -10.212334032057655, + -4.760318098204853 + ], + [ + 4.923186123459397, + -10.157370108833383, + -4.526844089520344 + ], + [ + 4.844936748610325, + -8.94240107656369, + -4.810088305633177 + ], + [ + 5.433556829705139, + -8.940028721383163, + -5.0385799617164215 + ], + [ + 5.571668975720485, + -10.158639222911594, + -4.796891152112706 + ], + [ + 5.566443170294879, + -10.112530161874487, + -4.561420038283578 + ], + [ + 5.428331024279533, + -8.893919660346056, + -4.803108847887294 + ], + [ + 6.034081878220732, + -8.846041199487567, + -5.004898591743464 + ], + [ + 6.238991002113345, + -10.062335585085233, + -4.802068075032696 + ], + [ + 6.221460963696179, + -10.025839835308917, + -4.565507812094566 + ], + [ + 6.016551839803567, + -8.809545449711251, + -4.768338328805334 + ], + [ + 6.635459610518592, + -8.713626122048321, + -4.942893195974411 + ], + [ + 6.912727707123719, + -9.92097592609769, + -4.775773917412895 + ], + [ + 6.884295117521629, + -9.894719854830921, + -4.538914873738913 + ], + [ + 6.607027020916502, + -8.687370050781553, + -4.706034152300429 + ], + [ + 7.234670210648454, + -8.54127874264799, + -4.8530458311505695 + ], + [ + 7.588419689161059, + -9.732571157145458, + -4.718198919384474 + ], + [ + 7.5506147295396095, + -9.717027588550774, + -4.481705404667129 + ], + [ + 7.196865251027004, + -8.525735174053306, + -4.616552316433224 + ], + [ + 7.828440039905685, + -8.327803464548216, + -4.735947128283637 + ], + [ + 8.261349112805052, + -9.495630306506664, + -4.629785921608273 + ], + [ + 8.215778764445519, + -9.491106730222095, + -4.394195428149839 + ], + [ + 7.782869691546153, + -8.323279888263647, + -4.500356634825203 + ], + [ + 8.41326337178247, + -8.072352279771996, + -4.592300829354323 + ], + [ + 8.926612255772065, + -9.209189075056377, + -4.511214306465632 + ], + [ + 8.874913334789365, + -9.215824426799886, + -4.276942682754043 + ], + [ + 8.36156445079977, + -8.078987631515504, + -4.358029205642733 + ], + [ + 8.985434677981925, + -7.774461686833227, + -4.422929578022452 + ], + [ + 9.579189340304234, + -8.872828440361156, + -4.363382321872056 + ], + [ + 9.522987902983715, + -8.890596858641732, + -4.130733054185879 + ], + [ + 8.929233240661405, + -7.792230105113804, + -4.190280310336275 + ], + [ + 9.541090812793527, + -7.434085737548998, + -4.228780481658154 + ], + [ + 10.214011470445994, + -8.486684685816163, + -4.187389146678127 + ], + [ + 10.154889295650616, + -8.515404472395558, + -3.956565096141146 + ], + [ + 9.481968637998149, + -7.462805524128392, + -3.9979564311211724 + ], + [ + 10.076261694651519, + -7.051623168037048, + -4.010929358922904 + ], + [ + 10.826024909042731, + -8.051451922798337, + -3.9845175528838426 + ], + [ + 10.765493033741814, + -8.090798000397543, + -3.7556337870765852 + ], + [ + 10.015729819350602, + -7.090969245636252, + -3.782045593115646 + ], + [ + 10.586927633659188, + -6.627937023305761, + -3.770582988523843 + ], + [ + 11.410253049556847, + -7.568377821487145, + -3.7562175907600204 + ], + [ + 11.349731827822486, + -7.617896200368514, + -3.529314281236467 + ], + [ + 10.526406411924828, + -6.67745540218713, + -3.5436796790002894 + ], + [ + 11.06908125803564, + -6.164365683626598, + -3.5090790190001777 + ], + [ + 11.961856356810005, + -7.039252960205623, + -3.5040914054868537 + ], + [ + 11.902661213675104, + -7.098376016170355, + -3.279146080390665 + ], + [ + 11.00988611490074, + -6.22348873959133, + -3.284133693903989 + ], + [ + 11.518791983158575, + -5.662724674091106, + -3.2278834604680293 + ], + [ + 12.476190358754668, + -6.466393989088502, + -3.2298790900879633 + ], + [ + 12.41952227782637, + -6.534455659876131, + -3.0068178035017423 + ], + [ + 11.462123902230278, + -5.7307863448787355, + -3.0048221738818084 + ], + [ + 11.93227107673621, + -5.125299049644117, + -2.928585856029597 + ], + [ + 12.948861542760255, + -5.852620691998656, + -2.935445371443389 + ], + [ + 12.895801313749207, + -5.928870979516847, + -2.714152565978123 + ], + [ + 11.879210847725162, + -5.201549337162309, + -2.707293050564331 + ], + [ + 12.305935547950584, + -4.554826484536731, + -2.612892335641816 + ], + [ + 13.375780795719672, + -5.201227009772935, + -2.6227668888093665 + ], + [ + 13.327286112020408, + -5.284845412816974, + -2.4030938856312956 + ], + [ + 12.25744086425132, + -4.6384448875807704, + -2.393219332463745 + ], + [ + 12.636469288955917, + -3.9544714608141964, + -2.2826168062856262 + ], + [ + 13.753213856734032, + -4.515946136937161, + -2.29391983290186 + ], + [ + 13.710118459238851, + -4.6060538271028735, + -2.0756919912140215 + ], + [ + 12.593373891460736, + -4.044579150979909, + -2.0643889645977875 + ], + [ + 12.920880100691987, + -3.3277911556252646, + -1.939670546618258 + ], + [ + 14.077828136595654, + -3.800909899725297, + -1.951067748022825 + ], + [ + 14.04084232299566, + -3.896580594353939, + -1.7340904040865983 + ], + [ + 12.883894287091993, + -3.423461850253907, + -1.7226932026820314 + ], + [ + 13.15655142982397, + -2.6786937841505334, + -1.5860504663144983 + ], + [ + 14.346735201032695, + -3.060602744595177, + -1.5964493452671153 + ], + [ + 14.316447143608436, + -3.1608723313836786, + -1.380512679684987 + ], + [ + 13.12626337239971, + -2.778963370939035, + -1.3701138007323699 + ], + [ + 13.341287825510642, + -2.011390275041305, + -1.2238262707113015 + ], + [ + 14.557528209635846, + -2.299810796598494, + -1.2323662219791671 + ], + [ + 14.534405639564506, + -2.4036858330829958, + -1.0172492223054095 + ], + [ + 13.318165255439302, + -2.1152653115258064, + -1.0087092710375438 + ], + [ + 13.473353293694274, + -1.330340247337114, + -0.855126747431257 + ], + [ + 14.708313641583354, + -1.5235665734271744, + -0.8611704257333967 + ], + [ + 14.692705559747388, + -1.6300318289019389, + -0.6466441169549747 + ], + [ + 13.457745211858308, + -1.4368055028118785, + -0.640600438652835 + ], + [ + 13.551501884730593, + -0.6401933282785525, + -0.48212536792734323 + ], + [ + 14.797736713940887, + -0.7370900550137715, + -0.4852518373720708 + ], + [ + 14.789874876188007, + -0.8451152895852051, + -0.2710819510599795 + ], + [ + 13.543640046977712, + -0.7482185628499861, + -0.26795548161525196 + ] + ], + "faces": [ + [ + 0, + 4, + 5 + ], + [ + 0, + 5, + 1 + ], + [ + 1, + 5, + 6 + ], + [ + 1, + 6, + 2 + ], + [ + 2, + 6, + 7 + ], + [ + 2, + 7, + 3 + ], + [ + 3, + 7, + 4 + ], + [ + 3, + 4, + 0 + ], + [ + 4, + 8, + 9 + ], + [ + 4, + 9, + 5 + ], + [ + 5, + 9, + 10 + ], + [ + 5, + 10, + 6 + ], + [ + 6, + 10, + 11 + ], + [ + 6, + 11, + 7 + ], + [ + 7, + 11, + 8 + ], + [ + 7, + 8, + 4 + ], + [ + 8, + 12, + 13 + ], + [ + 8, + 13, + 9 + ], + [ + 9, + 13, + 14 + ], + [ + 9, + 14, + 10 + ], + [ + 10, + 14, + 15 + ], + [ + 10, + 15, + 11 + ], + [ + 11, + 15, + 12 + ], + [ + 11, + 12, + 8 + ], + [ + 12, + 16, + 17 + ], + [ + 12, + 17, + 13 + ], + [ + 13, + 17, + 18 + ], + [ + 13, + 18, + 14 + ], + [ + 14, + 18, + 19 + ], + [ + 14, + 19, + 15 + ], + [ + 15, + 19, + 16 + ], + [ + 15, + 16, + 12 + ], + [ + 16, + 20, + 21 + ], + [ + 16, + 21, + 17 + ], + [ + 17, + 21, + 22 + ], + [ + 17, + 22, + 18 + ], + [ + 18, + 22, + 23 + ], + [ + 18, + 23, + 19 + ], + [ + 19, + 23, + 20 + ], + [ + 19, + 20, + 16 + ], + [ + 20, + 24, + 25 + ], + [ + 20, + 25, + 21 + ], + [ + 21, + 25, + 26 + ], + [ + 21, + 26, + 22 + ], + [ + 22, + 26, + 27 + ], + [ + 22, + 27, + 23 + ], + [ + 23, + 27, + 24 + ], + [ + 23, + 24, + 20 + ], + [ + 24, + 28, + 29 + ], + [ + 24, + 29, + 25 + ], + [ + 25, + 29, + 30 + ], + [ + 25, + 30, + 26 + ], + [ + 26, + 30, + 31 + ], + [ + 26, + 31, + 27 + ], + [ + 27, + 31, + 28 + ], + [ + 27, + 28, + 24 + ], + [ + 28, + 32, + 33 + ], + [ + 28, + 33, + 29 + ], + [ + 29, + 33, + 34 + ], + [ + 29, + 34, + 30 + ], + [ + 30, + 34, + 35 + ], + [ + 30, + 35, + 31 + ], + [ + 31, + 35, + 32 + ], + [ + 31, + 32, + 28 + ], + [ + 32, + 36, + 37 + ], + [ + 32, + 37, + 33 + ], + [ + 33, + 37, + 38 + ], + [ + 33, + 38, + 34 + ], + [ + 34, + 38, + 39 + ], + [ + 34, + 39, + 35 + ], + [ + 35, + 39, + 36 + ], + [ + 35, + 36, + 32 + ], + [ + 36, + 40, + 41 + ], + [ + 36, + 41, + 37 + ], + [ + 37, + 41, + 42 + ], + [ + 37, + 42, + 38 + ], + [ + 38, + 42, + 43 + ], + [ + 38, + 43, + 39 + ], + [ + 39, + 43, + 40 + ], + [ + 39, + 40, + 36 + ], + [ + 40, + 44, + 45 + ], + [ + 40, + 45, + 41 + ], + [ + 41, + 45, + 46 + ], + [ + 41, + 46, + 42 + ], + [ + 42, + 46, + 47 + ], + [ + 42, + 47, + 43 + ], + [ + 43, + 47, + 44 + ], + [ + 43, + 44, + 40 + ], + [ + 44, + 48, + 49 + ], + [ + 44, + 49, + 45 + ], + [ + 45, + 49, + 50 + ], + [ + 45, + 50, + 46 + ], + [ + 46, + 50, + 51 + ], + [ + 46, + 51, + 47 + ], + [ + 47, + 51, + 48 + ], + [ + 47, + 48, + 44 + ], + [ + 48, + 52, + 53 + ], + [ + 48, + 53, + 49 + ], + [ + 49, + 53, + 54 + ], + [ + 49, + 54, + 50 + ], + [ + 50, + 54, + 55 + ], + [ + 50, + 55, + 51 + ], + [ + 51, + 55, + 52 + ], + [ + 51, + 52, + 48 + ], + [ + 52, + 56, + 57 + ], + [ + 52, + 57, + 53 + ], + [ + 53, + 57, + 58 + ], + [ + 53, + 58, + 54 + ], + [ + 54, + 58, + 59 + ], + [ + 54, + 59, + 55 + ], + [ + 55, + 59, + 56 + ], + [ + 55, + 56, + 52 + ], + [ + 56, + 60, + 61 + ], + [ + 56, + 61, + 57 + ], + [ + 57, + 61, + 62 + ], + [ + 57, + 62, + 58 + ], + [ + 58, + 62, + 63 + ], + [ + 58, + 63, + 59 + ], + [ + 59, + 63, + 60 + ], + [ + 59, + 60, + 56 + ], + [ + 60, + 64, + 65 + ], + [ + 60, + 65, + 61 + ], + [ + 61, + 65, + 66 + ], + [ + 61, + 66, + 62 + ], + [ + 62, + 66, + 67 + ], + [ + 62, + 67, + 63 + ], + [ + 63, + 67, + 64 + ], + [ + 63, + 64, + 60 + ], + [ + 64, + 68, + 69 + ], + [ + 64, + 69, + 65 + ], + [ + 65, + 69, + 70 + ], + [ + 65, + 70, + 66 + ], + [ + 66, + 70, + 71 + ], + [ + 66, + 71, + 67 + ], + [ + 67, + 71, + 68 + ], + [ + 67, + 68, + 64 + ], + [ + 68, + 72, + 73 + ], + [ + 68, + 73, + 69 + ], + [ + 69, + 73, + 74 + ], + [ + 69, + 74, + 70 + ], + [ + 70, + 74, + 75 + ], + [ + 70, + 75, + 71 + ], + [ + 71, + 75, + 72 + ], + [ + 71, + 72, + 68 + ], + [ + 72, + 76, + 77 + ], + [ + 72, + 77, + 73 + ], + [ + 73, + 77, + 78 + ], + [ + 73, + 78, + 74 + ], + [ + 74, + 78, + 79 + ], + [ + 74, + 79, + 75 + ], + [ + 75, + 79, + 76 + ], + [ + 75, + 76, + 72 + ], + [ + 76, + 80, + 81 + ], + [ + 76, + 81, + 77 + ], + [ + 77, + 81, + 82 + ], + [ + 77, + 82, + 78 + ], + [ + 78, + 82, + 83 + ], + [ + 78, + 83, + 79 + ], + [ + 79, + 83, + 80 + ], + [ + 79, + 80, + 76 + ], + [ + 80, + 84, + 85 + ], + [ + 80, + 85, + 81 + ], + [ + 81, + 85, + 86 + ], + [ + 81, + 86, + 82 + ], + [ + 82, + 86, + 87 + ], + [ + 82, + 87, + 83 + ], + [ + 83, + 87, + 84 + ], + [ + 83, + 84, + 80 + ], + [ + 84, + 88, + 89 + ], + [ + 84, + 89, + 85 + ], + [ + 85, + 89, + 90 + ], + [ + 85, + 90, + 86 + ], + [ + 86, + 90, + 91 + ], + [ + 86, + 91, + 87 + ], + [ + 87, + 91, + 88 + ], + [ + 87, + 88, + 84 + ], + [ + 88, + 92, + 93 + ], + [ + 88, + 93, + 89 + ], + [ + 89, + 93, + 94 + ], + [ + 89, + 94, + 90 + ], + [ + 90, + 94, + 95 + ], + [ + 90, + 95, + 91 + ], + [ + 91, + 95, + 92 + ], + [ + 91, + 92, + 88 + ], + [ + 92, + 96, + 97 + ], + [ + 92, + 97, + 93 + ], + [ + 93, + 97, + 98 + ], + [ + 93, + 98, + 94 + ], + [ + 94, + 98, + 99 + ], + [ + 94, + 99, + 95 + ], + [ + 95, + 99, + 96 + ], + [ + 95, + 96, + 92 + ], + [ + 96, + 100, + 101 + ], + [ + 96, + 101, + 97 + ], + [ + 97, + 101, + 102 + ], + [ + 97, + 102, + 98 + ], + [ + 98, + 102, + 103 + ], + [ + 98, + 103, + 99 + ], + [ + 99, + 103, + 100 + ], + [ + 99, + 100, + 96 + ], + [ + 100, + 104, + 105 + ], + [ + 100, + 105, + 101 + ], + [ + 101, + 105, + 106 + ], + [ + 101, + 106, + 102 + ], + [ + 102, + 106, + 107 + ], + [ + 102, + 107, + 103 + ], + [ + 103, + 107, + 104 + ], + [ + 103, + 104, + 100 + ], + [ + 104, + 108, + 109 + ], + [ + 104, + 109, + 105 + ], + [ + 105, + 109, + 110 + ], + [ + 105, + 110, + 106 + ], + [ + 106, + 110, + 111 + ], + [ + 106, + 111, + 107 + ], + [ + 107, + 111, + 108 + ], + [ + 107, + 108, + 104 + ], + [ + 108, + 112, + 113 + ], + [ + 108, + 113, + 109 + ], + [ + 109, + 113, + 114 + ], + [ + 109, + 114, + 110 + ], + [ + 110, + 114, + 115 + ], + [ + 110, + 115, + 111 + ], + [ + 111, + 115, + 112 + ], + [ + 111, + 112, + 108 + ], + [ + 112, + 116, + 117 + ], + [ + 112, + 117, + 113 + ], + [ + 113, + 117, + 118 + ], + [ + 113, + 118, + 114 + ], + [ + 114, + 118, + 119 + ], + [ + 114, + 119, + 115 + ], + [ + 115, + 119, + 116 + ], + [ + 115, + 116, + 112 + ], + [ + 116, + 120, + 121 + ], + [ + 116, + 121, + 117 + ], + [ + 117, + 121, + 122 + ], + [ + 117, + 122, + 118 + ], + [ + 118, + 122, + 123 + ], + [ + 118, + 123, + 119 + ], + [ + 119, + 123, + 120 + ], + [ + 119, + 120, + 116 + ], + [ + 120, + 124, + 125 + ], + [ + 120, + 125, + 121 + ], + [ + 121, + 125, + 126 + ], + [ + 121, + 126, + 122 + ], + [ + 122, + 126, + 127 + ], + [ + 122, + 127, + 123 + ], + [ + 123, + 127, + 124 + ], + [ + 123, + 124, + 120 + ], + [ + 124, + 128, + 129 + ], + [ + 124, + 129, + 125 + ], + [ + 125, + 129, + 130 + ], + [ + 125, + 130, + 126 + ], + [ + 126, + 130, + 131 + ], + [ + 126, + 131, + 127 + ], + [ + 127, + 131, + 128 + ], + [ + 127, + 128, + 124 + ], + [ + 128, + 132, + 133 + ], + [ + 128, + 133, + 129 + ], + [ + 129, + 133, + 134 + ], + [ + 129, + 134, + 130 + ], + [ + 130, + 134, + 135 + ], + [ + 130, + 135, + 131 + ], + [ + 131, + 135, + 132 + ], + [ + 131, + 132, + 128 + ], + [ + 132, + 136, + 137 + ], + [ + 132, + 137, + 133 + ], + [ + 133, + 137, + 138 + ], + [ + 133, + 138, + 134 + ], + [ + 134, + 138, + 139 + ], + [ + 134, + 139, + 135 + ], + [ + 135, + 139, + 136 + ], + [ + 135, + 136, + 132 + ], + [ + 136, + 140, + 141 + ], + [ + 136, + 141, + 137 + ], + [ + 137, + 141, + 142 + ], + [ + 137, + 142, + 138 + ], + [ + 138, + 142, + 143 + ], + [ + 138, + 143, + 139 + ], + [ + 139, + 143, + 140 + ], + [ + 139, + 140, + 136 + ], + [ + 140, + 144, + 145 + ], + [ + 140, + 145, + 141 + ], + [ + 141, + 145, + 146 + ], + [ + 141, + 146, + 142 + ], + [ + 142, + 146, + 147 + ], + [ + 142, + 147, + 143 + ], + [ + 143, + 147, + 144 + ], + [ + 143, + 144, + 140 + ], + [ + 144, + 148, + 149 + ], + [ + 144, + 149, + 145 + ], + [ + 145, + 149, + 150 + ], + [ + 145, + 150, + 146 + ], + [ + 146, + 150, + 151 + ], + [ + 146, + 151, + 147 + ], + [ + 147, + 151, + 148 + ], + [ + 147, + 148, + 144 + ], + [ + 148, + 152, + 153 + ], + [ + 148, + 153, + 149 + ], + [ + 149, + 153, + 154 + ], + [ + 149, + 154, + 150 + ], + [ + 150, + 154, + 155 + ], + [ + 150, + 155, + 151 + ], + [ + 151, + 155, + 152 + ], + [ + 151, + 152, + 148 + ], + [ + 152, + 156, + 157 + ], + [ + 152, + 157, + 153 + ], + [ + 153, + 157, + 158 + ], + [ + 153, + 158, + 154 + ], + [ + 154, + 158, + 159 + ], + [ + 154, + 159, + 155 + ], + [ + 155, + 159, + 156 + ], + [ + 155, + 156, + 152 + ], + [ + 156, + 160, + 161 + ], + [ + 156, + 161, + 157 + ], + [ + 157, + 161, + 162 + ], + [ + 157, + 162, + 158 + ], + [ + 158, + 162, + 163 + ], + [ + 158, + 163, + 159 + ], + [ + 159, + 163, + 160 + ], + [ + 159, + 160, + 156 + ], + [ + 160, + 164, + 165 + ], + [ + 160, + 165, + 161 + ], + [ + 161, + 165, + 166 + ], + [ + 161, + 166, + 162 + ], + [ + 162, + 166, + 167 + ], + [ + 162, + 167, + 163 + ], + [ + 163, + 167, + 164 + ], + [ + 163, + 164, + 160 + ], + [ + 164, + 168, + 169 + ], + [ + 164, + 169, + 165 + ], + [ + 165, + 169, + 170 + ], + [ + 165, + 170, + 166 + ], + [ + 166, + 170, + 171 + ], + [ + 166, + 171, + 167 + ], + [ + 167, + 171, + 168 + ], + [ + 167, + 168, + 164 + ], + [ + 168, + 172, + 173 + ], + [ + 168, + 173, + 169 + ], + [ + 169, + 173, + 174 + ], + [ + 169, + 174, + 170 + ], + [ + 170, + 174, + 175 + ], + [ + 170, + 175, + 171 + ], + [ + 171, + 175, + 172 + ], + [ + 171, + 172, + 168 + ], + [ + 172, + 176, + 177 + ], + [ + 172, + 177, + 173 + ], + [ + 173, + 177, + 178 + ], + [ + 173, + 178, + 174 + ], + [ + 174, + 178, + 179 + ], + [ + 174, + 179, + 175 + ], + [ + 175, + 179, + 176 + ], + [ + 175, + 176, + 172 + ], + [ + 176, + 180, + 181 + ], + [ + 176, + 181, + 177 + ], + [ + 177, + 181, + 182 + ], + [ + 177, + 182, + 178 + ], + [ + 178, + 182, + 183 + ], + [ + 178, + 183, + 179 + ], + [ + 179, + 183, + 180 + ], + [ + 179, + 180, + 176 + ], + [ + 180, + 184, + 185 + ], + [ + 180, + 185, + 181 + ], + [ + 181, + 185, + 186 + ], + [ + 181, + 186, + 182 + ], + [ + 182, + 186, + 187 + ], + [ + 182, + 187, + 183 + ], + [ + 183, + 187, + 184 + ], + [ + 183, + 184, + 180 + ], + [ + 184, + 188, + 189 + ], + [ + 184, + 189, + 185 + ], + [ + 185, + 189, + 190 + ], + [ + 185, + 190, + 186 + ], + [ + 186, + 190, + 191 + ], + [ + 186, + 191, + 187 + ], + [ + 187, + 191, + 188 + ], + [ + 187, + 188, + 184 + ], + [ + 188, + 192, + 193 + ], + [ + 188, + 193, + 189 + ], + [ + 189, + 193, + 194 + ], + [ + 189, + 194, + 190 + ], + [ + 190, + 194, + 195 + ], + [ + 190, + 195, + 191 + ], + [ + 191, + 195, + 192 + ], + [ + 191, + 192, + 188 + ], + [ + 192, + 196, + 197 + ], + [ + 192, + 197, + 193 + ], + [ + 193, + 197, + 198 + ], + [ + 193, + 198, + 194 + ], + [ + 194, + 198, + 199 + ], + [ + 194, + 199, + 195 + ], + [ + 195, + 199, + 196 + ], + [ + 195, + 196, + 192 + ], + [ + 196, + 200, + 201 + ], + [ + 196, + 201, + 197 + ], + [ + 197, + 201, + 202 + ], + [ + 197, + 202, + 198 + ], + [ + 198, + 202, + 203 + ], + [ + 198, + 203, + 199 + ], + [ + 199, + 203, + 200 + ], + [ + 199, + 200, + 196 + ], + [ + 200, + 204, + 205 + ], + [ + 200, + 205, + 201 + ], + [ + 201, + 205, + 206 + ], + [ + 201, + 206, + 202 + ], + [ + 202, + 206, + 207 + ], + [ + 202, + 207, + 203 + ], + [ + 203, + 207, + 204 + ], + [ + 203, + 204, + 200 + ], + [ + 204, + 208, + 209 + ], + [ + 204, + 209, + 205 + ], + [ + 205, + 209, + 210 + ], + [ + 205, + 210, + 206 + ], + [ + 206, + 210, + 211 + ], + [ + 206, + 211, + 207 + ], + [ + 207, + 211, + 208 + ], + [ + 207, + 208, + 204 + ], + [ + 208, + 212, + 213 + ], + [ + 208, + 213, + 209 + ], + [ + 209, + 213, + 214 + ], + [ + 209, + 214, + 210 + ], + [ + 210, + 214, + 215 + ], + [ + 210, + 215, + 211 + ], + [ + 211, + 215, + 212 + ], + [ + 211, + 212, + 208 + ], + [ + 212, + 216, + 217 + ], + [ + 212, + 217, + 213 + ], + [ + 213, + 217, + 218 + ], + [ + 213, + 218, + 214 + ], + [ + 214, + 218, + 219 + ], + [ + 214, + 219, + 215 + ], + [ + 215, + 219, + 216 + ], + [ + 215, + 216, + 212 + ], + [ + 216, + 220, + 221 + ], + [ + 216, + 221, + 217 + ], + [ + 217, + 221, + 222 + ], + [ + 217, + 222, + 218 + ], + [ + 218, + 222, + 223 + ], + [ + 218, + 223, + 219 + ], + [ + 219, + 223, + 220 + ], + [ + 219, + 220, + 216 + ], + [ + 220, + 224, + 225 + ], + [ + 220, + 225, + 221 + ], + [ + 221, + 225, + 226 + ], + [ + 221, + 226, + 222 + ], + [ + 222, + 226, + 227 + ], + [ + 222, + 227, + 223 + ], + [ + 223, + 227, + 224 + ], + [ + 223, + 224, + 220 + ], + [ + 224, + 228, + 229 + ], + [ + 224, + 229, + 225 + ], + [ + 225, + 229, + 230 + ], + [ + 225, + 230, + 226 + ], + [ + 226, + 230, + 231 + ], + [ + 226, + 231, + 227 + ], + [ + 227, + 231, + 228 + ], + [ + 227, + 228, + 224 + ], + [ + 228, + 232, + 233 + ], + [ + 228, + 233, + 229 + ], + [ + 229, + 233, + 234 + ], + [ + 229, + 234, + 230 + ], + [ + 230, + 234, + 235 + ], + [ + 230, + 235, + 231 + ], + [ + 231, + 235, + 232 + ], + [ + 231, + 232, + 228 + ], + [ + 232, + 236, + 237 + ], + [ + 232, + 237, + 233 + ], + [ + 233, + 237, + 238 + ], + [ + 233, + 238, + 234 + ], + [ + 234, + 238, + 239 + ], + [ + 234, + 239, + 235 + ], + [ + 235, + 239, + 236 + ], + [ + 235, + 236, + 232 + ], + [ + 236, + 240, + 241 + ], + [ + 236, + 241, + 237 + ], + [ + 237, + 241, + 242 + ], + [ + 237, + 242, + 238 + ], + [ + 238, + 242, + 243 + ], + [ + 238, + 243, + 239 + ], + [ + 239, + 243, + 240 + ], + [ + 239, + 240, + 236 + ], + [ + 240, + 244, + 245 + ], + [ + 240, + 245, + 241 + ], + [ + 241, + 245, + 246 + ], + [ + 241, + 246, + 242 + ], + [ + 242, + 246, + 247 + ], + [ + 242, + 247, + 243 + ], + [ + 243, + 247, + 244 + ], + [ + 243, + 244, + 240 + ], + [ + 244, + 248, + 249 + ], + [ + 244, + 249, + 245 + ], + [ + 245, + 249, + 250 + ], + [ + 245, + 250, + 246 + ], + [ + 246, + 250, + 251 + ], + [ + 246, + 251, + 247 + ], + [ + 247, + 251, + 248 + ], + [ + 247, + 248, + 244 + ], + [ + 248, + 252, + 253 + ], + [ + 248, + 253, + 249 + ], + [ + 249, + 253, + 254 + ], + [ + 249, + 254, + 250 + ], + [ + 250, + 254, + 255 + ], + [ + 250, + 255, + 251 + ], + [ + 251, + 255, + 252 + ], + [ + 251, + 252, + 248 + ], + [ + 252, + 256, + 257 + ], + [ + 252, + 257, + 253 + ], + [ + 253, + 257, + 258 + ], + [ + 253, + 258, + 254 + ], + [ + 254, + 258, + 259 + ], + [ + 254, + 259, + 255 + ], + [ + 255, + 259, + 256 + ], + [ + 255, + 256, + 252 + ], + [ + 256, + 260, + 261 + ], + [ + 256, + 261, + 257 + ], + [ + 257, + 261, + 262 + ], + [ + 257, + 262, + 258 + ], + [ + 258, + 262, + 263 + ], + [ + 258, + 263, + 259 + ], + [ + 259, + 263, + 260 + ], + [ + 259, + 260, + 256 + ], + [ + 260, + 264, + 265 + ], + [ + 260, + 265, + 261 + ], + [ + 261, + 265, + 266 + ], + [ + 261, + 266, + 262 + ], + [ + 262, + 266, + 267 + ], + [ + 262, + 267, + 263 + ], + [ + 263, + 267, + 264 + ], + [ + 263, + 264, + 260 + ], + [ + 264, + 268, + 269 + ], + [ + 264, + 269, + 265 + ], + [ + 265, + 269, + 270 + ], + [ + 265, + 270, + 266 + ], + [ + 266, + 270, + 271 + ], + [ + 266, + 271, + 267 + ], + [ + 267, + 271, + 268 + ], + [ + 267, + 268, + 264 + ], + [ + 268, + 272, + 273 + ], + [ + 268, + 273, + 269 + ], + [ + 269, + 273, + 274 + ], + [ + 269, + 274, + 270 + ], + [ + 270, + 274, + 275 + ], + [ + 270, + 275, + 271 + ], + [ + 271, + 275, + 272 + ], + [ + 271, + 272, + 268 + ], + [ + 272, + 276, + 277 + ], + [ + 272, + 277, + 273 + ], + [ + 273, + 277, + 278 + ], + [ + 273, + 278, + 274 + ], + [ + 274, + 278, + 279 + ], + [ + 274, + 279, + 275 + ], + [ + 275, + 279, + 276 + ], + [ + 275, + 276, + 272 + ], + [ + 276, + 280, + 281 + ], + [ + 276, + 281, + 277 + ], + [ + 277, + 281, + 282 + ], + [ + 277, + 282, + 278 + ], + [ + 278, + 282, + 283 + ], + [ + 278, + 283, + 279 + ], + [ + 279, + 283, + 280 + ], + [ + 279, + 280, + 276 + ], + [ + 280, + 284, + 285 + ], + [ + 280, + 285, + 281 + ], + [ + 281, + 285, + 286 + ], + [ + 281, + 286, + 282 + ], + [ + 282, + 286, + 287 + ], + [ + 282, + 287, + 283 + ], + [ + 283, + 287, + 284 + ], + [ + 283, + 284, + 280 + ], + [ + 284, + 288, + 289 + ], + [ + 284, + 289, + 285 + ], + [ + 285, + 289, + 290 + ], + [ + 285, + 290, + 286 + ], + [ + 286, + 290, + 291 + ], + [ + 286, + 291, + 287 + ], + [ + 287, + 291, + 288 + ], + [ + 287, + 288, + 284 + ], + [ + 288, + 292, + 293 + ], + [ + 288, + 293, + 289 + ], + [ + 289, + 293, + 294 + ], + [ + 289, + 294, + 290 + ], + [ + 290, + 294, + 295 + ], + [ + 290, + 295, + 291 + ], + [ + 291, + 295, + 292 + ], + [ + 291, + 292, + 288 + ], + [ + 292, + 296, + 297 + ], + [ + 292, + 297, + 293 + ], + [ + 293, + 297, + 298 + ], + [ + 293, + 298, + 294 + ], + [ + 294, + 298, + 299 + ], + [ + 294, + 299, + 295 + ], + [ + 295, + 299, + 296 + ], + [ + 295, + 296, + 292 + ], + [ + 296, + 300, + 301 + ], + [ + 296, + 301, + 297 + ], + [ + 297, + 301, + 302 + ], + [ + 297, + 302, + 298 + ], + [ + 298, + 302, + 303 + ], + [ + 298, + 303, + 299 + ], + [ + 299, + 303, + 300 + ], + [ + 299, + 300, + 296 + ], + [ + 300, + 304, + 305 + ], + [ + 300, + 305, + 301 + ], + [ + 301, + 305, + 306 + ], + [ + 301, + 306, + 302 + ], + [ + 302, + 306, + 307 + ], + [ + 302, + 307, + 303 + ], + [ + 303, + 307, + 304 + ], + [ + 303, + 304, + 300 + ], + [ + 304, + 308, + 309 + ], + [ + 304, + 309, + 305 + ], + [ + 305, + 309, + 310 + ], + [ + 305, + 310, + 306 + ], + [ + 306, + 310, + 311 + ], + [ + 306, + 311, + 307 + ], + [ + 307, + 311, + 308 + ], + [ + 307, + 308, + 304 + ], + [ + 308, + 312, + 313 + ], + [ + 308, + 313, + 309 + ], + [ + 309, + 313, + 314 + ], + [ + 309, + 314, + 310 + ], + [ + 310, + 314, + 315 + ], + [ + 310, + 315, + 311 + ], + [ + 311, + 315, + 312 + ], + [ + 311, + 312, + 308 + ], + [ + 312, + 316, + 317 + ], + [ + 312, + 317, + 313 + ], + [ + 313, + 317, + 318 + ], + [ + 313, + 318, + 314 + ], + [ + 314, + 318, + 319 + ], + [ + 314, + 319, + 315 + ], + [ + 315, + 319, + 316 + ], + [ + 315, + 316, + 312 + ], + [ + 316, + 320, + 321 + ], + [ + 316, + 321, + 317 + ], + [ + 317, + 321, + 322 + ], + [ + 317, + 322, + 318 + ], + [ + 318, + 322, + 323 + ], + [ + 318, + 323, + 319 + ], + [ + 319, + 323, + 320 + ], + [ + 319, + 320, + 316 + ], + [ + 320, + 324, + 325 + ], + [ + 320, + 325, + 321 + ], + [ + 321, + 325, + 326 + ], + [ + 321, + 326, + 322 + ], + [ + 322, + 326, + 327 + ], + [ + 322, + 327, + 323 + ], + [ + 323, + 327, + 324 + ], + [ + 323, + 324, + 320 + ], + [ + 324, + 328, + 329 + ], + [ + 324, + 329, + 325 + ], + [ + 325, + 329, + 330 + ], + [ + 325, + 330, + 326 + ], + [ + 326, + 330, + 331 + ], + [ + 326, + 331, + 327 + ], + [ + 327, + 331, + 328 + ], + [ + 327, + 328, + 324 + ], + [ + 328, + 332, + 333 + ], + [ + 328, + 333, + 329 + ], + [ + 329, + 333, + 334 + ], + [ + 329, + 334, + 330 + ], + [ + 330, + 334, + 335 + ], + [ + 330, + 335, + 331 + ], + [ + 331, + 335, + 332 + ], + [ + 331, + 332, + 328 + ], + [ + 332, + 336, + 337 + ], + [ + 332, + 337, + 333 + ], + [ + 333, + 337, + 338 + ], + [ + 333, + 338, + 334 + ], + [ + 334, + 338, + 339 + ], + [ + 334, + 339, + 335 + ], + [ + 335, + 339, + 336 + ], + [ + 335, + 336, + 332 + ], + [ + 336, + 340, + 341 + ], + [ + 336, + 341, + 337 + ], + [ + 337, + 341, + 342 + ], + [ + 337, + 342, + 338 + ], + [ + 338, + 342, + 343 + ], + [ + 338, + 343, + 339 + ], + [ + 339, + 343, + 340 + ], + [ + 339, + 340, + 336 + ], + [ + 340, + 344, + 345 + ], + [ + 340, + 345, + 341 + ], + [ + 341, + 345, + 346 + ], + [ + 341, + 346, + 342 + ], + [ + 342, + 346, + 347 + ], + [ + 342, + 347, + 343 + ], + [ + 343, + 347, + 344 + ], + [ + 343, + 344, + 340 + ], + [ + 344, + 348, + 349 + ], + [ + 344, + 349, + 345 + ], + [ + 345, + 349, + 350 + ], + [ + 345, + 350, + 346 + ], + [ + 346, + 350, + 351 + ], + [ + 346, + 351, + 347 + ], + [ + 347, + 351, + 348 + ], + [ + 347, + 348, + 344 + ], + [ + 348, + 352, + 353 + ], + [ + 348, + 353, + 349 + ], + [ + 349, + 353, + 354 + ], + [ + 349, + 354, + 350 + ], + [ + 350, + 354, + 355 + ], + [ + 350, + 355, + 351 + ], + [ + 351, + 355, + 352 + ], + [ + 351, + 352, + 348 + ], + [ + 352, + 356, + 357 + ], + [ + 352, + 357, + 353 + ], + [ + 353, + 357, + 358 + ], + [ + 353, + 358, + 354 + ], + [ + 354, + 358, + 359 + ], + [ + 354, + 359, + 355 + ], + [ + 355, + 359, + 356 + ], + [ + 355, + 356, + 352 + ], + [ + 356, + 360, + 361 + ], + [ + 356, + 361, + 357 + ], + [ + 357, + 361, + 362 + ], + [ + 357, + 362, + 358 + ], + [ + 358, + 362, + 363 + ], + [ + 358, + 363, + 359 + ], + [ + 359, + 363, + 360 + ], + [ + 359, + 360, + 356 + ], + [ + 360, + 364, + 365 + ], + [ + 360, + 365, + 361 + ], + [ + 361, + 365, + 366 + ], + [ + 361, + 366, + 362 + ], + [ + 362, + 366, + 367 + ], + [ + 362, + 367, + 363 + ], + [ + 363, + 367, + 364 + ], + [ + 363, + 364, + 360 + ], + [ + 364, + 368, + 369 + ], + [ + 364, + 369, + 365 + ], + [ + 365, + 369, + 370 + ], + [ + 365, + 370, + 366 + ], + [ + 366, + 370, + 371 + ], + [ + 366, + 371, + 367 + ], + [ + 367, + 371, + 368 + ], + [ + 367, + 368, + 364 + ], + [ + 368, + 372, + 373 + ], + [ + 368, + 373, + 369 + ], + [ + 369, + 373, + 374 + ], + [ + 369, + 374, + 370 + ], + [ + 370, + 374, + 375 + ], + [ + 370, + 375, + 371 + ], + [ + 371, + 375, + 372 + ], + [ + 371, + 372, + 368 + ], + [ + 372, + 376, + 377 + ], + [ + 372, + 377, + 373 + ], + [ + 373, + 377, + 378 + ], + [ + 373, + 378, + 374 + ], + [ + 374, + 378, + 379 + ], + [ + 374, + 379, + 375 + ], + [ + 375, + 379, + 376 + ], + [ + 375, + 376, + 372 + ], + [ + 376, + 380, + 381 + ], + [ + 376, + 381, + 377 + ], + [ + 377, + 381, + 382 + ], + [ + 377, + 382, + 378 + ], + [ + 378, + 382, + 383 + ], + [ + 378, + 383, + 379 + ], + [ + 379, + 383, + 380 + ], + [ + 379, + 380, + 376 + ], + [ + 380, + 384, + 385 + ], + [ + 380, + 385, + 381 + ], + [ + 381, + 385, + 386 + ], + [ + 381, + 386, + 382 + ], + [ + 382, + 386, + 387 + ], + [ + 382, + 387, + 383 + ], + [ + 383, + 387, + 384 + ], + [ + 383, + 384, + 380 + ], + [ + 384, + 388, + 389 + ], + [ + 384, + 389, + 385 + ], + [ + 385, + 389, + 390 + ], + [ + 385, + 390, + 386 + ], + [ + 386, + 390, + 391 + ], + [ + 386, + 391, + 387 + ], + [ + 387, + 391, + 388 + ], + [ + 387, + 388, + 384 + ], + [ + 388, + 392, + 393 + ], + [ + 388, + 393, + 389 + ], + [ + 389, + 393, + 394 + ], + [ + 389, + 394, + 390 + ], + [ + 390, + 394, + 395 + ], + [ + 390, + 395, + 391 + ], + [ + 391, + 395, + 392 + ], + [ + 391, + 392, + 388 + ], + [ + 392, + 396, + 397 + ], + [ + 392, + 397, + 393 + ], + [ + 393, + 397, + 398 + ], + [ + 393, + 398, + 394 + ], + [ + 394, + 398, + 399 + ], + [ + 394, + 399, + 395 + ], + [ + 395, + 399, + 396 + ], + [ + 395, + 396, + 392 + ], + [ + 396, + 400, + 401 + ], + [ + 396, + 401, + 397 + ], + [ + 397, + 401, + 402 + ], + [ + 397, + 402, + 398 + ], + [ + 398, + 402, + 403 + ], + [ + 398, + 403, + 399 + ], + [ + 399, + 403, + 400 + ], + [ + 399, + 400, + 396 + ], + [ + 400, + 404, + 405 + ], + [ + 400, + 405, + 401 + ], + [ + 401, + 405, + 406 + ], + [ + 401, + 406, + 402 + ], + [ + 402, + 406, + 407 + ], + [ + 402, + 407, + 403 + ], + [ + 403, + 407, + 404 + ], + [ + 403, + 404, + 400 + ], + [ + 404, + 408, + 409 + ], + [ + 404, + 409, + 405 + ], + [ + 405, + 409, + 410 + ], + [ + 405, + 410, + 406 + ], + [ + 406, + 410, + 411 + ], + [ + 406, + 411, + 407 + ], + [ + 407, + 411, + 408 + ], + [ + 407, + 408, + 404 + ], + [ + 408, + 412, + 413 + ], + [ + 408, + 413, + 409 + ], + [ + 409, + 413, + 414 + ], + [ + 409, + 414, + 410 + ], + [ + 410, + 414, + 415 + ], + [ + 410, + 415, + 411 + ], + [ + 411, + 415, + 412 + ], + [ + 411, + 412, + 408 + ], + [ + 412, + 416, + 417 + ], + [ + 412, + 417, + 413 + ], + [ + 413, + 417, + 418 + ], + [ + 413, + 418, + 414 + ], + [ + 414, + 418, + 419 + ], + [ + 414, + 419, + 415 + ], + [ + 415, + 419, + 416 + ], + [ + 415, + 416, + 412 + ], + [ + 416, + 420, + 421 + ], + [ + 416, + 421, + 417 + ], + [ + 417, + 421, + 422 + ], + [ + 417, + 422, + 418 + ], + [ + 418, + 422, + 423 + ], + [ + 418, + 423, + 419 + ], + [ + 419, + 423, + 420 + ], + [ + 419, + 420, + 416 + ], + [ + 420, + 424, + 425 + ], + [ + 420, + 425, + 421 + ], + [ + 421, + 425, + 426 + ], + [ + 421, + 426, + 422 + ], + [ + 422, + 426, + 427 + ], + [ + 422, + 427, + 423 + ], + [ + 423, + 427, + 424 + ], + [ + 423, + 424, + 420 + ], + [ + 424, + 428, + 429 + ], + [ + 424, + 429, + 425 + ], + [ + 425, + 429, + 430 + ], + [ + 425, + 430, + 426 + ], + [ + 426, + 430, + 431 + ], + [ + 426, + 431, + 427 + ], + [ + 427, + 431, + 428 + ], + [ + 427, + 428, + 424 + ], + [ + 428, + 432, + 433 + ], + [ + 428, + 433, + 429 + ], + [ + 429, + 433, + 434 + ], + [ + 429, + 434, + 430 + ], + [ + 430, + 434, + 435 + ], + [ + 430, + 435, + 431 + ], + [ + 431, + 435, + 432 + ], + [ + 431, + 432, + 428 + ], + [ + 432, + 436, + 437 + ], + [ + 432, + 437, + 433 + ], + [ + 433, + 437, + 438 + ], + [ + 433, + 438, + 434 + ], + [ + 434, + 438, + 439 + ], + [ + 434, + 439, + 435 + ], + [ + 435, + 439, + 436 + ], + [ + 435, + 436, + 432 + ], + [ + 436, + 440, + 441 + ], + [ + 436, + 441, + 437 + ], + [ + 437, + 441, + 442 + ], + [ + 437, + 442, + 438 + ], + [ + 438, + 442, + 443 + ], + [ + 438, + 443, + 439 + ], + [ + 439, + 443, + 440 + ], + [ + 439, + 440, + 436 + ], + [ + 440, + 444, + 445 + ], + [ + 440, + 445, + 441 + ], + [ + 441, + 445, + 446 + ], + [ + 441, + 446, + 442 + ], + [ + 442, + 446, + 447 + ], + [ + 442, + 447, + 443 + ], + [ + 443, + 447, + 444 + ], + [ + 443, + 444, + 440 + ], + [ + 444, + 448, + 449 + ], + [ + 444, + 449, + 445 + ], + [ + 445, + 449, + 450 + ], + [ + 445, + 450, + 446 + ], + [ + 446, + 450, + 451 + ], + [ + 446, + 451, + 447 + ], + [ + 447, + 451, + 448 + ], + [ + 447, + 448, + 444 + ], + [ + 448, + 452, + 453 + ], + [ + 448, + 453, + 449 + ], + [ + 449, + 453, + 454 + ], + [ + 449, + 454, + 450 + ], + [ + 450, + 454, + 455 + ], + [ + 450, + 455, + 451 + ], + [ + 451, + 455, + 452 + ], + [ + 451, + 452, + 448 + ], + [ + 452, + 456, + 457 + ], + [ + 452, + 457, + 453 + ], + [ + 453, + 457, + 458 + ], + [ + 453, + 458, + 454 + ], + [ + 454, + 458, + 459 + ], + [ + 454, + 459, + 455 + ], + [ + 455, + 459, + 456 + ], + [ + 455, + 456, + 452 + ], + [ + 456, + 460, + 461 + ], + [ + 456, + 461, + 457 + ], + [ + 457, + 461, + 462 + ], + [ + 457, + 462, + 458 + ], + [ + 458, + 462, + 463 + ], + [ + 458, + 463, + 459 + ], + [ + 459, + 463, + 460 + ], + [ + 459, + 460, + 456 + ], + [ + 460, + 464, + 465 + ], + [ + 460, + 465, + 461 + ], + [ + 461, + 465, + 466 + ], + [ + 461, + 466, + 462 + ], + [ + 462, + 466, + 467 + ], + [ + 462, + 467, + 463 + ], + [ + 463, + 467, + 464 + ], + [ + 463, + 464, + 460 + ], + [ + 464, + 468, + 469 + ], + [ + 464, + 469, + 465 + ], + [ + 465, + 469, + 470 + ], + [ + 465, + 470, + 466 + ], + [ + 466, + 470, + 471 + ], + [ + 466, + 471, + 467 + ], + [ + 467, + 471, + 468 + ], + [ + 467, + 468, + 464 + ], + [ + 468, + 472, + 473 + ], + [ + 468, + 473, + 469 + ], + [ + 469, + 473, + 474 + ], + [ + 469, + 474, + 470 + ], + [ + 470, + 474, + 475 + ], + [ + 470, + 475, + 471 + ], + [ + 471, + 475, + 472 + ], + [ + 471, + 472, + 468 + ], + [ + 472, + 476, + 477 + ], + [ + 472, + 477, + 473 + ], + [ + 473, + 477, + 478 + ], + [ + 473, + 478, + 474 + ], + [ + 474, + 478, + 479 + ], + [ + 474, + 479, + 475 + ], + [ + 475, + 479, + 476 + ], + [ + 475, + 476, + 472 + ], + [ + 476, + 480, + 481 + ], + [ + 476, + 481, + 477 + ], + [ + 477, + 481, + 482 + ], + [ + 477, + 482, + 478 + ], + [ + 478, + 482, + 483 + ], + [ + 478, + 483, + 479 + ], + [ + 479, + 483, + 480 + ], + [ + 479, + 480, + 476 + ], + [ + 480, + 484, + 485 + ], + [ + 480, + 485, + 481 + ], + [ + 481, + 485, + 486 + ], + [ + 481, + 486, + 482 + ], + [ + 482, + 486, + 487 + ], + [ + 482, + 487, + 483 + ], + [ + 483, + 487, + 484 + ], + [ + 483, + 484, + 480 + ], + [ + 484, + 488, + 489 + ], + [ + 484, + 489, + 485 + ], + [ + 485, + 489, + 490 + ], + [ + 485, + 490, + 486 + ], + [ + 486, + 490, + 491 + ], + [ + 486, + 491, + 487 + ], + [ + 487, + 491, + 488 + ], + [ + 487, + 488, + 484 + ], + [ + 488, + 492, + 493 + ], + [ + 488, + 493, + 489 + ], + [ + 489, + 493, + 494 + ], + [ + 489, + 494, + 490 + ], + [ + 490, + 494, + 495 + ], + [ + 490, + 495, + 491 + ], + [ + 491, + 495, + 492 + ], + [ + 491, + 492, + 488 + ], + [ + 492, + 496, + 497 + ], + [ + 492, + 497, + 493 + ], + [ + 493, + 497, + 498 + ], + [ + 493, + 498, + 494 + ], + [ + 494, + 498, + 499 + ], + [ + 494, + 499, + 495 + ], + [ + 495, + 499, + 496 + ], + [ + 495, + 496, + 492 + ], + [ + 496, + 500, + 501 + ], + [ + 496, + 501, + 497 + ], + [ + 497, + 501, + 502 + ], + [ + 497, + 502, + 498 + ], + [ + 498, + 502, + 503 + ], + [ + 498, + 503, + 499 + ], + [ + 499, + 503, + 500 + ], + [ + 499, + 500, + 496 + ], + [ + 500, + 504, + 505 + ], + [ + 500, + 505, + 501 + ], + [ + 501, + 505, + 506 + ], + [ + 501, + 506, + 502 + ], + [ + 502, + 506, + 507 + ], + [ + 502, + 507, + 503 + ], + [ + 503, + 507, + 504 + ], + [ + 503, + 504, + 500 + ], + [ + 504, + 508, + 509 + ], + [ + 504, + 509, + 505 + ], + [ + 505, + 509, + 510 + ], + [ + 505, + 510, + 506 + ], + [ + 506, + 510, + 511 + ], + [ + 506, + 511, + 507 + ], + [ + 507, + 511, + 508 + ], + [ + 507, + 508, + 504 + ], + [ + 508, + 512, + 513 + ], + [ + 508, + 513, + 509 + ], + [ + 509, + 513, + 514 + ], + [ + 509, + 514, + 510 + ], + [ + 510, + 514, + 515 + ], + [ + 510, + 515, + 511 + ], + [ + 511, + 515, + 512 + ], + [ + 511, + 512, + 508 + ], + [ + 512, + 516, + 517 + ], + [ + 512, + 517, + 513 + ], + [ + 513, + 517, + 518 + ], + [ + 513, + 518, + 514 + ], + [ + 514, + 518, + 519 + ], + [ + 514, + 519, + 515 + ], + [ + 515, + 519, + 516 + ], + [ + 515, + 516, + 512 + ], + [ + 516, + 520, + 521 + ], + [ + 516, + 521, + 517 + ], + [ + 517, + 521, + 522 + ], + [ + 517, + 522, + 518 + ], + [ + 518, + 522, + 523 + ], + [ + 518, + 523, + 519 + ], + [ + 519, + 523, + 520 + ], + [ + 519, + 520, + 516 + ], + [ + 520, + 524, + 525 + ], + [ + 520, + 525, + 521 + ], + [ + 521, + 525, + 526 + ], + [ + 521, + 526, + 522 + ], + [ + 522, + 526, + 527 + ], + [ + 522, + 527, + 523 + ], + [ + 523, + 527, + 524 + ], + [ + 523, + 524, + 520 + ], + [ + 524, + 528, + 529 + ], + [ + 524, + 529, + 525 + ], + [ + 525, + 529, + 530 + ], + [ + 525, + 530, + 526 + ], + [ + 526, + 530, + 531 + ], + [ + 526, + 531, + 527 + ], + [ + 527, + 531, + 528 + ], + [ + 527, + 528, + 524 + ], + [ + 528, + 532, + 533 + ], + [ + 528, + 533, + 529 + ], + [ + 529, + 533, + 534 + ], + [ + 529, + 534, + 530 + ], + [ + 530, + 534, + 535 + ], + [ + 530, + 535, + 531 + ], + [ + 531, + 535, + 532 + ], + [ + 531, + 532, + 528 + ], + [ + 532, + 536, + 537 + ], + [ + 532, + 537, + 533 + ], + [ + 533, + 537, + 538 + ], + [ + 533, + 538, + 534 + ], + [ + 534, + 538, + 539 + ], + [ + 534, + 539, + 535 + ], + [ + 535, + 539, + 536 + ], + [ + 535, + 536, + 532 + ], + [ + 536, + 540, + 541 + ], + [ + 536, + 541, + 537 + ], + [ + 537, + 541, + 542 + ], + [ + 537, + 542, + 538 + ], + [ + 538, + 542, + 543 + ], + [ + 538, + 543, + 539 + ], + [ + 539, + 543, + 540 + ], + [ + 539, + 540, + 536 + ], + [ + 540, + 544, + 545 + ], + [ + 540, + 545, + 541 + ], + [ + 541, + 545, + 546 + ], + [ + 541, + 546, + 542 + ], + [ + 542, + 546, + 547 + ], + [ + 542, + 547, + 543 + ], + [ + 543, + 547, + 544 + ], + [ + 543, + 544, + 540 + ], + [ + 544, + 548, + 549 + ], + [ + 544, + 549, + 545 + ], + [ + 545, + 549, + 550 + ], + [ + 545, + 550, + 546 + ], + [ + 546, + 550, + 551 + ], + [ + 546, + 551, + 547 + ], + [ + 547, + 551, + 548 + ], + [ + 547, + 548, + 544 + ], + [ + 548, + 552, + 553 + ], + [ + 548, + 553, + 549 + ], + [ + 549, + 553, + 554 + ], + [ + 549, + 554, + 550 + ], + [ + 550, + 554, + 555 + ], + [ + 550, + 555, + 551 + ], + [ + 551, + 555, + 552 + ], + [ + 551, + 552, + 548 + ], + [ + 552, + 556, + 557 + ], + [ + 552, + 557, + 553 + ], + [ + 553, + 557, + 558 + ], + [ + 553, + 558, + 554 + ], + [ + 554, + 558, + 559 + ], + [ + 554, + 559, + 555 + ], + [ + 555, + 559, + 556 + ], + [ + 555, + 556, + 552 + ], + [ + 556, + 560, + 561 + ], + [ + 556, + 561, + 557 + ], + [ + 557, + 561, + 562 + ], + [ + 557, + 562, + 558 + ], + [ + 558, + 562, + 563 + ], + [ + 558, + 563, + 559 + ], + [ + 559, + 563, + 560 + ], + [ + 559, + 560, + 556 + ], + [ + 560, + 564, + 565 + ], + [ + 560, + 565, + 561 + ], + [ + 561, + 565, + 566 + ], + [ + 561, + 566, + 562 + ], + [ + 562, + 566, + 567 + ], + [ + 562, + 567, + 563 + ], + [ + 563, + 567, + 564 + ], + [ + 563, + 564, + 560 + ], + [ + 564, + 568, + 569 + ], + [ + 564, + 569, + 565 + ], + [ + 565, + 569, + 570 + ], + [ + 565, + 570, + 566 + ], + [ + 566, + 570, + 571 + ], + [ + 566, + 571, + 567 + ], + [ + 567, + 571, + 568 + ], + [ + 567, + 568, + 564 + ], + [ + 568, + 572, + 573 + ], + [ + 568, + 573, + 569 + ], + [ + 569, + 573, + 574 + ], + [ + 569, + 574, + 570 + ], + [ + 570, + 574, + 575 + ], + [ + 570, + 575, + 571 + ], + [ + 571, + 575, + 572 + ], + [ + 571, + 572, + 568 + ], + [ + 572, + 576, + 577 + ], + [ + 572, + 577, + 573 + ], + [ + 573, + 577, + 578 + ], + [ + 573, + 578, + 574 + ], + [ + 574, + 578, + 579 + ], + [ + 574, + 579, + 575 + ], + [ + 575, + 579, + 576 + ], + [ + 575, + 576, + 572 + ], + [ + 576, + 580, + 581 + ], + [ + 576, + 581, + 577 + ], + [ + 577, + 581, + 582 + ], + [ + 577, + 582, + 578 + ], + [ + 578, + 582, + 583 + ], + [ + 578, + 583, + 579 + ], + [ + 579, + 583, + 580 + ], + [ + 579, + 580, + 576 + ], + [ + 580, + 584, + 585 + ], + [ + 580, + 585, + 581 + ], + [ + 581, + 585, + 586 + ], + [ + 581, + 586, + 582 + ], + [ + 582, + 586, + 587 + ], + [ + 582, + 587, + 583 + ], + [ + 583, + 587, + 584 + ], + [ + 583, + 584, + 580 + ], + [ + 584, + 588, + 589 + ], + [ + 584, + 589, + 585 + ], + [ + 585, + 589, + 590 + ], + [ + 585, + 590, + 586 + ], + [ + 586, + 590, + 591 + ], + [ + 586, + 591, + 587 + ], + [ + 587, + 591, + 588 + ], + [ + 587, + 588, + 584 + ], + [ + 588, + 592, + 593 + ], + [ + 588, + 593, + 589 + ], + [ + 589, + 593, + 594 + ], + [ + 589, + 594, + 590 + ], + [ + 590, + 594, + 595 + ], + [ + 590, + 595, + 591 + ], + [ + 591, + 595, + 592 + ], + [ + 591, + 592, + 588 + ], + [ + 592, + 596, + 597 + ], + [ + 592, + 597, + 593 + ], + [ + 593, + 597, + 598 + ], + [ + 593, + 598, + 594 + ], + [ + 594, + 598, + 599 + ], + [ + 594, + 599, + 595 + ], + [ + 595, + 599, + 596 + ], + [ + 595, + 596, + 592 + ], + [ + 596, + 600, + 601 + ], + [ + 596, + 601, + 597 + ], + [ + 597, + 601, + 602 + ], + [ + 597, + 602, + 598 + ], + [ + 598, + 602, + 603 + ], + [ + 598, + 603, + 599 + ], + [ + 599, + 603, + 600 + ], + [ + 599, + 600, + 596 + ], + [ + 600, + 604, + 605 + ], + [ + 600, + 605, + 601 + ], + [ + 601, + 605, + 606 + ], + [ + 601, + 606, + 602 + ], + [ + 602, + 606, + 607 + ], + [ + 602, + 607, + 603 + ], + [ + 603, + 607, + 604 + ], + [ + 603, + 604, + 600 + ], + [ + 604, + 608, + 609 + ], + [ + 604, + 609, + 605 + ], + [ + 605, + 609, + 610 + ], + [ + 605, + 610, + 606 + ], + [ + 606, + 610, + 611 + ], + [ + 606, + 611, + 607 + ], + [ + 607, + 611, + 608 + ], + [ + 607, + 608, + 604 + ], + [ + 608, + 612, + 613 + ], + [ + 608, + 613, + 609 + ], + [ + 609, + 613, + 614 + ], + [ + 609, + 614, + 610 + ], + [ + 610, + 614, + 615 + ], + [ + 610, + 615, + 611 + ], + [ + 611, + 615, + 612 + ], + [ + 611, + 612, + 608 + ], + [ + 612, + 616, + 617 + ], + [ + 612, + 617, + 613 + ], + [ + 613, + 617, + 618 + ], + [ + 613, + 618, + 614 + ], + [ + 614, + 618, + 619 + ], + [ + 614, + 619, + 615 + ], + [ + 615, + 619, + 616 + ], + [ + 615, + 616, + 612 + ], + [ + 616, + 620, + 621 + ], + [ + 616, + 621, + 617 + ], + [ + 617, + 621, + 622 + ], + [ + 617, + 622, + 618 + ], + [ + 618, + 622, + 623 + ], + [ + 618, + 623, + 619 + ], + [ + 619, + 623, + 620 + ], + [ + 619, + 620, + 616 + ], + [ + 620, + 624, + 625 + ], + [ + 620, + 625, + 621 + ], + [ + 621, + 625, + 626 + ], + [ + 621, + 626, + 622 + ], + [ + 622, + 626, + 627 + ], + [ + 622, + 627, + 623 + ], + [ + 623, + 627, + 624 + ], + [ + 623, + 624, + 620 + ], + [ + 624, + 628, + 629 + ], + [ + 624, + 629, + 625 + ], + [ + 625, + 629, + 630 + ], + [ + 625, + 630, + 626 + ], + [ + 626, + 630, + 631 + ], + [ + 626, + 631, + 627 + ], + [ + 627, + 631, + 628 + ], + [ + 627, + 628, + 624 + ], + [ + 628, + 632, + 633 + ], + [ + 628, + 633, + 629 + ], + [ + 629, + 633, + 634 + ], + [ + 629, + 634, + 630 + ], + [ + 630, + 634, + 635 + ], + [ + 630, + 635, + 631 + ], + [ + 631, + 635, + 632 + ], + [ + 631, + 632, + 628 + ], + [ + 632, + 636, + 637 + ], + [ + 632, + 637, + 633 + ], + [ + 633, + 637, + 638 + ], + [ + 633, + 638, + 634 + ], + [ + 634, + 638, + 639 + ], + [ + 634, + 639, + 635 + ], + [ + 635, + 639, + 636 + ], + [ + 635, + 636, + 632 + ], + [ + 636, + 640, + 641 + ], + [ + 636, + 641, + 637 + ], + [ + 637, + 641, + 642 + ], + [ + 637, + 642, + 638 + ], + [ + 638, + 642, + 643 + ], + [ + 638, + 643, + 639 + ], + [ + 639, + 643, + 640 + ], + [ + 639, + 640, + 636 + ], + [ + 640, + 644, + 645 + ], + [ + 640, + 645, + 641 + ], + [ + 641, + 645, + 646 + ], + [ + 641, + 646, + 642 + ], + [ + 642, + 646, + 647 + ], + [ + 642, + 647, + 643 + ], + [ + 643, + 647, + 644 + ], + [ + 643, + 644, + 640 + ], + [ + 644, + 648, + 649 + ], + [ + 644, + 649, + 645 + ], + [ + 645, + 649, + 650 + ], + [ + 645, + 650, + 646 + ], + [ + 646, + 650, + 651 + ], + [ + 646, + 651, + 647 + ], + [ + 647, + 651, + 648 + ], + [ + 647, + 648, + 644 + ], + [ + 648, + 652, + 653 + ], + [ + 648, + 653, + 649 + ], + [ + 649, + 653, + 654 + ], + [ + 649, + 654, + 650 + ], + [ + 650, + 654, + 655 + ], + [ + 650, + 655, + 651 + ], + [ + 651, + 655, + 652 + ], + [ + 651, + 652, + 648 + ], + [ + 652, + 656, + 657 + ], + [ + 652, + 657, + 653 + ], + [ + 653, + 657, + 658 + ], + [ + 653, + 658, + 654 + ], + [ + 654, + 658, + 659 + ], + [ + 654, + 659, + 655 + ], + [ + 655, + 659, + 656 + ], + [ + 655, + 656, + 652 + ], + [ + 656, + 660, + 661 + ], + [ + 656, + 661, + 657 + ], + [ + 657, + 661, + 662 + ], + [ + 657, + 662, + 658 + ], + [ + 658, + 662, + 663 + ], + [ + 658, + 663, + 659 + ], + [ + 659, + 663, + 660 + ], + [ + 659, + 660, + 656 + ], + [ + 660, + 664, + 665 + ], + [ + 660, + 665, + 661 + ], + [ + 661, + 665, + 666 + ], + [ + 661, + 666, + 662 + ], + [ + 662, + 666, + 667 + ], + [ + 662, + 667, + 663 + ], + [ + 663, + 667, + 664 + ], + [ + 663, + 664, + 660 + ], + [ + 664, + 668, + 669 + ], + [ + 664, + 669, + 665 + ], + [ + 665, + 669, + 670 + ], + [ + 665, + 670, + 666 + ], + [ + 666, + 670, + 671 + ], + [ + 666, + 671, + 667 + ], + [ + 667, + 671, + 668 + ], + [ + 667, + 668, + 664 + ], + [ + 668, + 672, + 673 + ], + [ + 668, + 673, + 669 + ], + [ + 669, + 673, + 674 + ], + [ + 669, + 674, + 670 + ], + [ + 670, + 674, + 675 + ], + [ + 670, + 675, + 671 + ], + [ + 671, + 675, + 672 + ], + [ + 671, + 672, + 668 + ], + [ + 672, + 676, + 677 + ], + [ + 672, + 677, + 673 + ], + [ + 673, + 677, + 678 + ], + [ + 673, + 678, + 674 + ], + [ + 674, + 678, + 679 + ], + [ + 674, + 679, + 675 + ], + [ + 675, + 679, + 676 + ], + [ + 675, + 676, + 672 + ], + [ + 676, + 680, + 681 + ], + [ + 676, + 681, + 677 + ], + [ + 677, + 681, + 682 + ], + [ + 677, + 682, + 678 + ], + [ + 678, + 682, + 683 + ], + [ + 678, + 683, + 679 + ], + [ + 679, + 683, + 680 + ], + [ + 679, + 680, + 676 + ], + [ + 680, + 684, + 685 + ], + [ + 680, + 685, + 681 + ], + [ + 681, + 685, + 686 + ], + [ + 681, + 686, + 682 + ], + [ + 682, + 686, + 687 + ], + [ + 682, + 687, + 683 + ], + [ + 683, + 687, + 684 + ], + [ + 683, + 684, + 680 + ], + [ + 684, + 688, + 689 + ], + [ + 684, + 689, + 685 + ], + [ + 685, + 689, + 690 + ], + [ + 685, + 690, + 686 + ], + [ + 686, + 690, + 691 + ], + [ + 686, + 691, + 687 + ], + [ + 687, + 691, + 688 + ], + [ + 687, + 688, + 684 + ], + [ + 688, + 692, + 693 + ], + [ + 688, + 693, + 689 + ], + [ + 689, + 693, + 694 + ], + [ + 689, + 694, + 690 + ], + [ + 690, + 694, + 695 + ], + [ + 690, + 695, + 691 + ], + [ + 691, + 695, + 692 + ], + [ + 691, + 692, + 688 + ], + [ + 692, + 696, + 697 + ], + [ + 692, + 697, + 693 + ], + [ + 693, + 697, + 698 + ], + [ + 693, + 698, + 694 + ], + [ + 694, + 698, + 699 + ], + [ + 694, + 699, + 695 + ], + [ + 695, + 699, + 696 + ], + [ + 695, + 696, + 692 + ], + [ + 696, + 700, + 701 + ], + [ + 696, + 701, + 697 + ], + [ + 697, + 701, + 702 + ], + [ + 697, + 702, + 698 + ], + [ + 698, + 702, + 703 + ], + [ + 698, + 703, + 699 + ], + [ + 699, + 703, + 700 + ], + [ + 699, + 700, + 696 + ], + [ + 700, + 704, + 705 + ], + [ + 700, + 705, + 701 + ], + [ + 701, + 705, + 706 + ], + [ + 701, + 706, + 702 + ], + [ + 702, + 706, + 707 + ], + [ + 702, + 707, + 703 + ], + [ + 703, + 707, + 704 + ], + [ + 703, + 704, + 700 + ], + [ + 704, + 708, + 709 + ], + [ + 704, + 709, + 705 + ], + [ + 705, + 709, + 710 + ], + [ + 705, + 710, + 706 + ], + [ + 706, + 710, + 711 + ], + [ + 706, + 711, + 707 + ], + [ + 707, + 711, + 708 + ], + [ + 707, + 708, + 704 + ], + [ + 708, + 712, + 713 + ], + [ + 708, + 713, + 709 + ], + [ + 709, + 713, + 714 + ], + [ + 709, + 714, + 710 + ], + [ + 710, + 714, + 715 + ], + [ + 710, + 715, + 711 + ], + [ + 711, + 715, + 712 + ], + [ + 711, + 712, + 708 + ], + [ + 712, + 716, + 717 + ], + [ + 712, + 717, + 713 + ], + [ + 713, + 717, + 718 + ], + [ + 713, + 718, + 714 + ], + [ + 714, + 718, + 719 + ], + [ + 714, + 719, + 715 + ], + [ + 715, + 719, + 716 + ], + [ + 715, + 716, + 712 + ], + [ + 716, + 720, + 721 + ], + [ + 716, + 721, + 717 + ], + [ + 717, + 721, + 722 + ], + [ + 717, + 722, + 718 + ], + [ + 718, + 722, + 723 + ], + [ + 718, + 723, + 719 + ], + [ + 719, + 723, + 720 + ], + [ + 719, + 720, + 716 + ], + [ + 720, + 724, + 725 + ], + [ + 720, + 725, + 721 + ], + [ + 721, + 725, + 726 + ], + [ + 721, + 726, + 722 + ], + [ + 722, + 726, + 727 + ], + [ + 722, + 727, + 723 + ], + [ + 723, + 727, + 724 + ], + [ + 723, + 724, + 720 + ], + [ + 724, + 728, + 729 + ], + [ + 724, + 729, + 725 + ], + [ + 725, + 729, + 730 + ], + [ + 725, + 730, + 726 + ], + [ + 726, + 730, + 731 + ], + [ + 726, + 731, + 727 + ], + [ + 727, + 731, + 728 + ], + [ + 727, + 728, + 724 + ], + [ + 728, + 732, + 733 + ], + [ + 728, + 733, + 729 + ], + [ + 729, + 733, + 734 + ], + [ + 729, + 734, + 730 + ], + [ + 730, + 734, + 735 + ], + [ + 730, + 735, + 731 + ], + [ + 731, + 735, + 732 + ], + [ + 731, + 732, + 728 + ], + [ + 732, + 736, + 737 + ], + [ + 732, + 737, + 733 + ], + [ + 733, + 737, + 738 + ], + [ + 733, + 738, + 734 + ], + [ + 734, + 738, + 739 + ], + [ + 734, + 739, + 735 + ], + [ + 735, + 739, + 736 + ], + [ + 735, + 736, + 732 + ], + [ + 736, + 740, + 741 + ], + [ + 736, + 741, + 737 + ], + [ + 737, + 741, + 742 + ], + [ + 737, + 742, + 738 + ], + [ + 738, + 742, + 743 + ], + [ + 738, + 743, + 739 + ], + [ + 739, + 743, + 740 + ], + [ + 739, + 740, + 736 + ], + [ + 740, + 744, + 745 + ], + [ + 740, + 745, + 741 + ], + [ + 741, + 745, + 746 + ], + [ + 741, + 746, + 742 + ], + [ + 742, + 746, + 747 + ], + [ + 742, + 747, + 743 + ], + [ + 743, + 747, + 744 + ], + [ + 743, + 744, + 740 + ], + [ + 744, + 748, + 749 + ], + [ + 744, + 749, + 745 + ], + [ + 745, + 749, + 750 + ], + [ + 745, + 750, + 746 + ], + [ + 746, + 750, + 751 + ], + [ + 746, + 751, + 747 + ], + [ + 747, + 751, + 748 + ], + [ + 747, + 748, + 744 + ], + [ + 748, + 752, + 753 + ], + [ + 748, + 753, + 749 + ], + [ + 749, + 753, + 754 + ], + [ + 749, + 754, + 750 + ], + [ + 750, + 754, + 755 + ], + [ + 750, + 755, + 751 + ], + [ + 751, + 755, + 752 + ], + [ + 751, + 752, + 748 + ], + [ + 752, + 756, + 757 + ], + [ + 752, + 757, + 753 + ], + [ + 753, + 757, + 758 + ], + [ + 753, + 758, + 754 + ], + [ + 754, + 758, + 759 + ], + [ + 754, + 759, + 755 + ], + [ + 755, + 759, + 756 + ], + [ + 755, + 756, + 752 + ], + [ + 756, + 760, + 761 + ], + [ + 756, + 761, + 757 + ], + [ + 757, + 761, + 762 + ], + [ + 757, + 762, + 758 + ], + [ + 758, + 762, + 763 + ], + [ + 758, + 763, + 759 + ], + [ + 759, + 763, + 760 + ], + [ + 759, + 760, + 756 + ], + [ + 760, + 764, + 765 + ], + [ + 760, + 765, + 761 + ], + [ + 761, + 765, + 766 + ], + [ + 761, + 766, + 762 + ], + [ + 762, + 766, + 767 + ], + [ + 762, + 767, + 763 + ], + [ + 763, + 767, + 764 + ], + [ + 763, + 764, + 760 + ], + [ + 764, + 768, + 769 + ], + [ + 764, + 769, + 765 + ], + [ + 765, + 769, + 770 + ], + [ + 765, + 770, + 766 + ], + [ + 766, + 770, + 771 + ], + [ + 766, + 771, + 767 + ], + [ + 767, + 771, + 768 + ], + [ + 767, + 768, + 764 + ], + [ + 768, + 772, + 773 + ], + [ + 768, + 773, + 769 + ], + [ + 769, + 773, + 774 + ], + [ + 769, + 774, + 770 + ], + [ + 770, + 774, + 775 + ], + [ + 770, + 775, + 771 + ], + [ + 771, + 775, + 772 + ], + [ + 771, + 772, + 768 + ], + [ + 772, + 776, + 777 + ], + [ + 772, + 777, + 773 + ], + [ + 773, + 777, + 778 + ], + [ + 773, + 778, + 774 + ], + [ + 774, + 778, + 779 + ], + [ + 774, + 779, + 775 + ], + [ + 775, + 779, + 776 + ], + [ + 775, + 776, + 772 + ], + [ + 776, + 780, + 781 + ], + [ + 776, + 781, + 777 + ], + [ + 777, + 781, + 782 + ], + [ + 777, + 782, + 778 + ], + [ + 778, + 782, + 783 + ], + [ + 778, + 783, + 779 + ], + [ + 779, + 783, + 780 + ], + [ + 779, + 780, + 776 + ], + [ + 780, + 784, + 785 + ], + [ + 780, + 785, + 781 + ], + [ + 781, + 785, + 786 + ], + [ + 781, + 786, + 782 + ], + [ + 782, + 786, + 787 + ], + [ + 782, + 787, + 783 + ], + [ + 783, + 787, + 784 + ], + [ + 783, + 784, + 780 + ], + [ + 784, + 788, + 789 + ], + [ + 784, + 789, + 785 + ], + [ + 785, + 789, + 790 + ], + [ + 785, + 790, + 786 + ], + [ + 786, + 790, + 791 + ], + [ + 786, + 791, + 787 + ], + [ + 787, + 791, + 788 + ], + [ + 787, + 788, + 784 + ], + [ + 788, + 792, + 793 + ], + [ + 788, + 793, + 789 + ], + [ + 789, + 793, + 794 + ], + [ + 789, + 794, + 790 + ], + [ + 790, + 794, + 795 + ], + [ + 790, + 795, + 791 + ], + [ + 791, + 795, + 792 + ], + [ + 791, + 792, + 788 + ], + [ + 792, + 796, + 797 + ], + [ + 792, + 797, + 793 + ], + [ + 793, + 797, + 798 + ], + [ + 793, + 798, + 794 + ], + [ + 794, + 798, + 799 + ], + [ + 794, + 799, + 795 + ], + [ + 795, + 799, + 796 + ], + [ + 795, + 796, + 792 + ], + [ + 796, + 800, + 801 + ], + [ + 796, + 801, + 797 + ], + [ + 797, + 801, + 802 + ], + [ + 797, + 802, + 798 + ], + [ + 798, + 802, + 803 + ], + [ + 798, + 803, + 799 + ], + [ + 799, + 803, + 800 + ], + [ + 799, + 800, + 796 + ], + [ + 800, + 804, + 805 + ], + [ + 800, + 805, + 801 + ], + [ + 801, + 805, + 806 + ], + [ + 801, + 806, + 802 + ], + [ + 802, + 806, + 807 + ], + [ + 802, + 807, + 803 + ], + [ + 803, + 807, + 804 + ], + [ + 803, + 804, + 800 + ], + [ + 804, + 808, + 809 + ], + [ + 804, + 809, + 805 + ], + [ + 805, + 809, + 810 + ], + [ + 805, + 810, + 806 + ], + [ + 806, + 810, + 811 + ], + [ + 806, + 811, + 807 + ], + [ + 807, + 811, + 808 + ], + [ + 807, + 808, + 804 + ], + [ + 808, + 812, + 813 + ], + [ + 808, + 813, + 809 + ], + [ + 809, + 813, + 814 + ], + [ + 809, + 814, + 810 + ], + [ + 810, + 814, + 815 + ], + [ + 810, + 815, + 811 + ], + [ + 811, + 815, + 812 + ], + [ + 811, + 812, + 808 + ], + [ + 812, + 816, + 817 + ], + [ + 812, + 817, + 813 + ], + [ + 813, + 817, + 818 + ], + [ + 813, + 818, + 814 + ], + [ + 814, + 818, + 819 + ], + [ + 814, + 819, + 815 + ], + [ + 815, + 819, + 816 + ], + [ + 815, + 816, + 812 + ], + [ + 816, + 820, + 821 + ], + [ + 816, + 821, + 817 + ], + [ + 817, + 821, + 822 + ], + [ + 817, + 822, + 818 + ], + [ + 818, + 822, + 823 + ], + [ + 818, + 823, + 819 + ], + [ + 819, + 823, + 820 + ], + [ + 819, + 820, + 816 + ], + [ + 820, + 824, + 825 + ], + [ + 820, + 825, + 821 + ], + [ + 821, + 825, + 826 + ], + [ + 821, + 826, + 822 + ], + [ + 822, + 826, + 827 + ], + [ + 822, + 827, + 823 + ], + [ + 823, + 827, + 824 + ], + [ + 823, + 824, + 820 + ], + [ + 824, + 828, + 829 + ], + [ + 824, + 829, + 825 + ], + [ + 825, + 829, + 830 + ], + [ + 825, + 830, + 826 + ], + [ + 826, + 830, + 831 + ], + [ + 826, + 831, + 827 + ], + [ + 827, + 831, + 828 + ], + [ + 827, + 828, + 824 + ], + [ + 828, + 832, + 833 + ], + [ + 828, + 833, + 829 + ], + [ + 829, + 833, + 834 + ], + [ + 829, + 834, + 830 + ], + [ + 830, + 834, + 835 + ], + [ + 830, + 835, + 831 + ], + [ + 831, + 835, + 832 + ], + [ + 831, + 832, + 828 + ], + [ + 832, + 836, + 837 + ], + [ + 832, + 837, + 833 + ], + [ + 833, + 837, + 838 + ], + [ + 833, + 838, + 834 + ], + [ + 834, + 838, + 839 + ], + [ + 834, + 839, + 835 + ], + [ + 835, + 839, + 836 + ], + [ + 835, + 836, + 832 + ], + [ + 836, + 840, + 841 + ], + [ + 836, + 841, + 837 + ], + [ + 837, + 841, + 842 + ], + [ + 837, + 842, + 838 + ], + [ + 838, + 842, + 843 + ], + [ + 838, + 843, + 839 + ], + [ + 839, + 843, + 840 + ], + [ + 839, + 840, + 836 + ], + [ + 840, + 844, + 845 + ], + [ + 840, + 845, + 841 + ], + [ + 841, + 845, + 846 + ], + [ + 841, + 846, + 842 + ], + [ + 842, + 846, + 847 + ], + [ + 842, + 847, + 843 + ], + [ + 843, + 847, + 844 + ], + [ + 843, + 844, + 840 + ], + [ + 844, + 848, + 849 + ], + [ + 844, + 849, + 845 + ], + [ + 845, + 849, + 850 + ], + [ + 845, + 850, + 846 + ], + [ + 846, + 850, + 851 + ], + [ + 846, + 851, + 847 + ], + [ + 847, + 851, + 848 + ], + [ + 847, + 848, + 844 + ], + [ + 848, + 852, + 853 + ], + [ + 848, + 853, + 849 + ], + [ + 849, + 853, + 854 + ], + [ + 849, + 854, + 850 + ], + [ + 850, + 854, + 855 + ], + [ + 850, + 855, + 851 + ], + [ + 851, + 855, + 852 + ], + [ + 851, + 852, + 848 + ], + [ + 852, + 856, + 857 + ], + [ + 852, + 857, + 853 + ], + [ + 853, + 857, + 858 + ], + [ + 853, + 858, + 854 + ], + [ + 854, + 858, + 859 + ], + [ + 854, + 859, + 855 + ], + [ + 855, + 859, + 856 + ], + [ + 855, + 856, + 852 + ], + [ + 856, + 860, + 861 + ], + [ + 856, + 861, + 857 + ], + [ + 857, + 861, + 862 + ], + [ + 857, + 862, + 858 + ], + [ + 858, + 862, + 863 + ], + [ + 858, + 863, + 859 + ], + [ + 859, + 863, + 860 + ], + [ + 859, + 860, + 856 + ], + [ + 860, + 864, + 865 + ], + [ + 860, + 865, + 861 + ], + [ + 861, + 865, + 866 + ], + [ + 861, + 866, + 862 + ], + [ + 862, + 866, + 867 + ], + [ + 862, + 867, + 863 + ], + [ + 863, + 867, + 864 + ], + [ + 863, + 864, + 860 + ], + [ + 864, + 868, + 869 + ], + [ + 864, + 869, + 865 + ], + [ + 865, + 869, + 870 + ], + [ + 865, + 870, + 866 + ], + [ + 866, + 870, + 871 + ], + [ + 866, + 871, + 867 + ], + [ + 867, + 871, + 868 + ], + [ + 867, + 868, + 864 + ], + [ + 868, + 872, + 873 + ], + [ + 868, + 873, + 869 + ], + [ + 869, + 873, + 874 + ], + [ + 869, + 874, + 870 + ], + [ + 870, + 874, + 875 + ], + [ + 870, + 875, + 871 + ], + [ + 871, + 875, + 872 + ], + [ + 871, + 872, + 868 + ], + [ + 872, + 876, + 877 + ], + [ + 872, + 877, + 873 + ], + [ + 873, + 877, + 878 + ], + [ + 873, + 878, + 874 + ], + [ + 874, + 878, + 879 + ], + [ + 874, + 879, + 875 + ], + [ + 875, + 879, + 876 + ], + [ + 875, + 876, + 872 + ], + [ + 876, + 880, + 881 + ], + [ + 876, + 881, + 877 + ], + [ + 877, + 881, + 882 + ], + [ + 877, + 882, + 878 + ], + [ + 878, + 882, + 883 + ], + [ + 878, + 883, + 879 + ], + [ + 879, + 883, + 880 + ], + [ + 879, + 880, + 876 + ], + [ + 880, + 884, + 885 + ], + [ + 880, + 885, + 881 + ], + [ + 881, + 885, + 886 + ], + [ + 881, + 886, + 882 + ], + [ + 882, + 886, + 887 + ], + [ + 882, + 887, + 883 + ], + [ + 883, + 887, + 884 + ], + [ + 883, + 884, + 880 + ], + [ + 884, + 888, + 889 + ], + [ + 884, + 889, + 885 + ], + [ + 885, + 889, + 890 + ], + [ + 885, + 890, + 886 + ], + [ + 886, + 890, + 891 + ], + [ + 886, + 891, + 887 + ], + [ + 887, + 891, + 888 + ], + [ + 887, + 888, + 884 + ], + [ + 888, + 892, + 893 + ], + [ + 888, + 893, + 889 + ], + [ + 889, + 893, + 894 + ], + [ + 889, + 894, + 890 + ], + [ + 890, + 894, + 895 + ], + [ + 890, + 895, + 891 + ], + [ + 891, + 895, + 892 + ], + [ + 891, + 892, + 888 + ], + [ + 892, + 896, + 897 + ], + [ + 892, + 897, + 893 + ], + [ + 893, + 897, + 898 + ], + [ + 893, + 898, + 894 + ], + [ + 894, + 898, + 899 + ], + [ + 894, + 899, + 895 + ], + [ + 895, + 899, + 896 + ], + [ + 895, + 896, + 892 + ], + [ + 896, + 900, + 901 + ], + [ + 896, + 901, + 897 + ], + [ + 897, + 901, + 902 + ], + [ + 897, + 902, + 898 + ], + [ + 898, + 902, + 903 + ], + [ + 898, + 903, + 899 + ], + [ + 899, + 903, + 900 + ], + [ + 899, + 900, + 896 + ], + [ + 900, + 904, + 905 + ], + [ + 900, + 905, + 901 + ], + [ + 901, + 905, + 906 + ], + [ + 901, + 906, + 902 + ], + [ + 902, + 906, + 907 + ], + [ + 902, + 907, + 903 + ], + [ + 903, + 907, + 904 + ], + [ + 903, + 904, + 900 + ], + [ + 904, + 908, + 909 + ], + [ + 904, + 909, + 905 + ], + [ + 905, + 909, + 910 + ], + [ + 905, + 910, + 906 + ], + [ + 906, + 910, + 911 + ], + [ + 906, + 911, + 907 + ], + [ + 907, + 911, + 908 + ], + [ + 907, + 908, + 904 + ], + [ + 908, + 912, + 913 + ], + [ + 908, + 913, + 909 + ], + [ + 909, + 913, + 914 + ], + [ + 909, + 914, + 910 + ], + [ + 910, + 914, + 915 + ], + [ + 910, + 915, + 911 + ], + [ + 911, + 915, + 912 + ], + [ + 911, + 912, + 908 + ], + [ + 912, + 916, + 917 + ], + [ + 912, + 917, + 913 + ], + [ + 913, + 917, + 918 + ], + [ + 913, + 918, + 914 + ], + [ + 914, + 918, + 919 + ], + [ + 914, + 919, + 915 + ], + [ + 915, + 919, + 916 + ], + [ + 915, + 916, + 912 + ], + [ + 916, + 920, + 921 + ], + [ + 916, + 921, + 917 + ], + [ + 917, + 921, + 922 + ], + [ + 917, + 922, + 918 + ], + [ + 918, + 922, + 923 + ], + [ + 918, + 923, + 919 + ], + [ + 919, + 923, + 920 + ], + [ + 919, + 920, + 916 + ], + [ + 920, + 924, + 925 + ], + [ + 920, + 925, + 921 + ], + [ + 921, + 925, + 926 + ], + [ + 921, + 926, + 922 + ], + [ + 922, + 926, + 927 + ], + [ + 922, + 927, + 923 + ], + [ + 923, + 927, + 924 + ], + [ + 923, + 924, + 920 + ], + [ + 924, + 928, + 929 + ], + [ + 924, + 929, + 925 + ], + [ + 925, + 929, + 930 + ], + [ + 925, + 930, + 926 + ], + [ + 926, + 930, + 931 + ], + [ + 926, + 931, + 927 + ], + [ + 927, + 931, + 928 + ], + [ + 927, + 928, + 924 + ], + [ + 928, + 932, + 933 + ], + [ + 928, + 933, + 929 + ], + [ + 929, + 933, + 934 + ], + [ + 929, + 934, + 930 + ], + [ + 930, + 934, + 935 + ], + [ + 930, + 935, + 931 + ], + [ + 931, + 935, + 932 + ], + [ + 931, + 932, + 928 + ], + [ + 932, + 936, + 937 + ], + [ + 932, + 937, + 933 + ], + [ + 933, + 937, + 938 + ], + [ + 933, + 938, + 934 + ], + [ + 934, + 938, + 939 + ], + [ + 934, + 939, + 935 + ], + [ + 935, + 939, + 936 + ], + [ + 935, + 936, + 932 + ], + [ + 936, + 940, + 941 + ], + [ + 936, + 941, + 937 + ], + [ + 937, + 941, + 942 + ], + [ + 937, + 942, + 938 + ], + [ + 938, + 942, + 943 + ], + [ + 938, + 943, + 939 + ], + [ + 939, + 943, + 940 + ], + [ + 939, + 940, + 936 + ], + [ + 940, + 944, + 945 + ], + [ + 940, + 945, + 941 + ], + [ + 941, + 945, + 946 + ], + [ + 941, + 946, + 942 + ], + [ + 942, + 946, + 947 + ], + [ + 942, + 947, + 943 + ], + [ + 943, + 947, + 944 + ], + [ + 943, + 944, + 940 + ], + [ + 944, + 948, + 949 + ], + [ + 944, + 949, + 945 + ], + [ + 945, + 949, + 950 + ], + [ + 945, + 950, + 946 + ], + [ + 946, + 950, + 951 + ], + [ + 946, + 951, + 947 + ], + [ + 947, + 951, + 948 + ], + [ + 947, + 948, + 944 + ], + [ + 948, + 952, + 953 + ], + [ + 948, + 953, + 949 + ], + [ + 949, + 953, + 954 + ], + [ + 949, + 954, + 950 + ], + [ + 950, + 954, + 955 + ], + [ + 950, + 955, + 951 + ], + [ + 951, + 955, + 952 + ], + [ + 951, + 952, + 948 + ], + [ + 952, + 956, + 957 + ], + [ + 952, + 957, + 953 + ], + [ + 953, + 957, + 958 + ], + [ + 953, + 958, + 954 + ], + [ + 954, + 958, + 959 + ], + [ + 954, + 959, + 955 + ], + [ + 955, + 959, + 956 + ], + [ + 955, + 956, + 952 + ], + [ + 956, + 0, + 1 + ], + [ + 956, + 1, + 957 + ], + [ + 957, + 1, + 2 + ], + [ + 957, + 2, + 958 + ], + [ + 958, + 2, + 3 + ], + [ + 958, + 3, + 959 + ], + [ + 959, + 3, + 0 + ], + [ + 959, + 0, + 956 + ] + ] + }, + "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c": { + "vertices": [ + [ + 16.67, + 0.016745417032513598, + -6.108717942440093 + ], + [ + 16.93, + 0.016745417032513598, + -6.108717942440093 + ], + [ + 16.93, + -0.016745417032513598, + -5.891282057559907 + ], + [ + 16.67, + -0.016745417032513598, + -5.891282057559907 + ], + [ + 16.654136155942556, + 0.7437761070336469, + -5.996729793682353 + ], + [ + 16.913894261598905, + 0.7548600299215015, + -5.9950347422847425 + ], + [ + 16.913884089207865, + 0.7218353084416428, + -5.777527575350638 + ], + [ + 16.654125983551516, + 0.7107513855537883, + -5.779222626748249 + ], + [ + 16.606605922774875, + 1.4689483822137899, + -5.888214828746232 + ], + [ + 16.865636855894344, + 1.4911249453305468, + -5.8848718157958775 + ], + [ + 16.86553593310778, + 1.4594845741075246, + -5.667158984930399 + ], + [ + 16.60650499998831, + 1.4373080109907677, + -5.670501997880754 + ], + [ + 16.52754074064174, + 2.1908884497018137, + -5.786463105814698 + ], + [ + 16.785355126242475, + 2.224171495716758, + -5.781566022470209 + ], + [ + 16.78500660151829, + 2.1947916088919195, + -5.563536894185302 + ], + [ + 16.527192215917555, + 2.1615085628769752, + -5.568433977529791 + ], + [ + 16.417129094899256, + 2.908245411472426, + -5.694553270369978 + ], + [ + 16.673231923447315, + 2.9526470849479294, + -5.688241962878 + ], + [ + 16.672411406310932, + 2.926333358136434, + -5.469822837037521 + ], + [ + 16.416308577762873, + 2.8819316846609304, + -5.476134144529499 + ], + [ + 16.275613131388713, + 3.61969506792214, + -5.615260214882794 + ], + [ + 16.52950384765784, + 3.6752164901272213, + -5.607718605725905 + ], + [ + 16.52793270784105, + 3.652675960398117, + -5.388882009062534 + ], + [ + 16.274041991571924, + 3.5971545381930357, + -5.396423618219423 + ], + [ + 16.10328502921233, + 4.323942596009214, + -5.550972783366817 + ], + [ + 16.354459564042227, + 4.3905631282920705, + -5.542425401818384 + ], + [ + 16.351822734100367, + 4.372377319435483, + -5.323194191713413 + ], + [ + 16.10064819927047, + 4.305756787152626, + -5.331741573261847 + ], + [ + 15.900483510901873, + 5.019723589760607, + -5.503623862385691 + ], + [ + 16.14843823972215, + 5.097390071258277, + -5.494330310457851 + ], + [ + 16.144406034238553, + 5.083991273582971, + -5.274775730592628 + ], + [ + 15.89645130541828, + 5.006324792085301, + -5.284069282520468 + ], + [ + 15.667590981423366, + 5.705803152735515, + -5.474634621900753 + ], + [ + 15.911828208148538, + 5.7944206387003065, + -5.464881762685301 + ], + [ + 15.90608107698316, + 5.786073663006953, + -5.245115299183377 + ], + [ + 15.661843850257988, + 5.697456177042162, + -5.254868158398829 + ], + [ + 15.405031786407067, + 6.380973094718436, + -5.464874075743936 + ], + [ + 15.645065988206207, + 6.48039851653704, + -5.45496612626674 + ], + [ + 15.637320505972168, + 6.477190232748581, + -5.235125924256064 + ], + [ + 15.397286304173027, + 6.3777648109299765, + -5.245033873733259 + ], + [ + 15.113271929236522, + 7.044047726406791, + -5.474634621900753 + ], + [ + 15.348635753729495, + 7.154087500384949, + -5.464881762685301 + ], + [ + 15.338669715194918, + 7.15592586808071, + -5.245115299183377 + ], + [ + 15.103305890701945, + 7.045886094102552, + -5.254868158398829 + ], + [ + 14.792820304705403, + 7.693859124701792, + -5.503623862385691 + ], + [ + 15.023069270619393, + 7.814271099139978, + -5.494330310457851 + ], + [ + 15.01074369008285, + 7.820894279995347, + -5.274775730592628 + ], + [ + 14.78049472416886, + 7.700482305557161, + -5.284069282520468 + ], + [ + 14.444231174635329, + 8.329252912436369, + -5.5509727833668165 + ], + [ + 14.66894622161839, + 8.459752299132498, + -5.542425401818383 + ], + [ + 14.654222392521811, + 8.470747087563629, + -5.323194191713412 + ], + [ + 14.42950734553875, + 8.340247700867499, + -5.331741573261846 + ], + [ + 14.068107341529023, + 8.949085484818532, + -5.615260214882794 + ], + [ + 14.286894762825566, + 9.089353757830406, + -5.607718605725905 + ], + [ + 14.269845237783938, + 9.10418135563475, + -5.388882009062534 + ], + [ + 14.051057816487395, + 8.963913082622877, + -5.396423618219423 + ], + [ + 13.665103362425048, + 9.55222325881142, + -5.694553270369978 + ], + [ + 13.877592133582995, + 9.701918581148249, + -5.688241962878 + ], + [ + 13.858405325685078, + 9.719945002583728, + -5.469822837037521 + ], + [ + 13.645916554527131, + 9.5702496802469, + -5.476134144529499 + ], + [ + 13.235928213652146, + 10.137544054437273, + -5.786463105814698 + ], + [ + 13.44176518153358, + 10.296311687247286, + -5.781566022470209 + ], + [ + 13.42074402013336, + 10.31683996025574, + -5.563536894185302 + ], + [ + 13.214907052251927, + 10.158072327445726, + -5.568433977529791 + ], + [ + 12.781347022763175, + 10.703940298210416, + -5.888214828746232 + ], + [ + 12.980190750272302, + 10.871421629393, + -5.8848718157958775 + ], + [ + 12.957746266034487, + 10.893723387257303, + -5.667158984930399 + ], + [ + 12.75890253852536, + 10.72624205607472, + -5.670501997880754 + ], + [ + 12.302181739639064, + 11.25032348170302, + -5.996729793682353 + ], + [ + 12.493695974652992, + 11.426162682644646, + -5.9950347422847425 + ], + [ + 12.470336777181103, + 11.449507494183166, + -5.777527575350638 + ], + [ + 12.278822542167175, + 11.27366829324154, + -5.779222626748249 + ], + [ + 11.799310840317236, + 11.77562924444226, + -6.108717942440093 + ], + [ + 11.983158603425737, + 11.959477007550761, + -6.108717942440093 + ], + [ + 11.959477007550763, + 11.983158603425736, + -5.891282057559907 + ], + [ + 11.775629244442262, + 11.799310840317235, + -5.891282057559907 + ], + [ + 11.273668293241542, + 12.278822542167175, + -6.220777373251751 + ], + [ + 11.449507494183168, + 12.470336777181103, + -6.222472424649362 + ], + [ + 11.426162682644648, + 12.493695974652992, + -6.0049652577152575 + ], + [ + 11.250323481703022, + 12.302181739639064, + -6.003270206317647 + ], + [ + 10.726242056074721, + 12.75890253852536, + -6.329498002119246 + ], + [ + 10.893723387257305, + 12.957746266034487, + -6.332841015069601 + ], + [ + 10.871421629393001, + 12.980190750272302, + -6.1151281842041225 + ], + [ + 10.703940298210417, + 12.781347022763175, + -6.111785171253768 + ], + [ + 10.158072327445728, + 13.214907052251926, + -6.431566022470209 + ], + [ + 10.316839960255741, + 13.420744020133359, + -6.436463105814698 + ], + [ + 10.296311687247288, + 13.441765181533578, + -6.218433977529791 + ], + [ + 10.137544054437274, + 13.235928213652144, + -6.213536894185302 + ], + [ + 9.570249680246901, + 13.64591655452713, + -6.523865855470501 + ], + [ + 9.71994500258373, + 13.858405325685077, + -6.530177162962479 + ], + [ + 9.70191858114825, + 13.877592133582993, + -6.311758037122 + ], + [ + 9.552223258811422, + 13.665103362425047, + -6.305446729630022 + ], + [ + 8.963913082622875, + 14.051057816487395, + -6.603576381780577 + ], + [ + 9.10418135563475, + 14.269845237783938, + -6.611117990937466 + ], + [ + 9.089353757830407, + 14.286894762825566, + -6.392281394274095 + ], + [ + 8.949085484818532, + 14.068107341529023, + -6.384739785117206 + ], + [ + 8.340247700867502, + 14.429507345538749, + -6.668258426738153 + ], + [ + 8.470747087563632, + 14.65422239252181, + -6.676805808286587 + ], + [ + 8.459752299132502, + 14.668946221618388, + -6.457574598181616 + ], + [ + 8.329252912436372, + 14.444231174635327, + -6.449027216633183 + ], + [ + 7.700482305557161, + 14.78049472416886, + -6.715930717479532 + ], + [ + 7.820894279995347, + 15.01074369008285, + -6.725224269407372 + ], + [ + 7.814271099139978, + 15.023069270619393, + -6.505669689542149 + ], + [ + 7.693859124701792, + 14.792820304705403, + -6.496376137614309 + ], + [ + 7.045886094102552, + 15.103305890701945, + -6.745131841601171 + ], + [ + 7.15592586808071, + 15.338669715194918, + -6.754884700816623 + ], + [ + 7.154087500384949, + 15.348635753729495, + -6.535118237314699 + ], + [ + 7.044047726406791, + 15.113271929236522, + -6.525365378099247 + ], + [ + 6.377764810929978, + 15.39728630417303, + -6.754966126266741 + ], + [ + 6.477190232748582, + 15.637320505972168, + -6.764874075743936 + ], + [ + 6.480398516537042, + 15.645065988206206, + -6.54503387373326 + ], + [ + 6.3809730947184375, + 15.405031786407067, + -6.535125924256064 + ], + [ + 5.697456177042164, + 15.661843850257986, + -6.745131841601171 + ], + [ + 5.786073663006955, + 15.906081076983158, + -6.754884700816623 + ], + [ + 5.794420638700308, + 15.911828208148536, + -6.535118237314699 + ], + [ + 5.705803152735517, + 15.667590981423364, + -6.525365378099247 + ], + [ + 5.006324792085299, + 15.89645130541828, + -6.715930717479532 + ], + [ + 5.083991273582969, + 16.144406034238553, + -6.725224269407372 + ], + [ + 5.097390071258276, + 16.14843823972215, + -6.505669689542149 + ], + [ + 5.019723589760606, + 15.900483510901873, + -6.496376137614309 + ], + [ + 4.30575678715263, + 16.100648199270466, + -6.668258426738154 + ], + [ + 4.372377319435487, + 16.351822734100363, + -6.676805808286588 + ], + [ + 4.390563128292074, + 16.354459564042223, + -6.457574598181617 + ], + [ + 4.323942596009217, + 16.103285029212326, + -6.4490272166331835 + ], + [ + 3.5971545381930357, + 16.274041991571924, + -6.603576381780577 + ], + [ + 3.652675960398118, + 16.52793270784105, + -6.611117990937466 + ], + [ + 3.675216490127222, + 16.52950384765784, + -6.392281394274095 + ], + [ + 3.61969506792214, + 16.275613131388713, + -6.384739785117206 + ], + [ + 2.8819316846609317, + 16.416308577762873, + -6.523865855470501 + ], + [ + 2.9263333581364357, + 16.672411406310932, + -6.530177162962479 + ], + [ + 2.9526470849479307, + 16.673231923447315, + -6.311758037122 + ], + [ + 2.9082454114724268, + 16.417129094899256, + -6.305446729630022 + ], + [ + 2.161508562876974, + 16.527192215917555, + -6.431566022470209 + ], + [ + 2.194791608891918, + 16.78500660151829, + -6.436463105814698 + ], + [ + 2.2241714957167567, + 16.785355126242475, + -6.218433977529791 + ], + [ + 2.1908884497018124, + 16.52754074064174, + -6.213536894185302 + ], + [ + 1.437308010990767, + 16.60650499998831, + -6.329498002119246 + ], + [ + 1.4594845741075244, + 16.86553593310778, + -6.332841015069601 + ], + [ + 1.4911249453305466, + 16.865636855894344, + -6.1151281842041225 + ], + [ + 1.4689483822137892, + 16.606605922774875, + -6.111785171253768 + ], + [ + 0.7107513855537883, + 16.654125983551516, + -6.220777373251751 + ], + [ + 0.721835308441643, + 16.913884089207865, + -6.222472424649362 + ], + [ + 0.7548600299215017, + 16.913894261598905, + -6.0049652577152575 + ], + [ + 0.7437761070336469, + 16.654136155942556, + -6.003270206317647 + ], + [ + -0.01674541703251264, + 16.67, + -6.108717942440093 + ], + [ + -0.016745417032512474, + 16.93, + -6.108717942440093 + ], + [ + 0.0167454170325147, + 16.93, + -5.891282057559907 + ], + [ + 0.016745417032514535, + 16.67, + -5.891282057559907 + ], + [ + -0.7437761070336452, + 16.654136155942556, + -5.996729793682353 + ], + [ + -0.7548600299214995, + 16.913894261598905, + -5.9950347422847425 + ], + [ + -0.7218353084416408, + 16.913884089207865, + -5.777527575350638 + ], + [ + -0.7107513855537865, + 16.654125983551516, + -5.779222626748249 + ], + [ + -1.4689483822137872, + 16.606605922774875, + -5.888214828746232 + ], + [ + -1.4911249453305442, + 16.865636855894344, + -5.8848718157958775 + ], + [ + -1.459484574107522, + 16.86553593310778, + -5.667158984930399 + ], + [ + -1.437308010990765, + 16.60650499998831, + -5.670501997880754 + ], + [ + -2.1908884497018106, + 16.52754074064174, + -5.786463105814699 + ], + [ + -2.2241714957167544, + 16.785355126242475, + -5.7815660224702095 + ], + [ + -2.1947916088919155, + 16.78500660151829, + -5.563536894185303 + ], + [ + -2.1615085628769717, + 16.527192215917555, + -5.568433977529792 + ], + [ + -2.908245411472425, + 16.417129094899256, + -5.694553270369978 + ], + [ + -2.9526470849479285, + 16.673231923447315, + -5.688241962878 + ], + [ + -2.926333358136433, + 16.672411406310932, + -5.469822837037521 + ], + [ + -2.8819316846609295, + 16.416308577762873, + -5.476134144529499 + ], + [ + -3.619695067922135, + 16.275613131388713, + -5.615260214882795 + ], + [ + -3.675216490127216, + 16.52950384765784, + -5.607718605725906 + ], + [ + -3.652675960398111, + 16.52793270784105, + -5.3888820090625345 + ], + [ + -3.5971545381930303, + 16.274041991571924, + -5.396423618219424 + ], + [ + -4.323942596009216, + 16.10328502921233, + -5.5509727833668165 + ], + [ + -4.390563128292072, + 16.354459564042227, + -5.542425401818383 + ], + [ + -4.3723773194354845, + 16.351822734100367, + -5.323194191713412 + ], + [ + -4.305756787152628, + 16.10064819927047, + -5.331741573261846 + ], + [ + -5.019723589760604, + 15.900483510901873, + -5.503623862385691 + ], + [ + -5.097390071258274, + 16.14843823972215, + -5.494330310457851 + ], + [ + -5.083991273582967, + 16.144406034238553, + -5.274775730592628 + ], + [ + -5.006324792085297, + 15.89645130541828, + -5.284069282520468 + ], + [ + -5.705803152735512, + 15.667590981423366, + -5.474634621900753 + ], + [ + -5.794420638700303, + 15.911828208148538, + -5.464881762685301 + ], + [ + -5.78607366300695, + 15.90608107698316, + -5.245115299183377 + ], + [ + -5.697456177042159, + 15.661843850257988, + -5.254868158398829 + ], + [ + -6.380973094718435, + 15.405031786407067, + -5.464874075743936 + ], + [ + -6.480398516537038, + 15.645065988206207, + -5.45496612626674 + ], + [ + -6.47719023274858, + 15.637320505972168, + -5.235125924256064 + ], + [ + -6.3777648109299765, + 15.397286304173027, + -5.245033873733259 + ], + [ + -7.044047726406789, + 15.113271929236523, + -5.474634621900753 + ], + [ + -7.1540875003849465, + 15.348635753729496, + -5.464881762685301 + ], + [ + -7.1559258680807085, + 15.33866971519492, + -5.245115299183377 + ], + [ + -7.045886094102551, + 15.103305890701947, + -5.254868158398829 + ], + [ + -7.693859124701797, + 14.792820304705401, + -5.50362386238569 + ], + [ + -7.814271099139983, + 15.023069270619391, + -5.494330310457851 + ], + [ + -7.820894279995352, + 15.010743690082847, + -5.274775730592629 + ], + [ + -7.700482305557166, + 14.780494724168857, + -5.284069282520468 + ], + [ + -8.329252912436367, + 14.444231174635329, + -5.5509727833668165 + ], + [ + -8.459752299132496, + 14.66894622161839, + -5.542425401818383 + ], + [ + -8.470747087563627, + 14.654222392521811, + -5.323194191713412 + ], + [ + -8.340247700867497, + 14.42950734553875, + -5.331741573261846 + ], + [ + -8.949085484818527, + 14.068107341529025, + -5.615260214882794 + ], + [ + -9.0893537578304, + 14.286894762825568, + -5.607718605725905 + ], + [ + -9.104181355634745, + 14.26984523778394, + -5.388882009062534 + ], + [ + -8.963913082622872, + 14.051057816487397, + -5.396423618219423 + ], + [ + -9.552223258811422, + 13.665103362425047, + -5.694553270369978 + ], + [ + -9.70191858114825, + 13.877592133582993, + -5.688241962878 + ], + [ + -9.71994500258373, + 13.858405325685077, + -5.469822837037521 + ], + [ + -9.570249680246901, + 13.64591655452713, + -5.476134144529499 + ], + [ + -10.137544054437274, + 13.235928213652144, + -5.786463105814698 + ], + [ + -10.296311687247288, + 13.441765181533578, + -5.781566022470209 + ], + [ + -10.316839960255741, + 13.420744020133359, + -5.563536894185302 + ], + [ + -10.158072327445728, + 13.214907052251926, + -5.568433977529791 + ], + [ + -10.703940298210417, + 12.781347022763175, + -5.888214828746232 + ], + [ + -10.871421629393001, + 12.980190750272302, + -5.8848718157958775 + ], + [ + -10.893723387257305, + 12.957746266034487, + -5.667158984930399 + ], + [ + -10.726242056074721, + 12.75890253852536, + -5.670501997880754 + ], + [ + -11.25032348170302, + 12.302181739639066, + -5.996729793682352 + ], + [ + -11.426162682644646, + 12.493695974652994, + -5.995034742284742 + ], + [ + -11.449507494183166, + 12.470336777181105, + -5.777527575350637 + ], + [ + -11.27366829324154, + 12.278822542167177, + -5.779222626748248 + ], + [ + -11.77562924444226, + 11.799310840317236, + -6.108717942440093 + ], + [ + -11.959477007550761, + 11.983158603425737, + -6.108717942440093 + ], + [ + -11.983158603425736, + 11.959477007550763, + -5.891282057559907 + ], + [ + -11.799310840317235, + 11.775629244442262, + -5.891282057559907 + ], + [ + -12.278822542167175, + 11.273668293241542, + -6.220777373251751 + ], + [ + -12.470336777181103, + 11.449507494183168, + -6.222472424649362 + ], + [ + -12.493695974652992, + 11.426162682644648, + -6.0049652577152575 + ], + [ + -12.302181739639064, + 11.250323481703022, + -6.003270206317647 + ], + [ + -12.75890253852536, + 10.726242056074723, + -6.329498002119246 + ], + [ + -12.957746266034484, + 10.893723387257307, + -6.332841015069601 + ], + [ + -12.980190750272298, + 10.871421629393003, + -6.1151281842041225 + ], + [ + -12.781347022763175, + 10.70394029821042, + -6.111785171253768 + ], + [ + -13.214907052251924, + 10.158072327445732, + -6.431566022470208 + ], + [ + -13.420744020133357, + 10.316839960255745, + -6.436463105814697 + ], + [ + -13.441765181533576, + 10.296311687247291, + -6.2184339775297905 + ], + [ + -13.235928213652143, + 10.137544054437278, + -6.213536894185301 + ], + [ + -13.645916554527133, + 9.570249680246897, + -6.523865855470501 + ], + [ + -13.85840532568508, + 9.719945002583726, + -6.530177162962479 + ], + [ + -13.877592133582997, + 9.701918581148247, + -6.311758037122 + ], + [ + -13.66510336242505, + 9.552223258811418, + -6.305446729630022 + ], + [ + -14.051057816487392, + 8.96391308262288, + -6.603576381780576 + ], + [ + -14.269845237783935, + 9.104181355634754, + -6.6111179909374655 + ], + [ + -14.286894762825563, + 9.089353757830409, + -6.392281394274094 + ], + [ + -14.06810734152902, + 8.949085484818536, + -6.384739785117205 + ], + [ + -14.429507345538747, + 8.340247700867506, + -6.668258426738153 + ], + [ + -14.654222392521808, + 8.470747087563637, + -6.676805808286587 + ], + [ + -14.668946221618386, + 8.459752299132505, + -6.457574598181616 + ], + [ + -14.444231174635325, + 8.329252912436374, + -6.449027216633183 + ], + [ + -14.78049472416886, + 7.700482305557161, + -6.715930717479532 + ], + [ + -15.01074369008285, + 7.820894279995348, + -6.725224269407371 + ], + [ + -15.023069270619393, + 7.8142710991399795, + -6.505669689542149 + ], + [ + -14.792820304705403, + 7.693859124701793, + -6.49637613761431 + ], + [ + -15.103305890701945, + 7.045886094102554, + -6.745131841601171 + ], + [ + -15.338669715194918, + 7.155925868080712, + -6.754884700816623 + ], + [ + -15.348635753729495, + 7.154087500384951, + -6.535118237314699 + ], + [ + -15.113271929236522, + 7.044047726406792, + -6.525365378099247 + ], + [ + -15.397286304173027, + 6.377764810929979, + -6.754966126266741 + ], + [ + -15.637320505972168, + 6.477190232748583, + -6.764874075743936 + ], + [ + -15.645065988206207, + 6.480398516537043, + -6.54503387373326 + ], + [ + -15.405031786407067, + 6.380973094718438, + -6.535125924256064 + ], + [ + -15.661843850257986, + 5.697456177042165, + -6.745131841601171 + ], + [ + -15.906081076983158, + 5.786073663006956, + -6.754884700816623 + ], + [ + -15.911828208148536, + 5.794420638700309, + -6.535118237314699 + ], + [ + -15.667590981423364, + 5.705803152735518, + -6.525365378099247 + ], + [ + -15.896451305418276, + 5.006324792085304, + -6.715930717479532 + ], + [ + -16.14440603423855, + 5.083991273582974, + -6.725224269407372 + ], + [ + -16.148438239722147, + 5.097390071258281, + -6.505669689542149 + ], + [ + -15.90048351090187, + 5.019723589760611, + -6.496376137614309 + ], + [ + -16.10064819927047, + 4.305756787152624, + -6.668258426738153 + ], + [ + -16.351822734100367, + 4.372377319435481, + -6.676805808286587 + ], + [ + -16.354459564042227, + 4.390563128292068, + -6.457574598181616 + ], + [ + -16.10328502921233, + 4.323942596009211, + -6.449027216633183 + ], + [ + -16.27404199157192, + 3.597154538193041, + -6.603576381780577 + ], + [ + -16.527932707841046, + 3.6526759603981223, + -6.611117990937466 + ], + [ + -16.529503847657836, + 3.6752164901272266, + -6.392281394274095 + ], + [ + -16.27561313138871, + 3.6196950679221453, + -6.384739785117206 + ], + [ + -16.416308577762873, + 2.881931684660929, + -6.523865855470501 + ], + [ + -16.672411406310932, + 2.926333358136433, + -6.530177162962479 + ], + [ + -16.673231923447315, + 2.952647084947928, + -6.311758037122 + ], + [ + -16.417129094899256, + 2.908245411472424, + -6.305446729630022 + ], + [ + -16.527192215917555, + 2.161508562876975, + -6.431566022470209 + ], + [ + -16.78500660151829, + 2.1947916088919195, + -6.436463105814698 + ], + [ + -16.785355126242475, + 2.2241714957167584, + -6.218433977529791 + ], + [ + -16.52754074064174, + 2.1908884497018137, + -6.213536894185302 + ], + [ + -16.60650499998831, + 1.437308010990768, + -6.329498002119246 + ], + [ + -16.86553593310778, + 1.4594845741075253, + -6.332841015069601 + ], + [ + -16.865636855894344, + 1.4911249453305473, + -6.1151281842041225 + ], + [ + -16.606605922774875, + 1.46894838221379, + -6.111785171253768 + ], + [ + -16.654125983551516, + 0.7107513855537892, + -6.220777373251752 + ], + [ + -16.913884089207865, + 0.721835308441644, + -6.222472424649363 + ], + [ + -16.913894261598905, + 0.7548600299215027, + -6.004965257715258 + ], + [ + -16.654136155942556, + 0.7437761070336479, + -6.003270206317648 + ], + [ + -16.67, + -0.016745417032511686, + -6.108717942440093 + ], + [ + -16.93, + -0.016745417032511506, + -6.108717942440093 + ], + [ + -16.93, + 0.0167454170325158, + -5.891282057559907 + ], + [ + -16.67, + 0.01674541703251562, + -5.891282057559907 + ], + [ + -16.654136155942556, + -0.743776107033644, + -5.996729793682353 + ], + [ + -16.913894261598905, + -0.7548600299214984, + -5.9950347422847425 + ], + [ + -16.913884089207865, + -0.7218353084416397, + -5.777527575350638 + ], + [ + -16.654125983551516, + -0.7107513855537854, + -5.779222626748249 + ], + [ + -16.606605922774875, + -1.468948382213786, + -5.888214828746232 + ], + [ + -16.865636855894344, + -1.491124945330543, + -5.8848718157958775 + ], + [ + -16.86553593310778, + -1.4594845741075209, + -5.667158984930399 + ], + [ + -16.60650499998831, + -1.4373080109907639, + -5.670501997880754 + ], + [ + -16.52754074064174, + -2.1908884497018097, + -5.786463105814699 + ], + [ + -16.785355126242475, + -2.224171495716753, + -5.7815660224702095 + ], + [ + -16.78500660151829, + -2.1947916088919146, + -5.563536894185303 + ], + [ + -16.527192215917555, + -2.1615085628769712, + -5.568433977529792 + ], + [ + -16.41712909489926, + -2.9082454114724205, + -5.694553270369978 + ], + [ + -16.673231923447318, + -2.952647084947924, + -5.688241962878001 + ], + [ + -16.672411406310935, + -2.9263333581364286, + -5.469822837037523 + ], + [ + -16.416308577762877, + -2.881931684660925, + -5.4761341445294995 + ], + [ + -16.275613131388713, + -3.619695067922141, + -5.615260214882794 + ], + [ + -16.52950384765784, + -3.675216490127222, + -5.607718605725905 + ], + [ + -16.52793270784105, + -3.652675960398118, + -5.388882009062534 + ], + [ + -16.274041991571924, + -3.5971545381930365, + -5.396423618219423 + ], + [ + -16.103285029212334, + -4.323942596009208, + -5.550972783366817 + ], + [ + -16.35445956404223, + -4.390563128292064, + -5.542425401818384 + ], + [ + -16.35182273410037, + -4.3723773194354765, + -5.323194191713413 + ], + [ + -16.100648199270474, + -4.30575678715262, + -5.331741573261847 + ], + [ + -15.900483510901873, + -5.019723589760606, + -5.503623862385691 + ], + [ + -16.14843823972215, + -5.097390071258276, + -5.494330310457851 + ], + [ + -16.144406034238553, + -5.083991273582969, + -5.274775730592628 + ], + [ + -15.89645130541828, + -5.006324792085299, + -5.284069282520468 + ], + [ + -15.667590981423366, + -5.705803152735514, + -5.474634621900753 + ], + [ + -15.911828208148538, + -5.794420638700306, + -5.464881762685301 + ], + [ + -15.90608107698316, + -5.7860736630069525, + -5.245115299183377 + ], + [ + -15.661843850257988, + -5.697456177042161, + -5.254868158398829 + ], + [ + -15.405031786407068, + -6.380973094718434, + -5.464874075743936 + ], + [ + -15.645065988206209, + -6.480398516537037, + -5.45496612626674 + ], + [ + -15.63732050597217, + -6.477190232748579, + -5.235125924256064 + ], + [ + -15.39728630417303, + -6.377764810929976, + -5.245033873733259 + ], + [ + -15.113271929236527, + -7.044047726406782, + -5.474634621900752 + ], + [ + -15.3486357537295, + -7.154087500384939, + -5.4648817626853 + ], + [ + -15.338669715194923, + -7.155925868080701, + -5.245115299183376 + ], + [ + -15.10330589070195, + -7.045886094102544, + -5.254868158398828 + ], + [ + -14.792820304705401, + -7.693859124701796, + -5.503623862385691 + ], + [ + -15.023069270619391, + -7.814271099139982, + -5.494330310457851 + ], + [ + -15.010743690082847, + -7.820894279995351, + -5.274775730592628 + ], + [ + -14.780494724168857, + -7.700482305557165, + -5.284069282520468 + ], + [ + -14.444231174635327, + -8.329252912436372, + -5.550972783366817 + ], + [ + -14.668946221618388, + -8.459752299132502, + -5.542425401818384 + ], + [ + -14.65422239252181, + -8.470747087563632, + -5.323194191713413 + ], + [ + -14.429507345538749, + -8.340247700867502, + -5.331741573261847 + ], + [ + -14.068107341529021, + -8.949085484818532, + -5.615260214882795 + ], + [ + -14.286894762825565, + -9.089353757830406, + -5.607718605725906 + ], + [ + -14.269845237783937, + -9.10418135563475, + -5.3888820090625345 + ], + [ + -14.051057816487393, + -8.963913082622877, + -5.396423618219424 + ], + [ + -13.665103362425052, + -9.552223258811416, + -5.694553270369977 + ], + [ + -13.877592133582999, + -9.701918581148245, + -5.688241962877999 + ], + [ + -13.858405325685082, + -9.719945002583724, + -5.46982283703752 + ], + [ + -13.645916554527135, + -9.570249680246896, + -5.476134144529498 + ], + [ + -13.235928213652148, + -10.137544054437269, + -5.786463105814697 + ], + [ + -13.441765181533581, + -10.296311687247282, + -5.781566022470208 + ], + [ + -13.420744020133363, + -10.316839960255736, + -5.563536894185301 + ], + [ + -13.21490705225193, + -10.158072327445723, + -5.56843397752979 + ], + [ + -12.78134702276318, + -10.70394029821041, + -5.88821482874623 + ], + [ + -12.980190750272307, + -10.871421629392994, + -5.884871815795876 + ], + [ + -12.957746266034492, + -10.893723387257298, + -5.667158984930397 + ], + [ + -12.758902538525366, + -10.726242056074714, + -5.670501997880752 + ], + [ + -12.302181739639066, + -11.250323481703019, + -5.996729793682352 + ], + [ + -12.493695974652994, + -11.426162682644645, + -5.995034742284742 + ], + [ + -12.470336777181105, + -11.449507494183164, + -5.777527575350637 + ], + [ + -12.278822542167177, + -11.273668293241538, + -5.779222626748248 + ], + [ + -11.799310840317238, + -11.77562924444226, + -6.108717942440093 + ], + [ + -11.983158603425741, + -11.959477007550761, + -6.108717942440093 + ], + [ + -11.959477007550765, + -11.983158603425736, + -5.891282057559907 + ], + [ + -11.775629244442262, + -11.799310840317235, + -5.891282057559907 + ], + [ + -11.273668293241542, + -12.278822542167173, + -6.220777373251751 + ], + [ + -11.449507494183168, + -12.470336777181101, + -6.222472424649362 + ], + [ + -11.426162682644648, + -12.49369597465299, + -6.0049652577152575 + ], + [ + -11.250323481703022, + -12.302181739639062, + -6.003270206317647 + ], + [ + -10.726242056074723, + -12.75890253852536, + -6.329498002119246 + ], + [ + -10.893723387257307, + -12.957746266034484, + -6.332841015069601 + ], + [ + -10.871421629393003, + -12.980190750272298, + -6.1151281842041225 + ], + [ + -10.70394029821042, + -12.781347022763175, + -6.111785171253768 + ], + [ + -10.158072327445732, + -13.214907052251922, + -6.431566022470208 + ], + [ + -10.316839960255745, + -13.420744020133355, + -6.436463105814697 + ], + [ + -10.296311687247291, + -13.441765181533574, + -6.2184339775297905 + ], + [ + -10.137544054437278, + -13.23592821365214, + -6.213536894185301 + ], + [ + -9.570249680246894, + -13.645916554527137, + -6.523865855470502 + ], + [ + -9.719945002583723, + -13.858405325685084, + -6.53017716296248 + ], + [ + -9.701918581148243, + -13.877592133583, + -6.311758037122001 + ], + [ + -9.552223258811415, + -13.665103362425054, + -6.305446729630023 + ], + [ + -8.963913082622883, + -14.051057816487392, + -6.603576381780576 + ], + [ + -9.104181355634756, + -14.269845237783935, + -6.6111179909374655 + ], + [ + -9.08935375783041, + -14.286894762825563, + -6.392281394274094 + ], + [ + -8.949085484818537, + -14.06810734152902, + -6.384739785117205 + ], + [ + -8.340247700867508, + -14.429507345538745, + -6.668258426738153 + ], + [ + -8.47074708756364, + -14.654222392521806, + -6.676805808286587 + ], + [ + -8.459752299132507, + -14.668946221618384, + -6.457574598181616 + ], + [ + -8.329252912436376, + -14.444231174635323, + -6.449027216633183 + ], + [ + -7.700482305557168, + -14.780494724168856, + -6.715930717479531 + ], + [ + -7.820894279995355, + -15.010743690082846, + -6.72522426940737 + ], + [ + -7.814271099139987, + -15.02306927061939, + -6.505669689542148 + ], + [ + -7.6938591247018, + -14.7928203047054, + -6.496376137614309 + ], + [ + -7.045886094102561, + -15.103305890701941, + -6.745131841601171 + ], + [ + -7.155925868080719, + -15.338669715194914, + -6.754884700816623 + ], + [ + -7.154087500384958, + -15.348635753729491, + -6.535118237314699 + ], + [ + -7.0440477264067995, + -15.113271929236518, + -6.525365378099247 + ], + [ + -6.377764810929972, + -15.397286304173031, + -6.754966126266741 + ], + [ + -6.477190232748576, + -15.63732050597217, + -6.764874075743936 + ], + [ + -6.4803985165370355, + -15.645065988206207, + -6.54503387373326 + ], + [ + -6.380973094718431, + -15.405031786407068, + -6.535125924256064 + ], + [ + -5.6974561770421595, + -15.661843850257988, + -6.745131841601171 + ], + [ + -5.786073663006951, + -15.90608107698316, + -6.754884700816623 + ], + [ + -5.794420638700304, + -15.911828208148538, + -6.535118237314699 + ], + [ + -5.705803152735513, + -15.667590981423366, + -6.525365378099247 + ], + [ + -5.006324792085297, + -15.89645130541828, + -6.715930717479532 + ], + [ + -5.083991273582967, + -16.144406034238553, + -6.725224269407372 + ], + [ + -5.097390071258274, + -16.14843823972215, + -6.505669689542149 + ], + [ + -5.019723589760604, + -15.900483510901873, + -6.496376137614309 + ], + [ + -4.3057567871526246, + -16.10064819927047, + -6.668258426738153 + ], + [ + -4.372377319435482, + -16.351822734100367, + -6.676805808286587 + ], + [ + -4.390563128292069, + -16.354459564042227, + -6.457574598181616 + ], + [ + -4.3239425960092115, + -16.10328502921233, + -6.449027216633183 + ], + [ + -3.5971545381930485, + -16.27404199157192, + -6.603576381780578 + ], + [ + -3.6526759603981303, + -16.527932707841046, + -6.611117990937467 + ], + [ + -3.675216490127235, + -16.529503847657836, + -6.392281394274096 + ], + [ + -3.6196950679221533, + -16.27561313138871, + -6.3847397851172065 + ], + [ + -2.8819316846609304, + -16.416308577762873, + -6.523865855470501 + ], + [ + -2.9263333581364344, + -16.672411406310932, + -6.530177162962479 + ], + [ + -2.9526470849479294, + -16.673231923447315, + -6.311758037122 + ], + [ + -2.9082454114724254, + -16.417129094899256, + -6.305446729630022 + ], + [ + -2.1615085628769757, + -16.527192215917555, + -6.431566022470209 + ], + [ + -2.1947916088919204, + -16.78500660151829, + -6.436463105814698 + ], + [ + -2.2241714957167593, + -16.785355126242475, + -6.218433977529791 + ], + [ + -2.1908884497018146, + -16.52754074064174, + -6.213536894185302 + ], + [ + -1.4373080109907688, + -16.60650499998831, + -6.329498002119247 + ], + [ + -1.4594845741075264, + -16.86553593310778, + -6.332841015069602 + ], + [ + -1.4911249453305484, + -16.865636855894344, + -6.115128184204123 + ], + [ + -1.4689483822137908, + -16.606605922774875, + -6.111785171253769 + ], + [ + -0.7107513855537902, + -16.654125983551516, + -6.220777373251752 + ], + [ + -0.7218353084416452, + -16.913884089207865, + -6.222472424649363 + ], + [ + -0.7548600299215039, + -16.913894261598905, + -6.004965257715258 + ], + [ + -0.7437761070336489, + -16.654136155942556, + -6.003270206317648 + ], + [ + 0.01674541703251076, + -16.67, + -6.1087179424400935 + ], + [ + 0.01674541703251037, + -16.93, + -6.1087179424400935 + ], + [ + -0.016745417032516936, + -16.93, + -5.891282057559908 + ], + [ + -0.016745417032516547, + -16.67, + -5.891282057559908 + ], + [ + 0.7437761070336432, + -16.654136155942556, + -5.996729793682353 + ], + [ + 0.7548600299214974, + -16.913894261598905, + -5.9950347422847425 + ], + [ + 0.7218353084416386, + -16.913884089207865, + -5.777527575350638 + ], + [ + 0.7107513855537844, + -16.654125983551516, + -5.779222626748249 + ], + [ + 1.4689483822137852, + -16.606605922774875, + -5.888214828746232 + ], + [ + 1.491124945330542, + -16.865636855894344, + -5.8848718157958775 + ], + [ + 1.45948457410752, + -16.86553593310778, + -5.667158984930399 + ], + [ + 1.4373080109907632, + -16.60650499998831, + -5.670501997880754 + ], + [ + 2.190888449701809, + -16.52754074064174, + -5.786463105814699 + ], + [ + 2.224171495716752, + -16.785355126242475, + -5.7815660224702095 + ], + [ + 2.1947916088919137, + -16.78500660151829, + -5.563536894185303 + ], + [ + 2.1615085628769704, + -16.527192215917555, + -5.568433977529792 + ], + [ + 2.9082454114724197, + -16.41712909489926, + -5.694553270369979 + ], + [ + 2.952647084947923, + -16.673231923447318, + -5.688241962878001 + ], + [ + 2.9263333581364277, + -16.672411406310935, + -5.469822837037522 + ], + [ + 2.881931684660924, + -16.416308577762877, + -5.4761341445294995 + ], + [ + 3.6196950679221334, + -16.275613131388713, + -5.615260214882795 + ], + [ + 3.675216490127214, + -16.52950384765784, + -5.607718605725906 + ], + [ + 3.6526759603981094, + -16.52793270784105, + -5.3888820090625345 + ], + [ + 3.5971545381930286, + -16.274041991571924, + -5.396423618219424 + ], + [ + 4.323942596009207, + -16.103285029212334, + -5.550972783366817 + ], + [ + 4.390563128292063, + -16.35445956404223, + -5.542425401818384 + ], + [ + 4.372377319435476, + -16.35182273410037, + -5.323194191713413 + ], + [ + 4.305756787152619, + -16.100648199270474, + -5.331741573261847 + ], + [ + 5.019723589760613, + -15.90048351090187, + -5.503623862385691 + ], + [ + 5.097390071258283, + -16.148438239722147, + -5.494330310457851 + ], + [ + 5.083991273582976, + -16.14440603423855, + -5.274775730592628 + ], + [ + 5.006324792085306, + -15.896451305418276, + -5.284069282520468 + ], + [ + 5.705803152735521, + -15.667590981423364, + -5.474634621900753 + ], + [ + 5.794420638700312, + -15.911828208148536, + -5.464881762685301 + ], + [ + 5.786073663006959, + -15.906081076983158, + -5.245115299183377 + ], + [ + 5.6974561770421674, + -15.661843850257986, + -5.254868158398829 + ], + [ + 6.38097309471844, + -15.405031786407065, + -5.464874075743936 + ], + [ + 6.480398516537044, + -15.645065988206206, + -5.45496612626674 + ], + [ + 6.477190232748585, + -15.637320505972166, + -5.235125924256064 + ], + [ + 6.377764810929981, + -15.397286304173026, + -5.245033873733259 + ], + [ + 7.044047726406781, + -15.113271929236527, + -5.474634621900752 + ], + [ + 7.1540875003849385, + -15.3486357537295, + -5.4648817626853 + ], + [ + 7.1559258680807005, + -15.338669715194923, + -5.245115299183376 + ], + [ + 7.045886094102543, + -15.10330589070195, + -5.254868158398828 + ], + [ + 7.693859124701781, + -14.792820304705407, + -5.50362386238569 + ], + [ + 7.814271099139967, + -15.023069270619398, + -5.49433031045785 + ], + [ + 7.820894279995336, + -15.010743690082856, + -5.274775730592627 + ], + [ + 7.70048230555715, + -14.780494724168864, + -5.284069282520467 + ], + [ + 8.32925291243636, + -14.444231174635336, + -5.550972783366816 + ], + [ + 8.45975229913249, + -14.668946221618398, + -5.542425401818382 + ], + [ + 8.47074708756362, + -14.654222392521818, + -5.323194191713411 + ], + [ + 8.34024770086749, + -14.429507345538756, + -5.331741573261845 + ], + [ + 8.949085484818532, + -14.068107341529023, + -5.615260214882794 + ], + [ + 9.089353757830406, + -14.286894762825566, + -5.607718605725905 + ], + [ + 9.10418135563475, + -14.269845237783938, + -5.388882009062534 + ], + [ + 8.963913082622877, + -14.051057816487395, + -5.396423618219423 + ], + [ + 9.55222325881142, + -13.665103362425048, + -5.694553270369978 + ], + [ + 9.701918581148249, + -13.877592133582995, + -5.688241962878 + ], + [ + 9.719945002583728, + -13.858405325685078, + -5.469822837037521 + ], + [ + 9.5702496802469, + -13.645916554527131, + -5.476134144529499 + ], + [ + 10.137544054437273, + -13.235928213652144, + -5.786463105814698 + ], + [ + 10.296311687247286, + -13.441765181533578, + -5.781566022470209 + ], + [ + 10.31683996025574, + -13.420744020133359, + -5.563536894185302 + ], + [ + 10.158072327445726, + -13.214907052251926, + -5.568433977529791 + ], + [ + 10.703940298210416, + -12.781347022763176, + -5.888214828746231 + ], + [ + 10.871421629393, + -12.980190750272303, + -5.884871815795877 + ], + [ + 10.893723387257303, + -12.957746266034489, + -5.667158984930398 + ], + [ + 10.72624205607472, + -12.758902538525362, + -5.670501997880753 + ], + [ + 11.250323481703019, + -12.302181739639067, + -5.996729793682352 + ], + [ + 11.426162682644645, + -12.493695974652995, + -5.995034742284742 + ], + [ + 11.449507494183164, + -12.470336777181107, + -5.777527575350637 + ], + [ + 11.273668293241538, + -12.278822542167179, + -5.779222626748248 + ], + [ + 11.775629244442259, + -11.799310840317238, + -6.108717942440092 + ], + [ + 11.95947700755076, + -11.983158603425741, + -6.108717942440092 + ], + [ + 11.983158603425734, + -11.959477007550765, + -5.8912820575599065 + ], + [ + 11.799310840317233, + -11.775629244442262, + -5.8912820575599065 + ], + [ + 12.278822542167173, + -11.273668293241544, + -6.220777373251751 + ], + [ + 12.470336777181101, + -11.44950749418317, + -6.222472424649362 + ], + [ + 12.49369597465299, + -11.42616268264465, + -6.0049652577152575 + ], + [ + 12.302181739639062, + -11.250323481703024, + -6.003270206317647 + ], + [ + 12.758902538525357, + -10.726242056074724, + -6.329498002119246 + ], + [ + 12.957746266034484, + -10.893723387257308, + -6.332841015069601 + ], + [ + 12.980190750272298, + -10.871421629393005, + -6.1151281842041225 + ], + [ + 12.781347022763171, + -10.703940298210421, + -6.111785171253768 + ], + [ + 13.214907052251922, + -10.158072327445732, + -6.431566022470208 + ], + [ + 13.420744020133355, + -10.316839960255745, + -6.436463105814697 + ], + [ + 13.441765181533574, + -10.296311687247291, + -6.2184339775297905 + ], + [ + 13.23592821365214, + -10.137544054437278, + -6.213536894185301 + ], + [ + 13.645916554527128, + -9.570249680246906, + -6.5238658554705005 + ], + [ + 13.858405325685075, + -9.719945002583735, + -6.530177162962478 + ], + [ + 13.877592133582992, + -9.701918581148256, + -6.311758037121999 + ], + [ + 13.665103362425045, + -9.552223258811427, + -6.305446729630021 + ], + [ + 14.051057816487399, + -8.963913082622868, + -6.603576381780577 + ], + [ + 14.269845237783942, + -9.104181355634744, + -6.611117990937466 + ], + [ + 14.28689476282557, + -9.0893537578304, + -6.392281394274095 + ], + [ + 14.068107341529027, + -8.949085484818525, + -6.384739785117206 + ], + [ + 14.429507345538754, + -8.340247700867495, + -6.668258426738154 + ], + [ + 14.654222392521815, + -8.470747087563627, + -6.676805808286588 + ], + [ + 14.668946221618393, + -8.459752299132495, + -6.457574598181617 + ], + [ + 14.444231174635332, + -8.329252912436363, + -6.4490272166331835 + ], + [ + 14.780494724168856, + -7.70048230555717, + -6.715930717479531 + ], + [ + 15.010743690082846, + -7.820894279995356, + -6.72522426940737 + ], + [ + 15.02306927061939, + -7.814271099139987, + -6.505669689542148 + ], + [ + 14.7928203047054, + -7.693859124701801, + -6.496376137614309 + ], + [ + 15.103305890701941, + -7.045886094102562, + -6.745131841601171 + ], + [ + 15.338669715194914, + -7.15592586808072, + -6.754884700816623 + ], + [ + 15.348635753729491, + -7.154087500384959, + -6.535118237314699 + ], + [ + 15.113271929236518, + -7.0440477264068, + -6.525365378099247 + ], + [ + 15.397286304173026, + -6.377764810929987, + -6.754966126266741 + ], + [ + 15.637320505972164, + -6.477190232748591, + -6.764874075743936 + ], + [ + 15.645065988206202, + -6.480398516537051, + -6.54503387373326 + ], + [ + 15.405031786407063, + -6.380973094718446, + -6.535125924256064 + ], + [ + 15.661843850257988, + -5.69745617704216, + -6.745131841601171 + ], + [ + 15.90608107698316, + -5.786073663006952, + -6.754884700816623 + ], + [ + 15.911828208148538, + -5.794420638700305, + -6.535118237314699 + ], + [ + 15.667590981423366, + -5.7058031527355135, + -6.525365378099247 + ], + [ + 15.89645130541828, + -5.006324792085298, + -6.715930717479532 + ], + [ + 16.144406034238553, + -5.083991273582968, + -6.725224269407372 + ], + [ + 16.14843823972215, + -5.097390071258275, + -6.505669689542149 + ], + [ + 15.900483510901873, + -5.019723589760605, + -6.496376137614309 + ], + [ + 16.10064819927047, + -4.305756787152625, + -6.668258426738153 + ], + [ + 16.351822734100367, + -4.372377319435483, + -6.676805808286587 + ], + [ + 16.354459564042227, + -4.39056312829207, + -6.457574598181616 + ], + [ + 16.10328502921233, + -4.323942596009212, + -6.449027216633183 + ], + [ + 16.274041991571924, + -3.597154538193035, + -6.603576381780577 + ], + [ + 16.52793270784105, + -3.652675960398117, + -6.611117990937466 + ], + [ + 16.52950384765784, + -3.6752164901272217, + -6.392281394274095 + ], + [ + 16.275613131388713, + -3.61969506792214, + -6.384739785117206 + ], + [ + 16.416308577762873, + -2.8819316846609313, + -6.523865855470501 + ], + [ + 16.672411406310932, + -2.9263333581364352, + -6.530177162962479 + ], + [ + 16.673231923447315, + -2.9526470849479303, + -6.311758037122 + ], + [ + 16.417129094899256, + -2.9082454114724263, + -6.305446729630022 + ], + [ + 16.52719221591755, + -2.1615085628769917, + -6.431566022470211 + ], + [ + 16.785006601518287, + -2.1947916088919364, + -6.4364631058147 + ], + [ + 16.78535512624247, + -2.2241714957167753, + -6.218433977529793 + ], + [ + 16.527540740641737, + -2.1908884497018306, + -6.213536894185304 + ], + [ + 16.60650499998831, + -1.4373080109907699, + -6.329498002119247 + ], + [ + 16.86553593310778, + -1.459484574107528, + -6.332841015069602 + ], + [ + 16.865636855894344, + -1.49112494533055, + -6.115128184204123 + ], + [ + 16.606605922774875, + -1.4689483822137919, + -6.111785171253769 + ], + [ + 16.654125983551516, + -0.7107513855537912, + -6.220777373251752 + ], + [ + 16.913884089207865, + -0.7218353084416462, + -6.222472424649363 + ], + [ + 16.913894261598905, + -0.7548600299215049, + -6.004965257715258 + ], + [ + 16.654136155942556, + -0.7437761070336499, + -6.003270206317648 + ] + ], + "faces": [ + [ + 0, + 4, + 5 + ], + [ + 0, + 5, + 1 + ], + [ + 1, + 5, + 6 + ], + [ + 1, + 6, + 2 + ], + [ + 2, + 6, + 7 + ], + [ + 2, + 7, + 3 + ], + [ + 3, + 7, + 4 + ], + [ + 3, + 4, + 0 + ], + [ + 4, + 8, + 9 + ], + [ + 4, + 9, + 5 + ], + [ + 5, + 9, + 10 + ], + [ + 5, + 10, + 6 + ], + [ + 6, + 10, + 11 + ], + [ + 6, + 11, + 7 + ], + [ + 7, + 11, + 8 + ], + [ + 7, + 8, + 4 + ], + [ + 8, + 12, + 13 + ], + [ + 8, + 13, + 9 + ], + [ + 9, + 13, + 14 + ], + [ + 9, + 14, + 10 + ], + [ + 10, + 14, + 15 + ], + [ + 10, + 15, + 11 + ], + [ + 11, + 15, + 12 + ], + [ + 11, + 12, + 8 + ], + [ + 12, + 16, + 17 + ], + [ + 12, + 17, + 13 + ], + [ + 13, + 17, + 18 + ], + [ + 13, + 18, + 14 + ], + [ + 14, + 18, + 19 + ], + [ + 14, + 19, + 15 + ], + [ + 15, + 19, + 16 + ], + [ + 15, + 16, + 12 + ], + [ + 16, + 20, + 21 + ], + [ + 16, + 21, + 17 + ], + [ + 17, + 21, + 22 + ], + [ + 17, + 22, + 18 + ], + [ + 18, + 22, + 23 + ], + [ + 18, + 23, + 19 + ], + [ + 19, + 23, + 20 + ], + [ + 19, + 20, + 16 + ], + [ + 20, + 24, + 25 + ], + [ + 20, + 25, + 21 + ], + [ + 21, + 25, + 26 + ], + [ + 21, + 26, + 22 + ], + [ + 22, + 26, + 27 + ], + [ + 22, + 27, + 23 + ], + [ + 23, + 27, + 24 + ], + [ + 23, + 24, + 20 + ], + [ + 24, + 28, + 29 + ], + [ + 24, + 29, + 25 + ], + [ + 25, + 29, + 30 + ], + [ + 25, + 30, + 26 + ], + [ + 26, + 30, + 31 + ], + [ + 26, + 31, + 27 + ], + [ + 27, + 31, + 28 + ], + [ + 27, + 28, + 24 + ], + [ + 28, + 32, + 33 + ], + [ + 28, + 33, + 29 + ], + [ + 29, + 33, + 34 + ], + [ + 29, + 34, + 30 + ], + [ + 30, + 34, + 35 + ], + [ + 30, + 35, + 31 + ], + [ + 31, + 35, + 32 + ], + [ + 31, + 32, + 28 + ], + [ + 32, + 36, + 37 + ], + [ + 32, + 37, + 33 + ], + [ + 33, + 37, + 38 + ], + [ + 33, + 38, + 34 + ], + [ + 34, + 38, + 39 + ], + [ + 34, + 39, + 35 + ], + [ + 35, + 39, + 36 + ], + [ + 35, + 36, + 32 + ], + [ + 36, + 40, + 41 + ], + [ + 36, + 41, + 37 + ], + [ + 37, + 41, + 42 + ], + [ + 37, + 42, + 38 + ], + [ + 38, + 42, + 43 + ], + [ + 38, + 43, + 39 + ], + [ + 39, + 43, + 40 + ], + [ + 39, + 40, + 36 + ], + [ + 40, + 44, + 45 + ], + [ + 40, + 45, + 41 + ], + [ + 41, + 45, + 46 + ], + [ + 41, + 46, + 42 + ], + [ + 42, + 46, + 47 + ], + [ + 42, + 47, + 43 + ], + [ + 43, + 47, + 44 + ], + [ + 43, + 44, + 40 + ], + [ + 44, + 48, + 49 + ], + [ + 44, + 49, + 45 + ], + [ + 45, + 49, + 50 + ], + [ + 45, + 50, + 46 + ], + [ + 46, + 50, + 51 + ], + [ + 46, + 51, + 47 + ], + [ + 47, + 51, + 48 + ], + [ + 47, + 48, + 44 + ], + [ + 48, + 52, + 53 + ], + [ + 48, + 53, + 49 + ], + [ + 49, + 53, + 54 + ], + [ + 49, + 54, + 50 + ], + [ + 50, + 54, + 55 + ], + [ + 50, + 55, + 51 + ], + [ + 51, + 55, + 52 + ], + [ + 51, + 52, + 48 + ], + [ + 52, + 56, + 57 + ], + [ + 52, + 57, + 53 + ], + [ + 53, + 57, + 58 + ], + [ + 53, + 58, + 54 + ], + [ + 54, + 58, + 59 + ], + [ + 54, + 59, + 55 + ], + [ + 55, + 59, + 56 + ], + [ + 55, + 56, + 52 + ], + [ + 56, + 60, + 61 + ], + [ + 56, + 61, + 57 + ], + [ + 57, + 61, + 62 + ], + [ + 57, + 62, + 58 + ], + [ + 58, + 62, + 63 + ], + [ + 58, + 63, + 59 + ], + [ + 59, + 63, + 60 + ], + [ + 59, + 60, + 56 + ], + [ + 60, + 64, + 65 + ], + [ + 60, + 65, + 61 + ], + [ + 61, + 65, + 66 + ], + [ + 61, + 66, + 62 + ], + [ + 62, + 66, + 67 + ], + [ + 62, + 67, + 63 + ], + [ + 63, + 67, + 64 + ], + [ + 63, + 64, + 60 + ], + [ + 64, + 68, + 69 + ], + [ + 64, + 69, + 65 + ], + [ + 65, + 69, + 70 + ], + [ + 65, + 70, + 66 + ], + [ + 66, + 70, + 71 + ], + [ + 66, + 71, + 67 + ], + [ + 67, + 71, + 68 + ], + [ + 67, + 68, + 64 + ], + [ + 68, + 72, + 73 + ], + [ + 68, + 73, + 69 + ], + [ + 69, + 73, + 74 + ], + [ + 69, + 74, + 70 + ], + [ + 70, + 74, + 75 + ], + [ + 70, + 75, + 71 + ], + [ + 71, + 75, + 72 + ], + [ + 71, + 72, + 68 + ], + [ + 72, + 76, + 77 + ], + [ + 72, + 77, + 73 + ], + [ + 73, + 77, + 78 + ], + [ + 73, + 78, + 74 + ], + [ + 74, + 78, + 79 + ], + [ + 74, + 79, + 75 + ], + [ + 75, + 79, + 76 + ], + [ + 75, + 76, + 72 + ], + [ + 76, + 80, + 81 + ], + [ + 76, + 81, + 77 + ], + [ + 77, + 81, + 82 + ], + [ + 77, + 82, + 78 + ], + [ + 78, + 82, + 83 + ], + [ + 78, + 83, + 79 + ], + [ + 79, + 83, + 80 + ], + [ + 79, + 80, + 76 + ], + [ + 80, + 84, + 85 + ], + [ + 80, + 85, + 81 + ], + [ + 81, + 85, + 86 + ], + [ + 81, + 86, + 82 + ], + [ + 82, + 86, + 87 + ], + [ + 82, + 87, + 83 + ], + [ + 83, + 87, + 84 + ], + [ + 83, + 84, + 80 + ], + [ + 84, + 88, + 89 + ], + [ + 84, + 89, + 85 + ], + [ + 85, + 89, + 90 + ], + [ + 85, + 90, + 86 + ], + [ + 86, + 90, + 91 + ], + [ + 86, + 91, + 87 + ], + [ + 87, + 91, + 88 + ], + [ + 87, + 88, + 84 + ], + [ + 88, + 92, + 93 + ], + [ + 88, + 93, + 89 + ], + [ + 89, + 93, + 94 + ], + [ + 89, + 94, + 90 + ], + [ + 90, + 94, + 95 + ], + [ + 90, + 95, + 91 + ], + [ + 91, + 95, + 92 + ], + [ + 91, + 92, + 88 + ], + [ + 92, + 96, + 97 + ], + [ + 92, + 97, + 93 + ], + [ + 93, + 97, + 98 + ], + [ + 93, + 98, + 94 + ], + [ + 94, + 98, + 99 + ], + [ + 94, + 99, + 95 + ], + [ + 95, + 99, + 96 + ], + [ + 95, + 96, + 92 + ], + [ + 96, + 100, + 101 + ], + [ + 96, + 101, + 97 + ], + [ + 97, + 101, + 102 + ], + [ + 97, + 102, + 98 + ], + [ + 98, + 102, + 103 + ], + [ + 98, + 103, + 99 + ], + [ + 99, + 103, + 100 + ], + [ + 99, + 100, + 96 + ], + [ + 100, + 104, + 105 + ], + [ + 100, + 105, + 101 + ], + [ + 101, + 105, + 106 + ], + [ + 101, + 106, + 102 + ], + [ + 102, + 106, + 107 + ], + [ + 102, + 107, + 103 + ], + [ + 103, + 107, + 104 + ], + [ + 103, + 104, + 100 + ], + [ + 104, + 108, + 109 + ], + [ + 104, + 109, + 105 + ], + [ + 105, + 109, + 110 + ], + [ + 105, + 110, + 106 + ], + [ + 106, + 110, + 111 + ], + [ + 106, + 111, + 107 + ], + [ + 107, + 111, + 108 + ], + [ + 107, + 108, + 104 + ], + [ + 108, + 112, + 113 + ], + [ + 108, + 113, + 109 + ], + [ + 109, + 113, + 114 + ], + [ + 109, + 114, + 110 + ], + [ + 110, + 114, + 115 + ], + [ + 110, + 115, + 111 + ], + [ + 111, + 115, + 112 + ], + [ + 111, + 112, + 108 + ], + [ + 112, + 116, + 117 + ], + [ + 112, + 117, + 113 + ], + [ + 113, + 117, + 118 + ], + [ + 113, + 118, + 114 + ], + [ + 114, + 118, + 119 + ], + [ + 114, + 119, + 115 + ], + [ + 115, + 119, + 116 + ], + [ + 115, + 116, + 112 + ], + [ + 116, + 120, + 121 + ], + [ + 116, + 121, + 117 + ], + [ + 117, + 121, + 122 + ], + [ + 117, + 122, + 118 + ], + [ + 118, + 122, + 123 + ], + [ + 118, + 123, + 119 + ], + [ + 119, + 123, + 120 + ], + [ + 119, + 120, + 116 + ], + [ + 120, + 124, + 125 + ], + [ + 120, + 125, + 121 + ], + [ + 121, + 125, + 126 + ], + [ + 121, + 126, + 122 + ], + [ + 122, + 126, + 127 + ], + [ + 122, + 127, + 123 + ], + [ + 123, + 127, + 124 + ], + [ + 123, + 124, + 120 + ], + [ + 124, + 128, + 129 + ], + [ + 124, + 129, + 125 + ], + [ + 125, + 129, + 130 + ], + [ + 125, + 130, + 126 + ], + [ + 126, + 130, + 131 + ], + [ + 126, + 131, + 127 + ], + [ + 127, + 131, + 128 + ], + [ + 127, + 128, + 124 + ], + [ + 128, + 132, + 133 + ], + [ + 128, + 133, + 129 + ], + [ + 129, + 133, + 134 + ], + [ + 129, + 134, + 130 + ], + [ + 130, + 134, + 135 + ], + [ + 130, + 135, + 131 + ], + [ + 131, + 135, + 132 + ], + [ + 131, + 132, + 128 + ], + [ + 132, + 136, + 137 + ], + [ + 132, + 137, + 133 + ], + [ + 133, + 137, + 138 + ], + [ + 133, + 138, + 134 + ], + [ + 134, + 138, + 139 + ], + [ + 134, + 139, + 135 + ], + [ + 135, + 139, + 136 + ], + [ + 135, + 136, + 132 + ], + [ + 136, + 140, + 141 + ], + [ + 136, + 141, + 137 + ], + [ + 137, + 141, + 142 + ], + [ + 137, + 142, + 138 + ], + [ + 138, + 142, + 143 + ], + [ + 138, + 143, + 139 + ], + [ + 139, + 143, + 140 + ], + [ + 139, + 140, + 136 + ], + [ + 140, + 144, + 145 + ], + [ + 140, + 145, + 141 + ], + [ + 141, + 145, + 146 + ], + [ + 141, + 146, + 142 + ], + [ + 142, + 146, + 147 + ], + [ + 142, + 147, + 143 + ], + [ + 143, + 147, + 144 + ], + [ + 143, + 144, + 140 + ], + [ + 144, + 148, + 149 + ], + [ + 144, + 149, + 145 + ], + [ + 145, + 149, + 150 + ], + [ + 145, + 150, + 146 + ], + [ + 146, + 150, + 151 + ], + [ + 146, + 151, + 147 + ], + [ + 147, + 151, + 148 + ], + [ + 147, + 148, + 144 + ], + [ + 148, + 152, + 153 + ], + [ + 148, + 153, + 149 + ], + [ + 149, + 153, + 154 + ], + [ + 149, + 154, + 150 + ], + [ + 150, + 154, + 155 + ], + [ + 150, + 155, + 151 + ], + [ + 151, + 155, + 152 + ], + [ + 151, + 152, + 148 + ], + [ + 152, + 156, + 157 + ], + [ + 152, + 157, + 153 + ], + [ + 153, + 157, + 158 + ], + [ + 153, + 158, + 154 + ], + [ + 154, + 158, + 159 + ], + [ + 154, + 159, + 155 + ], + [ + 155, + 159, + 156 + ], + [ + 155, + 156, + 152 + ], + [ + 156, + 160, + 161 + ], + [ + 156, + 161, + 157 + ], + [ + 157, + 161, + 162 + ], + [ + 157, + 162, + 158 + ], + [ + 158, + 162, + 163 + ], + [ + 158, + 163, + 159 + ], + [ + 159, + 163, + 160 + ], + [ + 159, + 160, + 156 + ], + [ + 160, + 164, + 165 + ], + [ + 160, + 165, + 161 + ], + [ + 161, + 165, + 166 + ], + [ + 161, + 166, + 162 + ], + [ + 162, + 166, + 167 + ], + [ + 162, + 167, + 163 + ], + [ + 163, + 167, + 164 + ], + [ + 163, + 164, + 160 + ], + [ + 164, + 168, + 169 + ], + [ + 164, + 169, + 165 + ], + [ + 165, + 169, + 170 + ], + [ + 165, + 170, + 166 + ], + [ + 166, + 170, + 171 + ], + [ + 166, + 171, + 167 + ], + [ + 167, + 171, + 168 + ], + [ + 167, + 168, + 164 + ], + [ + 168, + 172, + 173 + ], + [ + 168, + 173, + 169 + ], + [ + 169, + 173, + 174 + ], + [ + 169, + 174, + 170 + ], + [ + 170, + 174, + 175 + ], + [ + 170, + 175, + 171 + ], + [ + 171, + 175, + 172 + ], + [ + 171, + 172, + 168 + ], + [ + 172, + 176, + 177 + ], + [ + 172, + 177, + 173 + ], + [ + 173, + 177, + 178 + ], + [ + 173, + 178, + 174 + ], + [ + 174, + 178, + 179 + ], + [ + 174, + 179, + 175 + ], + [ + 175, + 179, + 176 + ], + [ + 175, + 176, + 172 + ], + [ + 176, + 180, + 181 + ], + [ + 176, + 181, + 177 + ], + [ + 177, + 181, + 182 + ], + [ + 177, + 182, + 178 + ], + [ + 178, + 182, + 183 + ], + [ + 178, + 183, + 179 + ], + [ + 179, + 183, + 180 + ], + [ + 179, + 180, + 176 + ], + [ + 180, + 184, + 185 + ], + [ + 180, + 185, + 181 + ], + [ + 181, + 185, + 186 + ], + [ + 181, + 186, + 182 + ], + [ + 182, + 186, + 187 + ], + [ + 182, + 187, + 183 + ], + [ + 183, + 187, + 184 + ], + [ + 183, + 184, + 180 + ], + [ + 184, + 188, + 189 + ], + [ + 184, + 189, + 185 + ], + [ + 185, + 189, + 190 + ], + [ + 185, + 190, + 186 + ], + [ + 186, + 190, + 191 + ], + [ + 186, + 191, + 187 + ], + [ + 187, + 191, + 188 + ], + [ + 187, + 188, + 184 + ], + [ + 188, + 192, + 193 + ], + [ + 188, + 193, + 189 + ], + [ + 189, + 193, + 194 + ], + [ + 189, + 194, + 190 + ], + [ + 190, + 194, + 195 + ], + [ + 190, + 195, + 191 + ], + [ + 191, + 195, + 192 + ], + [ + 191, + 192, + 188 + ], + [ + 192, + 196, + 197 + ], + [ + 192, + 197, + 193 + ], + [ + 193, + 197, + 198 + ], + [ + 193, + 198, + 194 + ], + [ + 194, + 198, + 199 + ], + [ + 194, + 199, + 195 + ], + [ + 195, + 199, + 196 + ], + [ + 195, + 196, + 192 + ], + [ + 196, + 200, + 201 + ], + [ + 196, + 201, + 197 + ], + [ + 197, + 201, + 202 + ], + [ + 197, + 202, + 198 + ], + [ + 198, + 202, + 203 + ], + [ + 198, + 203, + 199 + ], + [ + 199, + 203, + 200 + ], + [ + 199, + 200, + 196 + ], + [ + 200, + 204, + 205 + ], + [ + 200, + 205, + 201 + ], + [ + 201, + 205, + 206 + ], + [ + 201, + 206, + 202 + ], + [ + 202, + 206, + 207 + ], + [ + 202, + 207, + 203 + ], + [ + 203, + 207, + 204 + ], + [ + 203, + 204, + 200 + ], + [ + 204, + 208, + 209 + ], + [ + 204, + 209, + 205 + ], + [ + 205, + 209, + 210 + ], + [ + 205, + 210, + 206 + ], + [ + 206, + 210, + 211 + ], + [ + 206, + 211, + 207 + ], + [ + 207, + 211, + 208 + ], + [ + 207, + 208, + 204 + ], + [ + 208, + 212, + 213 + ], + [ + 208, + 213, + 209 + ], + [ + 209, + 213, + 214 + ], + [ + 209, + 214, + 210 + ], + [ + 210, + 214, + 215 + ], + [ + 210, + 215, + 211 + ], + [ + 211, + 215, + 212 + ], + [ + 211, + 212, + 208 + ], + [ + 212, + 216, + 217 + ], + [ + 212, + 217, + 213 + ], + [ + 213, + 217, + 218 + ], + [ + 213, + 218, + 214 + ], + [ + 214, + 218, + 219 + ], + [ + 214, + 219, + 215 + ], + [ + 215, + 219, + 216 + ], + [ + 215, + 216, + 212 + ], + [ + 216, + 220, + 221 + ], + [ + 216, + 221, + 217 + ], + [ + 217, + 221, + 222 + ], + [ + 217, + 222, + 218 + ], + [ + 218, + 222, + 223 + ], + [ + 218, + 223, + 219 + ], + [ + 219, + 223, + 220 + ], + [ + 219, + 220, + 216 + ], + [ + 220, + 224, + 225 + ], + [ + 220, + 225, + 221 + ], + [ + 221, + 225, + 226 + ], + [ + 221, + 226, + 222 + ], + [ + 222, + 226, + 227 + ], + [ + 222, + 227, + 223 + ], + [ + 223, + 227, + 224 + ], + [ + 223, + 224, + 220 + ], + [ + 224, + 228, + 229 + ], + [ + 224, + 229, + 225 + ], + [ + 225, + 229, + 230 + ], + [ + 225, + 230, + 226 + ], + [ + 226, + 230, + 231 + ], + [ + 226, + 231, + 227 + ], + [ + 227, + 231, + 228 + ], + [ + 227, + 228, + 224 + ], + [ + 228, + 232, + 233 + ], + [ + 228, + 233, + 229 + ], + [ + 229, + 233, + 234 + ], + [ + 229, + 234, + 230 + ], + [ + 230, + 234, + 235 + ], + [ + 230, + 235, + 231 + ], + [ + 231, + 235, + 232 + ], + [ + 231, + 232, + 228 + ], + [ + 232, + 236, + 237 + ], + [ + 232, + 237, + 233 + ], + [ + 233, + 237, + 238 + ], + [ + 233, + 238, + 234 + ], + [ + 234, + 238, + 239 + ], + [ + 234, + 239, + 235 + ], + [ + 235, + 239, + 236 + ], + [ + 235, + 236, + 232 + ], + [ + 236, + 240, + 241 + ], + [ + 236, + 241, + 237 + ], + [ + 237, + 241, + 242 + ], + [ + 237, + 242, + 238 + ], + [ + 238, + 242, + 243 + ], + [ + 238, + 243, + 239 + ], + [ + 239, + 243, + 240 + ], + [ + 239, + 240, + 236 + ], + [ + 240, + 244, + 245 + ], + [ + 240, + 245, + 241 + ], + [ + 241, + 245, + 246 + ], + [ + 241, + 246, + 242 + ], + [ + 242, + 246, + 247 + ], + [ + 242, + 247, + 243 + ], + [ + 243, + 247, + 244 + ], + [ + 243, + 244, + 240 + ], + [ + 244, + 248, + 249 + ], + [ + 244, + 249, + 245 + ], + [ + 245, + 249, + 250 + ], + [ + 245, + 250, + 246 + ], + [ + 246, + 250, + 251 + ], + [ + 246, + 251, + 247 + ], + [ + 247, + 251, + 248 + ], + [ + 247, + 248, + 244 + ], + [ + 248, + 252, + 253 + ], + [ + 248, + 253, + 249 + ], + [ + 249, + 253, + 254 + ], + [ + 249, + 254, + 250 + ], + [ + 250, + 254, + 255 + ], + [ + 250, + 255, + 251 + ], + [ + 251, + 255, + 252 + ], + [ + 251, + 252, + 248 + ], + [ + 252, + 256, + 257 + ], + [ + 252, + 257, + 253 + ], + [ + 253, + 257, + 258 + ], + [ + 253, + 258, + 254 + ], + [ + 254, + 258, + 259 + ], + [ + 254, + 259, + 255 + ], + [ + 255, + 259, + 256 + ], + [ + 255, + 256, + 252 + ], + [ + 256, + 260, + 261 + ], + [ + 256, + 261, + 257 + ], + [ + 257, + 261, + 262 + ], + [ + 257, + 262, + 258 + ], + [ + 258, + 262, + 263 + ], + [ + 258, + 263, + 259 + ], + [ + 259, + 263, + 260 + ], + [ + 259, + 260, + 256 + ], + [ + 260, + 264, + 265 + ], + [ + 260, + 265, + 261 + ], + [ + 261, + 265, + 266 + ], + [ + 261, + 266, + 262 + ], + [ + 262, + 266, + 267 + ], + [ + 262, + 267, + 263 + ], + [ + 263, + 267, + 264 + ], + [ + 263, + 264, + 260 + ], + [ + 264, + 268, + 269 + ], + [ + 264, + 269, + 265 + ], + [ + 265, + 269, + 270 + ], + [ + 265, + 270, + 266 + ], + [ + 266, + 270, + 271 + ], + [ + 266, + 271, + 267 + ], + [ + 267, + 271, + 268 + ], + [ + 267, + 268, + 264 + ], + [ + 268, + 272, + 273 + ], + [ + 268, + 273, + 269 + ], + [ + 269, + 273, + 274 + ], + [ + 269, + 274, + 270 + ], + [ + 270, + 274, + 275 + ], + [ + 270, + 275, + 271 + ], + [ + 271, + 275, + 272 + ], + [ + 271, + 272, + 268 + ], + [ + 272, + 276, + 277 + ], + [ + 272, + 277, + 273 + ], + [ + 273, + 277, + 278 + ], + [ + 273, + 278, + 274 + ], + [ + 274, + 278, + 279 + ], + [ + 274, + 279, + 275 + ], + [ + 275, + 279, + 276 + ], + [ + 275, + 276, + 272 + ], + [ + 276, + 280, + 281 + ], + [ + 276, + 281, + 277 + ], + [ + 277, + 281, + 282 + ], + [ + 277, + 282, + 278 + ], + [ + 278, + 282, + 283 + ], + [ + 278, + 283, + 279 + ], + [ + 279, + 283, + 280 + ], + [ + 279, + 280, + 276 + ], + [ + 280, + 284, + 285 + ], + [ + 280, + 285, + 281 + ], + [ + 281, + 285, + 286 + ], + [ + 281, + 286, + 282 + ], + [ + 282, + 286, + 287 + ], + [ + 282, + 287, + 283 + ], + [ + 283, + 287, + 284 + ], + [ + 283, + 284, + 280 + ], + [ + 284, + 288, + 289 + ], + [ + 284, + 289, + 285 + ], + [ + 285, + 289, + 290 + ], + [ + 285, + 290, + 286 + ], + [ + 286, + 290, + 291 + ], + [ + 286, + 291, + 287 + ], + [ + 287, + 291, + 288 + ], + [ + 287, + 288, + 284 + ], + [ + 288, + 292, + 293 + ], + [ + 288, + 293, + 289 + ], + [ + 289, + 293, + 294 + ], + [ + 289, + 294, + 290 + ], + [ + 290, + 294, + 295 + ], + [ + 290, + 295, + 291 + ], + [ + 291, + 295, + 292 + ], + [ + 291, + 292, + 288 + ], + [ + 292, + 296, + 297 + ], + [ + 292, + 297, + 293 + ], + [ + 293, + 297, + 298 + ], + [ + 293, + 298, + 294 + ], + [ + 294, + 298, + 299 + ], + [ + 294, + 299, + 295 + ], + [ + 295, + 299, + 296 + ], + [ + 295, + 296, + 292 + ], + [ + 296, + 300, + 301 + ], + [ + 296, + 301, + 297 + ], + [ + 297, + 301, + 302 + ], + [ + 297, + 302, + 298 + ], + [ + 298, + 302, + 303 + ], + [ + 298, + 303, + 299 + ], + [ + 299, + 303, + 300 + ], + [ + 299, + 300, + 296 + ], + [ + 300, + 304, + 305 + ], + [ + 300, + 305, + 301 + ], + [ + 301, + 305, + 306 + ], + [ + 301, + 306, + 302 + ], + [ + 302, + 306, + 307 + ], + [ + 302, + 307, + 303 + ], + [ + 303, + 307, + 304 + ], + [ + 303, + 304, + 300 + ], + [ + 304, + 308, + 309 + ], + [ + 304, + 309, + 305 + ], + [ + 305, + 309, + 310 + ], + [ + 305, + 310, + 306 + ], + [ + 306, + 310, + 311 + ], + [ + 306, + 311, + 307 + ], + [ + 307, + 311, + 308 + ], + [ + 307, + 308, + 304 + ], + [ + 308, + 312, + 313 + ], + [ + 308, + 313, + 309 + ], + [ + 309, + 313, + 314 + ], + [ + 309, + 314, + 310 + ], + [ + 310, + 314, + 315 + ], + [ + 310, + 315, + 311 + ], + [ + 311, + 315, + 312 + ], + [ + 311, + 312, + 308 + ], + [ + 312, + 316, + 317 + ], + [ + 312, + 317, + 313 + ], + [ + 313, + 317, + 318 + ], + [ + 313, + 318, + 314 + ], + [ + 314, + 318, + 319 + ], + [ + 314, + 319, + 315 + ], + [ + 315, + 319, + 316 + ], + [ + 315, + 316, + 312 + ], + [ + 316, + 320, + 321 + ], + [ + 316, + 321, + 317 + ], + [ + 317, + 321, + 322 + ], + [ + 317, + 322, + 318 + ], + [ + 318, + 322, + 323 + ], + [ + 318, + 323, + 319 + ], + [ + 319, + 323, + 320 + ], + [ + 319, + 320, + 316 + ], + [ + 320, + 324, + 325 + ], + [ + 320, + 325, + 321 + ], + [ + 321, + 325, + 326 + ], + [ + 321, + 326, + 322 + ], + [ + 322, + 326, + 327 + ], + [ + 322, + 327, + 323 + ], + [ + 323, + 327, + 324 + ], + [ + 323, + 324, + 320 + ], + [ + 324, + 328, + 329 + ], + [ + 324, + 329, + 325 + ], + [ + 325, + 329, + 330 + ], + [ + 325, + 330, + 326 + ], + [ + 326, + 330, + 331 + ], + [ + 326, + 331, + 327 + ], + [ + 327, + 331, + 328 + ], + [ + 327, + 328, + 324 + ], + [ + 328, + 332, + 333 + ], + [ + 328, + 333, + 329 + ], + [ + 329, + 333, + 334 + ], + [ + 329, + 334, + 330 + ], + [ + 330, + 334, + 335 + ], + [ + 330, + 335, + 331 + ], + [ + 331, + 335, + 332 + ], + [ + 331, + 332, + 328 + ], + [ + 332, + 336, + 337 + ], + [ + 332, + 337, + 333 + ], + [ + 333, + 337, + 338 + ], + [ + 333, + 338, + 334 + ], + [ + 334, + 338, + 339 + ], + [ + 334, + 339, + 335 + ], + [ + 335, + 339, + 336 + ], + [ + 335, + 336, + 332 + ], + [ + 336, + 340, + 341 + ], + [ + 336, + 341, + 337 + ], + [ + 337, + 341, + 342 + ], + [ + 337, + 342, + 338 + ], + [ + 338, + 342, + 343 + ], + [ + 338, + 343, + 339 + ], + [ + 339, + 343, + 340 + ], + [ + 339, + 340, + 336 + ], + [ + 340, + 344, + 345 + ], + [ + 340, + 345, + 341 + ], + [ + 341, + 345, + 346 + ], + [ + 341, + 346, + 342 + ], + [ + 342, + 346, + 347 + ], + [ + 342, + 347, + 343 + ], + [ + 343, + 347, + 344 + ], + [ + 343, + 344, + 340 + ], + [ + 344, + 348, + 349 + ], + [ + 344, + 349, + 345 + ], + [ + 345, + 349, + 350 + ], + [ + 345, + 350, + 346 + ], + [ + 346, + 350, + 351 + ], + [ + 346, + 351, + 347 + ], + [ + 347, + 351, + 348 + ], + [ + 347, + 348, + 344 + ], + [ + 348, + 352, + 353 + ], + [ + 348, + 353, + 349 + ], + [ + 349, + 353, + 354 + ], + [ + 349, + 354, + 350 + ], + [ + 350, + 354, + 355 + ], + [ + 350, + 355, + 351 + ], + [ + 351, + 355, + 352 + ], + [ + 351, + 352, + 348 + ], + [ + 352, + 356, + 357 + ], + [ + 352, + 357, + 353 + ], + [ + 353, + 357, + 358 + ], + [ + 353, + 358, + 354 + ], + [ + 354, + 358, + 359 + ], + [ + 354, + 359, + 355 + ], + [ + 355, + 359, + 356 + ], + [ + 355, + 356, + 352 + ], + [ + 356, + 360, + 361 + ], + [ + 356, + 361, + 357 + ], + [ + 357, + 361, + 362 + ], + [ + 357, + 362, + 358 + ], + [ + 358, + 362, + 363 + ], + [ + 358, + 363, + 359 + ], + [ + 359, + 363, + 360 + ], + [ + 359, + 360, + 356 + ], + [ + 360, + 364, + 365 + ], + [ + 360, + 365, + 361 + ], + [ + 361, + 365, + 366 + ], + [ + 361, + 366, + 362 + ], + [ + 362, + 366, + 367 + ], + [ + 362, + 367, + 363 + ], + [ + 363, + 367, + 364 + ], + [ + 363, + 364, + 360 + ], + [ + 364, + 368, + 369 + ], + [ + 364, + 369, + 365 + ], + [ + 365, + 369, + 370 + ], + [ + 365, + 370, + 366 + ], + [ + 366, + 370, + 371 + ], + [ + 366, + 371, + 367 + ], + [ + 367, + 371, + 368 + ], + [ + 367, + 368, + 364 + ], + [ + 368, + 372, + 373 + ], + [ + 368, + 373, + 369 + ], + [ + 369, + 373, + 374 + ], + [ + 369, + 374, + 370 + ], + [ + 370, + 374, + 375 + ], + [ + 370, + 375, + 371 + ], + [ + 371, + 375, + 372 + ], + [ + 371, + 372, + 368 + ], + [ + 372, + 376, + 377 + ], + [ + 372, + 377, + 373 + ], + [ + 373, + 377, + 378 + ], + [ + 373, + 378, + 374 + ], + [ + 374, + 378, + 379 + ], + [ + 374, + 379, + 375 + ], + [ + 375, + 379, + 376 + ], + [ + 375, + 376, + 372 + ], + [ + 376, + 380, + 381 + ], + [ + 376, + 381, + 377 + ], + [ + 377, + 381, + 382 + ], + [ + 377, + 382, + 378 + ], + [ + 378, + 382, + 383 + ], + [ + 378, + 383, + 379 + ], + [ + 379, + 383, + 380 + ], + [ + 379, + 380, + 376 + ], + [ + 380, + 384, + 385 + ], + [ + 380, + 385, + 381 + ], + [ + 381, + 385, + 386 + ], + [ + 381, + 386, + 382 + ], + [ + 382, + 386, + 387 + ], + [ + 382, + 387, + 383 + ], + [ + 383, + 387, + 384 + ], + [ + 383, + 384, + 380 + ], + [ + 384, + 388, + 389 + ], + [ + 384, + 389, + 385 + ], + [ + 385, + 389, + 390 + ], + [ + 385, + 390, + 386 + ], + [ + 386, + 390, + 391 + ], + [ + 386, + 391, + 387 + ], + [ + 387, + 391, + 388 + ], + [ + 387, + 388, + 384 + ], + [ + 388, + 392, + 393 + ], + [ + 388, + 393, + 389 + ], + [ + 389, + 393, + 394 + ], + [ + 389, + 394, + 390 + ], + [ + 390, + 394, + 395 + ], + [ + 390, + 395, + 391 + ], + [ + 391, + 395, + 392 + ], + [ + 391, + 392, + 388 + ], + [ + 392, + 396, + 397 + ], + [ + 392, + 397, + 393 + ], + [ + 393, + 397, + 398 + ], + [ + 393, + 398, + 394 + ], + [ + 394, + 398, + 399 + ], + [ + 394, + 399, + 395 + ], + [ + 395, + 399, + 396 + ], + [ + 395, + 396, + 392 + ], + [ + 396, + 400, + 401 + ], + [ + 396, + 401, + 397 + ], + [ + 397, + 401, + 402 + ], + [ + 397, + 402, + 398 + ], + [ + 398, + 402, + 403 + ], + [ + 398, + 403, + 399 + ], + [ + 399, + 403, + 400 + ], + [ + 399, + 400, + 396 + ], + [ + 400, + 404, + 405 + ], + [ + 400, + 405, + 401 + ], + [ + 401, + 405, + 406 + ], + [ + 401, + 406, + 402 + ], + [ + 402, + 406, + 407 + ], + [ + 402, + 407, + 403 + ], + [ + 403, + 407, + 404 + ], + [ + 403, + 404, + 400 + ], + [ + 404, + 408, + 409 + ], + [ + 404, + 409, + 405 + ], + [ + 405, + 409, + 410 + ], + [ + 405, + 410, + 406 + ], + [ + 406, + 410, + 411 + ], + [ + 406, + 411, + 407 + ], + [ + 407, + 411, + 408 + ], + [ + 407, + 408, + 404 + ], + [ + 408, + 412, + 413 + ], + [ + 408, + 413, + 409 + ], + [ + 409, + 413, + 414 + ], + [ + 409, + 414, + 410 + ], + [ + 410, + 414, + 415 + ], + [ + 410, + 415, + 411 + ], + [ + 411, + 415, + 412 + ], + [ + 411, + 412, + 408 + ], + [ + 412, + 416, + 417 + ], + [ + 412, + 417, + 413 + ], + [ + 413, + 417, + 418 + ], + [ + 413, + 418, + 414 + ], + [ + 414, + 418, + 419 + ], + [ + 414, + 419, + 415 + ], + [ + 415, + 419, + 416 + ], + [ + 415, + 416, + 412 + ], + [ + 416, + 420, + 421 + ], + [ + 416, + 421, + 417 + ], + [ + 417, + 421, + 422 + ], + [ + 417, + 422, + 418 + ], + [ + 418, + 422, + 423 + ], + [ + 418, + 423, + 419 + ], + [ + 419, + 423, + 420 + ], + [ + 419, + 420, + 416 + ], + [ + 420, + 424, + 425 + ], + [ + 420, + 425, + 421 + ], + [ + 421, + 425, + 426 + ], + [ + 421, + 426, + 422 + ], + [ + 422, + 426, + 427 + ], + [ + 422, + 427, + 423 + ], + [ + 423, + 427, + 424 + ], + [ + 423, + 424, + 420 + ], + [ + 424, + 428, + 429 + ], + [ + 424, + 429, + 425 + ], + [ + 425, + 429, + 430 + ], + [ + 425, + 430, + 426 + ], + [ + 426, + 430, + 431 + ], + [ + 426, + 431, + 427 + ], + [ + 427, + 431, + 428 + ], + [ + 427, + 428, + 424 + ], + [ + 428, + 432, + 433 + ], + [ + 428, + 433, + 429 + ], + [ + 429, + 433, + 434 + ], + [ + 429, + 434, + 430 + ], + [ + 430, + 434, + 435 + ], + [ + 430, + 435, + 431 + ], + [ + 431, + 435, + 432 + ], + [ + 431, + 432, + 428 + ], + [ + 432, + 436, + 437 + ], + [ + 432, + 437, + 433 + ], + [ + 433, + 437, + 438 + ], + [ + 433, + 438, + 434 + ], + [ + 434, + 438, + 439 + ], + [ + 434, + 439, + 435 + ], + [ + 435, + 439, + 436 + ], + [ + 435, + 436, + 432 + ], + [ + 436, + 440, + 441 + ], + [ + 436, + 441, + 437 + ], + [ + 437, + 441, + 442 + ], + [ + 437, + 442, + 438 + ], + [ + 438, + 442, + 443 + ], + [ + 438, + 443, + 439 + ], + [ + 439, + 443, + 440 + ], + [ + 439, + 440, + 436 + ], + [ + 440, + 444, + 445 + ], + [ + 440, + 445, + 441 + ], + [ + 441, + 445, + 446 + ], + [ + 441, + 446, + 442 + ], + [ + 442, + 446, + 447 + ], + [ + 442, + 447, + 443 + ], + [ + 443, + 447, + 444 + ], + [ + 443, + 444, + 440 + ], + [ + 444, + 448, + 449 + ], + [ + 444, + 449, + 445 + ], + [ + 445, + 449, + 450 + ], + [ + 445, + 450, + 446 + ], + [ + 446, + 450, + 451 + ], + [ + 446, + 451, + 447 + ], + [ + 447, + 451, + 448 + ], + [ + 447, + 448, + 444 + ], + [ + 448, + 452, + 453 + ], + [ + 448, + 453, + 449 + ], + [ + 449, + 453, + 454 + ], + [ + 449, + 454, + 450 + ], + [ + 450, + 454, + 455 + ], + [ + 450, + 455, + 451 + ], + [ + 451, + 455, + 452 + ], + [ + 451, + 452, + 448 + ], + [ + 452, + 456, + 457 + ], + [ + 452, + 457, + 453 + ], + [ + 453, + 457, + 458 + ], + [ + 453, + 458, + 454 + ], + [ + 454, + 458, + 459 + ], + [ + 454, + 459, + 455 + ], + [ + 455, + 459, + 456 + ], + [ + 455, + 456, + 452 + ], + [ + 456, + 460, + 461 + ], + [ + 456, + 461, + 457 + ], + [ + 457, + 461, + 462 + ], + [ + 457, + 462, + 458 + ], + [ + 458, + 462, + 463 + ], + [ + 458, + 463, + 459 + ], + [ + 459, + 463, + 460 + ], + [ + 459, + 460, + 456 + ], + [ + 460, + 464, + 465 + ], + [ + 460, + 465, + 461 + ], + [ + 461, + 465, + 466 + ], + [ + 461, + 466, + 462 + ], + [ + 462, + 466, + 467 + ], + [ + 462, + 467, + 463 + ], + [ + 463, + 467, + 464 + ], + [ + 463, + 464, + 460 + ], + [ + 464, + 468, + 469 + ], + [ + 464, + 469, + 465 + ], + [ + 465, + 469, + 470 + ], + [ + 465, + 470, + 466 + ], + [ + 466, + 470, + 471 + ], + [ + 466, + 471, + 467 + ], + [ + 467, + 471, + 468 + ], + [ + 467, + 468, + 464 + ], + [ + 468, + 472, + 473 + ], + [ + 468, + 473, + 469 + ], + [ + 469, + 473, + 474 + ], + [ + 469, + 474, + 470 + ], + [ + 470, + 474, + 475 + ], + [ + 470, + 475, + 471 + ], + [ + 471, + 475, + 472 + ], + [ + 471, + 472, + 468 + ], + [ + 472, + 476, + 477 + ], + [ + 472, + 477, + 473 + ], + [ + 473, + 477, + 478 + ], + [ + 473, + 478, + 474 + ], + [ + 474, + 478, + 479 + ], + [ + 474, + 479, + 475 + ], + [ + 475, + 479, + 476 + ], + [ + 475, + 476, + 472 + ], + [ + 476, + 480, + 481 + ], + [ + 476, + 481, + 477 + ], + [ + 477, + 481, + 482 + ], + [ + 477, + 482, + 478 + ], + [ + 478, + 482, + 483 + ], + [ + 478, + 483, + 479 + ], + [ + 479, + 483, + 480 + ], + [ + 479, + 480, + 476 + ], + [ + 480, + 484, + 485 + ], + [ + 480, + 485, + 481 + ], + [ + 481, + 485, + 486 + ], + [ + 481, + 486, + 482 + ], + [ + 482, + 486, + 487 + ], + [ + 482, + 487, + 483 + ], + [ + 483, + 487, + 484 + ], + [ + 483, + 484, + 480 + ], + [ + 484, + 488, + 489 + ], + [ + 484, + 489, + 485 + ], + [ + 485, + 489, + 490 + ], + [ + 485, + 490, + 486 + ], + [ + 486, + 490, + 491 + ], + [ + 486, + 491, + 487 + ], + [ + 487, + 491, + 488 + ], + [ + 487, + 488, + 484 + ], + [ + 488, + 492, + 493 + ], + [ + 488, + 493, + 489 + ], + [ + 489, + 493, + 494 + ], + [ + 489, + 494, + 490 + ], + [ + 490, + 494, + 495 + ], + [ + 490, + 495, + 491 + ], + [ + 491, + 495, + 492 + ], + [ + 491, + 492, + 488 + ], + [ + 492, + 496, + 497 + ], + [ + 492, + 497, + 493 + ], + [ + 493, + 497, + 498 + ], + [ + 493, + 498, + 494 + ], + [ + 494, + 498, + 499 + ], + [ + 494, + 499, + 495 + ], + [ + 495, + 499, + 496 + ], + [ + 495, + 496, + 492 + ], + [ + 496, + 500, + 501 + ], + [ + 496, + 501, + 497 + ], + [ + 497, + 501, + 502 + ], + [ + 497, + 502, + 498 + ], + [ + 498, + 502, + 503 + ], + [ + 498, + 503, + 499 + ], + [ + 499, + 503, + 500 + ], + [ + 499, + 500, + 496 + ], + [ + 500, + 504, + 505 + ], + [ + 500, + 505, + 501 + ], + [ + 501, + 505, + 506 + ], + [ + 501, + 506, + 502 + ], + [ + 502, + 506, + 507 + ], + [ + 502, + 507, + 503 + ], + [ + 503, + 507, + 504 + ], + [ + 503, + 504, + 500 + ], + [ + 504, + 508, + 509 + ], + [ + 504, + 509, + 505 + ], + [ + 505, + 509, + 510 + ], + [ + 505, + 510, + 506 + ], + [ + 506, + 510, + 511 + ], + [ + 506, + 511, + 507 + ], + [ + 507, + 511, + 508 + ], + [ + 507, + 508, + 504 + ], + [ + 508, + 512, + 513 + ], + [ + 508, + 513, + 509 + ], + [ + 509, + 513, + 514 + ], + [ + 509, + 514, + 510 + ], + [ + 510, + 514, + 515 + ], + [ + 510, + 515, + 511 + ], + [ + 511, + 515, + 512 + ], + [ + 511, + 512, + 508 + ], + [ + 512, + 516, + 517 + ], + [ + 512, + 517, + 513 + ], + [ + 513, + 517, + 518 + ], + [ + 513, + 518, + 514 + ], + [ + 514, + 518, + 519 + ], + [ + 514, + 519, + 515 + ], + [ + 515, + 519, + 516 + ], + [ + 515, + 516, + 512 + ], + [ + 516, + 520, + 521 + ], + [ + 516, + 521, + 517 + ], + [ + 517, + 521, + 522 + ], + [ + 517, + 522, + 518 + ], + [ + 518, + 522, + 523 + ], + [ + 518, + 523, + 519 + ], + [ + 519, + 523, + 520 + ], + [ + 519, + 520, + 516 + ], + [ + 520, + 524, + 525 + ], + [ + 520, + 525, + 521 + ], + [ + 521, + 525, + 526 + ], + [ + 521, + 526, + 522 + ], + [ + 522, + 526, + 527 + ], + [ + 522, + 527, + 523 + ], + [ + 523, + 527, + 524 + ], + [ + 523, + 524, + 520 + ], + [ + 524, + 528, + 529 + ], + [ + 524, + 529, + 525 + ], + [ + 525, + 529, + 530 + ], + [ + 525, + 530, + 526 + ], + [ + 526, + 530, + 531 + ], + [ + 526, + 531, + 527 + ], + [ + 527, + 531, + 528 + ], + [ + 527, + 528, + 524 + ], + [ + 528, + 532, + 533 + ], + [ + 528, + 533, + 529 + ], + [ + 529, + 533, + 534 + ], + [ + 529, + 534, + 530 + ], + [ + 530, + 534, + 535 + ], + [ + 530, + 535, + 531 + ], + [ + 531, + 535, + 532 + ], + [ + 531, + 532, + 528 + ], + [ + 532, + 536, + 537 + ], + [ + 532, + 537, + 533 + ], + [ + 533, + 537, + 538 + ], + [ + 533, + 538, + 534 + ], + [ + 534, + 538, + 539 + ], + [ + 534, + 539, + 535 + ], + [ + 535, + 539, + 536 + ], + [ + 535, + 536, + 532 + ], + [ + 536, + 540, + 541 + ], + [ + 536, + 541, + 537 + ], + [ + 537, + 541, + 542 + ], + [ + 537, + 542, + 538 + ], + [ + 538, + 542, + 543 + ], + [ + 538, + 543, + 539 + ], + [ + 539, + 543, + 540 + ], + [ + 539, + 540, + 536 + ], + [ + 540, + 544, + 545 + ], + [ + 540, + 545, + 541 + ], + [ + 541, + 545, + 546 + ], + [ + 541, + 546, + 542 + ], + [ + 542, + 546, + 547 + ], + [ + 542, + 547, + 543 + ], + [ + 543, + 547, + 544 + ], + [ + 543, + 544, + 540 + ], + [ + 544, + 548, + 549 + ], + [ + 544, + 549, + 545 + ], + [ + 545, + 549, + 550 + ], + [ + 545, + 550, + 546 + ], + [ + 546, + 550, + 551 + ], + [ + 546, + 551, + 547 + ], + [ + 547, + 551, + 548 + ], + [ + 547, + 548, + 544 + ], + [ + 548, + 552, + 553 + ], + [ + 548, + 553, + 549 + ], + [ + 549, + 553, + 554 + ], + [ + 549, + 554, + 550 + ], + [ + 550, + 554, + 555 + ], + [ + 550, + 555, + 551 + ], + [ + 551, + 555, + 552 + ], + [ + 551, + 552, + 548 + ], + [ + 552, + 556, + 557 + ], + [ + 552, + 557, + 553 + ], + [ + 553, + 557, + 558 + ], + [ + 553, + 558, + 554 + ], + [ + 554, + 558, + 559 + ], + [ + 554, + 559, + 555 + ], + [ + 555, + 559, + 556 + ], + [ + 555, + 556, + 552 + ], + [ + 556, + 560, + 561 + ], + [ + 556, + 561, + 557 + ], + [ + 557, + 561, + 562 + ], + [ + 557, + 562, + 558 + ], + [ + 558, + 562, + 563 + ], + [ + 558, + 563, + 559 + ], + [ + 559, + 563, + 560 + ], + [ + 559, + 560, + 556 + ], + [ + 560, + 564, + 565 + ], + [ + 560, + 565, + 561 + ], + [ + 561, + 565, + 566 + ], + [ + 561, + 566, + 562 + ], + [ + 562, + 566, + 567 + ], + [ + 562, + 567, + 563 + ], + [ + 563, + 567, + 564 + ], + [ + 563, + 564, + 560 + ], + [ + 564, + 568, + 569 + ], + [ + 564, + 569, + 565 + ], + [ + 565, + 569, + 570 + ], + [ + 565, + 570, + 566 + ], + [ + 566, + 570, + 571 + ], + [ + 566, + 571, + 567 + ], + [ + 567, + 571, + 568 + ], + [ + 567, + 568, + 564 + ], + [ + 568, + 572, + 573 + ], + [ + 568, + 573, + 569 + ], + [ + 569, + 573, + 574 + ], + [ + 569, + 574, + 570 + ], + [ + 570, + 574, + 575 + ], + [ + 570, + 575, + 571 + ], + [ + 571, + 575, + 572 + ], + [ + 571, + 572, + 568 + ], + [ + 572, + 0, + 1 + ], + [ + 572, + 1, + 573 + ], + [ + 573, + 1, + 2 + ], + [ + 573, + 2, + 574 + ], + [ + 574, + 2, + 3 + ], + [ + 574, + 3, + 575 + ], + [ + 575, + 3, + 0 + ], + [ + 575, + 0, + 572 + ] + ] + }, + "f7d19d9bc226b4099ada1ba681a45cd92816312ae86a0df800a6b061a6ace591": { + "vertices": [ + [ + 16.61893217866339, + 0.054687081136376714, + -6.170363632366758 + ], + [ + 16.978867653252795, + 0.06150280795737896, + -6.170363632366758 + ], + [ + 16.981067821336612, + -0.054687081136376714, + -5.829636367633242 + ], + [ + 16.621132346747206, + -0.06150280795737896, + -5.829636367633242 + ], + [ + 16.60697467335645, + 0.6876746788629144, + -5.95443431966446 + ], + [ + 16.966736771008307, + 0.7005934849494565, + -5.952351642917253 + ], + [ + 16.96893799888876, + 0.584366289724016, + -5.611637108906968 + ], + [ + 16.609175901236902, + 0.571447483637474, + -5.613719785654175 + ], + [ + 16.571203279365037, + 1.3167629247372357, + -5.739527422820124 + ], + [ + 16.930272242605472, + 1.3418714350086485, + -5.733279035077041 + ], + [ + 16.93248194529189, + 1.2254951988813942, + -5.392615434322733 + ], + [ + 16.573412982051455, + 1.2003866886099814, + -5.398863822065815 + ], + [ + 16.5116340941951, + 1.944121604737567, + -5.524594594038722 + ], + [ + 16.869549196492553, + 1.9813821140002064, + -5.514181429443312 + ], + [ + 16.871787120552145, + 1.8647086617305682, + -5.173619691675564 + ], + [ + 16.51387201825469, + 1.8274481524679287, + -5.184032856270974 + ], + [ + 16.42834667964558, + 2.5688515694635328, + -5.309635529614328 + ], + [ + 16.7846492963754, + 2.6182071600447476, + -5.2950591449506605 + ], + [ + 16.786946393741033, + 2.501089855152273, + -4.954650184671387 + ], + [ + 16.430643777011213, + 2.451734264571058, + -4.969226569335054 + ], + [ + 16.321454530513762, + 3.1900571966622215, + -5.094649929763284 + ], + [ + 16.675689000788857, + 3.25143185717495, + -5.075912504223214 + ], + [ + 16.678087327064, + 3.133726258673143, + -4.735707213093859 + ], + [ + 16.323852856788903, + 3.072351598160415, + -4.754444638633928 + ], + [ + 16.19110492277521, + 3.806847670313919, + -4.8796374986690205 + ], + [ + 16.542819404552098, + 3.880146454929297, + -4.856741833526394 + ], + [ + 16.54537198206028, + 3.7617109678398744, + -4.51679107275955 + ], + [ + 16.193657500283393, + 3.688412183224496, + -4.539686737902176 + ], + [ + 16.037478713610337, + 4.418338253346534, + -4.664597944526281 + ], + [ + 16.38622603011455, + 4.503447481195562, + -4.637547462718137 + ], + [ + 16.388996676057655, + 4.384143999021606, + -4.2979020554737195 + ], + [ + 16.040249359553442, + 4.299034771172578, + -4.324952537281863 + ], + [ + 15.860790093538732, + 5.023651552168432, + -4.449530979584742 + ], + [ + 16.206128569074785, + 5.120439046397935, + -4.418329725199583 + ], + [ + 16.209191689256784, + 5.000133583755214, + -4.079040448986686 + ], + [ + 15.863853213720729, + 4.903346089525711, + -4.1102417033718455 + ], + [ + 15.661286290990375, + 5.621918771219892, + -4.234436320192043 + ], + [ + 16.002780574227405, + 5.730234137133342, + -4.199088957865233 + ], + [ + 16.00622092289145, + 5.608797450764463, + -3.8602065369508156 + ], + [ + 15.66472663965442, + 5.500482084851013, + -3.8955538992776257 + ], + [ + 15.439247229710382, + 6.2122809557564, + -4.019313686836178 + ], + [ + 15.776469102565104, + 6.331955897376918, + -3.9798255010525767 + ], + [ + 15.780381508981684, + 6.209264093802952, + -3.6414005988781075 + ], + [ + 15.443159636126962, + 6.089589152182434, + -3.680888784661709 + ], + [ + 15.194985139460929, + 6.793890221092484, + -3.8041628041872992 + ], + [ + 15.527514309734805, + 6.924738895393737, + -3.7605396984912205 + ], + [ + 15.532003372266871, + 6.80067402349248, + -3.4226229100984153 + ], + [ + 15.199474201992995, + 6.6698253491912265, + -3.466246015794494 + ], + [ + 14.928844120550472, + 7.365910966552897, + -3.5889834011388664 + ], + [ + 15.256268996517615, + 7.507730374513849, + -3.5412318972514907 + ], + [ + 15.261448744974981, + 7.382181001352747, + -3.2038737417182754 + ], + [ + 14.934023869007838, + 7.240361593391795, + -3.251625245605651 + ], + [ + 14.641199662786159, + 7.9275210723984, + -3.3737752108481867 + ], + [ + 14.963118107972546, + 8.080091485950238, + -3.321902447692553 + ], + [ + 14.969111635152126, + 7.9529532542452595, + -2.985153360580385 + ], + [ + 14.647193189965739, + 7.800382840693421, + -3.0370261237360188 + ], + [ + 14.33245811951015, + 8.477913078016485, + -3.1585379707763 + ], + [ + 14.648478185953167, + 8.640998501864674, + -3.1025517034100267 + ], + [ + 14.655417249343657, + 8.512174667483798, + -2.7664620292236997 + ], + [ + 14.33939718290064, + 8.349089243635609, + -2.822448296589973 + ], + [ + 14.003056137444837, + 9.016295339692693, + -2.9432714227272365 + ], + [ + 14.312796775774652, + 9.189644006914287, + -2.883180021183127 + ], + [ + 14.320821370483742, + 9.059045954895847, + -2.547800005844193 + ], + [ + 14.011080732153927, + 8.885697287674253, + -2.6078914073883026 + ], + [ + 13.653460043134906, + 9.541893166306105, + -2.7279753128866107 + ], + [ + 13.956551787875783, + 9.725238066542339, + -2.6637877609213225 + ], + [ + 13.965809691914867, + 9.592785804153882, + -2.3291675442562463 + ], + [ + 13.66271794717399, + 9.409440903917648, + -2.3933550962215344 + ], + [ + 13.284165186836363, + 10.053949931322697, + -2.512649391859573 + ], + [ + 13.580250815386506, + 10.24700937030966, + -2.4443752856105316 + ], + [ + 13.590897108521743, + 10.112631995732299, + -2.110564893854712 + ], + [ + 13.2948114799716, + 9.919572556745335, + -2.1788390001037534 + ], + [ + 12.895695244763447, + 10.5517281594928, + -2.297293414708092 + ], + [ + 13.18443040857621, + 10.754206348598952, + -2.224942961258852 + ], + [ + 13.196626966025692, + 10.617842493885128, + -1.8919922995776228 + ], + [ + 12.907891802212928, + 10.415364304778976, + -1.964342753026863 + ], + [ + 12.48860148066414, + 11.034510586693695, + -2.08190714098757 + ], + [ + 12.769655307221258, + 11.246098261062128, + -2.005491156841843 + ], + [ + 12.783570269545613, + 11.107696508081204, + -1.673450001869573 + ], + [ + 12.502516442988496, + 10.896108833712772, + -1.7498659860152999 + ], + [ + 12.06346196775331, + 11.501601191395372, + -1.866490334782795 + ], + [ + 12.33651763199205, + 11.721976255221476, + -1.7860202442473652 + ], + [ + 12.35232485259, + 11.581495523377322, + -1.4549382366457762 + ], + [ + 12.07926918835126, + 11.361120459551218, + -1.535408327181206 + ], + [ + 11.6208807720894, + 11.952326196266707, + -1.6510427647432098 + ], + [ + 11.885636036020035, + 12.181154393678147, + -1.5665305982199802 + ], + [ + 11.903514507700997, + 12.038564298255906, + -1.2364572352567913 + ], + [ + 11.638759243770362, + 11.809736100844466, + -1.3209694017800209 + ], + [ + 11.161487098536213, + 12.386035038480733, + -1.435564204117493 + ], + [ + 11.417654817863772, + 12.622970648426733, + -1.3470225963049252 + ], + [ + 11.437788080026412, + 12.478251828501866, + -1.0180072244539362 + ], + [ + 11.181620360698853, + 12.241316218555866, + -1.106548832266504 + ], + [ + 10.685934400505138, + 12.802101307320926, + -1.2200544307874663 + ], + [ + 10.933242997149772, + 13.046787860821958, + -1.1274966187916717 + ], + [ + 10.955818525148361, + 12.899932275743437, + -0.7995884263553892 + ], + [ + 10.708509928503727, + 12.655245722242405, + -0.8921462383511837 + ], + [ + 10.194899454725432, + 13.19992364773607, + -1.0045132273013007 + ], + [ + 10.433093354218878, + 13.451994665793087, + -0.907953048657073 + ], + [ + 10.458301932548201, + 13.303005859333874, + -0.581201058412983 + ], + [ + 10.220108033054755, + 13.050934841276856, + -0.6777612370572106 + ], + [ + 9.689081402340827, + 13.578926628538506, + -0.7889403809060207 + ], + [ + 9.917921435161922, + 13.838006378953208, + -0.6883922715081043 + ], + [ + 9.945956516136222, + 13.68689971030493, + -0.3628453333796929 + ], + [ + 9.717116483315127, + 13.427819959890227, + -0.46339344277760924 + ], + [ + 9.169200757679361, + 13.93856157399001, + -0.5733356835793141 + ], + [ + 9.3884645236794, + 14.20426584530424, + -0.46881467552421485 + ], + [ + 9.419521573321331, + 14.051068686178775, + -0.1445214592778293 + ], + [ + 9.200257807321293, + 13.785364414864544, + -0.24904246733292854 + ], + [ + 8.635998386090387, + 14.278307357570455, + -0.35769893206063186 + ], + [ + 8.845480581248887, + 14.550244248293904, + -0.24922065139929533 + ], + [ + 8.879756414140521, + 14.394996145482484, + 0.07377036063206033 + ], + [ + 8.670274218982021, + 14.123059254759035, + -0.034707920029276196 + ], + [ + 8.090234452287502, + 14.597671156777531, + -0.14202992788157753 + ], + [ + 8.289747157130591, + 14.875441878038485, + -0.02961059228327073 + ], + [ + 8.327439262010186, + 14.718194680868452, + 0.2920299278815779 + ], + [ + 8.127926557167097, + 14.440423959607498, + 0.1796105922832711 + ], + [ + 7.532687340679298, + 14.896189167860173, + 0.07367152260442367 + ], + [ + 7.722060269786108, + 15.179388857584234, + 0.19001510627667811 + ], + [ + 7.763366127701388, + 15.020206809804636, + 0.5102570488241468 + ], + [ + 7.573993198594578, + 14.737007120080575, + 0.39391346515189235 + ], + [ + 6.964152549210627, + 15.17342727944457, + 0.28940560819317523 + ], + [ + 7.143233261327612, + 15.46164582614114, + 0.40965604639525155 + ], + [ + 7.188349658178798, + 15.300605621860722, + 0.7284515346639653 + ], + [ + 7.0092689460618125, + 15.012387075164153, + 0.608201096461889 + ], + [ + 6.385441558275895, + 15.428981704069356, + 0.5051725128014836 + ], + [ + 6.554095626654654, + 15.721804578285237, + 0.6293118279085143 + ], + [ + 6.603217961978226, + 15.558995381679756, + 0.9466132014842307 + ], + [ + 6.434563893599467, + 15.266172507463875, + 0.8224738863772 + ], + [ + 5.79738067630259, + 15.662479566705652, + 0.7209724154396571 + ], + [ + 5.955491818973264, + 15.959488658189567, + 0.8489820484337153 + ], + [ + 6.008813412830526, + 15.79501208678952, + 1.164741870274629 + ], + [ + 5.850702270159853, + 15.498002995305605, + 1.036732237280571 + ], + [ + 5.2008098636375015, + 15.87357944939827, + 0.9368054901847518 + ], + [ + 5.348280033426987, + 16.174353908009213, + 1.068666303429453 + ], + [ + 5.405991433269754, + 16.008323979473833, + 1.3828373669581062 + ], + [ + 5.258521263480268, + 15.70754952086289, + 1.250976553713405 + ], + [ + 4.596581536400309, + 16.061971891226026, + 1.1526719061545418 + ], + [ + 4.733330970602043, + 16.366088969612512, + 1.2883641862561495 + ], + [ + 4.79561925999129, + 16.19863201199099, + 1.600899522416888 + ], + [ + 4.658869825789556, + 15.894514933604505, + 1.4652072423152804 + ], + [ + 3.9855593519989383, + 16.227379842842296, + 1.368571827482238 + ], + [ + 4.11152658169869, + 16.5344157389184, + 1.5080752882368464 + ], + [ + 4.1785746927507255, + 16.365670264494383, + 1.8189281725177655 + ], + [ + 4.0526074630509745, + 16.05863436841828, + 1.679424711763157 + ], + [ + 3.368616978028464, + 16.3695590749209, + 1.5845054132919434 + ], + [ + 3.4837587971881696, + 16.679089772168812, + 1.727799198718297 + ], + [ + 3.555744828616775, + 16.50920631507927, + 2.0369231581366267 + ], + [ + 3.440603009457069, + 16.199675617831357, + 1.893629372710273 + ], + [ + 2.7466368463003223, + 16.488298539897638, + 1.800472817674881 + ], + [ + 2.850928240799246, + 16.799900643535032, + 1.9475355051323744 + ], + [ + 2.928024783411353, + 16.629041561449238, + 2.2548843251822626 + ], + [ + 2.823733388912429, + 16.317439457811844, + 2.1078216377247694 + ], + [ + 2.120508893771153, + 16.583420686463892, + 2.016474189666333 + ], + [ + 2.213942930700287, + 16.8966722535279, + 2.1672837930577287 + ], + [ + 2.2963164021871805, + 16.72501149376613, + 2.472811524619381 + ], + [ + 2.2028823652580467, + 16.41175992670212, + 2.322001921227985 + ], + [ + 1.4911292921604835, + 16.65478172633545, + 2.2325096732233787 + ], + [ + 1.573716969762004, + 16.969263087753227, + 2.387043646281763 + ], + [ + 1.6615269606076317, + 16.79698591831798, + 2.6907046124909053 + ], + [ + 1.5789392830061113, + 16.482504556900203, + 2.536170639432521 + ], + [ + 0.8593991680641614, + 16.70227185288764, + 2.448579407203367 + ], + [ + 0.931169226802499, + 17.017566425626534, + 2.6068146468628512 + ], + [ + 1.0245678591054848, + 16.844869131711, + 2.9085634499394906 + ], + [ + 0.952797800367147, + 16.529574558972108, + 2.7503282102800064 + ], + [ + 0.22622331538516888, + 16.72581541131586, + 2.664683525343151 + ], + [ + 0.2872220107297674, + 17.041510498733793, + 2.826596375192815 + ], + [ + 0.38635331170608816, + 16.86860004536297, + 3.1263879032282804 + ], + [ + 0.32535461636148966, + 16.55290495794504, + 2.9644750533786164 + ], + [ + -0.40749109808402023, + 16.725371020049753, + 2.8808221562390988 + ], + [ + -0.35720026049220915, + 17.041058598598763, + 3.0463884100596608 + ], + [ + -0.252200968593085, + 16.868152260147628, + 3.344177843760899 + ], + [ + -0.3024918061848961, + 16.552464681598618, + 3.178611589940337 + ], + [ + -1.0408358280837098, + 16.700931643218286, + 3.0969954233278782 + ], + [ + -1.0011723941197483, + 17.016209133690936, + 3.2661903287105623 + ], + [ + -0.8901790859910932, + 16.843534091111433, + 3.5619331481006933 + ], + [ + -0.9298425199550546, + 16.528256600638784, + 3.3927382427180093 + ], + [ + -1.6729028534628214, + 16.652524614032988, + 3.3132034448679817 + ], + [ + -1.6437697582088138, + 16.966995635582567, + 3.4860017069150393 + ], + [ + -1.526666277704042, + 16.794788542256324, + 3.77965369798916 + ], + [ + -1.5557993729580497, + 16.480317520706745, + 3.6068554359421023 + ], + [ + -2.3027856760528382, + 16.58021160902621, + 3.529446333922066 + ], + [ + -2.2840696165559287, + 16.89348671423732, + 3.7058221190284035 + ], + [ + -2.1607502275431973, + 16.721993231454082, + 3.997339380363649 + ], + [ + -2.179466287040107, + 16.408718126242974, + 3.8209635952573118 + ], + [ + -2.9295806189823925, + 16.484088573151727, + 3.7457241983400356 + ], + [ + -2.921152461059552, + 16.79578596248744, + 3.925651138055378 + ], + [ + -2.7915223753609575, + 16.62526026562968, + 4.214990087374253 + ], + [ + -2.799950533283798, + 16.313562876293968, + 4.035063147658911 + ], + [ + -3.552388121575886, + 16.36428559582477, + 3.962037140742926 + ], + [ + -3.554103339564279, + 16.674031809830627, + 4.145488335713939 + ], + [ + -3.4180792204824177, + 16.504736066422776, + 4.432605716399934 + ], + [ + -3.4163640024940247, + 16.19498985241692, + 4.24915452142892 + ], + [ + -4.170314028982906, + 16.22096673804912, + 4.178385258507563 + ], + [ + -4.18201317725644, + 16.528397325751843, + 4.365333282499348 + ], + [ + -4.039523617250339, + 16.360601146607557, + 4.650186170063869 + ], + [ + -4.027824468976805, + 16.053170558904835, + 4.463238146072085 + ], + [ + -4.782470874691284, + 16.054329810848444, + 4.394768643751995 + ], + [ + -4.803980089688734, + 16.35908997284905, + 4.585185547748356 + ], + [ + -4.6549660608241235, + 16.19306983762197, + 4.8677313562480045 + ], + [ + -4.633456845826673, + 15.888309675621366, + 4.677314452251643 + ], + [ + -5.38797915408539, + 15.864606105289203, + 4.611187383321741 + ], + [ + -5.419110685523489, + 16.1663513101153, + 4.8050446997036005 + ], + [ + -5.2635259613889245, + 16.00238996862753, + 5.085241188106832 + ], + [ + -5.232394429950825, + 15.700644763801435, + 4.8913838717249725 + ], + [ + -5.9859685872224455, + 15.652060074451635, + 4.8276415587767785 + ], + [ + -6.026521357098716, + 15.950456646802566, + 5.024910305578135 + ], + [ + -5.8643329049489745, + 15.788842497590407, + 5.302715584080365 + ], + [ + -5.823780135072704, + 15.490445925239475, + 5.1054468372790085 + ], + [ + -6.57557936901386, + 15.416988967774266, + 5.044131246379377 + ], + [ + -6.6253395569388545, + 15.71171464736476, + 5.24478193162015 + ], + [ + -6.456527898900199, + 15.55274109494313, + 5.520154467906337 + ], + [ + -6.406767710975204, + 15.258015415352636, + 5.319503782665564 + ], + [ + -7.155963405014901, + 15.159722418266067, + 5.260656517082681 + ], + [ + -7.214705058352158, + 15.450466888049238, + 5.4646591431778075 + ], + [ + -7.0392646006002595, + 15.294431680454178, + 5.737557768631603 + ], + [ + -6.980522947263002, + 15.003687210671007, + 5.533555142536476 + ], + [ + -7.726285531045326, + 14.880621983147902, + 5.4772174365201085 + ], + [ + -7.79377119827979, + 15.167087365776633, + 5.6845415047642325 + ], + [ + -7.6117105271801435, + 15.014291913999555, + 5.954925420622748 + ], + [ + -7.544224859945679, + 14.727826531370825, + 5.7476013523786245 + ], + [ + -8.285724714885276, + 14.580080638552175, + 5.693814064995537 + ], + [ + -8.361706100587408, + 14.861981960018701, + 5.904428580122604 + ], + [ + -8.17304824486979, + 14.712730640996185, + 6.172257363575894 + ], + [ + -8.097066859167658, + 14.430829319529659, + 5.961642848448826 + ], + [ + -8.833475238314909, + 14.258522228975785, + 5.910446457474283 + ], + [ + -8.917693878018289, + 14.535587848452774, + 6.124319932291391 + ], + [ + -8.722476536140972, + 14.390187293321716, + 6.389553542525718 + ], + [ + -8.638257896437592, + 14.113121673844727, + 6.17568006770861 + ], + [ + -9.368747857793178, + 13.916400872246685, + 6.127114663574899 + ], + [ + -9.46093581105826, + 14.188372877238805, + 6.34421512366967 + ], + [ + -9.259211543004088, + 14.04713124660856, + 6.606813907853676 + ], + [ + -9.167023589739006, + 13.77515924161644, + 6.389713447758904 + ], + [ + -9.890770942100115, + 13.554200320828892, + 6.343818727561736 + ], + [ + -9.990651501995941, + 13.820834886831712, + 6.56411371608255 + ], + [ + -9.78248788483079, + 13.684061134862167, + 6.824038415295405 + ], + [ + -9.682607324934963, + 13.417426568859348, + 6.603743426774591 + ], + [ + -10.39879158529893, + 13.172433280353683, + 6.5605586883383475 + ], + [ + -10.50608000249829, + 13.433500994306502, + 6.784015270846684 + ], + [ + -10.29155974911269, + 13.30150412341403, + 7.041227025947367 + ], + [ + -10.18427133191333, + 13.040436409461211, + 6.817770443439031 + ], + [ + -10.892076693407978, + 12.771640686326942, + 6.777334579441648 + ], + [ + -11.00648091305968, + 13.026926833237551, + 7.003919348835842 + ], + [ + -10.785701953606159, + 12.900015141279079, + 7.258379706272633 + ], + [ + -10.671297733954457, + 12.644728994368469, + 7.031794936878439 + ], + [ + -11.369914043209254, + 12.352390940023117, + 6.994146429036932 + ], + [ + -11.491135452723961, + 12.601695752235301, + 7.22382551054658 + ], + [ + -11.264210978355836, + 12.48017607404454, + 7.475496428105926 + ], + [ + -11.142989568841129, + 12.230871261832355, + 7.2458173465962785 + ], + [ + -11.831613311658593, + 11.915279104635747, + 7.210994259913622 + ], + [ + -11.959347497522213, + 12.158417973304417, + 7.443733316163916 + ], + [ + -11.72640596613379, + 12.042594918473284, + 7.692577168657807 + ], + [ + -11.59867178027017, + 11.799456049804615, + 7.459838112407512 + ], + [ + -12.276507074403774, + 11.460926062812012, + 7.4278780894819 + ], + [ + -12.410444586114572, + 11.697729711245861, + 7.6636423256271184 + ], + [ + -12.171629689877943, + 11.587904900058463, + 7.909621910518102 + ], + [ + -12.037692178167145, + 11.351101251624614, + 7.673857674372884 + ], + [ + -12.703951771959684, + 10.989977636755505, + 7.64479792977008 + ], + [ + -12.843778891172349, + 11.220292255382795, + 7.883552098695469 + ], + [ + -12.599249485761643, + 11.116763554818842, + 8.126630641658492 + ], + [ + -12.459422366548978, + 10.886448936191552, + 7.887876472733104 + ], + [ + -13.113328642135098, + 10.503103672135532, + 7.861753787422822 + ], + [ + -13.25872815508678, + 10.726791014944881, + 8.10346219501409 + ], + [ + -13.008658150577016, + 10.629851776674128, + 8.343603355434317 + ], + [ + -12.863258637625334, + 10.40616443386478, + 8.101894947843048 + ], + [ + -13.504044617352752, + 10.000997087094618, + 8.078745663700142 + ], + [ + -13.65469658864274, + 10.217934529499082, + 8.323372174179791 + ], + [ + -13.399274802166689, + 10.127872831788267, + 8.560540050585574 + ], + [ + -13.248622830876702, + 9.910935389383802, + 8.315913540105925 + ], + [ + -13.875533185553707, + 9.4843728876967, + 8.295773554477195 + ], + [ + -14.031115731349912, + 9.694453445865985, + 8.543281595806873 + ], + [ + -13.770545701692704, + 9.611551341314797, + 8.777440731237087 + ], + [ + -13.614963155896499, + 9.401470783145513, + 8.52993268990741 + ], + [ + -14.227255213428384, + 8.953967151207815, + 8.51283745024494 + ], + [ + -14.387445272180088, + 9.157099463009619, + 8.76319001959301 + ], + [ + -14.121945036587155, + 9.08163223402247, + 8.99430540689792 + ], + [ + -13.96175497783545, + 8.878499922220666, + 8.74395283754985 + ], + [ + -14.558699730769396, + 8.410535978648506, + 8.72993733611151 + ], + [ + -14.72317382951682, + 8.606644246435815, + 8.98309700538504 + ], + [ + -14.452975663086198, + 8.53887967032164, + 9.21113409245992 + ], + [ + -14.288501564338773, + 8.34277140253433, + 8.95797442318639 + ], + [ + -14.869384674796521, + 7.854854418102182, + 8.947073191804485 + ], + [ + -15.037819689183685, + 8.043878313678361, + 9.203002113244796 + ], + [ + -14.763169807308213, + 7.984075939251332, + 9.427926808195522 + ], + [ + -14.594734792921049, + 7.7950520436751525, + 9.17199788675521 + ], + [ + -15.15885759336046, + 7.287715360307171, + 9.164244991673877 + ], + [ + -15.330931499478382, + 7.4696098924947565, + 9.422904903514851 + ], + [ + -15.052089723896854, + 7.41802033002479, + 9.644683579754696 + ], + [ + -14.880015817778933, + 7.236125797837205, + 9.386023667913722 + ], + [ + -15.42669630599037, + 6.709928408100898, + 9.38145270469601 + ], + [ + -15.602088922202975, + 6.884663753432944, + 9.642804936884273 + ], + [ + -15.319328311311578, + 6.841527979766156, + 9.86140443816113 + ], + [ + -15.143935695098973, + 6.66679263443411, + 9.600052205972867 + ], + [ + -15.672509521809872, + 6.1223187213237695, + 9.598696294478131 + ], + [ + -15.850903238744895, + 6.289880018468022, + 9.862701774454292 + ], + [ + -15.564509682910895, + 6.255428699104001, + 10.078089419807586 + ], + [ + -15.386115965975872, + 6.087867401959748, + 9.814083939831425 + ], + [ + -15.895937413407424, + 5.525725838826679, + 9.815975719263848 + ], + [ + -16.077017910328962, + 5.686112947442682, + 10.082594977803902 + ], + [ + -15.7872896930377, + 5.660565777317661, + 10.29473856645044 + ], + [ + -15.606209196116163, + 5.500178668701658, + 10.028119307910385 + ], + [ + -16.096652145809628, + 4.921002479260265, + 10.03329093193939 + ], + [ + -16.28010909162796, + 5.074229704077473, + 10.302484109055431 + ], + [ + -15.987356417381134, + 5.057794768760244, + 10.51135192520347 + ], + [ + -15.803899471562806, + 4.9045675439430365, + 10.24215874808743 + ], + [ + -16.274358359769796, + 4.309013322356097, + 10.250641880040634 + ], + [ + -16.45988609698724, + 4.4551091033468575, + 10.52236873093998 + ], + [ + -16.16443058695536, + 4.447982262307744, + 10.727929548530794 + ], + [ + -15.978902849737915, + 4.301886481316983, + 10.456202697631447 + ], + [ + -16.428793608649283, + 3.6906337724391367, + 10.468028505760962 + ], + [ + -16.61609181858836, + 3.8296403420439766, + 10.74224840686282 + ], + [ + -16.31826597510263, + 3.8320046356064266, + 10.944471494239032 + ], + [ + -16.130967765163554, + 3.6929980660015866, + 10.670251593137174 + ], + [ + -16.55972874823528, + 3.066748705937891, + 10.685450745959903 + ], + [ + -16.748503095946962, + 3.1987217143815365, + 10.962122700968651 + ], + [ + -16.448649736995804, + 3.210746795911083, + 11.160977825468665 + ], + [ + -16.259875389284122, + 3.0787737874674375, + 10.884305870459917 + ], + [ + -16.666968278905937, + 2.4382512046831066, + 10.902908532172551 + ], + [ + -16.856931036211343, + 2.5632593144979476, + 11.181991178206749 + ], + [ + -16.5554027011836, + 2.5851009093245163, + 11.37744861068459 + ], + [ + -16.365439943878194, + 2.4600927995096753, + 11.098365964650393 + ], + [ + -16.75035063962181, + 1.8060412768075391, + 11.120401790619828 + ], + [ + -16.941221284800026, + 1.9241657277566282, + 11.40185340439603 + ], + [ + -16.638379612791145, + 1.9559651202636092, + 11.593883923665887 + ], + [ + -16.44750896761293, + 1.8378406693145202, + 11.312432309889685 + ], + [ + -16.809748453291572, + 1.1710245670789428, + 11.337930442219495 + ], + [ + -17.001254245989387, + 1.2823587127428766, + 11.621708946289948 + ], + [ + -16.697469328057526, + 1.3242422629901578, + 11.810283843494787 + ], + [ + -16.50596353535971, + 1.212908117326224, + 11.526505339424334 + ], + [ + -16.84506872312964, + 0.5341110585146369, + 11.555494402597999 + ], + [ + -17.03694525313549, + 0.6387598758756414, + 11.841557371641281 + ], + [ + -16.732594959962118, + 0.6908385670540955, + 12.026648454544864 + ], + [ + -16.540718429956268, + 0.586189749693091, + 11.740585485501581 + ], + [ + -16.85625297969361, + -0.10378623285954643, + 11.77309358210304 + ], + [ + -17.048244688287987, + -0.005706659437478289, + 12.061398249266718 + ], + [ + -16.74371397476136, + 0.056662358504462704, + 12.242977846468388 + ], + [ + -16.551722266166983, + -0.041417214917605444, + 11.954673179304711 + ], + [ + -16.843277378360206, + -0.741752568232239, + 11.990727885817035 + ], + [ + -17.035138051027864, + -0.6501155871664088, + 12.281231149111363 + ], + [ + -16.730818239328087, + -0.5773772412724547, + 12.45927211418296 + ], + [ + -16.53895756666043, + -0.6690142223382849, + 12.168768850888632 + ], + [ + -16.806152747069703, + -1.3788727993287104, + 12.208397213571267 + ], + [ + -16.99764597643511, + -1.2935417546051147, + 12.501055642313014 + ], + [ + -16.69393401925585, + -1.2103716172260455, + 12.675531357857302 + ], + [ + -16.502440789890443, + -1.2957026619496412, + 12.382872929115555 + ], + [ + -16.74492458424035, + -2.014232682943867, + 12.426101459960867 + ], + [ + -16.9358242021666, + -1.9350614979558518, + 12.72087130126626 + ], + [ + -16.633121927760882, + -1.8414139609645779, + 12.891755682896276 + ], + [ + -16.442222309834634, + -1.920585145952593, + 12.596985841590882 + ], + [ + -16.659673006826026, + -2.6469201947944825, + 12.64384051436058 + ], + [ + -16.849763484699036, + -2.573753975609418, + 12.94067769968643 + ], + [ + -16.54847682548486, + -2.4696005678713284, + 13.107945199925137 + ], + [ + -16.35838634761185, + -2.542766787056393, + 12.811108014599286 + ], + [ + -16.550512648562236, + -3.2760268407983473, + 12.861614260941295 + ], + [ + -16.739589464865805, + -3.20870249718312, + 13.160474412673315 + ], + [ + -16.440127671371346, + -3.094032129162045, + 13.324100024772989 + ], + [ + -16.251050855067778, + -3.161356472777272, + 13.025239873040968 + ], + [ + -16.417592508517554, + -3.900648963890697, + 13.079422578687382 + ], + [ + -16.605462482890854, + -3.8389958463851244, + 13.380261016774703 + ], + [ + -16.308237324858556, + -3.7138150170412687, + 13.540220278455482 + ], + [ + -16.120367350485257, + -3.7754681345468413, + 13.23938184036816 + ], + [ + -16.261095750139223, + -4.519889044492841, + 13.297265341414745 + ], + [ + -16.447577343196393, + -4.4637295957828025, + 13.600037090049659 + ], + [ + -16.153002299700606, + -4.328062561125819, + 13.756306087156686 + ], + [ + -15.966520706643434, + -4.384222009835857, + 13.453534338521772 + ], + [ + -16.08123945105331, + -5.132856992756065, + 13.515142417789733 + ], + [ + -16.266163029334393, + -5.082007411565366, + 13.819802212131636 + ], + [ + -15.974652469797714, + -4.9358963143181525, + 13.972357582210265 + ], + [ + -15.789728891516631, + -4.986745895508852, + 13.667697787868361 + ], + [ + -15.878274303951107, + -5.7386714307139615, + 13.733053671348744 + ], + [ + -16.061482369464816, + -5.692942346405674, + 14.03955596429131 + ], + [ + -15.773450727484343, + -5.536447306328349, + 14.188374900079834 + ], + [ + -15.590242661970635, + -5.582176390636636, + 13.881872607137268 + ], + [ + -15.652484268964217, + -6.336460962489746, + 13.950998960518625 + ], + [ + -15.833831652875578, + -6.295658118544177, + 14.259297929499157 + ], + [ + -15.549692594791575, + -6.128857283062708, + 14.40435818233852 + ], + [ + -15.368345210880214, + -6.169660127008278, + 14.096059213357988 + ], + [ + -15.404186178001234, + -6.925365430720985, + 14.168978138637863 + ], + [ + -15.583540198110517, + -6.889290375238474, + 14.479027692487845 + ], + [ + -15.303705788266543, + -6.712279930118509, + 14.620307575647855 + ], + [ + -15.12435176815726, + -6.74835498560102, + 14.310258021797873 + ], + [ + -15.133729291588631, + -7.504537157382428, + 14.386991053978486 + ], + [ + -15.310969873342417, + -7.472987938745045, + 14.698744839814278 + ], + [ + -15.035849737997674, + -7.28588207864825, + 14.836223231735806 + ], + [ + -14.858609156243888, + -7.317431297285633, + 14.524469445900014 + ], + [ + -14.841494808827354, + -8.073142167209268, + 14.605037549768754 + ], + [ + -15.01651456969741, + -8.045914033026003, + 14.918448959921426 + ], + [ + -14.74651506155904, + -7.848844891883496, + 15.052105307374111 + ], + [ + -14.571495300688984, + -7.876073026066761, + 14.73869389722144 + ], + [ + -14.52789533114508, + -8.630361391946476, + 14.823117464216597 + ], + [ + -14.7005996283059, + -8.607247489401935, + 15.138139643199837 + ], + [ + -14.436122993650939, + -8.400365030636927, + 15.267953964354827 + ], + [ + -14.263418696490119, + -8.423478933181467, + 14.952931785371588 + ], + [ + -14.193374280591044, + -9.17539185367676, + 15.041230630533825 + ], + [ + -14.36368122192222, + -9.15618392940354, + 15.357816482048912 + ], + [ + -14.105124772276191, + -8.939655796132836, + 15.483769369466174 + ], + [ + -13.934817830945015, + -8.958863720406057, + 15.167183517951086 + ], + [ + -13.838405273486918, + -9.707447825508158, + 15.259376876961015 + ], + [ + -14.006245692021594, + -9.691936923108036, + 15.577479070937791 + ], + [ + -13.754000982353014, + -9.465948248549388, + 15.699551694467557 + ], + [ + -13.58616056381834, + -9.48145915094951, + 15.381449500490781 + ], + [ + -13.463491450312084, + -10.225761967934243, + 15.47755602679323 + ], + [ + -13.62880884234747, + -10.213739121283103, + 15.797127006466011 + ], + [ + -13.38326085772509, + -9.978492299692181, + 15.915301116063915 + ], + [ + -13.217943465689705, + -9.990515146343322, + 15.595730136391134 + ], + [ + -13.069164762765743, + -10.72958643921357, + 15.695767898406423 + ], + [ + -13.231915189945731, + -10.720843359699446, + 16.016759887423813 + ], + [ + -12.99344154258799, + -10.47655777825642, + 16.131017815879297 + ], + [ + -12.830691115408001, + -10.485300857770545, + 15.810025826861906 + ], + [ + -12.6559852190109, + -11.218193978151415, + 15.914012305284585 + ], + [ + -12.816137174784012, + -11.212523734014319, + 16.236377314852113 + ], + [ + -12.585107313408143, + -10.959435466175133, + 16.3467019804297 + ], + [ + -12.42495535763503, + -10.96510571031223, + 16.024336970862173 + ], + [ + -12.224540088166343, + -11.69087895770585, + 16.132289056047643 + ], + [ + -12.382074329114323, + -11.688076643671884, + 16.45597889210216 + ], + [ + -12.158848762465777, + -11.42643810459334, + 16.56235380109521 + ], + [ + -12.001314521517797, + -11.429240418627305, + 16.238663965040693 + ], + [ + -11.775443065172707, + -12.146958407880986, + 16.350597954480065 + ], + [ + -11.930352407795775, + -12.146821803311783, + 16.675564224894828 + ], + [ + -11.71528194420715, + -11.876901368052101, + 16.77797347409136 + ], + [ + -11.560372601584083, + -11.877037972621304, + 16.4530072036766 + ], + [ + -11.309333397216578, + -12.585773006413824, + 16.56893879956018 + ], + [ + -11.461622480850561, + -12.588103220225344, + 16.895132921379556 + ], + [ + -11.255047485643251, + -12.310184805512797, + 16.99356120043982 + ], + [ + -11.102758402009268, + -12.307854591701277, + 16.667367078620444 + ], + [ + -10.826874972953275, + -13.006688035806674, + 16.787311385490256 + ], + [ + -10.97655998958112, + -13.011290136448865, + 17.114684592192944 + ], + [ + -10.778809662082383, + -12.725672746900075, + 17.20911718593831 + ], + [ + -10.629124645454539, + -12.721070646257884, + 16.881743979235623 + ], + [ + -10.328755375823642, + -13.409094305304716, + 17.005715501727256 + ], + [ + -10.475863767629159, + -13.415777934135365, + 17.334218850516958 + ], + [ + -10.287255439532442, + -13.122775173891828, + 17.42464164112989 + ], + [ + -10.140147047726925, + -13.11609154506118, + 17.09613829234019 + ], + [ + -9.815684902812949, + -13.792409036468245, + 17.2241509330143 + ], + [ + -9.960255028407756, + -13.800989002900373, + 17.55373531213674 + ], + [ + -9.78109348515491, + -13.500928553736367, + 17.640134781271414 + ], + [ + -9.636523359560103, + -13.492348587304239, + 17.310550402148973 + ], + [ + -9.288395550051089, + -14.156076711040859, + 17.442617459412876 + ], + [ + -9.43047632038629, + -14.166373567893217, + 17.77323359549809 + ], + [ + -9.261053147197032, + -13.859596634930321, + 17.85559682630141 + ], + [ + -9.11897237686183, + -13.849299778077963, + 17.524980690216196 + ], + [ + -8.747639966702378, + -14.499569879868524, + 17.661114856335697 + ], + [ + -8.887290451754563, + -14.511410477402855, + 17.992713321764473 + ], + [ + -8.727883405871163, + -14.198271203645685, + 18.071028000807164 + ], + [ + -8.588232920818978, + -14.186430606111355, + 17.739429535378388 + ], + [ + -8.194190378639819, + -14.822389931680236, + 17.87964289458028 + ], + [ + -8.33147938603606, + -14.835607948867027, + 18.212174114873662 + ], + [ + -8.182351796690027, + -14.516472799851181, + 18.286428533991142 + ], + [ + -8.045062789293786, + -14.50325478266439, + 17.95389731369776 + ], + [ + -7.630928441006862, + -15.122976895837798, + 18.09739656119039 + ], + [ + -7.767049484723335, + -15.13683242768667, + 18.430381674513377 + ], + [ + -7.623152350241915, + -14.814842316891362, + 18.50260343880961 + ], + [ + -7.4870313065254415, + -14.80098678504249, + 18.169618325486624 + ] + ], + "faces": [ + [ + 0, + 4, + 5 + ], + [ + 0, + 5, + 1 + ], + [ + 1, + 5, + 6 + ], + [ + 1, + 6, + 2 + ], + [ + 2, + 6, + 7 + ], + [ + 2, + 7, + 3 + ], + [ + 3, + 7, + 4 + ], + [ + 3, + 4, + 0 + ], + [ + 4, + 8, + 9 + ], + [ + 4, + 9, + 5 + ], + [ + 5, + 9, + 10 + ], + [ + 5, + 10, + 6 + ], + [ + 6, + 10, + 11 + ], + [ + 6, + 11, + 7 + ], + [ + 7, + 11, + 8 + ], + [ + 7, + 8, + 4 + ], + [ + 8, + 12, + 13 + ], + [ + 8, + 13, + 9 + ], + [ + 9, + 13, + 14 + ], + [ + 9, + 14, + 10 + ], + [ + 10, + 14, + 15 + ], + [ + 10, + 15, + 11 + ], + [ + 11, + 15, + 12 + ], + [ + 11, + 12, + 8 + ], + [ + 12, + 16, + 17 + ], + [ + 12, + 17, + 13 + ], + [ + 13, + 17, + 18 + ], + [ + 13, + 18, + 14 + ], + [ + 14, + 18, + 19 + ], + [ + 14, + 19, + 15 + ], + [ + 15, + 19, + 16 + ], + [ + 15, + 16, + 12 + ], + [ + 16, + 20, + 21 + ], + [ + 16, + 21, + 17 + ], + [ + 17, + 21, + 22 + ], + [ + 17, + 22, + 18 + ], + [ + 18, + 22, + 23 + ], + [ + 18, + 23, + 19 + ], + [ + 19, + 23, + 20 + ], + [ + 19, + 20, + 16 + ], + [ + 20, + 24, + 25 + ], + [ + 20, + 25, + 21 + ], + [ + 21, + 25, + 26 + ], + [ + 21, + 26, + 22 + ], + [ + 22, + 26, + 27 + ], + [ + 22, + 27, + 23 + ], + [ + 23, + 27, + 24 + ], + [ + 23, + 24, + 20 + ], + [ + 24, + 28, + 29 + ], + [ + 24, + 29, + 25 + ], + [ + 25, + 29, + 30 + ], + [ + 25, + 30, + 26 + ], + [ + 26, + 30, + 31 + ], + [ + 26, + 31, + 27 + ], + [ + 27, + 31, + 28 + ], + [ + 27, + 28, + 24 + ], + [ + 28, + 32, + 33 + ], + [ + 28, + 33, + 29 + ], + [ + 29, + 33, + 34 + ], + [ + 29, + 34, + 30 + ], + [ + 30, + 34, + 35 + ], + [ + 30, + 35, + 31 + ], + [ + 31, + 35, + 32 + ], + [ + 31, + 32, + 28 + ], + [ + 32, + 36, + 37 + ], + [ + 32, + 37, + 33 + ], + [ + 33, + 37, + 38 + ], + [ + 33, + 38, + 34 + ], + [ + 34, + 38, + 39 + ], + [ + 34, + 39, + 35 + ], + [ + 35, + 39, + 36 + ], + [ + 35, + 36, + 32 + ], + [ + 36, + 40, + 41 + ], + [ + 36, + 41, + 37 + ], + [ + 37, + 41, + 42 + ], + [ + 37, + 42, + 38 + ], + [ + 38, + 42, + 43 + ], + [ + 38, + 43, + 39 + ], + [ + 39, + 43, + 40 + ], + [ + 39, + 40, + 36 + ], + [ + 40, + 44, + 45 + ], + [ + 40, + 45, + 41 + ], + [ + 41, + 45, + 46 + ], + [ + 41, + 46, + 42 + ], + [ + 42, + 46, + 47 + ], + [ + 42, + 47, + 43 + ], + [ + 43, + 47, + 44 + ], + [ + 43, + 44, + 40 + ], + [ + 44, + 48, + 49 + ], + [ + 44, + 49, + 45 + ], + [ + 45, + 49, + 50 + ], + [ + 45, + 50, + 46 + ], + [ + 46, + 50, + 51 + ], + [ + 46, + 51, + 47 + ], + [ + 47, + 51, + 48 + ], + [ + 47, + 48, + 44 + ], + [ + 48, + 52, + 53 + ], + [ + 48, + 53, + 49 + ], + [ + 49, + 53, + 54 + ], + [ + 49, + 54, + 50 + ], + [ + 50, + 54, + 55 + ], + [ + 50, + 55, + 51 + ], + [ + 51, + 55, + 52 + ], + [ + 51, + 52, + 48 + ], + [ + 52, + 56, + 57 + ], + [ + 52, + 57, + 53 + ], + [ + 53, + 57, + 58 + ], + [ + 53, + 58, + 54 + ], + [ + 54, + 58, + 59 + ], + [ + 54, + 59, + 55 + ], + [ + 55, + 59, + 56 + ], + [ + 55, + 56, + 52 + ], + [ + 56, + 60, + 61 + ], + [ + 56, + 61, + 57 + ], + [ + 57, + 61, + 62 + ], + [ + 57, + 62, + 58 + ], + [ + 58, + 62, + 63 + ], + [ + 58, + 63, + 59 + ], + [ + 59, + 63, + 60 + ], + [ + 59, + 60, + 56 + ], + [ + 60, + 64, + 65 + ], + [ + 60, + 65, + 61 + ], + [ + 61, + 65, + 66 + ], + [ + 61, + 66, + 62 + ], + [ + 62, + 66, + 67 + ], + [ + 62, + 67, + 63 + ], + [ + 63, + 67, + 64 + ], + [ + 63, + 64, + 60 + ], + [ + 64, + 68, + 69 + ], + [ + 64, + 69, + 65 + ], + [ + 65, + 69, + 70 + ], + [ + 65, + 70, + 66 + ], + [ + 66, + 70, + 71 + ], + [ + 66, + 71, + 67 + ], + [ + 67, + 71, + 68 + ], + [ + 67, + 68, + 64 + ], + [ + 68, + 72, + 73 + ], + [ + 68, + 73, + 69 + ], + [ + 69, + 73, + 74 + ], + [ + 69, + 74, + 70 + ], + [ + 70, + 74, + 75 + ], + [ + 70, + 75, + 71 + ], + [ + 71, + 75, + 72 + ], + [ + 71, + 72, + 68 + ], + [ + 72, + 76, + 77 + ], + [ + 72, + 77, + 73 + ], + [ + 73, + 77, + 78 + ], + [ + 73, + 78, + 74 + ], + [ + 74, + 78, + 79 + ], + [ + 74, + 79, + 75 + ], + [ + 75, + 79, + 76 + ], + [ + 75, + 76, + 72 + ], + [ + 76, + 80, + 81 + ], + [ + 76, + 81, + 77 + ], + [ + 77, + 81, + 82 + ], + [ + 77, + 82, + 78 + ], + [ + 78, + 82, + 83 + ], + [ + 78, + 83, + 79 + ], + [ + 79, + 83, + 80 + ], + [ + 79, + 80, + 76 + ], + [ + 80, + 84, + 85 + ], + [ + 80, + 85, + 81 + ], + [ + 81, + 85, + 86 + ], + [ + 81, + 86, + 82 + ], + [ + 82, + 86, + 87 + ], + [ + 82, + 87, + 83 + ], + [ + 83, + 87, + 84 + ], + [ + 83, + 84, + 80 + ], + [ + 84, + 88, + 89 + ], + [ + 84, + 89, + 85 + ], + [ + 85, + 89, + 90 + ], + [ + 85, + 90, + 86 + ], + [ + 86, + 90, + 91 + ], + [ + 86, + 91, + 87 + ], + [ + 87, + 91, + 88 + ], + [ + 87, + 88, + 84 + ], + [ + 88, + 92, + 93 + ], + [ + 88, + 93, + 89 + ], + [ + 89, + 93, + 94 + ], + [ + 89, + 94, + 90 + ], + [ + 90, + 94, + 95 + ], + [ + 90, + 95, + 91 + ], + [ + 91, + 95, + 92 + ], + [ + 91, + 92, + 88 + ], + [ + 92, + 96, + 97 + ], + [ + 92, + 97, + 93 + ], + [ + 93, + 97, + 98 + ], + [ + 93, + 98, + 94 + ], + [ + 94, + 98, + 99 + ], + [ + 94, + 99, + 95 + ], + [ + 95, + 99, + 96 + ], + [ + 95, + 96, + 92 + ], + [ + 96, + 100, + 101 + ], + [ + 96, + 101, + 97 + ], + [ + 97, + 101, + 102 + ], + [ + 97, + 102, + 98 + ], + [ + 98, + 102, + 103 + ], + [ + 98, + 103, + 99 + ], + [ + 99, + 103, + 100 + ], + [ + 99, + 100, + 96 + ], + [ + 100, + 104, + 105 + ], + [ + 100, + 105, + 101 + ], + [ + 101, + 105, + 106 + ], + [ + 101, + 106, + 102 + ], + [ + 102, + 106, + 107 + ], + [ + 102, + 107, + 103 + ], + [ + 103, + 107, + 104 + ], + [ + 103, + 104, + 100 + ], + [ + 104, + 108, + 109 + ], + [ + 104, + 109, + 105 + ], + [ + 105, + 109, + 110 + ], + [ + 105, + 110, + 106 + ], + [ + 106, + 110, + 111 + ], + [ + 106, + 111, + 107 + ], + [ + 107, + 111, + 108 + ], + [ + 107, + 108, + 104 + ], + [ + 108, + 112, + 113 + ], + [ + 108, + 113, + 109 + ], + [ + 109, + 113, + 114 + ], + [ + 109, + 114, + 110 + ], + [ + 110, + 114, + 115 + ], + [ + 110, + 115, + 111 + ], + [ + 111, + 115, + 112 + ], + [ + 111, + 112, + 108 + ], + [ + 112, + 116, + 117 + ], + [ + 112, + 117, + 113 + ], + [ + 113, + 117, + 118 + ], + [ + 113, + 118, + 114 + ], + [ + 114, + 118, + 119 + ], + [ + 114, + 119, + 115 + ], + [ + 115, + 119, + 116 + ], + [ + 115, + 116, + 112 + ], + [ + 116, + 120, + 121 + ], + [ + 116, + 121, + 117 + ], + [ + 117, + 121, + 122 + ], + [ + 117, + 122, + 118 + ], + [ + 118, + 122, + 123 + ], + [ + 118, + 123, + 119 + ], + [ + 119, + 123, + 120 + ], + [ + 119, + 120, + 116 + ], + [ + 120, + 124, + 125 + ], + [ + 120, + 125, + 121 + ], + [ + 121, + 125, + 126 + ], + [ + 121, + 126, + 122 + ], + [ + 122, + 126, + 127 + ], + [ + 122, + 127, + 123 + ], + [ + 123, + 127, + 124 + ], + [ + 123, + 124, + 120 + ], + [ + 124, + 128, + 129 + ], + [ + 124, + 129, + 125 + ], + [ + 125, + 129, + 130 + ], + [ + 125, + 130, + 126 + ], + [ + 126, + 130, + 131 + ], + [ + 126, + 131, + 127 + ], + [ + 127, + 131, + 128 + ], + [ + 127, + 128, + 124 + ], + [ + 128, + 132, + 133 + ], + [ + 128, + 133, + 129 + ], + [ + 129, + 133, + 134 + ], + [ + 129, + 134, + 130 + ], + [ + 130, + 134, + 135 + ], + [ + 130, + 135, + 131 + ], + [ + 131, + 135, + 132 + ], + [ + 131, + 132, + 128 + ], + [ + 132, + 136, + 137 + ], + [ + 132, + 137, + 133 + ], + [ + 133, + 137, + 138 + ], + [ + 133, + 138, + 134 + ], + [ + 134, + 138, + 139 + ], + [ + 134, + 139, + 135 + ], + [ + 135, + 139, + 136 + ], + [ + 135, + 136, + 132 + ], + [ + 136, + 140, + 141 + ], + [ + 136, + 141, + 137 + ], + [ + 137, + 141, + 142 + ], + [ + 137, + 142, + 138 + ], + [ + 138, + 142, + 143 + ], + [ + 138, + 143, + 139 + ], + [ + 139, + 143, + 140 + ], + [ + 139, + 140, + 136 + ], + [ + 140, + 144, + 145 + ], + [ + 140, + 145, + 141 + ], + [ + 141, + 145, + 146 + ], + [ + 141, + 146, + 142 + ], + [ + 142, + 146, + 147 + ], + [ + 142, + 147, + 143 + ], + [ + 143, + 147, + 144 + ], + [ + 143, + 144, + 140 + ], + [ + 144, + 148, + 149 + ], + [ + 144, + 149, + 145 + ], + [ + 145, + 149, + 150 + ], + [ + 145, + 150, + 146 + ], + [ + 146, + 150, + 151 + ], + [ + 146, + 151, + 147 + ], + [ + 147, + 151, + 148 + ], + [ + 147, + 148, + 144 + ], + [ + 148, + 152, + 153 + ], + [ + 148, + 153, + 149 + ], + [ + 149, + 153, + 154 + ], + [ + 149, + 154, + 150 + ], + [ + 150, + 154, + 155 + ], + [ + 150, + 155, + 151 + ], + [ + 151, + 155, + 152 + ], + [ + 151, + 152, + 148 + ], + [ + 152, + 156, + 157 + ], + [ + 152, + 157, + 153 + ], + [ + 153, + 157, + 158 + ], + [ + 153, + 158, + 154 + ], + [ + 154, + 158, + 159 + ], + [ + 154, + 159, + 155 + ], + [ + 155, + 159, + 156 + ], + [ + 155, + 156, + 152 + ], + [ + 156, + 160, + 161 + ], + [ + 156, + 161, + 157 + ], + [ + 157, + 161, + 162 + ], + [ + 157, + 162, + 158 + ], + [ + 158, + 162, + 163 + ], + [ + 158, + 163, + 159 + ], + [ + 159, + 163, + 160 + ], + [ + 159, + 160, + 156 + ], + [ + 160, + 164, + 165 + ], + [ + 160, + 165, + 161 + ], + [ + 161, + 165, + 166 + ], + [ + 161, + 166, + 162 + ], + [ + 162, + 166, + 167 + ], + [ + 162, + 167, + 163 + ], + [ + 163, + 167, + 164 + ], + [ + 163, + 164, + 160 + ], + [ + 164, + 168, + 169 + ], + [ + 164, + 169, + 165 + ], + [ + 165, + 169, + 170 + ], + [ + 165, + 170, + 166 + ], + [ + 166, + 170, + 171 + ], + [ + 166, + 171, + 167 + ], + [ + 167, + 171, + 168 + ], + [ + 167, + 168, + 164 + ], + [ + 168, + 172, + 173 + ], + [ + 168, + 173, + 169 + ], + [ + 169, + 173, + 174 + ], + [ + 169, + 174, + 170 + ], + [ + 170, + 174, + 175 + ], + [ + 170, + 175, + 171 + ], + [ + 171, + 175, + 172 + ], + [ + 171, + 172, + 168 + ], + [ + 172, + 176, + 177 + ], + [ + 172, + 177, + 173 + ], + [ + 173, + 177, + 178 + ], + [ + 173, + 178, + 174 + ], + [ + 174, + 178, + 179 + ], + [ + 174, + 179, + 175 + ], + [ + 175, + 179, + 176 + ], + [ + 175, + 176, + 172 + ], + [ + 176, + 180, + 181 + ], + [ + 176, + 181, + 177 + ], + [ + 177, + 181, + 182 + ], + [ + 177, + 182, + 178 + ], + [ + 178, + 182, + 183 + ], + [ + 178, + 183, + 179 + ], + [ + 179, + 183, + 180 + ], + [ + 179, + 180, + 176 + ], + [ + 180, + 184, + 185 + ], + [ + 180, + 185, + 181 + ], + [ + 181, + 185, + 186 + ], + [ + 181, + 186, + 182 + ], + [ + 182, + 186, + 187 + ], + [ + 182, + 187, + 183 + ], + [ + 183, + 187, + 184 + ], + [ + 183, + 184, + 180 + ], + [ + 184, + 188, + 189 + ], + [ + 184, + 189, + 185 + ], + [ + 185, + 189, + 190 + ], + [ + 185, + 190, + 186 + ], + [ + 186, + 190, + 191 + ], + [ + 186, + 191, + 187 + ], + [ + 187, + 191, + 188 + ], + [ + 187, + 188, + 184 + ], + [ + 188, + 192, + 193 + ], + [ + 188, + 193, + 189 + ], + [ + 189, + 193, + 194 + ], + [ + 189, + 194, + 190 + ], + [ + 190, + 194, + 195 + ], + [ + 190, + 195, + 191 + ], + [ + 191, + 195, + 192 + ], + [ + 191, + 192, + 188 + ], + [ + 192, + 196, + 197 + ], + [ + 192, + 197, + 193 + ], + [ + 193, + 197, + 198 + ], + [ + 193, + 198, + 194 + ], + [ + 194, + 198, + 199 + ], + [ + 194, + 199, + 195 + ], + [ + 195, + 199, + 196 + ], + [ + 195, + 196, + 192 + ], + [ + 196, + 200, + 201 + ], + [ + 196, + 201, + 197 + ], + [ + 197, + 201, + 202 + ], + [ + 197, + 202, + 198 + ], + [ + 198, + 202, + 203 + ], + [ + 198, + 203, + 199 + ], + [ + 199, + 203, + 200 + ], + [ + 199, + 200, + 196 + ], + [ + 200, + 204, + 205 + ], + [ + 200, + 205, + 201 + ], + [ + 201, + 205, + 206 + ], + [ + 201, + 206, + 202 + ], + [ + 202, + 206, + 207 + ], + [ + 202, + 207, + 203 + ], + [ + 203, + 207, + 204 + ], + [ + 203, + 204, + 200 + ], + [ + 204, + 208, + 209 + ], + [ + 204, + 209, + 205 + ], + [ + 205, + 209, + 210 + ], + [ + 205, + 210, + 206 + ], + [ + 206, + 210, + 211 + ], + [ + 206, + 211, + 207 + ], + [ + 207, + 211, + 208 + ], + [ + 207, + 208, + 204 + ], + [ + 208, + 212, + 213 + ], + [ + 208, + 213, + 209 + ], + [ + 209, + 213, + 214 + ], + [ + 209, + 214, + 210 + ], + [ + 210, + 214, + 215 + ], + [ + 210, + 215, + 211 + ], + [ + 211, + 215, + 212 + ], + [ + 211, + 212, + 208 + ], + [ + 212, + 216, + 217 + ], + [ + 212, + 217, + 213 + ], + [ + 213, + 217, + 218 + ], + [ + 213, + 218, + 214 + ], + [ + 214, + 218, + 219 + ], + [ + 214, + 219, + 215 + ], + [ + 215, + 219, + 216 + ], + [ + 215, + 216, + 212 + ], + [ + 216, + 220, + 221 + ], + [ + 216, + 221, + 217 + ], + [ + 217, + 221, + 222 + ], + [ + 217, + 222, + 218 + ], + [ + 218, + 222, + 223 + ], + [ + 218, + 223, + 219 + ], + [ + 219, + 223, + 220 + ], + [ + 219, + 220, + 216 + ], + [ + 220, + 224, + 225 + ], + [ + 220, + 225, + 221 + ], + [ + 221, + 225, + 226 + ], + [ + 221, + 226, + 222 + ], + [ + 222, + 226, + 227 + ], + [ + 222, + 227, + 223 + ], + [ + 223, + 227, + 224 + ], + [ + 223, + 224, + 220 + ], + [ + 224, + 228, + 229 + ], + [ + 224, + 229, + 225 + ], + [ + 225, + 229, + 230 + ], + [ + 225, + 230, + 226 + ], + [ + 226, + 230, + 231 + ], + [ + 226, + 231, + 227 + ], + [ + 227, + 231, + 228 + ], + [ + 227, + 228, + 224 + ], + [ + 228, + 232, + 233 + ], + [ + 228, + 233, + 229 + ], + [ + 229, + 233, + 234 + ], + [ + 229, + 234, + 230 + ], + [ + 230, + 234, + 235 + ], + [ + 230, + 235, + 231 + ], + [ + 231, + 235, + 232 + ], + [ + 231, + 232, + 228 + ], + [ + 232, + 236, + 237 + ], + [ + 232, + 237, + 233 + ], + [ + 233, + 237, + 238 + ], + [ + 233, + 238, + 234 + ], + [ + 234, + 238, + 239 + ], + [ + 234, + 239, + 235 + ], + [ + 235, + 239, + 236 + ], + [ + 235, + 236, + 232 + ], + [ + 236, + 240, + 241 + ], + [ + 236, + 241, + 237 + ], + [ + 237, + 241, + 242 + ], + [ + 237, + 242, + 238 + ], + [ + 238, + 242, + 243 + ], + [ + 238, + 243, + 239 + ], + [ + 239, + 243, + 240 + ], + [ + 239, + 240, + 236 + ], + [ + 240, + 244, + 245 + ], + [ + 240, + 245, + 241 + ], + [ + 241, + 245, + 246 + ], + [ + 241, + 246, + 242 + ], + [ + 242, + 246, + 247 + ], + [ + 242, + 247, + 243 + ], + [ + 243, + 247, + 244 + ], + [ + 243, + 244, + 240 + ], + [ + 244, + 248, + 249 + ], + [ + 244, + 249, + 245 + ], + [ + 245, + 249, + 250 + ], + [ + 245, + 250, + 246 + ], + [ + 246, + 250, + 251 + ], + [ + 246, + 251, + 247 + ], + [ + 247, + 251, + 248 + ], + [ + 247, + 248, + 244 + ], + [ + 248, + 252, + 253 + ], + [ + 248, + 253, + 249 + ], + [ + 249, + 253, + 254 + ], + [ + 249, + 254, + 250 + ], + [ + 250, + 254, + 255 + ], + [ + 250, + 255, + 251 + ], + [ + 251, + 255, + 252 + ], + [ + 251, + 252, + 248 + ], + [ + 252, + 256, + 257 + ], + [ + 252, + 257, + 253 + ], + [ + 253, + 257, + 258 + ], + [ + 253, + 258, + 254 + ], + [ + 254, + 258, + 259 + ], + [ + 254, + 259, + 255 + ], + [ + 255, + 259, + 256 + ], + [ + 255, + 256, + 252 + ], + [ + 256, + 260, + 261 + ], + [ + 256, + 261, + 257 + ], + [ + 257, + 261, + 262 + ], + [ + 257, + 262, + 258 + ], + [ + 258, + 262, + 263 + ], + [ + 258, + 263, + 259 + ], + [ + 259, + 263, + 260 + ], + [ + 259, + 260, + 256 + ], + [ + 260, + 264, + 265 + ], + [ + 260, + 265, + 261 + ], + [ + 261, + 265, + 266 + ], + [ + 261, + 266, + 262 + ], + [ + 262, + 266, + 267 + ], + [ + 262, + 267, + 263 + ], + [ + 263, + 267, + 264 + ], + [ + 263, + 264, + 260 + ], + [ + 264, + 268, + 269 + ], + [ + 264, + 269, + 265 + ], + [ + 265, + 269, + 270 + ], + [ + 265, + 270, + 266 + ], + [ + 266, + 270, + 271 + ], + [ + 266, + 271, + 267 + ], + [ + 267, + 271, + 268 + ], + [ + 267, + 268, + 264 + ], + [ + 268, + 272, + 273 + ], + [ + 268, + 273, + 269 + ], + [ + 269, + 273, + 274 + ], + [ + 269, + 274, + 270 + ], + [ + 270, + 274, + 275 + ], + [ + 270, + 275, + 271 + ], + [ + 271, + 275, + 272 + ], + [ + 271, + 272, + 268 + ], + [ + 272, + 276, + 277 + ], + [ + 272, + 277, + 273 + ], + [ + 273, + 277, + 278 + ], + [ + 273, + 278, + 274 + ], + [ + 274, + 278, + 279 + ], + [ + 274, + 279, + 275 + ], + [ + 275, + 279, + 276 + ], + [ + 275, + 276, + 272 + ], + [ + 276, + 280, + 281 + ], + [ + 276, + 281, + 277 + ], + [ + 277, + 281, + 282 + ], + [ + 277, + 282, + 278 + ], + [ + 278, + 282, + 283 + ], + [ + 278, + 283, + 279 + ], + [ + 279, + 283, + 280 + ], + [ + 279, + 280, + 276 + ], + [ + 280, + 284, + 285 + ], + [ + 280, + 285, + 281 + ], + [ + 281, + 285, + 286 + ], + [ + 281, + 286, + 282 + ], + [ + 282, + 286, + 287 + ], + [ + 282, + 287, + 283 + ], + [ + 283, + 287, + 284 + ], + [ + 283, + 284, + 280 + ], + [ + 284, + 288, + 289 + ], + [ + 284, + 289, + 285 + ], + [ + 285, + 289, + 290 + ], + [ + 285, + 290, + 286 + ], + [ + 286, + 290, + 291 + ], + [ + 286, + 291, + 287 + ], + [ + 287, + 291, + 288 + ], + [ + 287, + 288, + 284 + ], + [ + 288, + 292, + 293 + ], + [ + 288, + 293, + 289 + ], + [ + 289, + 293, + 294 + ], + [ + 289, + 294, + 290 + ], + [ + 290, + 294, + 295 + ], + [ + 290, + 295, + 291 + ], + [ + 291, + 295, + 292 + ], + [ + 291, + 292, + 288 + ], + [ + 292, + 296, + 297 + ], + [ + 292, + 297, + 293 + ], + [ + 293, + 297, + 298 + ], + [ + 293, + 298, + 294 + ], + [ + 294, + 298, + 299 + ], + [ + 294, + 299, + 295 + ], + [ + 295, + 299, + 296 + ], + [ + 295, + 296, + 292 + ], + [ + 296, + 300, + 301 + ], + [ + 296, + 301, + 297 + ], + [ + 297, + 301, + 302 + ], + [ + 297, + 302, + 298 + ], + [ + 298, + 302, + 303 + ], + [ + 298, + 303, + 299 + ], + [ + 299, + 303, + 300 + ], + [ + 299, + 300, + 296 + ], + [ + 300, + 304, + 305 + ], + [ + 300, + 305, + 301 + ], + [ + 301, + 305, + 306 + ], + [ + 301, + 306, + 302 + ], + [ + 302, + 306, + 307 + ], + [ + 302, + 307, + 303 + ], + [ + 303, + 307, + 304 + ], + [ + 303, + 304, + 300 + ], + [ + 304, + 308, + 309 + ], + [ + 304, + 309, + 305 + ], + [ + 305, + 309, + 310 + ], + [ + 305, + 310, + 306 + ], + [ + 306, + 310, + 311 + ], + [ + 306, + 311, + 307 + ], + [ + 307, + 311, + 308 + ], + [ + 307, + 308, + 304 + ], + [ + 308, + 312, + 313 + ], + [ + 308, + 313, + 309 + ], + [ + 309, + 313, + 314 + ], + [ + 309, + 314, + 310 + ], + [ + 310, + 314, + 315 + ], + [ + 310, + 315, + 311 + ], + [ + 311, + 315, + 312 + ], + [ + 311, + 312, + 308 + ], + [ + 312, + 316, + 317 + ], + [ + 312, + 317, + 313 + ], + [ + 313, + 317, + 318 + ], + [ + 313, + 318, + 314 + ], + [ + 314, + 318, + 319 + ], + [ + 314, + 319, + 315 + ], + [ + 315, + 319, + 316 + ], + [ + 315, + 316, + 312 + ], + [ + 316, + 320, + 321 + ], + [ + 316, + 321, + 317 + ], + [ + 317, + 321, + 322 + ], + [ + 317, + 322, + 318 + ], + [ + 318, + 322, + 323 + ], + [ + 318, + 323, + 319 + ], + [ + 319, + 323, + 320 + ], + [ + 319, + 320, + 316 + ], + [ + 320, + 324, + 325 + ], + [ + 320, + 325, + 321 + ], + [ + 321, + 325, + 326 + ], + [ + 321, + 326, + 322 + ], + [ + 322, + 326, + 327 + ], + [ + 322, + 327, + 323 + ], + [ + 323, + 327, + 324 + ], + [ + 323, + 324, + 320 + ], + [ + 324, + 328, + 329 + ], + [ + 324, + 329, + 325 + ], + [ + 325, + 329, + 330 + ], + [ + 325, + 330, + 326 + ], + [ + 326, + 330, + 331 + ], + [ + 326, + 331, + 327 + ], + [ + 327, + 331, + 328 + ], + [ + 327, + 328, + 324 + ], + [ + 328, + 332, + 333 + ], + [ + 328, + 333, + 329 + ], + [ + 329, + 333, + 334 + ], + [ + 329, + 334, + 330 + ], + [ + 330, + 334, + 335 + ], + [ + 330, + 335, + 331 + ], + [ + 331, + 335, + 332 + ], + [ + 331, + 332, + 328 + ], + [ + 332, + 336, + 337 + ], + [ + 332, + 337, + 333 + ], + [ + 333, + 337, + 338 + ], + [ + 333, + 338, + 334 + ], + [ + 334, + 338, + 339 + ], + [ + 334, + 339, + 335 + ], + [ + 335, + 339, + 336 + ], + [ + 335, + 336, + 332 + ], + [ + 336, + 340, + 341 + ], + [ + 336, + 341, + 337 + ], + [ + 337, + 341, + 342 + ], + [ + 337, + 342, + 338 + ], + [ + 338, + 342, + 343 + ], + [ + 338, + 343, + 339 + ], + [ + 339, + 343, + 340 + ], + [ + 339, + 340, + 336 + ], + [ + 340, + 344, + 345 + ], + [ + 340, + 345, + 341 + ], + [ + 341, + 345, + 346 + ], + [ + 341, + 346, + 342 + ], + [ + 342, + 346, + 347 + ], + [ + 342, + 347, + 343 + ], + [ + 343, + 347, + 344 + ], + [ + 343, + 344, + 340 + ], + [ + 344, + 348, + 349 + ], + [ + 344, + 349, + 345 + ], + [ + 345, + 349, + 350 + ], + [ + 345, + 350, + 346 + ], + [ + 346, + 350, + 351 + ], + [ + 346, + 351, + 347 + ], + [ + 347, + 351, + 348 + ], + [ + 347, + 348, + 344 + ], + [ + 348, + 352, + 353 + ], + [ + 348, + 353, + 349 + ], + [ + 349, + 353, + 354 + ], + [ + 349, + 354, + 350 + ], + [ + 350, + 354, + 355 + ], + [ + 350, + 355, + 351 + ], + [ + 351, + 355, + 352 + ], + [ + 351, + 352, + 348 + ], + [ + 352, + 356, + 357 + ], + [ + 352, + 357, + 353 + ], + [ + 353, + 357, + 358 + ], + [ + 353, + 358, + 354 + ], + [ + 354, + 358, + 359 + ], + [ + 354, + 359, + 355 + ], + [ + 355, + 359, + 356 + ], + [ + 355, + 356, + 352 + ], + [ + 356, + 360, + 361 + ], + [ + 356, + 361, + 357 + ], + [ + 357, + 361, + 362 + ], + [ + 357, + 362, + 358 + ], + [ + 358, + 362, + 363 + ], + [ + 358, + 363, + 359 + ], + [ + 359, + 363, + 360 + ], + [ + 359, + 360, + 356 + ], + [ + 360, + 364, + 365 + ], + [ + 360, + 365, + 361 + ], + [ + 361, + 365, + 366 + ], + [ + 361, + 366, + 362 + ], + [ + 362, + 366, + 367 + ], + [ + 362, + 367, + 363 + ], + [ + 363, + 367, + 364 + ], + [ + 363, + 364, + 360 + ], + [ + 364, + 368, + 369 + ], + [ + 364, + 369, + 365 + ], + [ + 365, + 369, + 370 + ], + [ + 365, + 370, + 366 + ], + [ + 366, + 370, + 371 + ], + [ + 366, + 371, + 367 + ], + [ + 367, + 371, + 368 + ], + [ + 367, + 368, + 364 + ], + [ + 368, + 372, + 373 + ], + [ + 368, + 373, + 369 + ], + [ + 369, + 373, + 374 + ], + [ + 369, + 374, + 370 + ], + [ + 370, + 374, + 375 + ], + [ + 370, + 375, + 371 + ], + [ + 371, + 375, + 372 + ], + [ + 371, + 372, + 368 + ], + [ + 372, + 376, + 377 + ], + [ + 372, + 377, + 373 + ], + [ + 373, + 377, + 378 + ], + [ + 373, + 378, + 374 + ], + [ + 374, + 378, + 379 + ], + [ + 374, + 379, + 375 + ], + [ + 375, + 379, + 376 + ], + [ + 375, + 376, + 372 + ], + [ + 376, + 380, + 381 + ], + [ + 376, + 381, + 377 + ], + [ + 377, + 381, + 382 + ], + [ + 377, + 382, + 378 + ], + [ + 378, + 382, + 383 + ], + [ + 378, + 383, + 379 + ], + [ + 379, + 383, + 380 + ], + [ + 379, + 380, + 376 + ], + [ + 380, + 384, + 385 + ], + [ + 380, + 385, + 381 + ], + [ + 381, + 385, + 386 + ], + [ + 381, + 386, + 382 + ], + [ + 382, + 386, + 387 + ], + [ + 382, + 387, + 383 + ], + [ + 383, + 387, + 384 + ], + [ + 383, + 384, + 380 + ], + [ + 384, + 388, + 389 + ], + [ + 384, + 389, + 385 + ], + [ + 385, + 389, + 390 + ], + [ + 385, + 390, + 386 + ], + [ + 386, + 390, + 391 + ], + [ + 386, + 391, + 387 + ], + [ + 387, + 391, + 388 + ], + [ + 387, + 388, + 384 + ], + [ + 388, + 392, + 393 + ], + [ + 388, + 393, + 389 + ], + [ + 389, + 393, + 394 + ], + [ + 389, + 394, + 390 + ], + [ + 390, + 394, + 395 + ], + [ + 390, + 395, + 391 + ], + [ + 391, + 395, + 392 + ], + [ + 391, + 392, + 388 + ], + [ + 392, + 396, + 397 + ], + [ + 392, + 397, + 393 + ], + [ + 393, + 397, + 398 + ], + [ + 393, + 398, + 394 + ], + [ + 394, + 398, + 399 + ], + [ + 394, + 399, + 395 + ], + [ + 395, + 399, + 396 + ], + [ + 395, + 396, + 392 + ], + [ + 396, + 400, + 401 + ], + [ + 396, + 401, + 397 + ], + [ + 397, + 401, + 402 + ], + [ + 397, + 402, + 398 + ], + [ + 398, + 402, + 403 + ], + [ + 398, + 403, + 399 + ], + [ + 399, + 403, + 400 + ], + [ + 399, + 400, + 396 + ], + [ + 400, + 404, + 405 + ], + [ + 400, + 405, + 401 + ], + [ + 401, + 405, + 406 + ], + [ + 401, + 406, + 402 + ], + [ + 402, + 406, + 407 + ], + [ + 402, + 407, + 403 + ], + [ + 403, + 407, + 404 + ], + [ + 403, + 404, + 400 + ], + [ + 404, + 408, + 409 + ], + [ + 404, + 409, + 405 + ], + [ + 405, + 409, + 410 + ], + [ + 405, + 410, + 406 + ], + [ + 406, + 410, + 411 + ], + [ + 406, + 411, + 407 + ], + [ + 407, + 411, + 408 + ], + [ + 407, + 408, + 404 + ], + [ + 408, + 412, + 413 + ], + [ + 408, + 413, + 409 + ], + [ + 409, + 413, + 414 + ], + [ + 409, + 414, + 410 + ], + [ + 410, + 414, + 415 + ], + [ + 410, + 415, + 411 + ], + [ + 411, + 415, + 412 + ], + [ + 411, + 412, + 408 + ], + [ + 412, + 416, + 417 + ], + [ + 412, + 417, + 413 + ], + [ + 413, + 417, + 418 + ], + [ + 413, + 418, + 414 + ], + [ + 414, + 418, + 419 + ], + [ + 414, + 419, + 415 + ], + [ + 415, + 419, + 416 + ], + [ + 415, + 416, + 412 + ], + [ + 416, + 420, + 421 + ], + [ + 416, + 421, + 417 + ], + [ + 417, + 421, + 422 + ], + [ + 417, + 422, + 418 + ], + [ + 418, + 422, + 423 + ], + [ + 418, + 423, + 419 + ], + [ + 419, + 423, + 420 + ], + [ + 419, + 420, + 416 + ], + [ + 420, + 424, + 425 + ], + [ + 420, + 425, + 421 + ], + [ + 421, + 425, + 426 + ], + [ + 421, + 426, + 422 + ], + [ + 422, + 426, + 427 + ], + [ + 422, + 427, + 423 + ], + [ + 423, + 427, + 424 + ], + [ + 423, + 424, + 420 + ], + [ + 424, + 428, + 429 + ], + [ + 424, + 429, + 425 + ], + [ + 425, + 429, + 430 + ], + [ + 425, + 430, + 426 + ], + [ + 426, + 430, + 431 + ], + [ + 426, + 431, + 427 + ], + [ + 427, + 431, + 428 + ], + [ + 427, + 428, + 424 + ], + [ + 428, + 432, + 433 + ], + [ + 428, + 433, + 429 + ], + [ + 429, + 433, + 434 + ], + [ + 429, + 434, + 430 + ], + [ + 430, + 434, + 435 + ], + [ + 430, + 435, + 431 + ], + [ + 431, + 435, + 432 + ], + [ + 431, + 432, + 428 + ], + [ + 432, + 436, + 437 + ], + [ + 432, + 437, + 433 + ], + [ + 433, + 437, + 438 + ], + [ + 433, + 438, + 434 + ], + [ + 434, + 438, + 439 + ], + [ + 434, + 439, + 435 + ], + [ + 435, + 439, + 436 + ], + [ + 435, + 436, + 432 + ], + [ + 436, + 440, + 441 + ], + [ + 436, + 441, + 437 + ], + [ + 437, + 441, + 442 + ], + [ + 437, + 442, + 438 + ], + [ + 438, + 442, + 443 + ], + [ + 438, + 443, + 439 + ], + [ + 439, + 443, + 440 + ], + [ + 439, + 440, + 436 + ], + [ + 440, + 444, + 445 + ], + [ + 440, + 445, + 441 + ], + [ + 441, + 445, + 446 + ], + [ + 441, + 446, + 442 + ], + [ + 442, + 446, + 447 + ], + [ + 442, + 447, + 443 + ], + [ + 443, + 447, + 444 + ], + [ + 443, + 444, + 440 + ], + [ + 444, + 448, + 449 + ], + [ + 444, + 449, + 445 + ], + [ + 445, + 449, + 450 + ], + [ + 445, + 450, + 446 + ], + [ + 446, + 450, + 451 + ], + [ + 446, + 451, + 447 + ], + [ + 447, + 451, + 448 + ], + [ + 447, + 448, + 444 + ], + [ + 3, + 0, + 1 + ], + [ + 1, + 2, + 3 + ], + [ + 449, + 448, + 451 + ], + [ + 451, + 450, + 449 + ] + ] + }, + "0dffb116a00bf047bc7c280cc089f5f0e7a3c0cd7bc563e8ab70a865bf4f75c4": { + "vertices": [ + [ + -6.966495708612789, + -7.033504291387211, + -8.900728025519376 + ], + [ + -6.966344993866207, + -6.531993030522247, + -8.731531463307283 + ], + [ + -6.966129751658354, + -6.029688736200702, + -8.574643708617346 + ], + [ + -6.965928276469491, + -5.527341506536828, + -8.430296745094786 + ], + [ + -6.965741410039616, + -5.024953787748922, + -8.298493066784047 + ], + [ + -6.965569957834849, + -4.522528299194482, + -8.179235060251404 + ], + [ + -6.965414680248358, + -4.020068025041076, + -8.072524978513654 + ], + [ + -6.965276283896877, + -3.5175762019781245, + -7.978364915250005 + ], + [ + -6.965155413191348, + -3.0150563029420105, + -7.896756779826215 + ], + [ + -6.965052642365896, + -2.512512016930729, + -7.827702273676729 + ], + [ + -6.96496846814887, + -2.009947225093531, + -7.771202868589244 + ], + [ + -6.9649033032526475, + -1.5073659733914198, + -7.727259787415251 + ], + [ + -6.964857470845104, + -1.0047724422309119, + -7.695873987689195 + ], + [ + -6.96483120014529, + -0.5021709135712784, + -7.677046148578637 + ], + [ + -6.9648246232595845, + 0.0004342639103755345, + -7.670776661509881 + ], + [ + -6.964837773343252, + 0.5030387109456448, + -7.677065624720747 + ], + [ + -6.964870584137325, + 1.0056380543977133, + -7.695912841888369 + ], + [ + -6.964922890893434, + 1.508227963864503, + -7.727317824869434 + ], + [ + -6.96499443266139, + 2.010804187450188, + -7.771279800478194 + ], + [ + -6.965084855877597, + 2.5133625860221542, + -7.827797721118806 + ], + [ + -6.965193719158439, + 3.015899165322689, + -7.896870278987965 + ], + [ + -6.965320499173006, + 3.518410105377293, + -7.978495923475575 + ], + [ + -6.965464597445136, + 4.02089178673072, + -8.072672881318923 + ], + [ + -6.965625347916505, + 4.523340813143114, + -8.179399179011867 + ], + [ + -6.965802025091008, + 5.025754030487018, + -8.298672666936321 + ], + [ + -6.9659938525757985, + 5.528128541696562, + -8.430491044669031 + ], + [ + -6.966200011836024, + 6.030461717728027, + -8.574851886921556 + ], + [ + -6.9664196509878575, + 6.532751204592089, + -8.731752669593654 + ], + [ + -6.966495708612789, + 7.033504291387211, + -8.900728025519376 + ], + [ + -6.468006969477753, + -7.033655006133793, + -9.069031463307281 + ], + [ + -6.4675167741946655, + -6.5324832258053345, + -8.900051612906664 + ], + [ + -6.46730520998229, + -6.030179806170194, + -8.743150646099354 + ], + [ + -6.467106875004681, + -5.527832644226808, + -8.598790384629787 + ], + [ + -6.466922598352766, + -5.025444155113258, + -8.46697337954697 + ], + [ + -6.466753175319268, + -4.523017032471277, + -8.347702077905439 + ], + [ + -6.466599358735506, + -4.02055424077815, + -8.240978796109248 + ], + [ + -6.466461850367856, + -3.5180590036480774, + -8.146805693439557 + ], + [ + -6.466341292549214, + -3.015534788054209, + -8.065184746305272 + ], + [ + -6.4662382602275335, + -2.512985284527872, + -7.996117723777025 + ], + [ + -6.466153253614323, + -2.0104143835032855, + -7.939606164967146 + ], + [ + -6.4660866916102355, + -1.5078261480899455, + -7.895651358800725 + ], + [ + -6.46603890617243, + -1.00522478366578, + -7.864254326684399 + ], + [ + -6.466010137769281, + -0.5026146047869784, + -7.845415808520864 + ], + [ + -6.466000532042869, + 0.0, + -7.839136252439595 + ], + [ + -6.466010137769281, + 0.5026146047869784, + -7.845415808520864 + ], + [ + -6.46603890617243, + 1.00522478366578, + -7.864254326684399 + ], + [ + -6.4660866916102355, + 1.5078261480899455, + -7.895651358800725 + ], + [ + -6.466153253614323, + 2.0104143835032855, + -7.939606164967146 + ], + [ + -6.4662382602275335, + 2.512985284527872, + -7.996117723777025 + ], + [ + -6.466341292549214, + 3.015534788054209, + -8.065184746305272 + ], + [ + -6.466461850367856, + 3.5180590036480774, + -8.146805693439557 + ], + [ + -6.466599358735506, + 4.02055424077815, + -8.240978796109248 + ], + [ + -6.466753175319268, + 4.523017032471277, + -8.347702077905439 + ], + [ + -6.466922598352766, + 5.025444155113258, + -8.46697337954697 + ], + [ + -6.467106875004681, + 5.527832644226808, + -8.598790384629787 + ], + [ + -6.46730520998229, + 6.030179806170194, + -8.743150646099354 + ], + [ + -6.4675167741946655, + 6.5324832258053345, + -8.900051612906664 + ], + [ + -6.467248795407911, + 7.0335803490121425, + -9.069252669593652 + ], + [ + -5.970311263799298, + -7.033870248341646, + -9.224643708617345 + ], + [ + -5.969820193829806, + -6.53269479001771, + -9.055650646099354 + ], + [ + -5.969621037609356, + -6.030378962390644, + -8.898736792031185 + ], + [ + -5.969434288253265, + -5.528018569101173, + -8.754364294177552 + ], + [ + -5.969260735433047, + -5.025616053805794, + -8.622535784776822 + ], + [ + -5.969101137140221, + -4.523174147144834, + -8.503253790467404 + ], + [ + -5.968956211343341, + -4.020695859104439, + -8.396520704477805 + ], + [ + -5.96882662769118, + -3.518184467180145, + -8.3023387589706 + ], + [ + -5.9687129994327615, + -3.0156435002836193, + -8.220709998109204 + ], + [ + -5.968615875731879, + -2.5130767184450504, + -8.151636252439596 + ], + [ + -5.968535734554895, + -2.0104880884817016, + -8.095119115182984 + ], + [ + -5.968472976305299, + -1.507881755923675, + -8.051159921017666 + ], + [ + -5.968427918366494, + -1.0052620136055843, + -8.019759727888314 + ], + [ + -5.968400790695758, + -0.5026332674420202, + -8.000919302319193 + ], + [ + -5.968391732587702, + -3.1193089999682e-17, + -7.994639108625673 + ], + [ + -5.968400790695758, + 0.5026332674420202, + -8.000919302319193 + ], + [ + -5.968427918366494, + 1.0052620136055843, + -8.019759727888314 + ], + [ + -5.968472976305299, + 1.507881755923675, + -8.051159921017666 + ], + [ + -5.968535734554895, + 2.0104880884817016, + -8.095119115182984 + ], + [ + -5.968615875731879, + 2.5130767184450504, + -8.151636252439596 + ], + [ + -5.9687129994327615, + 3.0156435002836193, + -8.220709998109204 + ], + [ + -5.96882662769118, + 3.518184467180145, + -8.3023387589706 + ], + [ + -5.968956211343341, + 4.020695859104439, + -8.396520704477805 + ], + [ + -5.969101137140221, + 4.523174147144834, + -8.503253790467404 + ], + [ + -5.969260735433047, + 5.025616053805794, + -8.622535784776822 + ], + [ + -5.969434288253265, + 5.528018569101173, + -8.754364294177552 + ], + [ + -5.969621037609356, + 6.030378962390644, + -8.898736792031185 + ], + [ + -5.969820193829806, + 6.53269479001771, + -9.055650646099354 + ], + [ + -5.969538282271973, + 7.033799988163976, + -9.224851886921554 + ], + [ + -5.472658493463172, + -7.034071723530509, + -9.367796745094786 + ], + [ + -5.472167355773192, + -6.532893124995319, + -9.198790384629788 + ], + [ + -5.471981430898827, + -6.030565711746735, + -9.041864294177554 + ], + [ + -5.471807047646049, + -5.528192952353951, + -8.89748017325836 + ], + [ + -5.471644951307023, + -5.025777316993616, + -8.765640732025538 + ], + [ + -5.471495857730392, + -4.523321570947862, + -8.64634857356506 + ], + [ + -5.471360445365965, + -4.020828767006571, + -8.539606164967147 + ], + [ + -5.4712393473432375, + -3.518302233508849, + -8.445415808520865 + ], + [ + -5.471133143748078, + -3.0157455579555936, + -8.363779613629376 + ], + [ + -5.471042354269085, + -2.5131625662413253, + -8.294699470069398 + ], + [ + -5.47096743138647, + -2.0105572976776473, + -8.238177023223525 + ], + [ + -5.470908754271522, + -1.5079339761077666, + -8.194213651896446 + ], + [ + -5.470866623553244, + -1.0052969775357739, + -8.162810449284525 + ], + [ + -5.470841257090931, + -0.5026507948099154, + -8.143968207603386 + ], + [ + -5.470832786867685, + 0.0, + -8.137687406791583 + ], + [ + -5.470841257090931, + 0.5026507948099154, + -8.143968207603386 + ], + [ + -5.470866623553244, + 1.0052969775357739, + -8.162810449284525 + ], + [ + -5.470908754271522, + 1.5079339761077666, + -8.194213651896446 + ], + [ + -5.47096743138647, + 2.0105572976776473, + -8.238177023223525 + ], + [ + -5.471042354269085, + 2.5131625662413253, + -8.294699470069398 + ], + [ + -5.471133143748078, + 3.0157455579555936, + -8.363779613629376 + ], + [ + -5.4712393473432375, + 3.518302233508849, + -8.445415808520865 + ], + [ + -5.471360445365965, + 4.020828767006571, + -8.539606164967147 + ], + [ + -5.471495857730392, + 4.523321570947862, + -8.64634857356506 + ], + [ + -5.471644951307023, + 5.025777316993616, + -8.765640732025538 + ], + [ + -5.471807047646049, + 5.528192952353951, + -8.89748017325836 + ], + [ + -5.471981430898827, + 6.030565711746735, + -9.041864294177554 + ], + [ + -5.472167355773192, + 6.532893124995319, + -9.198790384629788 + ], + [ + -5.471871458303438, + 7.0340061474242015, + -9.367991044669031 + ], + [ + -4.975046212251078, + -7.034258589960384, + -9.498493066784047 + ], + [ + -4.974555844886742, + -6.533077401647234, + -9.32947337954697 + ], + [ + -4.974383946194206, + -6.030739264566953, + -9.172535784776823 + ], + [ + -4.974222683006384, + -5.528355048692977, + -9.028140732025538 + ], + [ + -4.974072751356493, + -5.025927248643507, + -8.896291005425972 + ], + [ + -4.9739348201789895, + -4.52345866183891, + -8.776989280715956 + ], + [ + -4.973809523809524, + -4.020952380952381, + -8.670238095238096 + ], + [ + -4.973697454507765, + -3.518411781844564, + -8.576039818031061 + ], + [ + -4.973599155159447, + -3.0158405069043317, + -8.49439662063779 + ], + [ + -4.973515112321131, + -2.5132424438394345, + -8.425310449284524 + ], + [ + -4.97344574977281, + -2.010621700090876, + -8.368782999091241 + ], + [ + -4.973391422739082, + -1.5079825731782752, + -8.324815690956331 + ], + [ + -4.973352412928867, + -1.0053295174142267, + -8.293409651715468 + ], + [ + -4.973328924526712, + -0.5026671075473288, + -8.274565698106848 + ], + [ + -4.973321081246003, + 0.0, + -8.268284324984014 + ], + [ + -4.973328924526712, + 0.5026671075473288, + -8.274565698106848 + ], + [ + -4.973352412928867, + 1.0053295174142267, + -8.293409651715468 + ], + [ + -4.973391422739082, + 1.5079825731782752, + -8.324815690956331 + ], + [ + -4.97344574977281, + 2.010621700090876, + -8.368782999091241 + ], + [ + -4.973515112321131, + 2.5132424438394345, + -8.425310449284524 + ], + [ + -4.973599155159447, + 3.0158405069043317, + -8.49439662063779 + ], + [ + -4.973697454507765, + 3.518411781844564, + -8.576039818031061 + ], + [ + -4.973809523809524, + 4.020952380952381, + -8.670238095238096 + ], + [ + -4.9739348201789895, + 4.52345866183891, + -8.776989280715956 + ], + [ + -4.974072751356493, + 5.025927248643507, + -8.896291005425972 + ], + [ + -4.974222683006384, + 5.528355048692977, + -9.028140732025538 + ], + [ + -4.974383946194206, + 6.030739264566953, + -9.172535784776823 + ], + [ + -4.974555844886742, + 6.533077401647234, + -9.32947337954697 + ], + [ + -4.974245969512982, + 7.034197974908992, + -9.49867266693632 + ], + [ + -4.477471700805518, + -7.034430042165151, + -9.616735060251404 + ], + [ + -4.476982967528723, + -6.533246824680732, + -9.44770207790544 + ], + [ + -4.476825852855166, + -6.030898862859779, + -9.290753790467406 + ], + [ + -4.476678429052138, + -5.528504142269608, + -9.14634857356506 + ], + [ + -4.47654133816109, + -5.0260651798210105, + -9.014489280715956 + ], + [ + -4.476415197567313, + -4.523584802432687, + -8.895178655854725 + ], + [ + -4.4763005930218185, + -4.0210661395361615, + -8.788419302319195 + ], + [ + -4.4761980716767, + -3.518512610918122, + -8.694213651896446 + ], + [ + -4.476108135280664, + -3.0159279098128904, + -8.61256393458073 + ], + [ + -4.476031233688414, + -2.5133159812842143, + -8.543472149726286 + ], + [ + -4.475967758839357, + -2.0106809960713967, + -8.486940039286031 + ], + [ + -4.475918039357179, + -1.5080273202142735, + -8.442969063809686 + ], + [ + -4.475882335911862, + -1.0053594809084752, + -8.4115603818305 + ], + [ + -4.475860837469838, + -0.502682129170018, + -8.392714833199282 + ], + [ + -4.475853658536585, + 0.0, + -8.386432926829269 + ], + [ + -4.475860837469838, + 0.502682129170018, + -8.392714833199282 + ], + [ + -4.475882335911862, + 1.0053594809084752, + -8.4115603818305 + ], + [ + -4.475918039357179, + 1.5080273202142735, + -8.442969063809686 + ], + [ + -4.475967758839357, + 2.0106809960713967, + -8.486940039286031 + ], + [ + -4.476031233688414, + 2.5133159812842143, + -8.543472149726286 + ], + [ + -4.476108135280664, + 3.0159279098128904, + -8.61256393458073 + ], + [ + -4.4761980716767, + 3.518512610918122, + -8.694213651896446 + ], + [ + -4.4763005930218185, + 4.0210661395361615, + -8.788419302319195 + ], + [ + -4.476415197567313, + 4.523584802432687, + -8.895178655854725 + ], + [ + -4.47654133816109, + 5.0260651798210105, + -9.014489280715956 + ], + [ + -4.476678429052138, + 5.528504142269608, + -9.14634857356506 + ], + [ + -4.476825852855166, + 6.030898862859779, + -9.290753790467406 + ], + [ + -4.476982967528723, + 6.533246824680732, + -9.44770207790544 + ], + [ + -4.476659186856886, + 7.034374652083495, + -9.616899179011867 + ], + [ + -3.9799319749589235, + -7.034585319751642, + -9.722524978513652 + ], + [ + -3.97944575922185, + -6.533400641264494, + -9.553478796109248 + ], + [ + -3.979304140895561, + -6.031043788656659, + -9.396520704477805 + ], + [ + -3.9791712329934295, + -5.528639554634035, + -9.252106164967145 + ], + [ + -3.979047619047619, + -5.026190476190476, + -9.120238095238095 + ], + [ + -3.978933860463839, + -4.5236994069781815, + -9.000919302319193 + ], + [ + -3.978830490129714, + -4.021169509870286, + -8.89415245064857 + ], + [ + -3.9787380060289714, + -3.51860424472465, + -8.799940030144858 + ], + [ + -3.9786568649968026, + -3.016007351252398, + -8.718284324984014 + ], + [ + -3.978587476758472, + -2.513382827025955, + -8.64918738379236 + ], + [ + -3.9785301983951324, + -2.0107349008024338, + -8.59265099197566 + ], + [ + -3.9784853293773206, + -1.5080680014835048, + -8.548676646886602 + ], + [ + -3.978453107297527, + -1.0053867231756184, + -8.517265536487633 + ], + [ + -3.9784337044185816, + -0.5026957869476774, + -8.498418522092907 + ], + [ + -3.9784272251347996, + 0.0, + -8.492136125673998 + ], + [ + -3.9784337044185816, + 0.5026957869476774, + -8.498418522092907 + ], + [ + -3.978453107297527, + 1.0053867231756184, + -8.517265536487633 + ], + [ + -3.9784853293773206, + 1.5080680014835048, + -8.548676646886602 + ], + [ + -3.9785301983951324, + 2.0107349008024338, + -8.59265099197566 + ], + [ + -3.978587476758472, + 2.513382827025955, + -8.64918738379236 + ], + [ + -3.9786568649968026, + 3.016007351252398, + -8.718284324984014 + ], + [ + -3.9787380060289714, + 3.51860424472465, + -8.799940030144858 + ], + [ + -3.978830490129714, + 4.021169509870286, + -8.89415245064857 + ], + [ + -3.978933860463839, + 4.5236994069781815, + -9.000919302319193 + ], + [ + -3.979047619047619, + 5.026190476190476, + -9.120238095238095 + ], + [ + -3.9791712329934295, + 5.528639554634035, + -9.252106164967145 + ], + [ + -3.979304140895561, + 6.031043788656659, + -9.396520704477805 + ], + [ + -3.97944575922185, + 6.533400641264494, + -9.553478796109248 + ], + [ + -3.9791082132692797, + 7.034535402554864, + -9.722672881318921 + ], + [ + -3.4824237980218755, + -7.034723716103123, + -9.815864915250003 + ], + [ + -3.4819409963519226, + -6.533538149632144, + -9.646805693439557 + ], + [ + -3.481815532819855, + -6.03117337230882, + -9.4898387589706 + ], + [ + -3.481697766491151, + -5.5287606526567625, + -9.345415808520864 + ], + [ + -3.481588218155436, + -5.026302545492235, + -9.21353981803106 + ], + [ + -3.481487389081878, + -4.5238019283233, + -9.094213651896444 + ], + [ + -3.48139575527535, + -4.021261993971028, + -8.987440030144858 + ], + [ + -3.481313761732523, + -3.518686238267477, + -8.893221495614416 + ], + [ + -3.4812418168203374, + -3.016078442725425, + -8.811560381830498 + ], + [ + -3.481180286905593, + -2.5134426522102906, + -8.742458782317675 + ], + [ + -3.481129491366259, + -2.010783147790709, + -8.685918522092907 + ], + [ + -3.4810896981121147, + -1.5081044150948077, + -8.641941132069228 + ], + [ + -3.4810611197341834, + -1.0054111086473763, + -8.610527827052477 + ], + [ + -3.481043910389183, + -0.5027080128015453, + -8.591679487938187 + ], + [ + -3.4810381635072525, + 0.0, + -8.585396648612873 + ], + [ + -3.481043910389183, + 0.5027080128015453, + -8.591679487938187 + ], + [ + -3.4810611197341834, + 1.0054111086473763, + -8.610527827052477 + ], + [ + -3.4810896981121147, + 1.5081044150948077, + -8.641941132069228 + ], + [ + -3.481129491366259, + 2.010783147790709, + -8.685918522092907 + ], + [ + -3.481180286905593, + 2.5134426522102906, + -8.742458782317675 + ], + [ + -3.4812418168203374, + 3.016078442725425, + -8.811560381830498 + ], + [ + -3.481313761732523, + 3.518686238267477, + -8.893221495614416 + ], + [ + -3.48139575527535, + 4.021261993971028, + -8.987440030144858 + ], + [ + -3.481487389081878, + 4.5238019283233, + -9.094213651896444 + ], + [ + -3.481588218155436, + 5.026302545492235, + -9.21353981803106 + ], + [ + -3.481697766491151, + 5.5287606526567625, + -9.345415808520864 + ], + [ + -3.481815532819855, + 6.03117337230882, + -9.4898387589706 + ], + [ + -3.4819409963519226, + 6.533538149632144, + -9.646805693439557 + ], + [ + -3.481589894622707, + 7.034679500826994, + -9.815995923475574 + ], + [ + -2.9849436970579895, + -7.034844586808652, + -9.896756779826214 + ], + [ + -2.984465211945791, + -6.533658707450786, + -9.727684746305274 + ], + [ + -2.9843564997163807, + -6.0312870005672385, + -9.570709998109205 + ], + [ + -2.9842544420444064, + -5.528866856251922, + -9.426279613629376 + ], + [ + -2.9841594930956683, + -5.026400844840553, + -9.29439662063779 + ], + [ + -2.9840720901871096, + -4.523891864719336, + -9.17506393458073 + ], + [ + -2.983992648747602, + -4.021343135003197, + -9.068284324984015 + ], + [ + -2.983921557274575, + -3.5187581831796626, + -8.9740603818305 + ], + [ + -2.983859172394531, + -3.016140827605469, + -8.892394482630205 + ], + [ + -2.9838058141412067, + -2.5134951548823277, + -8.823288760941379 + ], + [ + -2.9837617615669307, + -2.0108254922887125, + -8.766745077112873 + ], + [ + -2.9837272488001894, + -1.5081363755999053, + -8.722764992001263 + ], + [ + -2.9837024616552816, + -1.0054325127815729, + -8.691349744368546 + ], + [ + -2.9836875348882894, + -0.5027187441852851, + -8.672500232588597 + ], + [ + -2.983682550177673, + 0.0, + -8.666217001184487 + ], + [ + -2.9836875348882894, + 0.5027187441852851, + -8.672500232588597 + ], + [ + -2.9837024616552816, + 1.0054325127815729, + -8.691349744368546 + ], + [ + -2.9837272488001894, + 1.5081363755999053, + -8.722764992001263 + ], + [ + -2.9837617615669307, + 2.0108254922887125, + -8.766745077112873 + ], + [ + -2.9838058141412067, + 2.5134951548823277, + -8.823288760941379 + ], + [ + -2.983859172394531, + 3.016140827605469, + -8.892394482630205 + ], + [ + -2.983921557274575, + 3.5187581831796626, + -8.9740603818305 + ], + [ + -2.983992648747602, + 4.021343135003197, + -9.068284324984015 + ], + [ + -2.9840720901871096, + 4.523891864719336, + -9.17506393458073 + ], + [ + -2.9841594930956683, + 5.026400844840553, + -9.29439662063779 + ], + [ + -2.9842544420444064, + 5.528866856251922, + -9.426279613629376 + ], + [ + -2.9843564997163807, + 6.0312870005672385, + -9.570709998109205 + ], + [ + -2.984465211945791, + 6.533658707450786, + -9.727684746305274 + ], + [ + -2.984100834677311, + 7.034806280841561, + -9.896870278987965 + ], + [ + -2.487487983069271, + -7.034947357634104, + -9.965202273676727 + ], + [ + -2.487014715472128, + -6.5337617397724665, + -9.796117723777025 + ], + [ + -2.4869232815549496, + -6.031384124268121, + -9.639136252439597 + ], + [ + -2.4868374337586747, + -5.528957645730915, + -9.494699470069397 + ], + [ + -2.4867575561605655, + -5.026484887678869, + -9.362810449284524 + ], + [ + -2.4866840187157857, + -4.523968766311586, + -9.243472149726285 + ], + [ + -2.486617172974045, + -4.021412523241528, + -9.13668738379236 + ], + [ + -2.4865573477897094, + -3.518819713094407, + -9.042458782317675 + ], + [ + -2.4865048451176723, + -3.0161941858587933, + -8.960788760941378 + ], + [ + -2.4864599359922734, + -2.5135400640077266, + -8.891679487938188 + ], + [ + -2.486422856788189, + -2.0108617145694487, + -8.835132854305511 + ], + [ + -2.4863938058601294, + -1.5081637164839223, + -8.791150446881035 + ], + [ + -2.486372940652135, + -1.005450823739146, + -8.759733525217083 + ], + [ + -2.486360375357305, + -0.502727924928539, + -8.740883002858443 + ], + [ + -2.486356179195187, + 0.0, + -8.734599433561497 + ], + [ + -2.486360375357305, + 0.502727924928539, + -8.740883002858443 + ], + [ + -2.486372940652135, + 1.005450823739146, + -8.759733525217083 + ], + [ + -2.4863938058601294, + 1.5081637164839223, + -8.791150446881035 + ], + [ + -2.486422856788189, + 2.0108617145694487, + -8.835132854305511 + ], + [ + -2.4864599359922734, + 2.5135400640077266, + -8.891679487938188 + ], + [ + -2.4865048451176723, + 3.0161941858587933, + -8.960788760941378 + ], + [ + -2.4865573477897094, + 3.518819713094407, + -9.042458782317675 + ], + [ + -2.486617172974045, + 4.021412523241528, + -9.13668738379236 + ], + [ + -2.4866840187157857, + 4.523968766311586, + -9.243472149726285 + ], + [ + -2.4867575561605655, + 5.026484887678869, + -9.362810449284524 + ], + [ + -2.4868374337586747, + 5.528957645730915, + -9.494699470069397 + ], + [ + -2.4869232815549496, + 6.031384124268121, + -9.639136252439597 + ], + [ + -2.487014715472128, + 6.5337617397724665, + -9.796117723777025 + ], + [ + -2.4866374139778458, + 7.034915144122403, + -9.965297721118805 + ], + [ + -1.9900527749064691, + -7.03503153185113, + -10.021202868589244 + ], + [ + -1.9895856164967147, + -6.533846746385677, + -9.852106164967147 + ], + [ + -1.9895119115182984, + -6.031464265445105, + -9.695119115182985 + ], + [ + -1.9894427023223524, + -5.52903256861353, + -9.550677023223525 + ], + [ + -1.989378299909124, + -5.02655425022719, + -9.418782999091242 + ], + [ + -1.9893190039286033, + -4.524032241160643, + -9.299440039286031 + ], + [ + -1.9892650991975662, + -4.0214698016048676, + -9.192650991975661 + ], + [ + -1.9892168522092908, + -3.518870508633741, + -9.098418522092908 + ], + [ + -1.9891745077112872, + -3.0162382384330693, + -9.016745077112873 + ], + [ + -1.9891382854305513, + -2.513577143211811, + -8.947632854305512 + ], + [ + -1.9891083770272566, + -2.0108916229727436, + -8.891083770272566 + ], + [ + -1.9890849433561497, + -1.5081862924828877, + -8.847099433561498 + ], + [ + -1.9890681121100011, + -1.0054659439449996, + -8.815681121100011 + ], + [ + -1.9890579759113562, + -0.502735506022161, + -8.796829759113562 + ], + [ + -1.9890545909076902, + 0.0, + -8.7905459090769 + ], + [ + -1.9890579759113562, + 0.502735506022161, + -8.796829759113562 + ], + [ + -1.9890681121100011, + 1.0054659439449996, + -8.815681121100011 + ], + [ + -1.9890849433561497, + 1.5081862924828877, + -8.847099433561498 + ], + [ + -1.9891083770272566, + 2.0108916229727436, + -8.891083770272566 + ], + [ + -1.9891382854305513, + 2.513577143211811, + -8.947632854305512 + ], + [ + -1.9891745077112872, + 3.0162382384330693, + -9.016745077112873 + ], + [ + -1.9892168522092908, + 3.518870508633741, + -9.098418522092908 + ], + [ + -1.9892650991975662, + 4.0214698016048676, + -9.192650991975661 + ], + [ + -1.9893190039286033, + 4.524032241160643, + -9.299440039286031 + ], + [ + -1.989378299909124, + 5.02655425022719, + -9.418782999091242 + ], + [ + -1.9894427023223524, + 5.52903256861353, + -9.550677023223525 + ], + [ + -1.9895119115182984, + 6.031464265445105, + -9.695119115182985 + ], + [ + -1.9895856164967147, + 6.533846746385677, + -9.852106164967147 + ], + [ + -1.989195812549812, + 7.03500556733861, + -10.021279800478194 + ], + [ + -1.4926340266085802, + -7.0350966967473525, + -10.06475978741525 + ], + [ + -1.4921738519100545, + -6.5339133083897645, + -9.895651358800725 + ], + [ + -1.492118244076325, + -6.031527023694701, + -9.738659921017666 + ], + [ + -1.4920660238922334, + -5.529091245728478, + -9.594213651896444 + ], + [ + -1.4920174268217248, + -5.026608577260918, + -9.46231569095633 + ], + [ + -1.4919726797857265, + -4.524081960642821, + -9.342969063809685 + ], + [ + -1.4919319985164952, + -4.02151467062268, + -9.236176646886602 + ], + [ + -1.4918955849051923, + -3.5189103018878853, + -9.141941132069228 + ], + [ + -1.4918636244000947, + -3.0162727511998106, + -9.060264992001262 + ], + [ + -1.4918362835160777, + -2.5136061941398706, + -8.991150446881035 + ], + [ + -1.4918137075171123, + -2.0109150566438503, + -8.934599433561496 + ], + [ + -1.4917960183323002, + -1.5082039816676998, + -8.890613577764002 + ], + [ + -1.4917833127622473, + -1.0054777914918354, + -8.859194170163295 + ], + [ + -1.4917756610263928, + -0.5027414463245358, + -8.84034214701857 + ], + [ + -1.4917731056934203, + 0.0, + -8.834058075912269 + ], + [ + -1.4917756610263928, + 0.5027414463245358, + -8.84034214701857 + ], + [ + -1.4917833127622473, + 1.0054777914918354, + -8.859194170163295 + ], + [ + -1.4917960183323002, + 1.5082039816676998, + -8.890613577764002 + ], + [ + -1.4918137075171123, + 2.0109150566438503, + -8.934599433561496 + ], + [ + -1.4918362835160777, + 2.5136061941398706, + -8.991150446881035 + ], + [ + -1.4918636244000947, + 3.0162727511998106, + -9.060264992001262 + ], + [ + -1.4918955849051923, + 3.5189103018878853, + -9.141941132069228 + ], + [ + -1.4919319985164952, + 4.02151467062268, + -9.236176646886602 + ], + [ + -1.4919726797857265, + 4.524081960642821, + -9.342969063809685 + ], + [ + -1.4920174268217248, + 5.026608577260918, + -9.46231569095633 + ], + [ + -1.4920660238922334, + 5.529091245728478, + -9.594213651896444 + ], + [ + -1.492118244076325, + 6.031527023694701, + -9.738659921017666 + ], + [ + -1.4921738519100545, + 6.5339133083897645, + -9.895651358800725 + ], + [ + -1.491772036135497, + 7.035077109106566, + -10.064817824869435 + ], + [ + -0.995227557769088, + -7.035142529154896, + -10.095873987689195 + ], + [ + -0.9947752163342198, + -6.53396109382757, + -9.9267543266844 + ], + [ + -0.9947379863944156, + -6.031572081633506, + -9.769759727888314 + ], + [ + -0.994703022464226, + -5.529133376446756, + -9.625310449284523 + ], + [ + -0.9946704825857733, + -5.026647587071133, + -9.493409651715467 + ], + [ + -0.9946405190915248, + -4.524117664088138, + -9.374060381830498 + ], + [ + -0.9946132768243816, + -4.021546892702474, + -9.267265536487633 + ], + [ + -0.9945888913526238, + -3.5189388802658166, + -9.173027827052477 + ], + [ + -0.9945674872184271, + -3.0162975383447184, + -9.091349744368545 + ], + [ + -0.994549176260854, + -2.513627059347865, + -9.022233525217082 + ], + [ + -0.9945340560550004, + -2.010931887889999, + -8.96568112110001 + ], + [ + -0.9945222085081648, + -1.5082166872377527, + -8.921694170163295 + ], + [ + -0.9945136986514079, + -1.005486301348592, + -8.89027397302816 + ], + [ + -0.9945085736607074, + -0.5027457131696463, + -8.871421473214149 + ], + [ + -0.9945068621361718, + 0.0, + -8.865137242723437 + ], + [ + -0.9945085736607074, + 0.5027457131696463, + -8.871421473214149 + ], + [ + -0.9945136986514079, + 1.005486301348592, + -8.89027397302816 + ], + [ + -0.9945222085081648, + 1.5082166872377527, + -8.921694170163295 + ], + [ + -0.9945340560550004, + 2.010931887889999, + -8.96568112110001 + ], + [ + -0.994549176260854, + 2.513627059347865, + -9.022233525217082 + ], + [ + -0.9945674872184271, + 3.0162975383447184, + -9.091349744368545 + ], + [ + -0.9945888913526238, + 3.5189388802658166, + -9.173027827052477 + ], + [ + -0.9946132768243816, + 4.021546892702474, + -9.267265536487633 + ], + [ + -0.9946405190915248, + 4.524117664088138, + -9.374060381830498 + ], + [ + -0.9946704825857733, + 5.026647587071133, + -9.493409651715467 + ], + [ + -0.994703022464226, + 5.529133376446756, + -9.625310449284523 + ], + [ + -0.9947379863944156, + 6.031572081633506, + -9.769759727888314 + ], + [ + -0.9947752163342198, + 6.53396109382757, + -9.9267543266844 + ], + [ + -0.9943619456022866, + 7.035129415862675, + -10.095912841888369 + ], + [ + -0.4978290864287216, + -7.03516879985471, + -10.114546148578638 + ], + [ + -0.49738539521302155, + -6.533989862230719, + -9.945415808520865 + ], + [ + -0.4973667325579798, + -6.031599209304242, + -9.788419302319195 + ], + [ + -0.49734920519008463, + -5.529158742909069, + -9.643968207603386 + ], + [ + -0.49733289245267115, + -5.026671075473288, + -9.512065698106849 + ], + [ + -0.497317870829982, + -4.524139162530162, + -9.392714833199282 + ], + [ + -0.49730421305232264, + -4.021566295581418, + -9.285918522092908 + ], + [ + -0.49729198719845463, + -3.518956089610817, + -9.191679487938188 + ], + [ + -0.4972812558147149, + -3.0163124651117106, + -9.110000232588597 + ], + [ + -0.49727207507146104, + -2.513639624642695, + -9.040883002858443 + ], + [ + -0.497264493977839, + -2.010942024088644, + -8.984329759113562 + ], + [ + -0.49725855367546423, + -1.5082243389736072, + -8.94034214701857 + ], + [ + -0.4972542868303537, + -1.0054914263392927, + -8.90892147321415 + ], + [ + -0.4972517171403485, + -0.5027482828596516, + -8.89006868561394 + ], + [ + -0.49725085897237764, + 0.0, + -8.883784358895106 + ], + [ + -0.4972517171403485, + 0.5027482828596516, + -8.89006868561394 + ], + [ + -0.4972542868303537, + 1.0054914263392927, + -8.90892147321415 + ], + [ + -0.49725855367546423, + 1.5082243389736072, + -8.94034214701857 + ], + [ + -0.497264493977839, + 2.010942024088644, + -8.984329759113562 + ], + [ + -0.49727207507146104, + 2.513639624642695, + -9.040883002858443 + ], + [ + -0.4972812558147149, + 3.0163124651117106, + -9.110000232588597 + ], + [ + -0.49729198719845463, + 3.518956089610817, + -9.191679487938188 + ], + [ + -0.49730421305232264, + 4.021566295581418, + -9.285918522092908 + ], + [ + -0.497317870829982, + 4.524139162530162, + -9.392714833199282 + ], + [ + -0.49733289245267115, + 5.026671075473288, + -9.512065698106849 + ], + [ + -0.49734920519008463, + 5.529158742909069, + -9.643968207603386 + ], + [ + -0.4973667325579798, + 6.031599209304242, + -9.788419302319195 + ], + [ + -0.49738539521302155, + 6.533989862230719, + -9.945415808520865 + ], + [ + -0.49696128905435505, + 7.035162226656748, + -10.114565624720747 + ], + [ + -0.00043426391037547287, + -7.0351753767404155, + -10.12077666150988 + ], + [ + 0.0, + -6.533999467957131, + -9.951636252439595 + ], + [ + 0.0, + -6.031608267412298, + -9.794639108625674 + ], + [ + 0.0, + -5.529167213132315, + -9.650187406791582 + ], + [ + 0.0, + -5.026678918753997, + -9.518284324984014 + ], + [ + 0.0, + -4.524146341463415, + -9.398932926829268 + ], + [ + 0.0, + -4.0215727748652, + -9.292136125673998 + ], + [ + 0.0, + -3.5189618364927475, + -9.197896648612874 + ], + [ + 0.0, + -3.016317449822327, + -9.116217001184486 + ], + [ + 0.0, + -2.513643820804813, + -9.047099433561497 + ], + [ + 0.0, + -2.01094540909231, + -8.9905459090769 + ], + [ + 0.0, + -1.5082268943065797, + -8.94655807591227 + ], + [ + 0.0, + -1.0054931378638283, + -8.915137242723437 + ], + [ + 0.0, + -0.5027491410276224, + -8.896284358895105 + ], + [ + 0.0, + 0.0, + -8.89 + ], + [ + 0.0, + 0.5027491410276224, + -8.896284358895105 + ], + [ + 0.0, + 1.0054931378638283, + -8.915137242723437 + ], + [ + 0.0, + 1.5082268943065797, + -8.94655807591227 + ], + [ + 0.0, + 2.01094540909231, + -8.9905459090769 + ], + [ + 0.0, + 2.513643820804813, + -9.047099433561497 + ], + [ + 0.0, + 3.016317449822327, + -9.116217001184486 + ], + [ + 0.0, + 3.5189618364927475, + -9.197896648612874 + ], + [ + 0.0, + 4.0215727748652, + -9.292136125673998 + ], + [ + 0.0, + 4.524146341463415, + -9.398932926829268 + ], + [ + 0.0, + 5.026678918753997, + -9.518284324984014 + ], + [ + 0.0, + 5.529167213132315, + -9.650187406791582 + ], + [ + 0.0, + 6.031608267412298, + -9.794639108625674 + ], + [ + 0.0, + 6.533999467957131, + -9.951636252439595 + ], + [ + 0.00043426391037547287, + 7.0351753767404155, + -10.12077666150988 + ], + [ + 0.49696128905435505, + -7.035162226656748, + -10.114565624720747 + ], + [ + 0.49738539521302155, + -6.533989862230719, + -9.945415808520865 + ], + [ + 0.4973667325579798, + -6.031599209304242, + -9.788419302319195 + ], + [ + 0.49734920519008463, + -5.529158742909069, + -9.643968207603386 + ], + [ + 0.49733289245267115, + -5.026671075473288, + -9.512065698106849 + ], + [ + 0.497317870829982, + -4.524139162530162, + -9.392714833199282 + ], + [ + 0.49730421305232264, + -4.021566295581418, + -9.285918522092908 + ], + [ + 0.49729198719845463, + -3.518956089610817, + -9.191679487938188 + ], + [ + 0.4972812558147149, + -3.0163124651117106, + -9.110000232588597 + ], + [ + 0.49727207507146104, + -2.513639624642695, + -9.040883002858443 + ], + [ + 0.497264493977839, + -2.010942024088644, + -8.984329759113562 + ], + [ + 0.49725855367546423, + -1.5082243389736072, + -8.94034214701857 + ], + [ + 0.4972542868303537, + -1.0054914263392927, + -8.90892147321415 + ], + [ + 0.4972517171403485, + -0.5027482828596516, + -8.89006868561394 + ], + [ + 0.49725085897237764, + 0.0, + -8.883784358895106 + ], + [ + 0.4972517171403485, + 0.5027482828596516, + -8.89006868561394 + ], + [ + 0.4972542868303537, + 1.0054914263392927, + -8.90892147321415 + ], + [ + 0.49725855367546423, + 1.5082243389736072, + -8.94034214701857 + ], + [ + 0.497264493977839, + 2.010942024088644, + -8.984329759113562 + ], + [ + 0.49727207507146104, + 2.513639624642695, + -9.040883002858443 + ], + [ + 0.4972812558147149, + 3.0163124651117106, + -9.110000232588597 + ], + [ + 0.49729198719845463, + 3.518956089610817, + -9.191679487938188 + ], + [ + 0.49730421305232264, + 4.021566295581418, + -9.285918522092908 + ], + [ + 0.497317870829982, + 4.524139162530162, + -9.392714833199282 + ], + [ + 0.49733289245267115, + 5.026671075473288, + -9.512065698106849 + ], + [ + 0.49734920519008463, + 5.529158742909069, + -9.643968207603386 + ], + [ + 0.4973667325579798, + 6.031599209304242, + -9.788419302319195 + ], + [ + 0.49738539521302155, + 6.533989862230719, + -9.945415808520865 + ], + [ + 0.4978290864287216, + 7.03516879985471, + -10.114546148578638 + ], + [ + 0.9943619456022866, + -7.035129415862675, + -10.095912841888369 + ], + [ + 0.9947752163342198, + -6.53396109382757, + -9.9267543266844 + ], + [ + 0.9947379863944156, + -6.031572081633506, + -9.769759727888314 + ], + [ + 0.994703022464226, + -5.529133376446756, + -9.625310449284523 + ], + [ + 0.9946704825857733, + -5.026647587071133, + -9.493409651715467 + ], + [ + 0.9946405190915248, + -4.524117664088138, + -9.374060381830498 + ], + [ + 0.9946132768243816, + -4.021546892702474, + -9.267265536487633 + ], + [ + 0.9945888913526238, + -3.5189388802658166, + -9.173027827052477 + ], + [ + 0.9945674872184271, + -3.0162975383447184, + -9.091349744368545 + ], + [ + 0.994549176260854, + -2.513627059347865, + -9.022233525217082 + ], + [ + 0.9945340560550004, + -2.010931887889999, + -8.96568112110001 + ], + [ + 0.9945222085081648, + -1.5082166872377527, + -8.921694170163295 + ], + [ + 0.9945136986514079, + -1.005486301348592, + -8.89027397302816 + ], + [ + 0.9945085736607074, + -0.5027457131696463, + -8.871421473214149 + ], + [ + 0.9945068621361718, + 0.0, + -8.865137242723437 + ], + [ + 0.9945085736607074, + 0.5027457131696463, + -8.871421473214149 + ], + [ + 0.9945136986514079, + 1.005486301348592, + -8.89027397302816 + ], + [ + 0.9945222085081648, + 1.5082166872377527, + -8.921694170163295 + ], + [ + 0.9945340560550004, + 2.010931887889999, + -8.96568112110001 + ], + [ + 0.994549176260854, + 2.513627059347865, + -9.022233525217082 + ], + [ + 0.9945674872184271, + 3.0162975383447184, + -9.091349744368545 + ], + [ + 0.9945888913526238, + 3.5189388802658166, + -9.173027827052477 + ], + [ + 0.9946132768243816, + 4.021546892702474, + -9.267265536487633 + ], + [ + 0.9946405190915248, + 4.524117664088138, + -9.374060381830498 + ], + [ + 0.9946704825857733, + 5.026647587071133, + -9.493409651715467 + ], + [ + 0.994703022464226, + 5.529133376446756, + -9.625310449284523 + ], + [ + 0.9947379863944156, + 6.031572081633506, + -9.769759727888314 + ], + [ + 0.9947752163342198, + 6.53396109382757, + -9.9267543266844 + ], + [ + 0.995227557769088, + 7.035142529154896, + -10.095873987689195 + ], + [ + 1.491772036135497, + -7.035077109106566, + -10.064817824869435 + ], + [ + 1.4921738519100545, + -6.5339133083897645, + -9.895651358800725 + ], + [ + 1.492118244076325, + -6.031527023694701, + -9.738659921017666 + ], + [ + 1.4920660238922334, + -5.529091245728478, + -9.594213651896444 + ], + [ + 1.4920174268217248, + -5.026608577260918, + -9.46231569095633 + ], + [ + 1.4919726797857265, + -4.524081960642821, + -9.342969063809685 + ], + [ + 1.4919319985164952, + -4.02151467062268, + -9.236176646886602 + ], + [ + 1.4918955849051923, + -3.5189103018878853, + -9.141941132069228 + ], + [ + 1.4918636244000947, + -3.0162727511998106, + -9.060264992001262 + ], + [ + 1.4918362835160777, + -2.5136061941398706, + -8.991150446881035 + ], + [ + 1.4918137075171123, + -2.0109150566438503, + -8.934599433561496 + ], + [ + 1.4917960183323002, + -1.5082039816676998, + -8.890613577764002 + ], + [ + 1.4917833127622473, + -1.0054777914918354, + -8.859194170163295 + ], + [ + 1.4917756610263928, + -0.5027414463245358, + -8.84034214701857 + ], + [ + 1.4917731056934203, + 0.0, + -8.834058075912269 + ], + [ + 1.4917756610263928, + 0.5027414463245358, + -8.84034214701857 + ], + [ + 1.4917833127622473, + 1.0054777914918354, + -8.859194170163295 + ], + [ + 1.4917960183323002, + 1.5082039816676998, + -8.890613577764002 + ], + [ + 1.4918137075171123, + 2.0109150566438503, + -8.934599433561496 + ], + [ + 1.4918362835160777, + 2.5136061941398706, + -8.991150446881035 + ], + [ + 1.4918636244000947, + 3.0162727511998106, + -9.060264992001262 + ], + [ + 1.4918955849051923, + 3.5189103018878853, + -9.141941132069228 + ], + [ + 1.4919319985164952, + 4.02151467062268, + -9.236176646886602 + ], + [ + 1.4919726797857265, + 4.524081960642821, + -9.342969063809685 + ], + [ + 1.4920174268217248, + 5.026608577260918, + -9.46231569095633 + ], + [ + 1.4920660238922334, + 5.529091245728478, + -9.594213651896444 + ], + [ + 1.492118244076325, + 6.031527023694701, + -9.738659921017666 + ], + [ + 1.4921738519100545, + 6.5339133083897645, + -9.895651358800725 + ], + [ + 1.4926340266085802, + 7.0350966967473525, + -10.06475978741525 + ], + [ + 1.989195812549812, + -7.03500556733861, + -10.021279800478194 + ], + [ + 1.9895856164967147, + -6.533846746385677, + -9.852106164967147 + ], + [ + 1.9895119115182984, + -6.031464265445105, + -9.695119115182985 + ], + [ + 1.9894427023223524, + -5.52903256861353, + -9.550677023223525 + ], + [ + 1.989378299909124, + -5.02655425022719, + -9.418782999091242 + ], + [ + 1.9893190039286033, + -4.524032241160643, + -9.299440039286031 + ], + [ + 1.9892650991975662, + -4.0214698016048676, + -9.192650991975661 + ], + [ + 1.9892168522092908, + -3.518870508633741, + -9.098418522092908 + ], + [ + 1.9891745077112872, + -3.0162382384330693, + -9.016745077112873 + ], + [ + 1.9891382854305513, + -2.513577143211811, + -8.947632854305512 + ], + [ + 1.9891083770272566, + -2.0108916229727436, + -8.891083770272566 + ], + [ + 1.9890849433561497, + -1.5081862924828877, + -8.847099433561498 + ], + [ + 1.9890681121100011, + -1.0054659439449996, + -8.815681121100011 + ], + [ + 1.9890579759113562, + -0.502735506022161, + -8.796829759113562 + ], + [ + 1.9890545909076902, + 0.0, + -8.7905459090769 + ], + [ + 1.9890579759113562, + 0.502735506022161, + -8.796829759113562 + ], + [ + 1.9890681121100011, + 1.0054659439449996, + -8.815681121100011 + ], + [ + 1.9890849433561497, + 1.5081862924828877, + -8.847099433561498 + ], + [ + 1.9891083770272566, + 2.0108916229727436, + -8.891083770272566 + ], + [ + 1.9891382854305513, + 2.513577143211811, + -8.947632854305512 + ], + [ + 1.9891745077112872, + 3.0162382384330693, + -9.016745077112873 + ], + [ + 1.9892168522092908, + 3.518870508633741, + -9.098418522092908 + ], + [ + 1.9892650991975662, + 4.0214698016048676, + -9.192650991975661 + ], + [ + 1.9893190039286033, + 4.524032241160643, + -9.299440039286031 + ], + [ + 1.989378299909124, + 5.02655425022719, + -9.418782999091242 + ], + [ + 1.9894427023223524, + 5.52903256861353, + -9.550677023223525 + ], + [ + 1.9895119115182984, + 6.031464265445105, + -9.695119115182985 + ], + [ + 1.9895856164967147, + 6.533846746385677, + -9.852106164967147 + ], + [ + 1.9900527749064691, + 7.03503153185113, + -10.021202868589244 + ], + [ + 2.4866374139778458, + -7.034915144122403, + -9.965297721118805 + ], + [ + 2.487014715472128, + -6.5337617397724665, + -9.796117723777025 + ], + [ + 2.4869232815549496, + -6.031384124268121, + -9.639136252439597 + ], + [ + 2.4868374337586747, + -5.528957645730915, + -9.494699470069397 + ], + [ + 2.4867575561605655, + -5.026484887678869, + -9.362810449284524 + ], + [ + 2.4866840187157857, + -4.523968766311586, + -9.243472149726285 + ], + [ + 2.486617172974045, + -4.021412523241528, + -9.13668738379236 + ], + [ + 2.4865573477897094, + -3.518819713094407, + -9.042458782317675 + ], + [ + 2.4865048451176723, + -3.0161941858587933, + -8.960788760941378 + ], + [ + 2.4864599359922734, + -2.5135400640077266, + -8.891679487938188 + ], + [ + 2.486422856788189, + -2.0108617145694487, + -8.835132854305511 + ], + [ + 2.4863938058601294, + -1.5081637164839223, + -8.791150446881035 + ], + [ + 2.486372940652135, + -1.005450823739146, + -8.759733525217083 + ], + [ + 2.486360375357305, + -0.502727924928539, + -8.740883002858443 + ], + [ + 2.486356179195187, + 0.0, + -8.734599433561497 + ], + [ + 2.486360375357305, + 0.502727924928539, + -8.740883002858443 + ], + [ + 2.486372940652135, + 1.005450823739146, + -8.759733525217083 + ], + [ + 2.4863938058601294, + 1.5081637164839223, + -8.791150446881035 + ], + [ + 2.486422856788189, + 2.0108617145694487, + -8.835132854305511 + ], + [ + 2.4864599359922734, + 2.5135400640077266, + -8.891679487938188 + ], + [ + 2.4865048451176723, + 3.0161941858587933, + -8.960788760941378 + ], + [ + 2.4865573477897094, + 3.518819713094407, + -9.042458782317675 + ], + [ + 2.486617172974045, + 4.021412523241528, + -9.13668738379236 + ], + [ + 2.4866840187157857, + 4.523968766311586, + -9.243472149726285 + ], + [ + 2.4867575561605655, + 5.026484887678869, + -9.362810449284524 + ], + [ + 2.4868374337586747, + 5.528957645730915, + -9.494699470069397 + ], + [ + 2.4869232815549496, + 6.031384124268121, + -9.639136252439597 + ], + [ + 2.487014715472128, + 6.5337617397724665, + -9.796117723777025 + ], + [ + 2.487487983069271, + 7.034947357634104, + -9.965202273676727 + ], + [ + 2.984100834677311, + -7.034806280841561, + -9.896870278987965 + ], + [ + 2.984465211945791, + -6.533658707450786, + -9.727684746305274 + ], + [ + 2.9843564997163807, + -6.0312870005672385, + -9.570709998109205 + ], + [ + 2.9842544420444064, + -5.528866856251922, + -9.426279613629376 + ], + [ + 2.9841594930956683, + -5.026400844840553, + -9.29439662063779 + ], + [ + 2.9840720901871096, + -4.523891864719336, + -9.17506393458073 + ], + [ + 2.983992648747602, + -4.021343135003197, + -9.068284324984015 + ], + [ + 2.983921557274575, + -3.5187581831796626, + -8.9740603818305 + ], + [ + 2.983859172394531, + -3.016140827605469, + -8.892394482630205 + ], + [ + 2.9838058141412067, + -2.5134951548823277, + -8.823288760941379 + ], + [ + 2.9837617615669307, + -2.0108254922887125, + -8.766745077112873 + ], + [ + 2.9837272488001894, + -1.5081363755999053, + -8.722764992001263 + ], + [ + 2.9837024616552816, + -1.0054325127815729, + -8.691349744368546 + ], + [ + 2.9836875348882894, + -0.5027187441852851, + -8.672500232588597 + ], + [ + 2.983682550177673, + 0.0, + -8.666217001184487 + ], + [ + 2.9836875348882894, + 0.5027187441852851, + -8.672500232588597 + ], + [ + 2.9837024616552816, + 1.0054325127815729, + -8.691349744368546 + ], + [ + 2.9837272488001894, + 1.5081363755999053, + -8.722764992001263 + ], + [ + 2.9837617615669307, + 2.0108254922887125, + -8.766745077112873 + ], + [ + 2.9838058141412067, + 2.5134951548823277, + -8.823288760941379 + ], + [ + 2.983859172394531, + 3.016140827605469, + -8.892394482630205 + ], + [ + 2.983921557274575, + 3.5187581831796626, + -8.9740603818305 + ], + [ + 2.983992648747602, + 4.021343135003197, + -9.068284324984015 + ], + [ + 2.9840720901871096, + 4.523891864719336, + -9.17506393458073 + ], + [ + 2.9841594930956683, + 5.026400844840553, + -9.29439662063779 + ], + [ + 2.9842544420444064, + 5.528866856251922, + -9.426279613629376 + ], + [ + 2.9843564997163807, + 6.0312870005672385, + -9.570709998109205 + ], + [ + 2.984465211945791, + 6.533658707450786, + -9.727684746305274 + ], + [ + 2.9849436970579895, + 7.034844586808652, + -9.896756779826214 + ], + [ + 3.481589894622707, + -7.034679500826994, + -9.815995923475574 + ], + [ + 3.4819409963519226, + -6.533538149632144, + -9.646805693439557 + ], + [ + 3.481815532819855, + -6.03117337230882, + -9.4898387589706 + ], + [ + 3.481697766491151, + -5.5287606526567625, + -9.345415808520864 + ], + [ + 3.481588218155436, + -5.026302545492235, + -9.21353981803106 + ], + [ + 3.481487389081878, + -4.5238019283233, + -9.094213651896444 + ], + [ + 3.48139575527535, + -4.021261993971028, + -8.987440030144858 + ], + [ + 3.481313761732523, + -3.518686238267477, + -8.893221495614416 + ], + [ + 3.4812418168203374, + -3.016078442725425, + -8.811560381830498 + ], + [ + 3.481180286905593, + -2.5134426522102906, + -8.742458782317675 + ], + [ + 3.481129491366259, + -2.010783147790709, + -8.685918522092907 + ], + [ + 3.4810896981121147, + -1.5081044150948077, + -8.641941132069228 + ], + [ + 3.4810611197341834, + -1.0054111086473763, + -8.610527827052477 + ], + [ + 3.481043910389183, + -0.5027080128015453, + -8.591679487938187 + ], + [ + 3.4810381635072525, + 0.0, + -8.585396648612873 + ], + [ + 3.481043910389183, + 0.5027080128015453, + -8.591679487938187 + ], + [ + 3.4810611197341834, + 1.0054111086473763, + -8.610527827052477 + ], + [ + 3.4810896981121147, + 1.5081044150948077, + -8.641941132069228 + ], + [ + 3.481129491366259, + 2.010783147790709, + -8.685918522092907 + ], + [ + 3.481180286905593, + 2.5134426522102906, + -8.742458782317675 + ], + [ + 3.4812418168203374, + 3.016078442725425, + -8.811560381830498 + ], + [ + 3.481313761732523, + 3.518686238267477, + -8.893221495614416 + ], + [ + 3.48139575527535, + 4.021261993971028, + -8.987440030144858 + ], + [ + 3.481487389081878, + 4.5238019283233, + -9.094213651896444 + ], + [ + 3.481588218155436, + 5.026302545492235, + -9.21353981803106 + ], + [ + 3.481697766491151, + 5.5287606526567625, + -9.345415808520864 + ], + [ + 3.481815532819855, + 6.03117337230882, + -9.4898387589706 + ], + [ + 3.4819409963519226, + 6.533538149632144, + -9.646805693439557 + ], + [ + 3.4824237980218755, + 7.034723716103123, + -9.815864915250003 + ], + [ + 3.9791082132692797, + -7.034535402554864, + -9.722672881318921 + ], + [ + 3.97944575922185, + -6.533400641264494, + -9.553478796109248 + ], + [ + 3.979304140895561, + -6.031043788656659, + -9.396520704477805 + ], + [ + 3.9791712329934295, + -5.528639554634035, + -9.252106164967145 + ], + [ + 3.979047619047619, + -5.026190476190476, + -9.120238095238095 + ], + [ + 3.978933860463839, + -4.5236994069781815, + -9.000919302319193 + ], + [ + 3.978830490129714, + -4.021169509870286, + -8.89415245064857 + ], + [ + 3.9787380060289714, + -3.51860424472465, + -8.799940030144858 + ], + [ + 3.9786568649968026, + -3.016007351252398, + -8.718284324984014 + ], + [ + 3.978587476758472, + -2.513382827025955, + -8.64918738379236 + ], + [ + 3.9785301983951324, + -2.0107349008024338, + -8.59265099197566 + ], + [ + 3.9784853293773206, + -1.5080680014835048, + -8.548676646886602 + ], + [ + 3.978453107297527, + -1.0053867231756184, + -8.517265536487633 + ], + [ + 3.9784337044185816, + -0.5026957869476774, + -8.498418522092907 + ], + [ + 3.9784272251347996, + 0.0, + -8.492136125673998 + ], + [ + 3.9784337044185816, + 0.5026957869476774, + -8.498418522092907 + ], + [ + 3.978453107297527, + 1.0053867231756184, + -8.517265536487633 + ], + [ + 3.9784853293773206, + 1.5080680014835048, + -8.548676646886602 + ], + [ + 3.9785301983951324, + 2.0107349008024338, + -8.59265099197566 + ], + [ + 3.978587476758472, + 2.513382827025955, + -8.64918738379236 + ], + [ + 3.9786568649968026, + 3.016007351252398, + -8.718284324984014 + ], + [ + 3.9787380060289714, + 3.51860424472465, + -8.799940030144858 + ], + [ + 3.978830490129714, + 4.021169509870286, + -8.89415245064857 + ], + [ + 3.978933860463839, + 4.5236994069781815, + -9.000919302319193 + ], + [ + 3.979047619047619, + 5.026190476190476, + -9.120238095238095 + ], + [ + 3.9791712329934295, + 5.528639554634035, + -9.252106164967145 + ], + [ + 3.979304140895561, + 6.031043788656659, + -9.396520704477805 + ], + [ + 3.97944575922185, + 6.533400641264494, + -9.553478796109248 + ], + [ + 3.9799319749589235, + 7.034585319751642, + -9.722524978513652 + ], + [ + 4.476659186856886, + -7.034374652083495, + -9.616899179011867 + ], + [ + 4.476982967528723, + -6.533246824680732, + -9.44770207790544 + ], + [ + 4.476825852855166, + -6.030898862859779, + -9.290753790467406 + ], + [ + 4.476678429052138, + -5.528504142269608, + -9.14634857356506 + ], + [ + 4.47654133816109, + -5.0260651798210105, + -9.014489280715956 + ], + [ + 4.476415197567313, + -4.523584802432687, + -8.895178655854725 + ], + [ + 4.4763005930218185, + -4.0210661395361615, + -8.788419302319195 + ], + [ + 4.4761980716767, + -3.518512610918122, + -8.694213651896446 + ], + [ + 4.476108135280664, + -3.0159279098128904, + -8.61256393458073 + ], + [ + 4.476031233688414, + -2.5133159812842143, + -8.543472149726286 + ], + [ + 4.475967758839357, + -2.0106809960713967, + -8.486940039286031 + ], + [ + 4.475918039357179, + -1.5080273202142735, + -8.442969063809686 + ], + [ + 4.475882335911862, + -1.0053594809084752, + -8.4115603818305 + ], + [ + 4.475860837469838, + -0.502682129170018, + -8.392714833199282 + ], + [ + 4.475853658536585, + 0.0, + -8.386432926829269 + ], + [ + 4.475860837469838, + 0.502682129170018, + -8.392714833199282 + ], + [ + 4.475882335911862, + 1.0053594809084752, + -8.4115603818305 + ], + [ + 4.475918039357179, + 1.5080273202142735, + -8.442969063809686 + ], + [ + 4.475967758839357, + 2.0106809960713967, + -8.486940039286031 + ], + [ + 4.476031233688414, + 2.5133159812842143, + -8.543472149726286 + ], + [ + 4.476108135280664, + 3.0159279098128904, + -8.61256393458073 + ], + [ + 4.4761980716767, + 3.518512610918122, + -8.694213651896446 + ], + [ + 4.4763005930218185, + 4.0210661395361615, + -8.788419302319195 + ], + [ + 4.476415197567313, + 4.523584802432687, + -8.895178655854725 + ], + [ + 4.47654133816109, + 5.0260651798210105, + -9.014489280715956 + ], + [ + 4.476678429052138, + 5.528504142269608, + -9.14634857356506 + ], + [ + 4.476825852855166, + 6.030898862859779, + -9.290753790467406 + ], + [ + 4.476982967528723, + 6.533246824680732, + -9.44770207790544 + ], + [ + 4.477471700805518, + 7.034430042165151, + -9.616735060251404 + ], + [ + 4.974245969512982, + -7.034197974908992, + -9.49867266693632 + ], + [ + 4.974555844886742, + -6.533077401647234, + -9.32947337954697 + ], + [ + 4.974383946194206, + -6.030739264566953, + -9.172535784776823 + ], + [ + 4.974222683006384, + -5.528355048692977, + -9.028140732025538 + ], + [ + 4.974072751356493, + -5.025927248643507, + -8.896291005425972 + ], + [ + 4.9739348201789895, + -4.52345866183891, + -8.776989280715956 + ], + [ + 4.973809523809524, + -4.020952380952381, + -8.670238095238096 + ], + [ + 4.973697454507765, + -3.518411781844564, + -8.576039818031061 + ], + [ + 4.973599155159447, + -3.0158405069043317, + -8.49439662063779 + ], + [ + 4.973515112321131, + -2.5132424438394345, + -8.425310449284524 + ], + [ + 4.97344574977281, + -2.010621700090876, + -8.368782999091241 + ], + [ + 4.973391422739082, + -1.5079825731782752, + -8.324815690956331 + ], + [ + 4.973352412928867, + -1.0053295174142267, + -8.293409651715468 + ], + [ + 4.973328924526712, + -0.5026671075473288, + -8.274565698106848 + ], + [ + 4.973321081246003, + 0.0, + -8.268284324984014 + ], + [ + 4.973328924526712, + 0.5026671075473288, + -8.274565698106848 + ], + [ + 4.973352412928867, + 1.0053295174142267, + -8.293409651715468 + ], + [ + 4.973391422739082, + 1.5079825731782752, + -8.324815690956331 + ], + [ + 4.97344574977281, + 2.010621700090876, + -8.368782999091241 + ], + [ + 4.973515112321131, + 2.5132424438394345, + -8.425310449284524 + ], + [ + 4.973599155159447, + 3.0158405069043317, + -8.49439662063779 + ], + [ + 4.973697454507765, + 3.518411781844564, + -8.576039818031061 + ], + [ + 4.973809523809524, + 4.020952380952381, + -8.670238095238096 + ], + [ + 4.9739348201789895, + 4.52345866183891, + -8.776989280715956 + ], + [ + 4.974072751356493, + 5.025927248643507, + -8.896291005425972 + ], + [ + 4.974222683006384, + 5.528355048692977, + -9.028140732025538 + ], + [ + 4.974383946194206, + 6.030739264566953, + -9.172535784776823 + ], + [ + 4.974555844886742, + 6.533077401647234, + -9.32947337954697 + ], + [ + 4.975046212251078, + 7.034258589960384, + -9.498493066784047 + ], + [ + 5.471871458303438, + -7.0340061474242015, + -9.367991044669031 + ], + [ + 5.472167355773192, + -6.532893124995319, + -9.198790384629788 + ], + [ + 5.471981430898827, + -6.030565711746735, + -9.041864294177554 + ], + [ + 5.471807047646049, + -5.528192952353951, + -8.89748017325836 + ], + [ + 5.471644951307023, + -5.025777316993616, + -8.765640732025538 + ], + [ + 5.471495857730392, + -4.523321570947862, + -8.64634857356506 + ], + [ + 5.471360445365965, + -4.020828767006571, + -8.539606164967147 + ], + [ + 5.4712393473432375, + -3.518302233508849, + -8.445415808520865 + ], + [ + 5.471133143748078, + -3.0157455579555936, + -8.363779613629376 + ], + [ + 5.471042354269085, + -2.5131625662413253, + -8.294699470069398 + ], + [ + 5.47096743138647, + -2.0105572976776473, + -8.238177023223525 + ], + [ + 5.470908754271522, + -1.5079339761077666, + -8.194213651896446 + ], + [ + 5.470866623553244, + -1.0052969775357739, + -8.162810449284525 + ], + [ + 5.470841257090931, + -0.5026507948099154, + -8.143968207603386 + ], + [ + 5.470832786867685, + 0.0, + -8.137687406791583 + ], + [ + 5.470841257090931, + 0.5026507948099154, + -8.143968207603386 + ], + [ + 5.470866623553244, + 1.0052969775357739, + -8.162810449284525 + ], + [ + 5.470908754271522, + 1.5079339761077666, + -8.194213651896446 + ], + [ + 5.47096743138647, + 2.0105572976776473, + -8.238177023223525 + ], + [ + 5.471042354269085, + 2.5131625662413253, + -8.294699470069398 + ], + [ + 5.471133143748078, + 3.0157455579555936, + -8.363779613629376 + ], + [ + 5.4712393473432375, + 3.518302233508849, + -8.445415808520865 + ], + [ + 5.471360445365965, + 4.020828767006571, + -8.539606164967147 + ], + [ + 5.471495857730392, + 4.523321570947862, + -8.64634857356506 + ], + [ + 5.471644951307023, + 5.025777316993616, + -8.765640732025538 + ], + [ + 5.471807047646049, + 5.528192952353951, + -8.89748017325836 + ], + [ + 5.471981430898827, + 6.030565711746735, + -9.041864294177554 + ], + [ + 5.472167355773192, + 6.532893124995319, + -9.198790384629788 + ], + [ + 5.472658493463172, + 7.034071723530509, + -9.367796745094786 + ], + [ + 5.969538282271973, + -7.033799988163976, + -9.224851886921554 + ], + [ + 5.969820193829806, + -6.53269479001771, + -9.055650646099354 + ], + [ + 5.969621037609356, + -6.030378962390644, + -8.898736792031185 + ], + [ + 5.969434288253265, + -5.528018569101173, + -8.754364294177552 + ], + [ + 5.969260735433047, + -5.025616053805794, + -8.622535784776822 + ], + [ + 5.969101137140221, + -4.523174147144834, + -8.503253790467404 + ], + [ + 5.968956211343341, + -4.020695859104439, + -8.396520704477805 + ], + [ + 5.96882662769118, + -3.518184467180145, + -8.3023387589706 + ], + [ + 5.9687129994327615, + -3.0156435002836193, + -8.220709998109204 + ], + [ + 5.968615875731879, + -2.5130767184450504, + -8.151636252439596 + ], + [ + 5.968535734554895, + -2.0104880884817016, + -8.095119115182984 + ], + [ + 5.968472976305299, + -1.507881755923675, + -8.051159921017666 + ], + [ + 5.968427918366494, + -1.0052620136055843, + -8.019759727888314 + ], + [ + 5.968400790695758, + -0.5026332674420202, + -8.000919302319193 + ], + [ + 5.968391732587702, + 3.1193089999682e-17, + -7.994639108625673 + ], + [ + 5.968400790695758, + 0.5026332674420202, + -8.000919302319193 + ], + [ + 5.968427918366494, + 1.0052620136055843, + -8.019759727888314 + ], + [ + 5.968472976305299, + 1.507881755923675, + -8.051159921017666 + ], + [ + 5.968535734554895, + 2.0104880884817016, + -8.095119115182984 + ], + [ + 5.968615875731879, + 2.5130767184450504, + -8.151636252439596 + ], + [ + 5.9687129994327615, + 3.0156435002836193, + -8.220709998109204 + ], + [ + 5.96882662769118, + 3.518184467180145, + -8.3023387589706 + ], + [ + 5.968956211343341, + 4.020695859104439, + -8.396520704477805 + ], + [ + 5.969101137140221, + 4.523174147144834, + -8.503253790467404 + ], + [ + 5.969260735433047, + 5.025616053805794, + -8.622535784776822 + ], + [ + 5.969434288253265, + 5.528018569101173, + -8.754364294177552 + ], + [ + 5.969621037609356, + 6.030378962390644, + -8.898736792031185 + ], + [ + 5.969820193829806, + 6.53269479001771, + -9.055650646099354 + ], + [ + 5.970311263799298, + 7.033870248341646, + -9.224643708617345 + ], + [ + 6.467248795407911, + -7.0335803490121425, + -9.069252669593652 + ], + [ + 6.4675167741946655, + -6.5324832258053345, + -8.900051612906664 + ], + [ + 6.46730520998229, + -6.030179806170194, + -8.743150646099354 + ], + [ + 6.467106875004681, + -5.527832644226808, + -8.598790384629787 + ], + [ + 6.466922598352766, + -5.025444155113258, + -8.46697337954697 + ], + [ + 6.466753175319268, + -4.523017032471277, + -8.347702077905439 + ], + [ + 6.466599358735506, + -4.02055424077815, + -8.240978796109248 + ], + [ + 6.466461850367856, + -3.5180590036480774, + -8.146805693439557 + ], + [ + 6.466341292549214, + -3.015534788054209, + -8.065184746305272 + ], + [ + 6.4662382602275335, + -2.512985284527872, + -7.996117723777025 + ], + [ + 6.466153253614323, + -2.0104143835032855, + -7.939606164967146 + ], + [ + 6.4660866916102355, + -1.5078261480899455, + -7.895651358800725 + ], + [ + 6.46603890617243, + -1.00522478366578, + -7.864254326684399 + ], + [ + 6.466010137769281, + -0.5026146047869784, + -7.845415808520864 + ], + [ + 6.466000532042869, + 0.0, + -7.839136252439595 + ], + [ + 6.466010137769281, + 0.5026146047869784, + -7.845415808520864 + ], + [ + 6.46603890617243, + 1.00522478366578, + -7.864254326684399 + ], + [ + 6.4660866916102355, + 1.5078261480899455, + -7.895651358800725 + ], + [ + 6.466153253614323, + 2.0104143835032855, + -7.939606164967146 + ], + [ + 6.4662382602275335, + 2.512985284527872, + -7.996117723777025 + ], + [ + 6.466341292549214, + 3.015534788054209, + -8.065184746305272 + ], + [ + 6.466461850367856, + 3.5180590036480774, + -8.146805693439557 + ], + [ + 6.466599358735506, + 4.02055424077815, + -8.240978796109248 + ], + [ + 6.466753175319268, + 4.523017032471277, + -8.347702077905439 + ], + [ + 6.466922598352766, + 5.025444155113258, + -8.46697337954697 + ], + [ + 6.467106875004681, + 5.527832644226808, + -8.598790384629787 + ], + [ + 6.46730520998229, + 6.030179806170194, + -8.743150646099354 + ], + [ + 6.4675167741946655, + 6.5324832258053345, + -8.900051612906664 + ], + [ + 6.468006969477753, + 7.033655006133793, + -9.069031463307281 + ], + [ + 6.966495708612789, + -7.033504291387211, + -8.900728025519376 + ], + [ + 6.9664196509878575, + -6.532751204592089, + -8.731752669593654 + ], + [ + 6.966200011836024, + -6.030461717728027, + -8.574851886921556 + ], + [ + 6.9659938525757985, + -5.528128541696562, + -8.430491044669031 + ], + [ + 6.965802025091008, + -5.025754030487018, + -8.298672666936321 + ], + [ + 6.965625347916505, + -4.523340813143114, + -8.179399179011867 + ], + [ + 6.965464597445136, + -4.02089178673072, + -8.072672881318923 + ], + [ + 6.965320499173006, + -3.518410105377293, + -7.978495923475575 + ], + [ + 6.965193719158439, + -3.015899165322689, + -7.896870278987965 + ], + [ + 6.965084855877597, + -2.5133625860221542, + -7.827797721118806 + ], + [ + 6.96499443266139, + -2.010804187450188, + -7.771279800478194 + ], + [ + 6.964922890893434, + -1.508227963864503, + -7.727317824869434 + ], + [ + 6.964870584137325, + -1.0056380543977133, + -7.695912841888369 + ], + [ + 6.964837773343252, + -0.5030387109456448, + -7.677065624720747 + ], + [ + 6.9648246232595845, + -0.0004342639103755345, + -7.670776661509881 + ], + [ + 6.96483120014529, + 0.5021709135712784, + -7.677046148578637 + ], + [ + 6.964857470845104, + 1.0047724422309119, + -7.695873987689195 + ], + [ + 6.9649033032526475, + 1.5073659733914198, + -7.727259787415251 + ], + [ + 6.96496846814887, + 2.009947225093531, + -7.771202868589244 + ], + [ + 6.965052642365896, + 2.512512016930729, + -7.827702273676729 + ], + [ + 6.965155413191348, + 3.0150563029420105, + -7.896756779826215 + ], + [ + 6.965276283896877, + 3.5175762019781245, + -7.978364915250005 + ], + [ + 6.965414680248358, + 4.020068025041076, + -8.072524978513654 + ], + [ + 6.965569957834849, + 4.522528299194482, + -8.179235060251404 + ], + [ + 6.965741410039616, + 5.024953787748922, + -8.298493066784047 + ], + [ + 6.965928276469491, + 5.527341506536828, + -8.430296745094786 + ], + [ + 6.966129751658354, + 6.029688736200702, + -8.574643708617346 + ], + [ + 6.966344993866207, + 6.531993030522247, + -8.731531463307283 + ], + [ + 6.966495708612789, + 7.033504291387211, + -8.900728025519376 + ], + [ + -7.033504291387211, + -6.966495708612789, + -9.099271974480624 + ], + [ + -7.033655006133793, + -6.468006969477753, + -8.930968536692719 + ], + [ + -7.033870248341646, + -5.970311263799298, + -8.775356291382655 + ], + [ + -7.034071723530509, + -5.472658493463172, + -8.632203254905214 + ], + [ + -7.034258589960384, + -4.975046212251078, + -8.501506933215953 + ], + [ + -7.034430042165151, + -4.477471700805518, + -8.383264939748596 + ], + [ + -7.034585319751642, + -3.9799319749589235, + -8.277475021486348 + ], + [ + -7.034723716103123, + -3.4824237980218755, + -8.184135084749997 + ], + [ + -7.034844586808652, + -2.9849436970579895, + -8.103243220173786 + ], + [ + -7.034947357634104, + -2.487487983069271, + -8.034797726323273 + ], + [ + -7.03503153185113, + -1.9900527749064691, + -7.978797131410756 + ], + [ + -7.0350966967473525, + -1.4926340266085802, + -7.935240212584748 + ], + [ + -7.035142529154896, + -0.9952275577690881, + -7.904126012310805 + ], + [ + -7.03516879985471, + -0.4978290864287216, + -7.885453851421363 + ], + [ + -7.0351753767404155, + -0.0004342639103755345, + -7.87922333849012 + ], + [ + -7.035162226656748, + 0.49696128905435516, + -7.885434375279253 + ], + [ + -7.035129415862675, + 0.9943619456022866, + -7.904087158111631 + ], + [ + -7.035077109106566, + 1.491772036135497, + -7.935182175130565 + ], + [ + -7.03500556733861, + 1.9891958125498117, + -7.978720199521806 + ], + [ + -7.034915144122403, + 2.4866374139778458, + -8.034702278881195 + ], + [ + -7.034806280841561, + 2.984100834677311, + -8.103129721012035 + ], + [ + -7.034679500826994, + 3.481589894622707, + -8.184004076524426 + ], + [ + -7.034535402554864, + 3.9791082132692797, + -8.277327118681079 + ], + [ + -7.034374652083495, + 4.476659186856886, + -8.383100820988133 + ], + [ + -7.034197974908992, + 4.974245969512982, + -8.50132733306368 + ], + [ + -7.0340061474242015, + 5.471871458303438, + -8.632008955330969 + ], + [ + -7.033799988163976, + 5.969538282271973, + -8.775148113078446 + ], + [ + -7.0335803490121425, + 6.467248795407911, + -8.930747330406348 + ], + [ + -7.033504291387211, + 6.966495708612789, + -9.099271974480624 + ], + [ + -6.531993030522247, + -6.966344993866207, + -9.268468536692717 + ], + [ + -6.5324832258053345, + -6.4675167741946655, + -9.099948387093336 + ], + [ + -6.53269479001771, + -5.969820193829806, + -8.944349353900646 + ], + [ + -6.532893124995319, + -5.472167355773192, + -8.801209615370212 + ], + [ + -6.533077401647234, + -4.974555844886742, + -8.67052662045303 + ], + [ + -6.533246824680732, + -4.476982967528723, + -8.55229792209456 + ], + [ + -6.533400641264494, + -3.97944575922185, + -8.446521203890752 + ], + [ + -6.533538149632144, + -3.4819409963519226, + -8.353194306560443 + ], + [ + -6.533658707450786, + -2.984465211945791, + -8.272315253694726 + ], + [ + -6.5337617397724665, + -2.487014715472128, + -8.203882276222975 + ], + [ + -6.533846746385677, + -1.9895856164967147, + -8.147893835032853 + ], + [ + -6.5339133083897645, + -1.4921738519100545, + -8.104348641199275 + ], + [ + -6.53396109382757, + -0.99477521633422, + -8.0732456733156 + ], + [ + -6.533989862230719, + -0.4973853952130216, + -8.054584191479137 + ], + [ + -6.533999467957131, + 0.0, + -8.048363747560405 + ], + [ + -6.533989862230719, + 0.49738539521302155, + -8.054584191479137 + ], + [ + -6.53396109382757, + 0.99477521633422, + -8.0732456733156 + ], + [ + -6.5339133083897645, + 1.4921738519100545, + -8.104348641199275 + ], + [ + -6.533846746385677, + 1.9895856164967147, + -8.147893835032853 + ], + [ + -6.5337617397724665, + 2.487014715472128, + -8.203882276222975 + ], + [ + -6.533658707450786, + 2.984465211945791, + -8.272315253694726 + ], + [ + -6.533538149632144, + 3.4819409963519226, + -8.353194306560443 + ], + [ + -6.533400641264494, + 3.97944575922185, + -8.446521203890752 + ], + [ + -6.533246824680732, + 4.476982967528723, + -8.55229792209456 + ], + [ + -6.533077401647234, + 4.974555844886742, + -8.67052662045303 + ], + [ + -6.532893124995319, + 5.472167355773192, + -8.801209615370212 + ], + [ + -6.53269479001771, + 5.969820193829806, + -8.944349353900646 + ], + [ + -6.5324832258053345, + 6.4675167741946655, + -9.099948387093336 + ], + [ + -6.532751204592089, + 6.9664196509878575, + -9.268247330406346 + ], + [ + -6.029688736200702, + -6.966129751658354, + -9.425356291382654 + ], + [ + -6.030179806170194, + -6.46730520998229, + -9.256849353900646 + ], + [ + -6.030378962390644, + -5.969621037609356, + -9.101263207968815 + ], + [ + -6.030565711746735, + -5.471981430898827, + -8.958135705822446 + ], + [ + -6.030739264566953, + -4.974383946194206, + -8.827464215223177 + ], + [ + -6.030898862859779, + -4.476825852855166, + -8.709246209532594 + ], + [ + -6.031043788656659, + -3.979304140895561, + -8.603479295522195 + ], + [ + -6.03117337230882, + -3.481815532819855, + -8.5101612410294 + ], + [ + -6.0312870005672385, + -2.9843564997163807, + -8.429290001890795 + ], + [ + -6.031384124268121, + -2.4869232815549496, + -8.360863747560403 + ], + [ + -6.031464265445105, + -1.9895119115182984, + -8.304880884817015 + ], + [ + -6.031527023694701, + -1.492118244076325, + -8.261340078982334 + ], + [ + -6.031572081633506, + -0.9947379863944156, + -8.230240272111686 + ], + [ + -6.031599209304242, + -0.4973667325579798, + -8.211580697680805 + ], + [ + -6.031608267412298, + 3.1193089999682e-17, + -8.205360891374326 + ], + [ + -6.031599209304242, + 0.49736673255797975, + -8.211580697680805 + ], + [ + -6.031572081633506, + 0.9947379863944156, + -8.230240272111686 + ], + [ + -6.031527023694701, + 1.492118244076325, + -8.261340078982334 + ], + [ + -6.031464265445105, + 1.9895119115182984, + -8.304880884817015 + ], + [ + -6.031384124268121, + 2.4869232815549496, + -8.360863747560403 + ], + [ + -6.0312870005672385, + 2.9843564997163807, + -8.429290001890795 + ], + [ + -6.03117337230882, + 3.481815532819855, + -8.5101612410294 + ], + [ + -6.031043788656659, + 3.979304140895561, + -8.603479295522195 + ], + [ + -6.030898862859779, + 4.476825852855166, + -8.709246209532594 + ], + [ + -6.030739264566953, + 4.974383946194206, + -8.827464215223177 + ], + [ + -6.030565711746735, + 5.471981430898827, + -8.958135705822446 + ], + [ + -6.030378962390644, + 5.969621037609356, + -9.101263207968815 + ], + [ + -6.030179806170194, + 6.46730520998229, + -9.256849353900646 + ], + [ + -6.030461717728027, + 6.966200011836024, + -9.425148113078444 + ], + [ + -5.527341506536828, + -6.965928276469491, + -9.569703254905214 + ], + [ + -5.527832644226808, + -6.467106875004681, + -9.401209615370213 + ], + [ + -5.528018569101173, + -5.969434288253265, + -9.245635705822448 + ], + [ + -5.528192952353951, + -5.471807047646049, + -9.10251982674164 + ], + [ + -5.528355048692977, + -4.974222683006384, + -8.971859267974462 + ], + [ + -5.528504142269608, + -4.476678429052138, + -8.85365142643494 + ], + [ + -5.528639554634035, + -3.9791712329934295, + -8.747893835032855 + ], + [ + -5.5287606526567625, + -3.481697766491151, + -8.654584191479136 + ], + [ + -5.528866856251922, + -2.9842544420444064, + -8.573720386370624 + ], + [ + -5.528957645730915, + -2.4868374337586747, + -8.505300529930603 + ], + [ + -5.52903256861353, + -1.9894427023223524, + -8.449322976776475 + ], + [ + -5.529091245728478, + -1.4920660238922334, + -8.405786348103556 + ], + [ + -5.529133376446756, + -0.994703022464226, + -8.374689550715477 + ], + [ + -5.529158742909069, + -0.49734920519008463, + -8.356031792396614 + ], + [ + -5.529167213132315, + 0.0, + -8.349812593208418 + ], + [ + -5.529158742909069, + 0.49734920519008463, + -8.356031792396614 + ], + [ + -5.529133376446756, + 0.994703022464226, + -8.374689550715477 + ], + [ + -5.529091245728478, + 1.4920660238922334, + -8.405786348103556 + ], + [ + -5.52903256861353, + 1.9894427023223524, + -8.449322976776475 + ], + [ + -5.528957645730915, + 2.4868374337586747, + -8.505300529930603 + ], + [ + -5.528866856251922, + 2.9842544420444064, + -8.573720386370624 + ], + [ + -5.5287606526567625, + 3.481697766491151, + -8.654584191479136 + ], + [ + -5.528639554634035, + 3.9791712329934295, + -8.747893835032855 + ], + [ + -5.528504142269608, + 4.476678429052138, + -8.85365142643494 + ], + [ + -5.528355048692977, + 4.974222683006384, + -8.971859267974462 + ], + [ + -5.528192952353951, + 5.471807047646049, + -9.10251982674164 + ], + [ + -5.528018569101173, + 5.969434288253265, + -9.245635705822448 + ], + [ + -5.527832644226808, + 6.467106875004681, + -9.401209615370213 + ], + [ + -5.528128541696562, + 6.9659938525757985, + -9.569508955330969 + ], + [ + -5.024953787748922, + -6.965741410039616, + -9.701506933215953 + ], + [ + -5.025444155113258, + -6.466922598352766, + -9.53302662045303 + ], + [ + -5.025616053805794, + -5.969260735433047, + -9.377464215223178 + ], + [ + -5.025777316993616, + -5.471644951307023, + -9.234359267974462 + ], + [ + -5.025927248643507, + -4.974072751356493, + -9.103708994574028 + ], + [ + -5.0260651798210105, + -4.47654133816109, + -8.985510719284044 + ], + [ + -5.026190476190476, + -3.979047619047619, + -8.879761904761905 + ], + [ + -5.026302545492235, + -3.481588218155436, + -8.78646018196894 + ], + [ + -5.026400844840553, + -2.9841594930956683, + -8.70560337936221 + ], + [ + -5.026484887678869, + -2.4867575561605655, + -8.637189550715476 + ], + [ + -5.02655425022719, + -1.989378299909124, + -8.581217000908758 + ], + [ + -5.026608577260918, + -1.4920174268217248, + -8.53768430904367 + ], + [ + -5.026647587071133, + -0.9946704825857733, + -8.506590348284533 + ], + [ + -5.026671075473288, + -0.49733289245267115, + -8.487934301893151 + ], + [ + -5.026678918753997, + 0.0, + -8.481715675015986 + ], + [ + -5.026671075473288, + 0.49733289245267115, + -8.487934301893151 + ], + [ + -5.026647587071133, + 0.9946704825857733, + -8.506590348284533 + ], + [ + -5.026608577260918, + 1.4920174268217248, + -8.53768430904367 + ], + [ + -5.02655425022719, + 1.989378299909124, + -8.581217000908758 + ], + [ + -5.026484887678869, + 2.4867575561605655, + -8.637189550715476 + ], + [ + -5.026400844840553, + 2.9841594930956683, + -8.70560337936221 + ], + [ + -5.026302545492235, + 3.481588218155436, + -8.78646018196894 + ], + [ + -5.026190476190476, + 3.979047619047619, + -8.879761904761905 + ], + [ + -5.0260651798210105, + 4.47654133816109, + -8.985510719284044 + ], + [ + -5.025927248643507, + 4.974072751356493, + -9.103708994574028 + ], + [ + -5.025777316993616, + 5.471644951307023, + -9.234359267974462 + ], + [ + -5.025616053805794, + 5.969260735433047, + -9.377464215223178 + ], + [ + -5.025444155113258, + 6.466922598352766, + -9.53302662045303 + ], + [ + -5.025754030487018, + 6.965802025091008, + -9.701327333063679 + ], + [ + -4.522528299194482, + -6.965569957834849, + -9.820764939748596 + ], + [ + -4.523017032471277, + -6.466753175319268, + -9.652297922094561 + ], + [ + -4.523174147144834, + -5.969101137140221, + -9.496746209532596 + ], + [ + -4.523321570947862, + -5.471495857730392, + -9.35365142643494 + ], + [ + -4.52345866183891, + -4.9739348201789895, + -9.223010719284044 + ], + [ + -4.523584802432687, + -4.476415197567313, + -9.104821344145275 + ], + [ + -4.5236994069781815, + -3.978933860463839, + -8.999080697680807 + ], + [ + -4.5238019283233, + -3.481487389081878, + -8.905786348103556 + ], + [ + -4.523891864719336, + -2.9840720901871096, + -8.82493606541927 + ], + [ + -4.523968766311586, + -2.4866840187157857, + -8.756527850273715 + ], + [ + -4.524032241160643, + -1.9893190039286033, + -8.700559960713969 + ], + [ + -4.524081960642821, + -1.4919726797857265, + -8.657030936190315 + ], + [ + -4.524117664088138, + -0.9946405190915248, + -8.625939618169502 + ], + [ + -4.524139162530162, + -0.497317870829982, + -8.607285166800718 + ], + [ + -4.524146341463415, + 0.0, + -8.601067073170732 + ], + [ + -4.524139162530162, + 0.497317870829982, + -8.607285166800718 + ], + [ + -4.524117664088138, + 0.9946405190915248, + -8.625939618169502 + ], + [ + -4.524081960642821, + 1.4919726797857265, + -8.657030936190315 + ], + [ + -4.524032241160643, + 1.9893190039286033, + -8.700559960713969 + ], + [ + -4.523968766311586, + 2.4866840187157857, + -8.756527850273715 + ], + [ + -4.523891864719336, + 2.9840720901871096, + -8.82493606541927 + ], + [ + -4.5238019283233, + 3.481487389081878, + -8.905786348103556 + ], + [ + -4.5236994069781815, + 3.978933860463839, + -8.999080697680807 + ], + [ + -4.523584802432687, + 4.476415197567313, + -9.104821344145275 + ], + [ + -4.52345866183891, + 4.9739348201789895, + -9.223010719284044 + ], + [ + -4.523321570947862, + 5.471495857730392, + -9.35365142643494 + ], + [ + -4.523174147144834, + 5.969101137140221, + -9.496746209532596 + ], + [ + -4.523017032471277, + 6.466753175319268, + -9.652297922094561 + ], + [ + -4.523340813143114, + 6.965625347916505, + -9.820600820988133 + ], + [ + -4.020068025041076, + -6.965414680248358, + -9.927475021486346 + ], + [ + -4.02055424077815, + -6.466599358735506, + -9.759021203890752 + ], + [ + -4.020695859104439, + -5.968956211343341, + -9.603479295522195 + ], + [ + -4.020828767006571, + -5.471360445365965, + -9.460393835032853 + ], + [ + -4.020952380952381, + -4.973809523809524, + -9.329761904761904 + ], + [ + -4.0210661395361615, + -4.4763005930218185, + -9.211580697680805 + ], + [ + -4.021169509870286, + -3.978830490129714, + -9.10584754935143 + ], + [ + -4.021261993971028, + -3.48139575527535, + -9.012559969855142 + ], + [ + -4.021343135003197, + -2.983992648747602, + -8.931715675015985 + ], + [ + -4.021412523241528, + -2.486617172974045, + -8.86331261620764 + ], + [ + -4.0214698016048676, + -1.9892650991975662, + -8.807349008024339 + ], + [ + -4.02151467062268, + -1.4919319985164952, + -8.763823353113398 + ], + [ + -4.021546892702474, + -0.9946132768243816, + -8.732734463512367 + ], + [ + -4.021566295581418, + -0.49730421305232264, + -8.714081477907092 + ], + [ + -4.0215727748652, + 0.0, + -8.707863874326002 + ], + [ + -4.021566295581418, + 0.49730421305232264, + -8.714081477907092 + ], + [ + -4.021546892702474, + 0.9946132768243816, + -8.732734463512367 + ], + [ + -4.02151467062268, + 1.4919319985164952, + -8.763823353113398 + ], + [ + -4.0214698016048676, + 1.9892650991975662, + -8.807349008024339 + ], + [ + -4.021412523241528, + 2.486617172974045, + -8.86331261620764 + ], + [ + -4.021343135003197, + 2.983992648747602, + -8.931715675015985 + ], + [ + -4.021261993971028, + 3.48139575527535, + -9.012559969855142 + ], + [ + -4.021169509870286, + 3.978830490129714, + -9.10584754935143 + ], + [ + -4.0210661395361615, + 4.4763005930218185, + -9.211580697680805 + ], + [ + -4.020952380952381, + 4.973809523809524, + -9.329761904761904 + ], + [ + -4.020828767006571, + 5.471360445365965, + -9.460393835032853 + ], + [ + -4.020695859104439, + 5.968956211343341, + -9.603479295522195 + ], + [ + -4.02055424077815, + 6.466599358735506, + -9.759021203890752 + ], + [ + -4.02089178673072, + 6.965464597445136, + -9.927327118681077 + ], + [ + -3.5175762019781245, + -6.965276283896877, + -10.021635084749995 + ], + [ + -3.5180590036480774, + -6.466461850367856, + -9.853194306560443 + ], + [ + -3.518184467180145, + -5.96882662769118, + -9.6976612410294 + ], + [ + -3.518302233508849, + -5.4712393473432375, + -9.554584191479135 + ], + [ + -3.518411781844564, + -4.973697454507765, + -9.423960181968939 + ], + [ + -3.518512610918122, + -4.4761980716767, + -9.305786348103554 + ], + [ + -3.51860424472465, + -3.9787380060289714, + -9.200059969855142 + ], + [ + -3.518686238267477, + -3.481313761732523, + -9.106778504385584 + ], + [ + -3.5187581831796626, + -2.983921557274575, + -9.0259396181695 + ], + [ + -3.518819713094407, + -2.4865573477897094, + -8.957541217682325 + ], + [ + -3.518870508633741, + -1.9892168522092908, + -8.901581477907092 + ], + [ + -3.5189103018878853, + -1.4918955849051923, + -8.858058867930772 + ], + [ + -3.5189388802658166, + -0.9945888913526238, + -8.826972172947523 + ], + [ + -3.518956089610817, + -0.49729198719845463, + -8.808320512061812 + ], + [ + -3.5189618364927475, + 0.0, + -8.802103351387126 + ], + [ + -3.518956089610817, + 0.49729198719845463, + -8.808320512061812 + ], + [ + -3.5189388802658166, + 0.9945888913526238, + -8.826972172947523 + ], + [ + -3.5189103018878853, + 1.4918955849051923, + -8.858058867930772 + ], + [ + -3.518870508633741, + 1.9892168522092908, + -8.901581477907092 + ], + [ + -3.518819713094407, + 2.4865573477897094, + -8.957541217682325 + ], + [ + -3.5187581831796626, + 2.983921557274575, + -9.0259396181695 + ], + [ + -3.518686238267477, + 3.481313761732523, + -9.106778504385584 + ], + [ + -3.51860424472465, + 3.9787380060289714, + -9.200059969855142 + ], + [ + -3.518512610918122, + 4.4761980716767, + -9.305786348103554 + ], + [ + -3.518411781844564, + 4.973697454507765, + -9.423960181968939 + ], + [ + -3.518302233508849, + 5.4712393473432375, + -9.554584191479135 + ], + [ + -3.518184467180145, + 5.96882662769118, + -9.6976612410294 + ], + [ + -3.5180590036480774, + 6.466461850367856, + -9.853194306560443 + ], + [ + -3.518410105377293, + 6.965320499173006, + -10.021504076524424 + ], + [ + -3.0150563029420105, + -6.965155413191348, + -10.103243220173786 + ], + [ + -3.015534788054209, + -6.466341292549214, + -9.934815253694728 + ], + [ + -3.0156435002836193, + -5.9687129994327615, + -9.779290001890796 + ], + [ + -3.0157455579555936, + -5.471133143748078, + -9.636220386370624 + ], + [ + -3.0158405069043317, + -4.973599155159447, + -9.50560337936221 + ], + [ + -3.0159279098128904, + -4.476108135280664, + -9.38743606541927 + ], + [ + -3.016007351252398, + -3.9786568649968026, + -9.281715675015986 + ], + [ + -3.016078442725425, + -3.4812418168203374, + -9.188439618169502 + ], + [ + -3.016140827605469, + -2.983859172394531, + -9.107605517369795 + ], + [ + -3.0161941858587933, + -2.4865048451176723, + -9.039211239058622 + ], + [ + -3.0162382384330693, + -1.9891745077112872, + -8.983254922887127 + ], + [ + -3.0162727511998106, + -1.4918636244000947, + -8.939735007998738 + ], + [ + -3.0162975383447184, + -0.9945674872184271, + -8.908650255631455 + ], + [ + -3.0163124651117106, + -0.4972812558147149, + -8.889999767411403 + ], + [ + -3.016317449822327, + 0.0, + -8.883782998815514 + ], + [ + -3.0163124651117106, + 0.4972812558147149, + -8.889999767411403 + ], + [ + -3.0162975383447184, + 0.9945674872184271, + -8.908650255631455 + ], + [ + -3.0162727511998106, + 1.4918636244000947, + -8.939735007998738 + ], + [ + -3.0162382384330693, + 1.9891745077112872, + -8.983254922887127 + ], + [ + -3.0161941858587933, + 2.4865048451176723, + -9.039211239058622 + ], + [ + -3.016140827605469, + 2.983859172394531, + -9.107605517369795 + ], + [ + -3.016078442725425, + 3.4812418168203374, + -9.188439618169502 + ], + [ + -3.016007351252398, + 3.9786568649968026, + -9.281715675015986 + ], + [ + -3.0159279098128904, + 4.476108135280664, + -9.38743606541927 + ], + [ + -3.0158405069043317, + 4.973599155159447, + -9.50560337936221 + ], + [ + -3.0157455579555936, + 5.471133143748078, + -9.636220386370624 + ], + [ + -3.0156435002836193, + 5.9687129994327615, + -9.779290001890796 + ], + [ + -3.015534788054209, + 6.466341292549214, + -9.934815253694728 + ], + [ + -3.015899165322689, + 6.965193719158439, + -10.103129721012035 + ], + [ + -2.512512016930729, + -6.965052642365896, + -10.172297726323272 + ], + [ + -2.512985284527872, + -6.4662382602275335, + -10.003882276222976 + ], + [ + -2.5130767184450504, + -5.968615875731879, + -9.848363747560404 + ], + [ + -2.5131625662413253, + -5.471042354269085, + -9.705300529930602 + ], + [ + -2.5132424438394345, + -4.973515112321131, + -9.574689550715476 + ], + [ + -2.5133159812842143, + -4.476031233688414, + -9.456527850273714 + ], + [ + -2.513382827025955, + -3.978587476758472, + -9.35081261620764 + ], + [ + -2.5134426522102906, + -3.481180286905593, + -9.257541217682325 + ], + [ + -2.5134951548823277, + -2.9838058141412067, + -9.176711239058621 + ], + [ + -2.5135400640077266, + -2.4864599359922734, + -9.108320512061812 + ], + [ + -2.513577143211811, + -1.9891382854305513, + -9.052367145694488 + ], + [ + -2.5136061941398706, + -1.4918362835160777, + -9.008849553118965 + ], + [ + -2.513627059347865, + -0.994549176260854, + -8.977766474782918 + ], + [ + -2.513639624642695, + -0.49727207507146104, + -8.959116997141557 + ], + [ + -2.513643820804813, + 0.0, + -8.952900566438503 + ], + [ + -2.513639624642695, + 0.49727207507146104, + -8.959116997141557 + ], + [ + -2.513627059347865, + 0.994549176260854, + -8.977766474782918 + ], + [ + -2.5136061941398706, + 1.4918362835160777, + -9.008849553118965 + ], + [ + -2.513577143211811, + 1.9891382854305513, + -9.052367145694488 + ], + [ + -2.5135400640077266, + 2.4864599359922734, + -9.108320512061812 + ], + [ + -2.5134951548823277, + 2.9838058141412067, + -9.176711239058621 + ], + [ + -2.5134426522102906, + 3.481180286905593, + -9.257541217682325 + ], + [ + -2.513382827025955, + 3.978587476758472, + -9.35081261620764 + ], + [ + -2.5133159812842143, + 4.476031233688414, + -9.456527850273714 + ], + [ + -2.5132424438394345, + 4.973515112321131, + -9.574689550715476 + ], + [ + -2.5131625662413253, + 5.471042354269085, + -9.705300529930602 + ], + [ + -2.5130767184450504, + 5.968615875731879, + -9.848363747560404 + ], + [ + -2.512985284527872, + 6.4662382602275335, + -10.003882276222976 + ], + [ + -2.5133625860221542, + 6.965084855877597, + -10.172202278881194 + ], + [ + -2.009947225093531, + -6.96496846814887, + -10.228797131410756 + ], + [ + -2.0104143835032855, + -6.466153253614323, + -10.060393835032855 + ], + [ + -2.0104880884817016, + -5.968535734554895, + -9.904880884817016 + ], + [ + -2.0105572976776473, + -5.47096743138647, + -9.761822976776475 + ], + [ + -2.010621700090876, + -4.97344574977281, + -9.631217000908759 + ], + [ + -2.0106809960713967, + -4.475967758839357, + -9.513059960713969 + ], + [ + -2.0107349008024338, + -3.9785301983951324, + -9.40734900802434 + ], + [ + -2.010783147790709, + -3.481129491366259, + -9.314081477907093 + ], + [ + -2.0108254922887125, + -2.9837617615669307, + -9.233254922887127 + ], + [ + -2.0108617145694487, + -2.486422856788189, + -9.164867145694489 + ], + [ + -2.0108916229727436, + -1.9891083770272566, + -9.108916229727434 + ], + [ + -2.0109150566438503, + -1.4918137075171123, + -9.065400566438504 + ], + [ + -2.010931887889999, + -0.9945340560550004, + -9.03431887889999 + ], + [ + -2.010942024088644, + -0.497264493977839, + -9.015670240886438 + ], + [ + -2.01094540909231, + 0.0, + -9.0094540909231 + ], + [ + -2.010942024088644, + 0.497264493977839, + -9.015670240886438 + ], + [ + -2.010931887889999, + 0.9945340560550004, + -9.03431887889999 + ], + [ + -2.0109150566438503, + 1.4918137075171123, + -9.065400566438504 + ], + [ + -2.0108916229727436, + 1.9891083770272566, + -9.108916229727434 + ], + [ + -2.0108617145694487, + 2.486422856788189, + -9.164867145694489 + ], + [ + -2.0108254922887125, + 2.9837617615669307, + -9.233254922887127 + ], + [ + -2.010783147790709, + 3.481129491366259, + -9.314081477907093 + ], + [ + -2.0107349008024338, + 3.9785301983951324, + -9.40734900802434 + ], + [ + -2.0106809960713967, + 4.475967758839357, + -9.513059960713969 + ], + [ + -2.010621700090876, + 4.97344574977281, + -9.631217000908759 + ], + [ + -2.0105572976776473, + 5.47096743138647, + -9.761822976776475 + ], + [ + -2.0104880884817016, + 5.968535734554895, + -9.904880884817016 + ], + [ + -2.0104143835032855, + 6.466153253614323, + -10.060393835032855 + ], + [ + -2.010804187450188, + 6.96499443266139, + -10.228720199521806 + ], + [ + -1.5073659733914198, + -6.9649033032526475, + -10.272740212584749 + ], + [ + -1.5078261480899455, + -6.4660866916102355, + -10.104348641199275 + ], + [ + -1.507881755923675, + -5.968472976305299, + -9.948840078982334 + ], + [ + -1.5079339761077666, + -5.470908754271522, + -9.805786348103554 + ], + [ + -1.5079825731782752, + -4.973391422739082, + -9.675184309043669 + ], + [ + -1.5080273202142735, + -4.475918039357179, + -9.557030936190314 + ], + [ + -1.5080680014835048, + -3.9784853293773206, + -9.451323353113398 + ], + [ + -1.5081044150948077, + -3.4810896981121147, + -9.358058867930772 + ], + [ + -1.5081363755999053, + -2.9837272488001894, + -9.277235007998737 + ], + [ + -1.5081637164839223, + -2.4863938058601294, + -9.208849553118965 + ], + [ + -1.5081862924828877, + -1.9890849433561497, + -9.152900566438502 + ], + [ + -1.5082039816676998, + -1.4917960183323002, + -9.109386422235998 + ], + [ + -1.5082166872377527, + -0.9945222085081648, + -9.078305829836705 + ], + [ + -1.5082243389736072, + -0.49725855367546423, + -9.05965785298143 + ], + [ + -1.5082268943065797, + 0.0, + -9.05344192408773 + ], + [ + -1.5082243389736072, + 0.49725855367546423, + -9.05965785298143 + ], + [ + -1.5082166872377527, + 0.9945222085081648, + -9.078305829836705 + ], + [ + -1.5082039816676998, + 1.4917960183323002, + -9.109386422235998 + ], + [ + -1.5081862924828877, + 1.9890849433561497, + -9.152900566438502 + ], + [ + -1.5081637164839223, + 2.4863938058601294, + -9.208849553118965 + ], + [ + -1.5081363755999053, + 2.9837272488001894, + -9.277235007998737 + ], + [ + -1.5081044150948077, + 3.4810896981121147, + -9.358058867930772 + ], + [ + -1.5080680014835048, + 3.9784853293773206, + -9.451323353113398 + ], + [ + -1.5080273202142735, + 4.475918039357179, + -9.557030936190314 + ], + [ + -1.5079825731782752, + 4.973391422739082, + -9.675184309043669 + ], + [ + -1.5079339761077666, + 5.470908754271522, + -9.805786348103554 + ], + [ + -1.507881755923675, + 5.968472976305299, + -9.948840078982334 + ], + [ + -1.5078261480899455, + 6.4660866916102355, + -10.104348641199275 + ], + [ + -1.508227963864503, + 6.964922890893434, + -10.272682175130564 + ], + [ + -1.0047724422309119, + -6.964857470845104, + -10.304126012310803 + ], + [ + -1.0052247836657802, + -6.46603890617243, + -10.1357456733156 + ], + [ + -1.0052620136055843, + -5.968427918366494, + -9.980240272111686 + ], + [ + -1.0052969775357739, + -5.470866623553244, + -9.837189550715475 + ], + [ + -1.0053295174142267, + -4.973352412928867, + -9.706590348284532 + ], + [ + -1.0053594809084752, + -4.475882335911862, + -9.5884396181695 + ], + [ + -1.0053867231756184, + -3.978453107297527, + -9.482734463512367 + ], + [ + -1.0054111086473763, + -3.4810611197341834, + -9.389472172947523 + ], + [ + -1.0054325127815729, + -2.9837024616552816, + -9.308650255631454 + ], + [ + -1.005450823739146, + -2.486372940652135, + -9.240266474782917 + ], + [ + -1.0054659439449996, + -1.9890681121100011, + -9.184318878899989 + ], + [ + -1.0054777914918354, + -1.4917833127622473, + -9.140805829836705 + ], + [ + -1.005486301348592, + -0.9945136986514079, + -9.10972602697184 + ], + [ + -1.0054914263392927, + -0.4972542868303537, + -9.09107852678585 + ], + [ + -1.0054931378638283, + 0.0, + -9.084862757276563 + ], + [ + -1.0054914263392927, + 0.4972542868303537, + -9.09107852678585 + ], + [ + -1.005486301348592, + 0.9945136986514079, + -9.10972602697184 + ], + [ + -1.0054777914918354, + 1.4917833127622473, + -9.140805829836705 + ], + [ + -1.0054659439449996, + 1.9890681121100011, + -9.184318878899989 + ], + [ + -1.005450823739146, + 2.486372940652135, + -9.240266474782917 + ], + [ + -1.0054325127815729, + 2.9837024616552816, + -9.308650255631454 + ], + [ + -1.0054111086473763, + 3.4810611197341834, + -9.389472172947523 + ], + [ + -1.0053867231756184, + 3.978453107297527, + -9.482734463512367 + ], + [ + -1.0053594809084752, + 4.475882335911862, + -9.5884396181695 + ], + [ + -1.0053295174142267, + 4.973352412928867, + -9.706590348284532 + ], + [ + -1.0052969775357739, + 5.470866623553244, + -9.837189550715475 + ], + [ + -1.0052620136055843, + 5.968427918366494, + -9.980240272111686 + ], + [ + -1.0052247836657802, + 6.46603890617243, + -10.1357456733156 + ], + [ + -1.0056380543977135, + 6.964870584137325, + -10.30408715811163 + ], + [ + -0.5021709135712784, + -6.96483120014529, + -10.322953851421362 + ], + [ + -0.5026146047869784, + -6.466010137769281, + -10.154584191479136 + ], + [ + -0.5026332674420202, + -5.968400790695758, + -9.999080697680807 + ], + [ + -0.5026507948099154, + -5.470841257090931, + -9.856031792396614 + ], + [ + -0.5026671075473288, + -4.973328924526712, + -9.725434301893152 + ], + [ + -0.502682129170018, + -4.475860837469838, + -9.607285166800718 + ], + [ + -0.5026957869476774, + -3.9784337044185816, + -9.501581477907093 + ], + [ + -0.5027080128015453, + -3.481043910389183, + -9.408320512061813 + ], + [ + -0.5027187441852851, + -2.9836875348882894, + -9.327499767411403 + ], + [ + -0.502727924928539, + -2.486360375357305, + -9.259116997141557 + ], + [ + -0.502735506022161, + -1.9890579759113562, + -9.203170240886438 + ], + [ + -0.5027414463245358, + -1.4917756610263928, + -9.15965785298143 + ], + [ + -0.5027457131696463, + -0.9945085736607074, + -9.128578526785851 + ], + [ + -0.5027482828596516, + -0.4972517171403485, + -9.10993131438606 + ], + [ + -0.5027491410276224, + 0.0, + -9.103715641104895 + ], + [ + -0.5027482828596516, + 0.4972517171403485, + -9.10993131438606 + ], + [ + -0.5027457131696463, + 0.9945085736607074, + -9.128578526785851 + ], + [ + -0.5027414463245358, + 1.4917756610263928, + -9.15965785298143 + ], + [ + -0.502735506022161, + 1.9890579759113562, + -9.203170240886438 + ], + [ + -0.502727924928539, + 2.486360375357305, + -9.259116997141557 + ], + [ + -0.5027187441852851, + 2.9836875348882894, + -9.327499767411403 + ], + [ + -0.5027080128015453, + 3.481043910389183, + -9.408320512061813 + ], + [ + -0.5026957869476774, + 3.9784337044185816, + -9.501581477907093 + ], + [ + -0.502682129170018, + 4.475860837469838, + -9.607285166800718 + ], + [ + -0.5026671075473288, + 4.973328924526712, + -9.725434301893152 + ], + [ + -0.5026507948099154, + 5.470841257090931, + -9.856031792396614 + ], + [ + -0.5026332674420202, + 5.968400790695758, + -9.999080697680807 + ], + [ + -0.5026146047869784, + 6.466010137769281, + -10.154584191479136 + ], + [ + -0.503038710945645, + 6.964837773343252, + -10.322934375279253 + ], + [ + 0.00043426391037547287, + -6.9648246232595845, + -10.329223338490118 + ], + [ + 0.0, + -6.466000532042869, + -10.160863747560406 + ], + [ + 0.0, + -5.968391732587702, + -10.005360891374327 + ], + [ + 0.0, + -5.470832786867685, + -9.862312593208417 + ], + [ + 0.0, + -4.973321081246003, + -9.731715675015986 + ], + [ + 0.0, + -4.475853658536585, + -9.613567073170731 + ], + [ + 0.0, + -3.9784272251347996, + -9.507863874326002 + ], + [ + 0.0, + -3.4810381635072525, + -9.414603351387127 + ], + [ + 0.0, + -2.983682550177673, + -9.333782998815513 + ], + [ + 0.0, + -2.486356179195187, + -9.265400566438503 + ], + [ + 0.0, + -1.9890545909076902, + -9.2094540909231 + ], + [ + 0.0, + -1.4917731056934203, + -9.165941924087731 + ], + [ + 0.0, + -0.9945068621361718, + -9.134862757276563 + ], + [ + 0.0, + -0.49725085897237764, + -9.116215641104894 + ], + [ + 0.0, + 0.0, + -9.11 + ], + [ + 0.0, + 0.49725085897237764, + -9.116215641104894 + ], + [ + 0.0, + 0.9945068621361718, + -9.134862757276563 + ], + [ + 0.0, + 1.4917731056934203, + -9.165941924087731 + ], + [ + 0.0, + 1.9890545909076902, + -9.2094540909231 + ], + [ + 0.0, + 2.486356179195187, + -9.265400566438503 + ], + [ + 0.0, + 2.983682550177673, + -9.333782998815513 + ], + [ + 0.0, + 3.4810381635072525, + -9.414603351387127 + ], + [ + 0.0, + 3.9784272251347996, + -9.507863874326002 + ], + [ + 0.0, + 4.475853658536585, + -9.613567073170731 + ], + [ + 0.0, + 4.973321081246003, + -9.731715675015986 + ], + [ + 0.0, + 5.470832786867685, + -9.862312593208417 + ], + [ + 0.0, + 5.968391732587702, + -10.005360891374327 + ], + [ + 0.0, + 6.466000532042869, + -10.160863747560406 + ], + [ + -0.00043426391037547287, + 6.9648246232595845, + -10.329223338490118 + ], + [ + 0.503038710945645, + -6.964837773343252, + -10.322934375279253 + ], + [ + 0.5026146047869784, + -6.466010137769281, + -10.154584191479136 + ], + [ + 0.5026332674420202, + -5.968400790695758, + -9.999080697680807 + ], + [ + 0.5026507948099154, + -5.470841257090931, + -9.856031792396614 + ], + [ + 0.5026671075473288, + -4.973328924526712, + -9.725434301893152 + ], + [ + 0.502682129170018, + -4.475860837469838, + -9.607285166800718 + ], + [ + 0.5026957869476774, + -3.9784337044185816, + -9.501581477907093 + ], + [ + 0.5027080128015453, + -3.481043910389183, + -9.408320512061813 + ], + [ + 0.5027187441852851, + -2.9836875348882894, + -9.327499767411403 + ], + [ + 0.502727924928539, + -2.486360375357305, + -9.259116997141557 + ], + [ + 0.502735506022161, + -1.9890579759113562, + -9.203170240886438 + ], + [ + 0.5027414463245358, + -1.4917756610263928, + -9.15965785298143 + ], + [ + 0.5027457131696463, + -0.9945085736607074, + -9.128578526785851 + ], + [ + 0.5027482828596516, + -0.4972517171403485, + -9.10993131438606 + ], + [ + 0.5027491410276224, + 0.0, + -9.103715641104895 + ], + [ + 0.5027482828596516, + 0.4972517171403485, + -9.10993131438606 + ], + [ + 0.5027457131696463, + 0.9945085736607074, + -9.128578526785851 + ], + [ + 0.5027414463245358, + 1.4917756610263928, + -9.15965785298143 + ], + [ + 0.502735506022161, + 1.9890579759113562, + -9.203170240886438 + ], + [ + 0.502727924928539, + 2.486360375357305, + -9.259116997141557 + ], + [ + 0.5027187441852851, + 2.9836875348882894, + -9.327499767411403 + ], + [ + 0.5027080128015453, + 3.481043910389183, + -9.408320512061813 + ], + [ + 0.5026957869476774, + 3.9784337044185816, + -9.501581477907093 + ], + [ + 0.502682129170018, + 4.475860837469838, + -9.607285166800718 + ], + [ + 0.5026671075473288, + 4.973328924526712, + -9.725434301893152 + ], + [ + 0.5026507948099154, + 5.470841257090931, + -9.856031792396614 + ], + [ + 0.5026332674420202, + 5.968400790695758, + -9.999080697680807 + ], + [ + 0.5026146047869784, + 6.466010137769281, + -10.154584191479136 + ], + [ + 0.5021709135712784, + 6.96483120014529, + -10.322953851421362 + ], + [ + 1.0056380543977135, + -6.964870584137325, + -10.30408715811163 + ], + [ + 1.0052247836657802, + -6.46603890617243, + -10.1357456733156 + ], + [ + 1.0052620136055843, + -5.968427918366494, + -9.980240272111686 + ], + [ + 1.0052969775357739, + -5.470866623553244, + -9.837189550715475 + ], + [ + 1.0053295174142267, + -4.973352412928867, + -9.706590348284532 + ], + [ + 1.0053594809084752, + -4.475882335911862, + -9.5884396181695 + ], + [ + 1.0053867231756184, + -3.978453107297527, + -9.482734463512367 + ], + [ + 1.0054111086473763, + -3.4810611197341834, + -9.389472172947523 + ], + [ + 1.0054325127815729, + -2.9837024616552816, + -9.308650255631454 + ], + [ + 1.005450823739146, + -2.486372940652135, + -9.240266474782917 + ], + [ + 1.0054659439449996, + -1.9890681121100011, + -9.184318878899989 + ], + [ + 1.0054777914918354, + -1.4917833127622473, + -9.140805829836705 + ], + [ + 1.005486301348592, + -0.9945136986514079, + -9.10972602697184 + ], + [ + 1.0054914263392927, + -0.4972542868303537, + -9.09107852678585 + ], + [ + 1.0054931378638283, + 0.0, + -9.084862757276563 + ], + [ + 1.0054914263392927, + 0.4972542868303537, + -9.09107852678585 + ], + [ + 1.005486301348592, + 0.9945136986514079, + -9.10972602697184 + ], + [ + 1.0054777914918354, + 1.4917833127622473, + -9.140805829836705 + ], + [ + 1.0054659439449996, + 1.9890681121100011, + -9.184318878899989 + ], + [ + 1.005450823739146, + 2.486372940652135, + -9.240266474782917 + ], + [ + 1.0054325127815729, + 2.9837024616552816, + -9.308650255631454 + ], + [ + 1.0054111086473763, + 3.4810611197341834, + -9.389472172947523 + ], + [ + 1.0053867231756184, + 3.978453107297527, + -9.482734463512367 + ], + [ + 1.0053594809084752, + 4.475882335911862, + -9.5884396181695 + ], + [ + 1.0053295174142267, + 4.973352412928867, + -9.706590348284532 + ], + [ + 1.0052969775357739, + 5.470866623553244, + -9.837189550715475 + ], + [ + 1.0052620136055843, + 5.968427918366494, + -9.980240272111686 + ], + [ + 1.0052247836657802, + 6.46603890617243, + -10.1357456733156 + ], + [ + 1.0047724422309119, + 6.964857470845104, + -10.304126012310803 + ], + [ + 1.508227963864503, + -6.964922890893434, + -10.272682175130564 + ], + [ + 1.5078261480899455, + -6.4660866916102355, + -10.104348641199275 + ], + [ + 1.507881755923675, + -5.968472976305299, + -9.948840078982334 + ], + [ + 1.5079339761077666, + -5.470908754271522, + -9.805786348103554 + ], + [ + 1.5079825731782752, + -4.973391422739082, + -9.675184309043669 + ], + [ + 1.5080273202142735, + -4.475918039357179, + -9.557030936190314 + ], + [ + 1.5080680014835048, + -3.9784853293773206, + -9.451323353113398 + ], + [ + 1.5081044150948077, + -3.4810896981121147, + -9.358058867930772 + ], + [ + 1.5081363755999053, + -2.9837272488001894, + -9.277235007998737 + ], + [ + 1.5081637164839223, + -2.4863938058601294, + -9.208849553118965 + ], + [ + 1.5081862924828877, + -1.9890849433561497, + -9.152900566438502 + ], + [ + 1.5082039816676998, + -1.4917960183323002, + -9.109386422235998 + ], + [ + 1.5082166872377527, + -0.9945222085081648, + -9.078305829836705 + ], + [ + 1.5082243389736072, + -0.49725855367546423, + -9.05965785298143 + ], + [ + 1.5082268943065797, + 0.0, + -9.05344192408773 + ], + [ + 1.5082243389736072, + 0.49725855367546423, + -9.05965785298143 + ], + [ + 1.5082166872377527, + 0.9945222085081648, + -9.078305829836705 + ], + [ + 1.5082039816676998, + 1.4917960183323002, + -9.109386422235998 + ], + [ + 1.5081862924828877, + 1.9890849433561497, + -9.152900566438502 + ], + [ + 1.5081637164839223, + 2.4863938058601294, + -9.208849553118965 + ], + [ + 1.5081363755999053, + 2.9837272488001894, + -9.277235007998737 + ], + [ + 1.5081044150948077, + 3.4810896981121147, + -9.358058867930772 + ], + [ + 1.5080680014835048, + 3.9784853293773206, + -9.451323353113398 + ], + [ + 1.5080273202142735, + 4.475918039357179, + -9.557030936190314 + ], + [ + 1.5079825731782752, + 4.973391422739082, + -9.675184309043669 + ], + [ + 1.5079339761077666, + 5.470908754271522, + -9.805786348103554 + ], + [ + 1.507881755923675, + 5.968472976305299, + -9.948840078982334 + ], + [ + 1.5078261480899455, + 6.4660866916102355, + -10.104348641199275 + ], + [ + 1.5073659733914198, + 6.9649033032526475, + -10.272740212584749 + ], + [ + 2.010804187450188, + -6.96499443266139, + -10.228720199521806 + ], + [ + 2.0104143835032855, + -6.466153253614323, + -10.060393835032855 + ], + [ + 2.0104880884817016, + -5.968535734554895, + -9.904880884817016 + ], + [ + 2.0105572976776473, + -5.47096743138647, + -9.761822976776475 + ], + [ + 2.010621700090876, + -4.97344574977281, + -9.631217000908759 + ], + [ + 2.0106809960713967, + -4.475967758839357, + -9.513059960713969 + ], + [ + 2.0107349008024338, + -3.9785301983951324, + -9.40734900802434 + ], + [ + 2.010783147790709, + -3.481129491366259, + -9.314081477907093 + ], + [ + 2.0108254922887125, + -2.9837617615669307, + -9.233254922887127 + ], + [ + 2.0108617145694487, + -2.486422856788189, + -9.164867145694489 + ], + [ + 2.0108916229727436, + -1.9891083770272566, + -9.108916229727434 + ], + [ + 2.0109150566438503, + -1.4918137075171123, + -9.065400566438504 + ], + [ + 2.010931887889999, + -0.9945340560550004, + -9.03431887889999 + ], + [ + 2.010942024088644, + -0.497264493977839, + -9.015670240886438 + ], + [ + 2.01094540909231, + 0.0, + -9.0094540909231 + ], + [ + 2.010942024088644, + 0.497264493977839, + -9.015670240886438 + ], + [ + 2.010931887889999, + 0.9945340560550004, + -9.03431887889999 + ], + [ + 2.0109150566438503, + 1.4918137075171123, + -9.065400566438504 + ], + [ + 2.0108916229727436, + 1.9891083770272566, + -9.108916229727434 + ], + [ + 2.0108617145694487, + 2.486422856788189, + -9.164867145694489 + ], + [ + 2.0108254922887125, + 2.9837617615669307, + -9.233254922887127 + ], + [ + 2.010783147790709, + 3.481129491366259, + -9.314081477907093 + ], + [ + 2.0107349008024338, + 3.9785301983951324, + -9.40734900802434 + ], + [ + 2.0106809960713967, + 4.475967758839357, + -9.513059960713969 + ], + [ + 2.010621700090876, + 4.97344574977281, + -9.631217000908759 + ], + [ + 2.0105572976776473, + 5.47096743138647, + -9.761822976776475 + ], + [ + 2.0104880884817016, + 5.968535734554895, + -9.904880884817016 + ], + [ + 2.0104143835032855, + 6.466153253614323, + -10.060393835032855 + ], + [ + 2.009947225093531, + 6.96496846814887, + -10.228797131410756 + ], + [ + 2.5133625860221542, + -6.965084855877597, + -10.172202278881194 + ], + [ + 2.512985284527872, + -6.4662382602275335, + -10.003882276222976 + ], + [ + 2.5130767184450504, + -5.968615875731879, + -9.848363747560404 + ], + [ + 2.5131625662413253, + -5.471042354269085, + -9.705300529930602 + ], + [ + 2.5132424438394345, + -4.973515112321131, + -9.574689550715476 + ], + [ + 2.5133159812842143, + -4.476031233688414, + -9.456527850273714 + ], + [ + 2.513382827025955, + -3.978587476758472, + -9.35081261620764 + ], + [ + 2.5134426522102906, + -3.481180286905593, + -9.257541217682325 + ], + [ + 2.5134951548823277, + -2.9838058141412067, + -9.176711239058621 + ], + [ + 2.5135400640077266, + -2.4864599359922734, + -9.108320512061812 + ], + [ + 2.513577143211811, + -1.9891382854305513, + -9.052367145694488 + ], + [ + 2.5136061941398706, + -1.4918362835160777, + -9.008849553118965 + ], + [ + 2.513627059347865, + -0.994549176260854, + -8.977766474782918 + ], + [ + 2.513639624642695, + -0.49727207507146104, + -8.959116997141557 + ], + [ + 2.513643820804813, + 0.0, + -8.952900566438503 + ], + [ + 2.513639624642695, + 0.49727207507146104, + -8.959116997141557 + ], + [ + 2.513627059347865, + 0.994549176260854, + -8.977766474782918 + ], + [ + 2.5136061941398706, + 1.4918362835160777, + -9.008849553118965 + ], + [ + 2.513577143211811, + 1.9891382854305513, + -9.052367145694488 + ], + [ + 2.5135400640077266, + 2.4864599359922734, + -9.108320512061812 + ], + [ + 2.5134951548823277, + 2.9838058141412067, + -9.176711239058621 + ], + [ + 2.5134426522102906, + 3.481180286905593, + -9.257541217682325 + ], + [ + 2.513382827025955, + 3.978587476758472, + -9.35081261620764 + ], + [ + 2.5133159812842143, + 4.476031233688414, + -9.456527850273714 + ], + [ + 2.5132424438394345, + 4.973515112321131, + -9.574689550715476 + ], + [ + 2.5131625662413253, + 5.471042354269085, + -9.705300529930602 + ], + [ + 2.5130767184450504, + 5.968615875731879, + -9.848363747560404 + ], + [ + 2.512985284527872, + 6.4662382602275335, + -10.003882276222976 + ], + [ + 2.512512016930729, + 6.965052642365896, + -10.172297726323272 + ], + [ + 3.015899165322689, + -6.965193719158439, + -10.103129721012035 + ], + [ + 3.015534788054209, + -6.466341292549214, + -9.934815253694728 + ], + [ + 3.0156435002836193, + -5.9687129994327615, + -9.779290001890796 + ], + [ + 3.0157455579555936, + -5.471133143748078, + -9.636220386370624 + ], + [ + 3.0158405069043317, + -4.973599155159447, + -9.50560337936221 + ], + [ + 3.0159279098128904, + -4.476108135280664, + -9.38743606541927 + ], + [ + 3.016007351252398, + -3.9786568649968026, + -9.281715675015986 + ], + [ + 3.016078442725425, + -3.4812418168203374, + -9.188439618169502 + ], + [ + 3.016140827605469, + -2.983859172394531, + -9.107605517369795 + ], + [ + 3.0161941858587933, + -2.4865048451176723, + -9.039211239058622 + ], + [ + 3.0162382384330693, + -1.9891745077112872, + -8.983254922887127 + ], + [ + 3.0162727511998106, + -1.4918636244000947, + -8.939735007998738 + ], + [ + 3.0162975383447184, + -0.9945674872184271, + -8.908650255631455 + ], + [ + 3.0163124651117106, + -0.4972812558147149, + -8.889999767411403 + ], + [ + 3.016317449822327, + 0.0, + -8.883782998815514 + ], + [ + 3.0163124651117106, + 0.4972812558147149, + -8.889999767411403 + ], + [ + 3.0162975383447184, + 0.9945674872184271, + -8.908650255631455 + ], + [ + 3.0162727511998106, + 1.4918636244000947, + -8.939735007998738 + ], + [ + 3.0162382384330693, + 1.9891745077112872, + -8.983254922887127 + ], + [ + 3.0161941858587933, + 2.4865048451176723, + -9.039211239058622 + ], + [ + 3.016140827605469, + 2.983859172394531, + -9.107605517369795 + ], + [ + 3.016078442725425, + 3.4812418168203374, + -9.188439618169502 + ], + [ + 3.016007351252398, + 3.9786568649968026, + -9.281715675015986 + ], + [ + 3.0159279098128904, + 4.476108135280664, + -9.38743606541927 + ], + [ + 3.0158405069043317, + 4.973599155159447, + -9.50560337936221 + ], + [ + 3.0157455579555936, + 5.471133143748078, + -9.636220386370624 + ], + [ + 3.0156435002836193, + 5.9687129994327615, + -9.779290001890796 + ], + [ + 3.015534788054209, + 6.466341292549214, + -9.934815253694728 + ], + [ + 3.0150563029420105, + 6.965155413191348, + -10.103243220173786 + ], + [ + 3.518410105377293, + -6.965320499173006, + -10.021504076524424 + ], + [ + 3.5180590036480774, + -6.466461850367856, + -9.853194306560443 + ], + [ + 3.518184467180145, + -5.96882662769118, + -9.6976612410294 + ], + [ + 3.518302233508849, + -5.4712393473432375, + -9.554584191479135 + ], + [ + 3.518411781844564, + -4.973697454507765, + -9.423960181968939 + ], + [ + 3.518512610918122, + -4.4761980716767, + -9.305786348103554 + ], + [ + 3.51860424472465, + -3.9787380060289714, + -9.200059969855142 + ], + [ + 3.518686238267477, + -3.481313761732523, + -9.106778504385584 + ], + [ + 3.5187581831796626, + -2.983921557274575, + -9.0259396181695 + ], + [ + 3.518819713094407, + -2.4865573477897094, + -8.957541217682325 + ], + [ + 3.518870508633741, + -1.9892168522092908, + -8.901581477907092 + ], + [ + 3.5189103018878853, + -1.4918955849051923, + -8.858058867930772 + ], + [ + 3.5189388802658166, + -0.9945888913526238, + -8.826972172947523 + ], + [ + 3.518956089610817, + -0.49729198719845463, + -8.808320512061812 + ], + [ + 3.5189618364927475, + 0.0, + -8.802103351387126 + ], + [ + 3.518956089610817, + 0.49729198719845463, + -8.808320512061812 + ], + [ + 3.5189388802658166, + 0.9945888913526238, + -8.826972172947523 + ], + [ + 3.5189103018878853, + 1.4918955849051923, + -8.858058867930772 + ], + [ + 3.518870508633741, + 1.9892168522092908, + -8.901581477907092 + ], + [ + 3.518819713094407, + 2.4865573477897094, + -8.957541217682325 + ], + [ + 3.5187581831796626, + 2.983921557274575, + -9.0259396181695 + ], + [ + 3.518686238267477, + 3.481313761732523, + -9.106778504385584 + ], + [ + 3.51860424472465, + 3.9787380060289714, + -9.200059969855142 + ], + [ + 3.518512610918122, + 4.4761980716767, + -9.305786348103554 + ], + [ + 3.518411781844564, + 4.973697454507765, + -9.423960181968939 + ], + [ + 3.518302233508849, + 5.4712393473432375, + -9.554584191479135 + ], + [ + 3.518184467180145, + 5.96882662769118, + -9.6976612410294 + ], + [ + 3.5180590036480774, + 6.466461850367856, + -9.853194306560443 + ], + [ + 3.5175762019781245, + 6.965276283896877, + -10.021635084749995 + ], + [ + 4.02089178673072, + -6.965464597445136, + -9.927327118681077 + ], + [ + 4.02055424077815, + -6.466599358735506, + -9.759021203890752 + ], + [ + 4.020695859104439, + -5.968956211343341, + -9.603479295522195 + ], + [ + 4.020828767006571, + -5.471360445365965, + -9.460393835032853 + ], + [ + 4.020952380952381, + -4.973809523809524, + -9.329761904761904 + ], + [ + 4.0210661395361615, + -4.4763005930218185, + -9.211580697680805 + ], + [ + 4.021169509870286, + -3.978830490129714, + -9.10584754935143 + ], + [ + 4.021261993971028, + -3.48139575527535, + -9.012559969855142 + ], + [ + 4.021343135003197, + -2.983992648747602, + -8.931715675015985 + ], + [ + 4.021412523241528, + -2.486617172974045, + -8.86331261620764 + ], + [ + 4.0214698016048676, + -1.9892650991975662, + -8.807349008024339 + ], + [ + 4.02151467062268, + -1.4919319985164952, + -8.763823353113398 + ], + [ + 4.021546892702474, + -0.9946132768243816, + -8.732734463512367 + ], + [ + 4.021566295581418, + -0.49730421305232264, + -8.714081477907092 + ], + [ + 4.0215727748652, + 0.0, + -8.707863874326002 + ], + [ + 4.021566295581418, + 0.49730421305232264, + -8.714081477907092 + ], + [ + 4.021546892702474, + 0.9946132768243816, + -8.732734463512367 + ], + [ + 4.02151467062268, + 1.4919319985164952, + -8.763823353113398 + ], + [ + 4.0214698016048676, + 1.9892650991975662, + -8.807349008024339 + ], + [ + 4.021412523241528, + 2.486617172974045, + -8.86331261620764 + ], + [ + 4.021343135003197, + 2.983992648747602, + -8.931715675015985 + ], + [ + 4.021261993971028, + 3.48139575527535, + -9.012559969855142 + ], + [ + 4.021169509870286, + 3.978830490129714, + -9.10584754935143 + ], + [ + 4.0210661395361615, + 4.4763005930218185, + -9.211580697680805 + ], + [ + 4.020952380952381, + 4.973809523809524, + -9.329761904761904 + ], + [ + 4.020828767006571, + 5.471360445365965, + -9.460393835032853 + ], + [ + 4.020695859104439, + 5.968956211343341, + -9.603479295522195 + ], + [ + 4.02055424077815, + 6.466599358735506, + -9.759021203890752 + ], + [ + 4.020068025041076, + 6.965414680248358, + -9.927475021486346 + ], + [ + 4.523340813143114, + -6.965625347916505, + -9.820600820988133 + ], + [ + 4.523017032471277, + -6.466753175319268, + -9.652297922094561 + ], + [ + 4.523174147144834, + -5.969101137140221, + -9.496746209532596 + ], + [ + 4.523321570947862, + -5.471495857730392, + -9.35365142643494 + ], + [ + 4.52345866183891, + -4.9739348201789895, + -9.223010719284044 + ], + [ + 4.523584802432687, + -4.476415197567313, + -9.104821344145275 + ], + [ + 4.5236994069781815, + -3.978933860463839, + -8.999080697680807 + ], + [ + 4.5238019283233, + -3.481487389081878, + -8.905786348103556 + ], + [ + 4.523891864719336, + -2.9840720901871096, + -8.82493606541927 + ], + [ + 4.523968766311586, + -2.4866840187157857, + -8.756527850273715 + ], + [ + 4.524032241160643, + -1.9893190039286033, + -8.700559960713969 + ], + [ + 4.524081960642821, + -1.4919726797857265, + -8.657030936190315 + ], + [ + 4.524117664088138, + -0.9946405190915248, + -8.625939618169502 + ], + [ + 4.524139162530162, + -0.497317870829982, + -8.607285166800718 + ], + [ + 4.524146341463415, + 0.0, + -8.601067073170732 + ], + [ + 4.524139162530162, + 0.497317870829982, + -8.607285166800718 + ], + [ + 4.524117664088138, + 0.9946405190915248, + -8.625939618169502 + ], + [ + 4.524081960642821, + 1.4919726797857265, + -8.657030936190315 + ], + [ + 4.524032241160643, + 1.9893190039286033, + -8.700559960713969 + ], + [ + 4.523968766311586, + 2.4866840187157857, + -8.756527850273715 + ], + [ + 4.523891864719336, + 2.9840720901871096, + -8.82493606541927 + ], + [ + 4.5238019283233, + 3.481487389081878, + -8.905786348103556 + ], + [ + 4.5236994069781815, + 3.978933860463839, + -8.999080697680807 + ], + [ + 4.523584802432687, + 4.476415197567313, + -9.104821344145275 + ], + [ + 4.52345866183891, + 4.9739348201789895, + -9.223010719284044 + ], + [ + 4.523321570947862, + 5.471495857730392, + -9.35365142643494 + ], + [ + 4.523174147144834, + 5.969101137140221, + -9.496746209532596 + ], + [ + 4.523017032471277, + 6.466753175319268, + -9.652297922094561 + ], + [ + 4.522528299194482, + 6.965569957834849, + -9.820764939748596 + ], + [ + 5.025754030487018, + -6.965802025091008, + -9.701327333063679 + ], + [ + 5.025444155113258, + -6.466922598352766, + -9.53302662045303 + ], + [ + 5.025616053805794, + -5.969260735433047, + -9.377464215223178 + ], + [ + 5.025777316993616, + -5.471644951307023, + -9.234359267974462 + ], + [ + 5.025927248643507, + -4.974072751356493, + -9.103708994574028 + ], + [ + 5.0260651798210105, + -4.47654133816109, + -8.985510719284044 + ], + [ + 5.026190476190476, + -3.979047619047619, + -8.879761904761905 + ], + [ + 5.026302545492235, + -3.481588218155436, + -8.78646018196894 + ], + [ + 5.026400844840553, + -2.9841594930956683, + -8.70560337936221 + ], + [ + 5.026484887678869, + -2.4867575561605655, + -8.637189550715476 + ], + [ + 5.02655425022719, + -1.989378299909124, + -8.581217000908758 + ], + [ + 5.026608577260918, + -1.4920174268217248, + -8.53768430904367 + ], + [ + 5.026647587071133, + -0.9946704825857733, + -8.506590348284533 + ], + [ + 5.026671075473288, + -0.49733289245267115, + -8.487934301893151 + ], + [ + 5.026678918753997, + 0.0, + -8.481715675015986 + ], + [ + 5.026671075473288, + 0.49733289245267115, + -8.487934301893151 + ], + [ + 5.026647587071133, + 0.9946704825857733, + -8.506590348284533 + ], + [ + 5.026608577260918, + 1.4920174268217248, + -8.53768430904367 + ], + [ + 5.02655425022719, + 1.989378299909124, + -8.581217000908758 + ], + [ + 5.026484887678869, + 2.4867575561605655, + -8.637189550715476 + ], + [ + 5.026400844840553, + 2.9841594930956683, + -8.70560337936221 + ], + [ + 5.026302545492235, + 3.481588218155436, + -8.78646018196894 + ], + [ + 5.026190476190476, + 3.979047619047619, + -8.879761904761905 + ], + [ + 5.0260651798210105, + 4.47654133816109, + -8.985510719284044 + ], + [ + 5.025927248643507, + 4.974072751356493, + -9.103708994574028 + ], + [ + 5.025777316993616, + 5.471644951307023, + -9.234359267974462 + ], + [ + 5.025616053805794, + 5.969260735433047, + -9.377464215223178 + ], + [ + 5.025444155113258, + 6.466922598352766, + -9.53302662045303 + ], + [ + 5.024953787748922, + 6.965741410039616, + -9.701506933215953 + ], + [ + 5.528128541696562, + -6.9659938525757985, + -9.569508955330969 + ], + [ + 5.527832644226808, + -6.467106875004681, + -9.401209615370213 + ], + [ + 5.528018569101173, + -5.969434288253265, + -9.245635705822448 + ], + [ + 5.528192952353951, + -5.471807047646049, + -9.10251982674164 + ], + [ + 5.528355048692977, + -4.974222683006384, + -8.971859267974462 + ], + [ + 5.528504142269608, + -4.476678429052138, + -8.85365142643494 + ], + [ + 5.528639554634035, + -3.9791712329934295, + -8.747893835032855 + ], + [ + 5.5287606526567625, + -3.481697766491151, + -8.654584191479136 + ], + [ + 5.528866856251922, + -2.9842544420444064, + -8.573720386370624 + ], + [ + 5.528957645730915, + -2.4868374337586747, + -8.505300529930603 + ], + [ + 5.52903256861353, + -1.9894427023223524, + -8.449322976776475 + ], + [ + 5.529091245728478, + -1.4920660238922334, + -8.405786348103556 + ], + [ + 5.529133376446756, + -0.994703022464226, + -8.374689550715477 + ], + [ + 5.529158742909069, + -0.49734920519008463, + -8.356031792396614 + ], + [ + 5.529167213132315, + 0.0, + -8.349812593208418 + ], + [ + 5.529158742909069, + 0.49734920519008463, + -8.356031792396614 + ], + [ + 5.529133376446756, + 0.994703022464226, + -8.374689550715477 + ], + [ + 5.529091245728478, + 1.4920660238922334, + -8.405786348103556 + ], + [ + 5.52903256861353, + 1.9894427023223524, + -8.449322976776475 + ], + [ + 5.528957645730915, + 2.4868374337586747, + -8.505300529930603 + ], + [ + 5.528866856251922, + 2.9842544420444064, + -8.573720386370624 + ], + [ + 5.5287606526567625, + 3.481697766491151, + -8.654584191479136 + ], + [ + 5.528639554634035, + 3.9791712329934295, + -8.747893835032855 + ], + [ + 5.528504142269608, + 4.476678429052138, + -8.85365142643494 + ], + [ + 5.528355048692977, + 4.974222683006384, + -8.971859267974462 + ], + [ + 5.528192952353951, + 5.471807047646049, + -9.10251982674164 + ], + [ + 5.528018569101173, + 5.969434288253265, + -9.245635705822448 + ], + [ + 5.527832644226808, + 6.467106875004681, + -9.401209615370213 + ], + [ + 5.527341506536828, + 6.965928276469491, + -9.569703254905214 + ], + [ + 6.030461717728027, + -6.966200011836024, + -9.425148113078444 + ], + [ + 6.030179806170194, + -6.46730520998229, + -9.256849353900646 + ], + [ + 6.030378962390644, + -5.969621037609356, + -9.101263207968815 + ], + [ + 6.030565711746735, + -5.471981430898827, + -8.958135705822446 + ], + [ + 6.030739264566953, + -4.974383946194206, + -8.827464215223177 + ], + [ + 6.030898862859779, + -4.476825852855166, + -8.709246209532594 + ], + [ + 6.031043788656659, + -3.979304140895561, + -8.603479295522195 + ], + [ + 6.03117337230882, + -3.481815532819855, + -8.5101612410294 + ], + [ + 6.0312870005672385, + -2.9843564997163807, + -8.429290001890795 + ], + [ + 6.031384124268121, + -2.4869232815549496, + -8.360863747560403 + ], + [ + 6.031464265445105, + -1.9895119115182984, + -8.304880884817015 + ], + [ + 6.031527023694701, + -1.492118244076325, + -8.261340078982334 + ], + [ + 6.031572081633506, + -0.9947379863944156, + -8.230240272111686 + ], + [ + 6.031599209304242, + -0.49736673255797975, + -8.211580697680805 + ], + [ + 6.031608267412298, + -3.1193089999682e-17, + -8.205360891374326 + ], + [ + 6.031599209304242, + 0.4973667325579798, + -8.211580697680805 + ], + [ + 6.031572081633506, + 0.9947379863944156, + -8.230240272111686 + ], + [ + 6.031527023694701, + 1.492118244076325, + -8.261340078982334 + ], + [ + 6.031464265445105, + 1.9895119115182984, + -8.304880884817015 + ], + [ + 6.031384124268121, + 2.4869232815549496, + -8.360863747560403 + ], + [ + 6.0312870005672385, + 2.9843564997163807, + -8.429290001890795 + ], + [ + 6.03117337230882, + 3.481815532819855, + -8.5101612410294 + ], + [ + 6.031043788656659, + 3.979304140895561, + -8.603479295522195 + ], + [ + 6.030898862859779, + 4.476825852855166, + -8.709246209532594 + ], + [ + 6.030739264566953, + 4.974383946194206, + -8.827464215223177 + ], + [ + 6.030565711746735, + 5.471981430898827, + -8.958135705822446 + ], + [ + 6.030378962390644, + 5.969621037609356, + -9.101263207968815 + ], + [ + 6.030179806170194, + 6.46730520998229, + -9.256849353900646 + ], + [ + 6.029688736200702, + 6.966129751658354, + -9.425356291382654 + ], + [ + 6.532751204592089, + -6.9664196509878575, + -9.268247330406346 + ], + [ + 6.5324832258053345, + -6.4675167741946655, + -9.099948387093336 + ], + [ + 6.53269479001771, + -5.969820193829806, + -8.944349353900646 + ], + [ + 6.532893124995319, + -5.472167355773192, + -8.801209615370212 + ], + [ + 6.533077401647234, + -4.974555844886742, + -8.67052662045303 + ], + [ + 6.533246824680732, + -4.476982967528723, + -8.55229792209456 + ], + [ + 6.533400641264494, + -3.97944575922185, + -8.446521203890752 + ], + [ + 6.533538149632144, + -3.4819409963519226, + -8.353194306560443 + ], + [ + 6.533658707450786, + -2.984465211945791, + -8.272315253694726 + ], + [ + 6.5337617397724665, + -2.487014715472128, + -8.203882276222975 + ], + [ + 6.533846746385677, + -1.9895856164967147, + -8.147893835032853 + ], + [ + 6.5339133083897645, + -1.4921738519100545, + -8.104348641199275 + ], + [ + 6.53396109382757, + -0.99477521633422, + -8.0732456733156 + ], + [ + 6.533989862230719, + -0.49738539521302155, + -8.054584191479137 + ], + [ + 6.533999467957131, + 0.0, + -8.048363747560405 + ], + [ + 6.533989862230719, + 0.4973853952130216, + -8.054584191479137 + ], + [ + 6.53396109382757, + 0.99477521633422, + -8.0732456733156 + ], + [ + 6.5339133083897645, + 1.4921738519100545, + -8.104348641199275 + ], + [ + 6.533846746385677, + 1.9895856164967147, + -8.147893835032853 + ], + [ + 6.5337617397724665, + 2.487014715472128, + -8.203882276222975 + ], + [ + 6.533658707450786, + 2.984465211945791, + -8.272315253694726 + ], + [ + 6.533538149632144, + 3.4819409963519226, + -8.353194306560443 + ], + [ + 6.533400641264494, + 3.97944575922185, + -8.446521203890752 + ], + [ + 6.533246824680732, + 4.476982967528723, + -8.55229792209456 + ], + [ + 6.533077401647234, + 4.974555844886742, + -8.67052662045303 + ], + [ + 6.532893124995319, + 5.472167355773192, + -8.801209615370212 + ], + [ + 6.53269479001771, + 5.969820193829806, + -8.944349353900646 + ], + [ + 6.5324832258053345, + 6.4675167741946655, + -9.099948387093336 + ], + [ + 6.531993030522247, + 6.966344993866207, + -9.268468536692717 + ], + [ + 7.033504291387211, + -6.966495708612789, + -9.099271974480624 + ], + [ + 7.0335803490121425, + -6.467248795407911, + -8.930747330406348 + ], + [ + 7.033799988163976, + -5.969538282271973, + -8.775148113078446 + ], + [ + 7.0340061474242015, + -5.471871458303438, + -8.632008955330969 + ], + [ + 7.034197974908992, + -4.974245969512982, + -8.50132733306368 + ], + [ + 7.034374652083495, + -4.476659186856886, + -8.383100820988133 + ], + [ + 7.034535402554864, + -3.9791082132692797, + -8.277327118681079 + ], + [ + 7.034679500826994, + -3.481589894622707, + -8.184004076524426 + ], + [ + 7.034806280841561, + -2.984100834677311, + -8.103129721012035 + ], + [ + 7.034915144122403, + -2.4866374139778458, + -8.034702278881195 + ], + [ + 7.03500556733861, + -1.9891958125498117, + -7.978720199521806 + ], + [ + 7.035077109106566, + -1.491772036135497, + -7.935182175130565 + ], + [ + 7.035129415862675, + -0.9943619456022866, + -7.904087158111631 + ], + [ + 7.035162226656748, + -0.49696128905435516, + -7.885434375279253 + ], + [ + 7.0351753767404155, + 0.0004342639103755345, + -7.87922333849012 + ], + [ + 7.03516879985471, + 0.4978290864287216, + -7.885453851421363 + ], + [ + 7.035142529154896, + 0.9952275577690881, + -7.904126012310805 + ], + [ + 7.0350966967473525, + 1.4926340266085802, + -7.935240212584748 + ], + [ + 7.03503153185113, + 1.9900527749064691, + -7.978797131410756 + ], + [ + 7.034947357634104, + 2.487487983069271, + -8.034797726323273 + ], + [ + 7.034844586808652, + 2.9849436970579895, + -8.103243220173786 + ], + [ + 7.034723716103123, + 3.4824237980218755, + -8.184135084749997 + ], + [ + 7.034585319751642, + 3.9799319749589235, + -8.277475021486348 + ], + [ + 7.034430042165151, + 4.477471700805518, + -8.383264939748596 + ], + [ + 7.034258589960384, + 4.975046212251078, + -8.501506933215953 + ], + [ + 7.034071723530509, + 5.472658493463172, + -8.632203254905214 + ], + [ + 7.033870248341646, + 5.970311263799298, + -8.775356291382655 + ], + [ + 7.033655006133793, + 6.468006969477753, + -8.930968536692719 + ], + [ + 7.033504291387211, + 6.966495708612789, + -9.099271974480624 + ] + ], + "faces": [ + [ + 0, + 29, + 30 + ], + [ + 0, + 30, + 1 + ], + [ + 1, + 30, + 31 + ], + [ + 1, + 31, + 2 + ], + [ + 2, + 31, + 32 + ], + [ + 2, + 32, + 3 + ], + [ + 3, + 32, + 33 + ], + [ + 3, + 33, + 4 + ], + [ + 4, + 33, + 34 + ], + [ + 4, + 34, + 5 + ], + [ + 5, + 34, + 35 + ], + [ + 5, + 35, + 6 + ], + [ + 6, + 35, + 36 + ], + [ + 6, + 36, + 7 + ], + [ + 7, + 36, + 37 + ], + [ + 7, + 37, + 8 + ], + [ + 8, + 37, + 38 + ], + [ + 8, + 38, + 9 + ], + [ + 9, + 38, + 39 + ], + [ + 9, + 39, + 10 + ], + [ + 10, + 39, + 40 + ], + [ + 10, + 40, + 11 + ], + [ + 11, + 40, + 41 + ], + [ + 11, + 41, + 12 + ], + [ + 12, + 41, + 42 + ], + [ + 12, + 42, + 13 + ], + [ + 13, + 42, + 43 + ], + [ + 13, + 43, + 14 + ], + [ + 14, + 43, + 44 + ], + [ + 14, + 44, + 15 + ], + [ + 15, + 44, + 45 + ], + [ + 15, + 45, + 16 + ], + [ + 16, + 45, + 46 + ], + [ + 16, + 46, + 17 + ], + [ + 17, + 46, + 47 + ], + [ + 17, + 47, + 18 + ], + [ + 18, + 47, + 48 + ], + [ + 18, + 48, + 19 + ], + [ + 19, + 48, + 49 + ], + [ + 19, + 49, + 20 + ], + [ + 20, + 49, + 50 + ], + [ + 20, + 50, + 21 + ], + [ + 21, + 50, + 51 + ], + [ + 21, + 51, + 22 + ], + [ + 22, + 51, + 52 + ], + [ + 22, + 52, + 23 + ], + [ + 23, + 52, + 53 + ], + [ + 23, + 53, + 24 + ], + [ + 24, + 53, + 54 + ], + [ + 24, + 54, + 25 + ], + [ + 25, + 54, + 55 + ], + [ + 25, + 55, + 26 + ], + [ + 26, + 55, + 56 + ], + [ + 26, + 56, + 27 + ], + [ + 27, + 56, + 57 + ], + [ + 27, + 57, + 28 + ], + [ + 29, + 58, + 59 + ], + [ + 29, + 59, + 30 + ], + [ + 30, + 59, + 60 + ], + [ + 30, + 60, + 31 + ], + [ + 31, + 60, + 61 + ], + [ + 31, + 61, + 32 + ], + [ + 32, + 61, + 62 + ], + [ + 32, + 62, + 33 + ], + [ + 33, + 62, + 63 + ], + [ + 33, + 63, + 34 + ], + [ + 34, + 63, + 64 + ], + [ + 34, + 64, + 35 + ], + [ + 35, + 64, + 65 + ], + [ + 35, + 65, + 36 + ], + [ + 36, + 65, + 66 + ], + [ + 36, + 66, + 37 + ], + [ + 37, + 66, + 67 + ], + [ + 37, + 67, + 38 + ], + [ + 38, + 67, + 68 + ], + [ + 38, + 68, + 39 + ], + [ + 39, + 68, + 69 + ], + [ + 39, + 69, + 40 + ], + [ + 40, + 69, + 70 + ], + [ + 40, + 70, + 41 + ], + [ + 41, + 70, + 71 + ], + [ + 41, + 71, + 42 + ], + [ + 42, + 71, + 72 + ], + [ + 42, + 72, + 43 + ], + [ + 43, + 72, + 73 + ], + [ + 43, + 73, + 44 + ], + [ + 44, + 73, + 74 + ], + [ + 44, + 74, + 45 + ], + [ + 45, + 74, + 75 + ], + [ + 45, + 75, + 46 + ], + [ + 46, + 75, + 76 + ], + [ + 46, + 76, + 47 + ], + [ + 47, + 76, + 77 + ], + [ + 47, + 77, + 48 + ], + [ + 48, + 77, + 78 + ], + [ + 48, + 78, + 49 + ], + [ + 49, + 78, + 79 + ], + [ + 49, + 79, + 50 + ], + [ + 50, + 79, + 80 + ], + [ + 50, + 80, + 51 + ], + [ + 51, + 80, + 81 + ], + [ + 51, + 81, + 52 + ], + [ + 52, + 81, + 82 + ], + [ + 52, + 82, + 53 + ], + [ + 53, + 82, + 83 + ], + [ + 53, + 83, + 54 + ], + [ + 54, + 83, + 84 + ], + [ + 54, + 84, + 55 + ], + [ + 55, + 84, + 85 + ], + [ + 55, + 85, + 56 + ], + [ + 56, + 85, + 86 + ], + [ + 56, + 86, + 57 + ], + [ + 58, + 87, + 88 + ], + [ + 58, + 88, + 59 + ], + [ + 59, + 88, + 89 + ], + [ + 59, + 89, + 60 + ], + [ + 60, + 89, + 90 + ], + [ + 60, + 90, + 61 + ], + [ + 61, + 90, + 91 + ], + [ + 61, + 91, + 62 + ], + [ + 62, + 91, + 92 + ], + [ + 62, + 92, + 63 + ], + [ + 63, + 92, + 93 + ], + [ + 63, + 93, + 64 + ], + [ + 64, + 93, + 94 + ], + [ + 64, + 94, + 65 + ], + [ + 65, + 94, + 95 + ], + [ + 65, + 95, + 66 + ], + [ + 66, + 95, + 96 + ], + [ + 66, + 96, + 67 + ], + [ + 67, + 96, + 97 + ], + [ + 67, + 97, + 68 + ], + [ + 68, + 97, + 98 + ], + [ + 68, + 98, + 69 + ], + [ + 69, + 98, + 99 + ], + [ + 69, + 99, + 70 + ], + [ + 70, + 99, + 100 + ], + [ + 70, + 100, + 71 + ], + [ + 71, + 100, + 101 + ], + [ + 71, + 101, + 72 + ], + [ + 72, + 101, + 102 + ], + [ + 72, + 102, + 73 + ], + [ + 73, + 102, + 103 + ], + [ + 73, + 103, + 74 + ], + [ + 74, + 103, + 104 + ], + [ + 74, + 104, + 75 + ], + [ + 75, + 104, + 105 + ], + [ + 75, + 105, + 76 + ], + [ + 76, + 105, + 106 + ], + [ + 76, + 106, + 77 + ], + [ + 77, + 106, + 107 + ], + [ + 77, + 107, + 78 + ], + [ + 78, + 107, + 108 + ], + [ + 78, + 108, + 79 + ], + [ + 79, + 108, + 109 + ], + [ + 79, + 109, + 80 + ], + [ + 80, + 109, + 110 + ], + [ + 80, + 110, + 81 + ], + [ + 81, + 110, + 111 + ], + [ + 81, + 111, + 82 + ], + [ + 82, + 111, + 112 + ], + [ + 82, + 112, + 83 + ], + [ + 83, + 112, + 113 + ], + [ + 83, + 113, + 84 + ], + [ + 84, + 113, + 114 + ], + [ + 84, + 114, + 85 + ], + [ + 85, + 114, + 115 + ], + [ + 85, + 115, + 86 + ], + [ + 87, + 116, + 117 + ], + [ + 87, + 117, + 88 + ], + [ + 88, + 117, + 118 + ], + [ + 88, + 118, + 89 + ], + [ + 89, + 118, + 119 + ], + [ + 89, + 119, + 90 + ], + [ + 90, + 119, + 120 + ], + [ + 90, + 120, + 91 + ], + [ + 91, + 120, + 121 + ], + [ + 91, + 121, + 92 + ], + [ + 92, + 121, + 122 + ], + [ + 92, + 122, + 93 + ], + [ + 93, + 122, + 123 + ], + [ + 93, + 123, + 94 + ], + [ + 94, + 123, + 124 + ], + [ + 94, + 124, + 95 + ], + [ + 95, + 124, + 125 + ], + [ + 95, + 125, + 96 + ], + [ + 96, + 125, + 126 + ], + [ + 96, + 126, + 97 + ], + [ + 97, + 126, + 127 + ], + [ + 97, + 127, + 98 + ], + [ + 98, + 127, + 128 + ], + [ + 98, + 128, + 99 + ], + [ + 99, + 128, + 129 + ], + [ + 99, + 129, + 100 + ], + [ + 100, + 129, + 130 + ], + [ + 100, + 130, + 101 + ], + [ + 101, + 130, + 131 + ], + [ + 101, + 131, + 102 + ], + [ + 102, + 131, + 132 + ], + [ + 102, + 132, + 103 + ], + [ + 103, + 132, + 133 + ], + [ + 103, + 133, + 104 + ], + [ + 104, + 133, + 134 + ], + [ + 104, + 134, + 105 + ], + [ + 105, + 134, + 135 + ], + [ + 105, + 135, + 106 + ], + [ + 106, + 135, + 136 + ], + [ + 106, + 136, + 107 + ], + [ + 107, + 136, + 137 + ], + [ + 107, + 137, + 108 + ], + [ + 108, + 137, + 138 + ], + [ + 108, + 138, + 109 + ], + [ + 109, + 138, + 139 + ], + [ + 109, + 139, + 110 + ], + [ + 110, + 139, + 140 + ], + [ + 110, + 140, + 111 + ], + [ + 111, + 140, + 141 + ], + [ + 111, + 141, + 112 + ], + [ + 112, + 141, + 142 + ], + [ + 112, + 142, + 113 + ], + [ + 113, + 142, + 143 + ], + [ + 113, + 143, + 114 + ], + [ + 114, + 143, + 144 + ], + [ + 114, + 144, + 115 + ], + [ + 116, + 145, + 146 + ], + [ + 116, + 146, + 117 + ], + [ + 117, + 146, + 147 + ], + [ + 117, + 147, + 118 + ], + [ + 118, + 147, + 148 + ], + [ + 118, + 148, + 119 + ], + [ + 119, + 148, + 149 + ], + [ + 119, + 149, + 120 + ], + [ + 120, + 149, + 150 + ], + [ + 120, + 150, + 121 + ], + [ + 121, + 150, + 151 + ], + [ + 121, + 151, + 122 + ], + [ + 122, + 151, + 152 + ], + [ + 122, + 152, + 123 + ], + [ + 123, + 152, + 153 + ], + [ + 123, + 153, + 124 + ], + [ + 124, + 153, + 154 + ], + [ + 124, + 154, + 125 + ], + [ + 125, + 154, + 155 + ], + [ + 125, + 155, + 126 + ], + [ + 126, + 155, + 156 + ], + [ + 126, + 156, + 127 + ], + [ + 127, + 156, + 157 + ], + [ + 127, + 157, + 128 + ], + [ + 128, + 157, + 158 + ], + [ + 128, + 158, + 129 + ], + [ + 129, + 158, + 159 + ], + [ + 129, + 159, + 130 + ], + [ + 130, + 159, + 160 + ], + [ + 130, + 160, + 131 + ], + [ + 131, + 160, + 161 + ], + [ + 131, + 161, + 132 + ], + [ + 132, + 161, + 162 + ], + [ + 132, + 162, + 133 + ], + [ + 133, + 162, + 163 + ], + [ + 133, + 163, + 134 + ], + [ + 134, + 163, + 164 + ], + [ + 134, + 164, + 135 + ], + [ + 135, + 164, + 165 + ], + [ + 135, + 165, + 136 + ], + [ + 136, + 165, + 166 + ], + [ + 136, + 166, + 137 + ], + [ + 137, + 166, + 167 + ], + [ + 137, + 167, + 138 + ], + [ + 138, + 167, + 168 + ], + [ + 138, + 168, + 139 + ], + [ + 139, + 168, + 169 + ], + [ + 139, + 169, + 140 + ], + [ + 140, + 169, + 170 + ], + [ + 140, + 170, + 141 + ], + [ + 141, + 170, + 171 + ], + [ + 141, + 171, + 142 + ], + [ + 142, + 171, + 172 + ], + [ + 142, + 172, + 143 + ], + [ + 143, + 172, + 173 + ], + [ + 143, + 173, + 144 + ], + [ + 145, + 174, + 175 + ], + [ + 145, + 175, + 146 + ], + [ + 146, + 175, + 176 + ], + [ + 146, + 176, + 147 + ], + [ + 147, + 176, + 177 + ], + [ + 147, + 177, + 148 + ], + [ + 148, + 177, + 178 + ], + [ + 148, + 178, + 149 + ], + [ + 149, + 178, + 179 + ], + [ + 149, + 179, + 150 + ], + [ + 150, + 179, + 180 + ], + [ + 150, + 180, + 151 + ], + [ + 151, + 180, + 181 + ], + [ + 151, + 181, + 152 + ], + [ + 152, + 181, + 182 + ], + [ + 152, + 182, + 153 + ], + [ + 153, + 182, + 183 + ], + [ + 153, + 183, + 154 + ], + [ + 154, + 183, + 184 + ], + [ + 154, + 184, + 155 + ], + [ + 155, + 184, + 185 + ], + [ + 155, + 185, + 156 + ], + [ + 156, + 185, + 186 + ], + [ + 156, + 186, + 157 + ], + [ + 157, + 186, + 187 + ], + [ + 157, + 187, + 158 + ], + [ + 158, + 187, + 188 + ], + [ + 158, + 188, + 159 + ], + [ + 159, + 188, + 189 + ], + [ + 159, + 189, + 160 + ], + [ + 160, + 189, + 190 + ], + [ + 160, + 190, + 161 + ], + [ + 161, + 190, + 191 + ], + [ + 161, + 191, + 162 + ], + [ + 162, + 191, + 192 + ], + [ + 162, + 192, + 163 + ], + [ + 163, + 192, + 193 + ], + [ + 163, + 193, + 164 + ], + [ + 164, + 193, + 194 + ], + [ + 164, + 194, + 165 + ], + [ + 165, + 194, + 195 + ], + [ + 165, + 195, + 166 + ], + [ + 166, + 195, + 196 + ], + [ + 166, + 196, + 167 + ], + [ + 167, + 196, + 197 + ], + [ + 167, + 197, + 168 + ], + [ + 168, + 197, + 198 + ], + [ + 168, + 198, + 169 + ], + [ + 169, + 198, + 199 + ], + [ + 169, + 199, + 170 + ], + [ + 170, + 199, + 200 + ], + [ + 170, + 200, + 171 + ], + [ + 171, + 200, + 201 + ], + [ + 171, + 201, + 172 + ], + [ + 172, + 201, + 202 + ], + [ + 172, + 202, + 173 + ], + [ + 174, + 203, + 204 + ], + [ + 174, + 204, + 175 + ], + [ + 175, + 204, + 205 + ], + [ + 175, + 205, + 176 + ], + [ + 176, + 205, + 206 + ], + [ + 176, + 206, + 177 + ], + [ + 177, + 206, + 207 + ], + [ + 177, + 207, + 178 + ], + [ + 178, + 207, + 208 + ], + [ + 178, + 208, + 179 + ], + [ + 179, + 208, + 209 + ], + [ + 179, + 209, + 180 + ], + [ + 180, + 209, + 210 + ], + [ + 180, + 210, + 181 + ], + [ + 181, + 210, + 211 + ], + [ + 181, + 211, + 182 + ], + [ + 182, + 211, + 212 + ], + [ + 182, + 212, + 183 + ], + [ + 183, + 212, + 213 + ], + [ + 183, + 213, + 184 + ], + [ + 184, + 213, + 214 + ], + [ + 184, + 214, + 185 + ], + [ + 185, + 214, + 215 + ], + [ + 185, + 215, + 186 + ], + [ + 186, + 215, + 216 + ], + [ + 186, + 216, + 187 + ], + [ + 187, + 216, + 217 + ], + [ + 187, + 217, + 188 + ], + [ + 188, + 217, + 218 + ], + [ + 188, + 218, + 189 + ], + [ + 189, + 218, + 219 + ], + [ + 189, + 219, + 190 + ], + [ + 190, + 219, + 220 + ], + [ + 190, + 220, + 191 + ], + [ + 191, + 220, + 221 + ], + [ + 191, + 221, + 192 + ], + [ + 192, + 221, + 222 + ], + [ + 192, + 222, + 193 + ], + [ + 193, + 222, + 223 + ], + [ + 193, + 223, + 194 + ], + [ + 194, + 223, + 224 + ], + [ + 194, + 224, + 195 + ], + [ + 195, + 224, + 225 + ], + [ + 195, + 225, + 196 + ], + [ + 196, + 225, + 226 + ], + [ + 196, + 226, + 197 + ], + [ + 197, + 226, + 227 + ], + [ + 197, + 227, + 198 + ], + [ + 198, + 227, + 228 + ], + [ + 198, + 228, + 199 + ], + [ + 199, + 228, + 229 + ], + [ + 199, + 229, + 200 + ], + [ + 200, + 229, + 230 + ], + [ + 200, + 230, + 201 + ], + [ + 201, + 230, + 231 + ], + [ + 201, + 231, + 202 + ], + [ + 203, + 232, + 233 + ], + [ + 203, + 233, + 204 + ], + [ + 204, + 233, + 234 + ], + [ + 204, + 234, + 205 + ], + [ + 205, + 234, + 235 + ], + [ + 205, + 235, + 206 + ], + [ + 206, + 235, + 236 + ], + [ + 206, + 236, + 207 + ], + [ + 207, + 236, + 237 + ], + [ + 207, + 237, + 208 + ], + [ + 208, + 237, + 238 + ], + [ + 208, + 238, + 209 + ], + [ + 209, + 238, + 239 + ], + [ + 209, + 239, + 210 + ], + [ + 210, + 239, + 240 + ], + [ + 210, + 240, + 211 + ], + [ + 211, + 240, + 241 + ], + [ + 211, + 241, + 212 + ], + [ + 212, + 241, + 242 + ], + [ + 212, + 242, + 213 + ], + [ + 213, + 242, + 243 + ], + [ + 213, + 243, + 214 + ], + [ + 214, + 243, + 244 + ], + [ + 214, + 244, + 215 + ], + [ + 215, + 244, + 245 + ], + [ + 215, + 245, + 216 + ], + [ + 216, + 245, + 246 + ], + [ + 216, + 246, + 217 + ], + [ + 217, + 246, + 247 + ], + [ + 217, + 247, + 218 + ], + [ + 218, + 247, + 248 + ], + [ + 218, + 248, + 219 + ], + [ + 219, + 248, + 249 + ], + [ + 219, + 249, + 220 + ], + [ + 220, + 249, + 250 + ], + [ + 220, + 250, + 221 + ], + [ + 221, + 250, + 251 + ], + [ + 221, + 251, + 222 + ], + [ + 222, + 251, + 252 + ], + [ + 222, + 252, + 223 + ], + [ + 223, + 252, + 253 + ], + [ + 223, + 253, + 224 + ], + [ + 224, + 253, + 254 + ], + [ + 224, + 254, + 225 + ], + [ + 225, + 254, + 255 + ], + [ + 225, + 255, + 226 + ], + [ + 226, + 255, + 256 + ], + [ + 226, + 256, + 227 + ], + [ + 227, + 256, + 257 + ], + [ + 227, + 257, + 228 + ], + [ + 228, + 257, + 258 + ], + [ + 228, + 258, + 229 + ], + [ + 229, + 258, + 259 + ], + [ + 229, + 259, + 230 + ], + [ + 230, + 259, + 260 + ], + [ + 230, + 260, + 231 + ], + [ + 232, + 261, + 262 + ], + [ + 232, + 262, + 233 + ], + [ + 233, + 262, + 263 + ], + [ + 233, + 263, + 234 + ], + [ + 234, + 263, + 264 + ], + [ + 234, + 264, + 235 + ], + [ + 235, + 264, + 265 + ], + [ + 235, + 265, + 236 + ], + [ + 236, + 265, + 266 + ], + [ + 236, + 266, + 237 + ], + [ + 237, + 266, + 267 + ], + [ + 237, + 267, + 238 + ], + [ + 238, + 267, + 268 + ], + [ + 238, + 268, + 239 + ], + [ + 239, + 268, + 269 + ], + [ + 239, + 269, + 240 + ], + [ + 240, + 269, + 270 + ], + [ + 240, + 270, + 241 + ], + [ + 241, + 270, + 271 + ], + [ + 241, + 271, + 242 + ], + [ + 242, + 271, + 272 + ], + [ + 242, + 272, + 243 + ], + [ + 243, + 272, + 273 + ], + [ + 243, + 273, + 244 + ], + [ + 244, + 273, + 274 + ], + [ + 244, + 274, + 245 + ], + [ + 245, + 274, + 275 + ], + [ + 245, + 275, + 246 + ], + [ + 246, + 275, + 276 + ], + [ + 246, + 276, + 247 + ], + [ + 247, + 276, + 277 + ], + [ + 247, + 277, + 248 + ], + [ + 248, + 277, + 278 + ], + [ + 248, + 278, + 249 + ], + [ + 249, + 278, + 279 + ], + [ + 249, + 279, + 250 + ], + [ + 250, + 279, + 280 + ], + [ + 250, + 280, + 251 + ], + [ + 251, + 280, + 281 + ], + [ + 251, + 281, + 252 + ], + [ + 252, + 281, + 282 + ], + [ + 252, + 282, + 253 + ], + [ + 253, + 282, + 283 + ], + [ + 253, + 283, + 254 + ], + [ + 254, + 283, + 284 + ], + [ + 254, + 284, + 255 + ], + [ + 255, + 284, + 285 + ], + [ + 255, + 285, + 256 + ], + [ + 256, + 285, + 286 + ], + [ + 256, + 286, + 257 + ], + [ + 257, + 286, + 287 + ], + [ + 257, + 287, + 258 + ], + [ + 258, + 287, + 288 + ], + [ + 258, + 288, + 259 + ], + [ + 259, + 288, + 289 + ], + [ + 259, + 289, + 260 + ], + [ + 261, + 290, + 291 + ], + [ + 261, + 291, + 262 + ], + [ + 262, + 291, + 292 + ], + [ + 262, + 292, + 263 + ], + [ + 263, + 292, + 293 + ], + [ + 263, + 293, + 264 + ], + [ + 264, + 293, + 294 + ], + [ + 264, + 294, + 265 + ], + [ + 265, + 294, + 295 + ], + [ + 265, + 295, + 266 + ], + [ + 266, + 295, + 296 + ], + [ + 266, + 296, + 267 + ], + [ + 267, + 296, + 297 + ], + [ + 267, + 297, + 268 + ], + [ + 268, + 297, + 298 + ], + [ + 268, + 298, + 269 + ], + [ + 269, + 298, + 299 + ], + [ + 269, + 299, + 270 + ], + [ + 270, + 299, + 300 + ], + [ + 270, + 300, + 271 + ], + [ + 271, + 300, + 301 + ], + [ + 271, + 301, + 272 + ], + [ + 272, + 301, + 302 + ], + [ + 272, + 302, + 273 + ], + [ + 273, + 302, + 303 + ], + [ + 273, + 303, + 274 + ], + [ + 274, + 303, + 304 + ], + [ + 274, + 304, + 275 + ], + [ + 275, + 304, + 305 + ], + [ + 275, + 305, + 276 + ], + [ + 276, + 305, + 306 + ], + [ + 276, + 306, + 277 + ], + [ + 277, + 306, + 307 + ], + [ + 277, + 307, + 278 + ], + [ + 278, + 307, + 308 + ], + [ + 278, + 308, + 279 + ], + [ + 279, + 308, + 309 + ], + [ + 279, + 309, + 280 + ], + [ + 280, + 309, + 310 + ], + [ + 280, + 310, + 281 + ], + [ + 281, + 310, + 311 + ], + [ + 281, + 311, + 282 + ], + [ + 282, + 311, + 312 + ], + [ + 282, + 312, + 283 + ], + [ + 283, + 312, + 313 + ], + [ + 283, + 313, + 284 + ], + [ + 284, + 313, + 314 + ], + [ + 284, + 314, + 285 + ], + [ + 285, + 314, + 315 + ], + [ + 285, + 315, + 286 + ], + [ + 286, + 315, + 316 + ], + [ + 286, + 316, + 287 + ], + [ + 287, + 316, + 317 + ], + [ + 287, + 317, + 288 + ], + [ + 288, + 317, + 318 + ], + [ + 288, + 318, + 289 + ], + [ + 290, + 319, + 320 + ], + [ + 290, + 320, + 291 + ], + [ + 291, + 320, + 321 + ], + [ + 291, + 321, + 292 + ], + [ + 292, + 321, + 322 + ], + [ + 292, + 322, + 293 + ], + [ + 293, + 322, + 323 + ], + [ + 293, + 323, + 294 + ], + [ + 294, + 323, + 324 + ], + [ + 294, + 324, + 295 + ], + [ + 295, + 324, + 325 + ], + [ + 295, + 325, + 296 + ], + [ + 296, + 325, + 326 + ], + [ + 296, + 326, + 297 + ], + [ + 297, + 326, + 327 + ], + [ + 297, + 327, + 298 + ], + [ + 298, + 327, + 328 + ], + [ + 298, + 328, + 299 + ], + [ + 299, + 328, + 329 + ], + [ + 299, + 329, + 300 + ], + [ + 300, + 329, + 330 + ], + [ + 300, + 330, + 301 + ], + [ + 301, + 330, + 331 + ], + [ + 301, + 331, + 302 + ], + [ + 302, + 331, + 332 + ], + [ + 302, + 332, + 303 + ], + [ + 303, + 332, + 333 + ], + [ + 303, + 333, + 304 + ], + [ + 304, + 333, + 334 + ], + [ + 304, + 334, + 305 + ], + [ + 305, + 334, + 335 + ], + [ + 305, + 335, + 306 + ], + [ + 306, + 335, + 336 + ], + [ + 306, + 336, + 307 + ], + [ + 307, + 336, + 337 + ], + [ + 307, + 337, + 308 + ], + [ + 308, + 337, + 338 + ], + [ + 308, + 338, + 309 + ], + [ + 309, + 338, + 339 + ], + [ + 309, + 339, + 310 + ], + [ + 310, + 339, + 340 + ], + [ + 310, + 340, + 311 + ], + [ + 311, + 340, + 341 + ], + [ + 311, + 341, + 312 + ], + [ + 312, + 341, + 342 + ], + [ + 312, + 342, + 313 + ], + [ + 313, + 342, + 343 + ], + [ + 313, + 343, + 314 + ], + [ + 314, + 343, + 344 + ], + [ + 314, + 344, + 315 + ], + [ + 315, + 344, + 345 + ], + [ + 315, + 345, + 316 + ], + [ + 316, + 345, + 346 + ], + [ + 316, + 346, + 317 + ], + [ + 317, + 346, + 347 + ], + [ + 317, + 347, + 318 + ], + [ + 319, + 348, + 349 + ], + [ + 319, + 349, + 320 + ], + [ + 320, + 349, + 350 + ], + [ + 320, + 350, + 321 + ], + [ + 321, + 350, + 351 + ], + [ + 321, + 351, + 322 + ], + [ + 322, + 351, + 352 + ], + [ + 322, + 352, + 323 + ], + [ + 323, + 352, + 353 + ], + [ + 323, + 353, + 324 + ], + [ + 324, + 353, + 354 + ], + [ + 324, + 354, + 325 + ], + [ + 325, + 354, + 355 + ], + [ + 325, + 355, + 326 + ], + [ + 326, + 355, + 356 + ], + [ + 326, + 356, + 327 + ], + [ + 327, + 356, + 357 + ], + [ + 327, + 357, + 328 + ], + [ + 328, + 357, + 358 + ], + [ + 328, + 358, + 329 + ], + [ + 329, + 358, + 359 + ], + [ + 329, + 359, + 330 + ], + [ + 330, + 359, + 360 + ], + [ + 330, + 360, + 331 + ], + [ + 331, + 360, + 361 + ], + [ + 331, + 361, + 332 + ], + [ + 332, + 361, + 362 + ], + [ + 332, + 362, + 333 + ], + [ + 333, + 362, + 363 + ], + [ + 333, + 363, + 334 + ], + [ + 334, + 363, + 364 + ], + [ + 334, + 364, + 335 + ], + [ + 335, + 364, + 365 + ], + [ + 335, + 365, + 336 + ], + [ + 336, + 365, + 366 + ], + [ + 336, + 366, + 337 + ], + [ + 337, + 366, + 367 + ], + [ + 337, + 367, + 338 + ], + [ + 338, + 367, + 368 + ], + [ + 338, + 368, + 339 + ], + [ + 339, + 368, + 369 + ], + [ + 339, + 369, + 340 + ], + [ + 340, + 369, + 370 + ], + [ + 340, + 370, + 341 + ], + [ + 341, + 370, + 371 + ], + [ + 341, + 371, + 342 + ], + [ + 342, + 371, + 372 + ], + [ + 342, + 372, + 343 + ], + [ + 343, + 372, + 373 + ], + [ + 343, + 373, + 344 + ], + [ + 344, + 373, + 374 + ], + [ + 344, + 374, + 345 + ], + [ + 345, + 374, + 375 + ], + [ + 345, + 375, + 346 + ], + [ + 346, + 375, + 376 + ], + [ + 346, + 376, + 347 + ], + [ + 348, + 377, + 378 + ], + [ + 348, + 378, + 349 + ], + [ + 349, + 378, + 379 + ], + [ + 349, + 379, + 350 + ], + [ + 350, + 379, + 380 + ], + [ + 350, + 380, + 351 + ], + [ + 351, + 380, + 381 + ], + [ + 351, + 381, + 352 + ], + [ + 352, + 381, + 382 + ], + [ + 352, + 382, + 353 + ], + [ + 353, + 382, + 383 + ], + [ + 353, + 383, + 354 + ], + [ + 354, + 383, + 384 + ], + [ + 354, + 384, + 355 + ], + [ + 355, + 384, + 385 + ], + [ + 355, + 385, + 356 + ], + [ + 356, + 385, + 386 + ], + [ + 356, + 386, + 357 + ], + [ + 357, + 386, + 387 + ], + [ + 357, + 387, + 358 + ], + [ + 358, + 387, + 388 + ], + [ + 358, + 388, + 359 + ], + [ + 359, + 388, + 389 + ], + [ + 359, + 389, + 360 + ], + [ + 360, + 389, + 390 + ], + [ + 360, + 390, + 361 + ], + [ + 361, + 390, + 391 + ], + [ + 361, + 391, + 362 + ], + [ + 362, + 391, + 392 + ], + [ + 362, + 392, + 363 + ], + [ + 363, + 392, + 393 + ], + [ + 363, + 393, + 364 + ], + [ + 364, + 393, + 394 + ], + [ + 364, + 394, + 365 + ], + [ + 365, + 394, + 395 + ], + [ + 365, + 395, + 366 + ], + [ + 366, + 395, + 396 + ], + [ + 366, + 396, + 367 + ], + [ + 367, + 396, + 397 + ], + [ + 367, + 397, + 368 + ], + [ + 368, + 397, + 398 + ], + [ + 368, + 398, + 369 + ], + [ + 369, + 398, + 399 + ], + [ + 369, + 399, + 370 + ], + [ + 370, + 399, + 400 + ], + [ + 370, + 400, + 371 + ], + [ + 371, + 400, + 401 + ], + [ + 371, + 401, + 372 + ], + [ + 372, + 401, + 402 + ], + [ + 372, + 402, + 373 + ], + [ + 373, + 402, + 403 + ], + [ + 373, + 403, + 374 + ], + [ + 374, + 403, + 404 + ], + [ + 374, + 404, + 375 + ], + [ + 375, + 404, + 405 + ], + [ + 375, + 405, + 376 + ], + [ + 377, + 406, + 407 + ], + [ + 377, + 407, + 378 + ], + [ + 378, + 407, + 408 + ], + [ + 378, + 408, + 379 + ], + [ + 379, + 408, + 409 + ], + [ + 379, + 409, + 380 + ], + [ + 380, + 409, + 410 + ], + [ + 380, + 410, + 381 + ], + [ + 381, + 410, + 411 + ], + [ + 381, + 411, + 382 + ], + [ + 382, + 411, + 412 + ], + [ + 382, + 412, + 383 + ], + [ + 383, + 412, + 413 + ], + [ + 383, + 413, + 384 + ], + [ + 384, + 413, + 414 + ], + [ + 384, + 414, + 385 + ], + [ + 385, + 414, + 415 + ], + [ + 385, + 415, + 386 + ], + [ + 386, + 415, + 416 + ], + [ + 386, + 416, + 387 + ], + [ + 387, + 416, + 417 + ], + [ + 387, + 417, + 388 + ], + [ + 388, + 417, + 418 + ], + [ + 388, + 418, + 389 + ], + [ + 389, + 418, + 419 + ], + [ + 389, + 419, + 390 + ], + [ + 390, + 419, + 420 + ], + [ + 390, + 420, + 391 + ], + [ + 391, + 420, + 421 + ], + [ + 391, + 421, + 392 + ], + [ + 392, + 421, + 422 + ], + [ + 392, + 422, + 393 + ], + [ + 393, + 422, + 423 + ], + [ + 393, + 423, + 394 + ], + [ + 394, + 423, + 424 + ], + [ + 394, + 424, + 395 + ], + [ + 395, + 424, + 425 + ], + [ + 395, + 425, + 396 + ], + [ + 396, + 425, + 426 + ], + [ + 396, + 426, + 397 + ], + [ + 397, + 426, + 427 + ], + [ + 397, + 427, + 398 + ], + [ + 398, + 427, + 428 + ], + [ + 398, + 428, + 399 + ], + [ + 399, + 428, + 429 + ], + [ + 399, + 429, + 400 + ], + [ + 400, + 429, + 430 + ], + [ + 400, + 430, + 401 + ], + [ + 401, + 430, + 431 + ], + [ + 401, + 431, + 402 + ], + [ + 402, + 431, + 432 + ], + [ + 402, + 432, + 403 + ], + [ + 403, + 432, + 433 + ], + [ + 403, + 433, + 404 + ], + [ + 404, + 433, + 434 + ], + [ + 404, + 434, + 405 + ], + [ + 406, + 435, + 436 + ], + [ + 406, + 436, + 407 + ], + [ + 407, + 436, + 437 + ], + [ + 407, + 437, + 408 + ], + [ + 408, + 437, + 438 + ], + [ + 408, + 438, + 409 + ], + [ + 409, + 438, + 439 + ], + [ + 409, + 439, + 410 + ], + [ + 410, + 439, + 440 + ], + [ + 410, + 440, + 411 + ], + [ + 411, + 440, + 441 + ], + [ + 411, + 441, + 412 + ], + [ + 412, + 441, + 442 + ], + [ + 412, + 442, + 413 + ], + [ + 413, + 442, + 443 + ], + [ + 413, + 443, + 414 + ], + [ + 414, + 443, + 444 + ], + [ + 414, + 444, + 415 + ], + [ + 415, + 444, + 445 + ], + [ + 415, + 445, + 416 + ], + [ + 416, + 445, + 446 + ], + [ + 416, + 446, + 417 + ], + [ + 417, + 446, + 447 + ], + [ + 417, + 447, + 418 + ], + [ + 418, + 447, + 448 + ], + [ + 418, + 448, + 419 + ], + [ + 419, + 448, + 449 + ], + [ + 419, + 449, + 420 + ], + [ + 420, + 449, + 450 + ], + [ + 420, + 450, + 421 + ], + [ + 421, + 450, + 451 + ], + [ + 421, + 451, + 422 + ], + [ + 422, + 451, + 452 + ], + [ + 422, + 452, + 423 + ], + [ + 423, + 452, + 453 + ], + [ + 423, + 453, + 424 + ], + [ + 424, + 453, + 454 + ], + [ + 424, + 454, + 425 + ], + [ + 425, + 454, + 455 + ], + [ + 425, + 455, + 426 + ], + [ + 426, + 455, + 456 + ], + [ + 426, + 456, + 427 + ], + [ + 427, + 456, + 457 + ], + [ + 427, + 457, + 428 + ], + [ + 428, + 457, + 458 + ], + [ + 428, + 458, + 429 + ], + [ + 429, + 458, + 459 + ], + [ + 429, + 459, + 430 + ], + [ + 430, + 459, + 460 + ], + [ + 430, + 460, + 431 + ], + [ + 431, + 460, + 461 + ], + [ + 431, + 461, + 432 + ], + [ + 432, + 461, + 462 + ], + [ + 432, + 462, + 433 + ], + [ + 433, + 462, + 463 + ], + [ + 433, + 463, + 434 + ], + [ + 435, + 464, + 465 + ], + [ + 435, + 465, + 436 + ], + [ + 436, + 465, + 466 + ], + [ + 436, + 466, + 437 + ], + [ + 437, + 466, + 467 + ], + [ + 437, + 467, + 438 + ], + [ + 438, + 467, + 468 + ], + [ + 438, + 468, + 439 + ], + [ + 439, + 468, + 469 + ], + [ + 439, + 469, + 440 + ], + [ + 440, + 469, + 470 + ], + [ + 440, + 470, + 441 + ], + [ + 441, + 470, + 471 + ], + [ + 441, + 471, + 442 + ], + [ + 442, + 471, + 472 + ], + [ + 442, + 472, + 443 + ], + [ + 443, + 472, + 473 + ], + [ + 443, + 473, + 444 + ], + [ + 444, + 473, + 474 + ], + [ + 444, + 474, + 445 + ], + [ + 445, + 474, + 475 + ], + [ + 445, + 475, + 446 + ], + [ + 446, + 475, + 476 + ], + [ + 446, + 476, + 447 + ], + [ + 447, + 476, + 477 + ], + [ + 447, + 477, + 448 + ], + [ + 448, + 477, + 478 + ], + [ + 448, + 478, + 449 + ], + [ + 449, + 478, + 479 + ], + [ + 449, + 479, + 450 + ], + [ + 450, + 479, + 480 + ], + [ + 450, + 480, + 451 + ], + [ + 451, + 480, + 481 + ], + [ + 451, + 481, + 452 + ], + [ + 452, + 481, + 482 + ], + [ + 452, + 482, + 453 + ], + [ + 453, + 482, + 483 + ], + [ + 453, + 483, + 454 + ], + [ + 454, + 483, + 484 + ], + [ + 454, + 484, + 455 + ], + [ + 455, + 484, + 485 + ], + [ + 455, + 485, + 456 + ], + [ + 456, + 485, + 486 + ], + [ + 456, + 486, + 457 + ], + [ + 457, + 486, + 487 + ], + [ + 457, + 487, + 458 + ], + [ + 458, + 487, + 488 + ], + [ + 458, + 488, + 459 + ], + [ + 459, + 488, + 489 + ], + [ + 459, + 489, + 460 + ], + [ + 460, + 489, + 490 + ], + [ + 460, + 490, + 461 + ], + [ + 461, + 490, + 491 + ], + [ + 461, + 491, + 462 + ], + [ + 462, + 491, + 492 + ], + [ + 462, + 492, + 463 + ], + [ + 464, + 493, + 494 + ], + [ + 464, + 494, + 465 + ], + [ + 465, + 494, + 495 + ], + [ + 465, + 495, + 466 + ], + [ + 466, + 495, + 496 + ], + [ + 466, + 496, + 467 + ], + [ + 467, + 496, + 497 + ], + [ + 467, + 497, + 468 + ], + [ + 468, + 497, + 498 + ], + [ + 468, + 498, + 469 + ], + [ + 469, + 498, + 499 + ], + [ + 469, + 499, + 470 + ], + [ + 470, + 499, + 500 + ], + [ + 470, + 500, + 471 + ], + [ + 471, + 500, + 501 + ], + [ + 471, + 501, + 472 + ], + [ + 472, + 501, + 502 + ], + [ + 472, + 502, + 473 + ], + [ + 473, + 502, + 503 + ], + [ + 473, + 503, + 474 + ], + [ + 474, + 503, + 504 + ], + [ + 474, + 504, + 475 + ], + [ + 475, + 504, + 505 + ], + [ + 475, + 505, + 476 + ], + [ + 476, + 505, + 506 + ], + [ + 476, + 506, + 477 + ], + [ + 477, + 506, + 507 + ], + [ + 477, + 507, + 478 + ], + [ + 478, + 507, + 508 + ], + [ + 478, + 508, + 479 + ], + [ + 479, + 508, + 509 + ], + [ + 479, + 509, + 480 + ], + [ + 480, + 509, + 510 + ], + [ + 480, + 510, + 481 + ], + [ + 481, + 510, + 511 + ], + [ + 481, + 511, + 482 + ], + [ + 482, + 511, + 512 + ], + [ + 482, + 512, + 483 + ], + [ + 483, + 512, + 513 + ], + [ + 483, + 513, + 484 + ], + [ + 484, + 513, + 514 + ], + [ + 484, + 514, + 485 + ], + [ + 485, + 514, + 515 + ], + [ + 485, + 515, + 486 + ], + [ + 486, + 515, + 516 + ], + [ + 486, + 516, + 487 + ], + [ + 487, + 516, + 517 + ], + [ + 487, + 517, + 488 + ], + [ + 488, + 517, + 518 + ], + [ + 488, + 518, + 489 + ], + [ + 489, + 518, + 519 + ], + [ + 489, + 519, + 490 + ], + [ + 490, + 519, + 520 + ], + [ + 490, + 520, + 491 + ], + [ + 491, + 520, + 521 + ], + [ + 491, + 521, + 492 + ], + [ + 493, + 522, + 523 + ], + [ + 493, + 523, + 494 + ], + [ + 494, + 523, + 524 + ], + [ + 494, + 524, + 495 + ], + [ + 495, + 524, + 525 + ], + [ + 495, + 525, + 496 + ], + [ + 496, + 525, + 526 + ], + [ + 496, + 526, + 497 + ], + [ + 497, + 526, + 527 + ], + [ + 497, + 527, + 498 + ], + [ + 498, + 527, + 528 + ], + [ + 498, + 528, + 499 + ], + [ + 499, + 528, + 529 + ], + [ + 499, + 529, + 500 + ], + [ + 500, + 529, + 530 + ], + [ + 500, + 530, + 501 + ], + [ + 501, + 530, + 531 + ], + [ + 501, + 531, + 502 + ], + [ + 502, + 531, + 532 + ], + [ + 502, + 532, + 503 + ], + [ + 503, + 532, + 533 + ], + [ + 503, + 533, + 504 + ], + [ + 504, + 533, + 534 + ], + [ + 504, + 534, + 505 + ], + [ + 505, + 534, + 535 + ], + [ + 505, + 535, + 506 + ], + [ + 506, + 535, + 536 + ], + [ + 506, + 536, + 507 + ], + [ + 507, + 536, + 537 + ], + [ + 507, + 537, + 508 + ], + [ + 508, + 537, + 538 + ], + [ + 508, + 538, + 509 + ], + [ + 509, + 538, + 539 + ], + [ + 509, + 539, + 510 + ], + [ + 510, + 539, + 540 + ], + [ + 510, + 540, + 511 + ], + [ + 511, + 540, + 541 + ], + [ + 511, + 541, + 512 + ], + [ + 512, + 541, + 542 + ], + [ + 512, + 542, + 513 + ], + [ + 513, + 542, + 543 + ], + [ + 513, + 543, + 514 + ], + [ + 514, + 543, + 544 + ], + [ + 514, + 544, + 515 + ], + [ + 515, + 544, + 545 + ], + [ + 515, + 545, + 516 + ], + [ + 516, + 545, + 546 + ], + [ + 516, + 546, + 517 + ], + [ + 517, + 546, + 547 + ], + [ + 517, + 547, + 518 + ], + [ + 518, + 547, + 548 + ], + [ + 518, + 548, + 519 + ], + [ + 519, + 548, + 549 + ], + [ + 519, + 549, + 520 + ], + [ + 520, + 549, + 550 + ], + [ + 520, + 550, + 521 + ], + [ + 522, + 551, + 552 + ], + [ + 522, + 552, + 523 + ], + [ + 523, + 552, + 553 + ], + [ + 523, + 553, + 524 + ], + [ + 524, + 553, + 554 + ], + [ + 524, + 554, + 525 + ], + [ + 525, + 554, + 555 + ], + [ + 525, + 555, + 526 + ], + [ + 526, + 555, + 556 + ], + [ + 526, + 556, + 527 + ], + [ + 527, + 556, + 557 + ], + [ + 527, + 557, + 528 + ], + [ + 528, + 557, + 558 + ], + [ + 528, + 558, + 529 + ], + [ + 529, + 558, + 559 + ], + [ + 529, + 559, + 530 + ], + [ + 530, + 559, + 560 + ], + [ + 530, + 560, + 531 + ], + [ + 531, + 560, + 561 + ], + [ + 531, + 561, + 532 + ], + [ + 532, + 561, + 562 + ], + [ + 532, + 562, + 533 + ], + [ + 533, + 562, + 563 + ], + [ + 533, + 563, + 534 + ], + [ + 534, + 563, + 564 + ], + [ + 534, + 564, + 535 + ], + [ + 535, + 564, + 565 + ], + [ + 535, + 565, + 536 + ], + [ + 536, + 565, + 566 + ], + [ + 536, + 566, + 537 + ], + [ + 537, + 566, + 567 + ], + [ + 537, + 567, + 538 + ], + [ + 538, + 567, + 568 + ], + [ + 538, + 568, + 539 + ], + [ + 539, + 568, + 569 + ], + [ + 539, + 569, + 540 + ], + [ + 540, + 569, + 570 + ], + [ + 540, + 570, + 541 + ], + [ + 541, + 570, + 571 + ], + [ + 541, + 571, + 542 + ], + [ + 542, + 571, + 572 + ], + [ + 542, + 572, + 543 + ], + [ + 543, + 572, + 573 + ], + [ + 543, + 573, + 544 + ], + [ + 544, + 573, + 574 + ], + [ + 544, + 574, + 545 + ], + [ + 545, + 574, + 575 + ], + [ + 545, + 575, + 546 + ], + [ + 546, + 575, + 576 + ], + [ + 546, + 576, + 547 + ], + [ + 547, + 576, + 577 + ], + [ + 547, + 577, + 548 + ], + [ + 548, + 577, + 578 + ], + [ + 548, + 578, + 549 + ], + [ + 549, + 578, + 579 + ], + [ + 549, + 579, + 550 + ], + [ + 551, + 580, + 581 + ], + [ + 551, + 581, + 552 + ], + [ + 552, + 581, + 582 + ], + [ + 552, + 582, + 553 + ], + [ + 553, + 582, + 583 + ], + [ + 553, + 583, + 554 + ], + [ + 554, + 583, + 584 + ], + [ + 554, + 584, + 555 + ], + [ + 555, + 584, + 585 + ], + [ + 555, + 585, + 556 + ], + [ + 556, + 585, + 586 + ], + [ + 556, + 586, + 557 + ], + [ + 557, + 586, + 587 + ], + [ + 557, + 587, + 558 + ], + [ + 558, + 587, + 588 + ], + [ + 558, + 588, + 559 + ], + [ + 559, + 588, + 589 + ], + [ + 559, + 589, + 560 + ], + [ + 560, + 589, + 590 + ], + [ + 560, + 590, + 561 + ], + [ + 561, + 590, + 591 + ], + [ + 561, + 591, + 562 + ], + [ + 562, + 591, + 592 + ], + [ + 562, + 592, + 563 + ], + [ + 563, + 592, + 593 + ], + [ + 563, + 593, + 564 + ], + [ + 564, + 593, + 594 + ], + [ + 564, + 594, + 565 + ], + [ + 565, + 594, + 595 + ], + [ + 565, + 595, + 566 + ], + [ + 566, + 595, + 596 + ], + [ + 566, + 596, + 567 + ], + [ + 567, + 596, + 597 + ], + [ + 567, + 597, + 568 + ], + [ + 568, + 597, + 598 + ], + [ + 568, + 598, + 569 + ], + [ + 569, + 598, + 599 + ], + [ + 569, + 599, + 570 + ], + [ + 570, + 599, + 600 + ], + [ + 570, + 600, + 571 + ], + [ + 571, + 600, + 601 + ], + [ + 571, + 601, + 572 + ], + [ + 572, + 601, + 602 + ], + [ + 572, + 602, + 573 + ], + [ + 573, + 602, + 603 + ], + [ + 573, + 603, + 574 + ], + [ + 574, + 603, + 604 + ], + [ + 574, + 604, + 575 + ], + [ + 575, + 604, + 605 + ], + [ + 575, + 605, + 576 + ], + [ + 576, + 605, + 606 + ], + [ + 576, + 606, + 577 + ], + [ + 577, + 606, + 607 + ], + [ + 577, + 607, + 578 + ], + [ + 578, + 607, + 608 + ], + [ + 578, + 608, + 579 + ], + [ + 580, + 609, + 610 + ], + [ + 580, + 610, + 581 + ], + [ + 581, + 610, + 611 + ], + [ + 581, + 611, + 582 + ], + [ + 582, + 611, + 612 + ], + [ + 582, + 612, + 583 + ], + [ + 583, + 612, + 613 + ], + [ + 583, + 613, + 584 + ], + [ + 584, + 613, + 614 + ], + [ + 584, + 614, + 585 + ], + [ + 585, + 614, + 615 + ], + [ + 585, + 615, + 586 + ], + [ + 586, + 615, + 616 + ], + [ + 586, + 616, + 587 + ], + [ + 587, + 616, + 617 + ], + [ + 587, + 617, + 588 + ], + [ + 588, + 617, + 618 + ], + [ + 588, + 618, + 589 + ], + [ + 589, + 618, + 619 + ], + [ + 589, + 619, + 590 + ], + [ + 590, + 619, + 620 + ], + [ + 590, + 620, + 591 + ], + [ + 591, + 620, + 621 + ], + [ + 591, + 621, + 592 + ], + [ + 592, + 621, + 622 + ], + [ + 592, + 622, + 593 + ], + [ + 593, + 622, + 623 + ], + [ + 593, + 623, + 594 + ], + [ + 594, + 623, + 624 + ], + [ + 594, + 624, + 595 + ], + [ + 595, + 624, + 625 + ], + [ + 595, + 625, + 596 + ], + [ + 596, + 625, + 626 + ], + [ + 596, + 626, + 597 + ], + [ + 597, + 626, + 627 + ], + [ + 597, + 627, + 598 + ], + [ + 598, + 627, + 628 + ], + [ + 598, + 628, + 599 + ], + [ + 599, + 628, + 629 + ], + [ + 599, + 629, + 600 + ], + [ + 600, + 629, + 630 + ], + [ + 600, + 630, + 601 + ], + [ + 601, + 630, + 631 + ], + [ + 601, + 631, + 602 + ], + [ + 602, + 631, + 632 + ], + [ + 602, + 632, + 603 + ], + [ + 603, + 632, + 633 + ], + [ + 603, + 633, + 604 + ], + [ + 604, + 633, + 634 + ], + [ + 604, + 634, + 605 + ], + [ + 605, + 634, + 635 + ], + [ + 605, + 635, + 606 + ], + [ + 606, + 635, + 636 + ], + [ + 606, + 636, + 607 + ], + [ + 607, + 636, + 637 + ], + [ + 607, + 637, + 608 + ], + [ + 609, + 638, + 639 + ], + [ + 609, + 639, + 610 + ], + [ + 610, + 639, + 640 + ], + [ + 610, + 640, + 611 + ], + [ + 611, + 640, + 641 + ], + [ + 611, + 641, + 612 + ], + [ + 612, + 641, + 642 + ], + [ + 612, + 642, + 613 + ], + [ + 613, + 642, + 643 + ], + [ + 613, + 643, + 614 + ], + [ + 614, + 643, + 644 + ], + [ + 614, + 644, + 615 + ], + [ + 615, + 644, + 645 + ], + [ + 615, + 645, + 616 + ], + [ + 616, + 645, + 646 + ], + [ + 616, + 646, + 617 + ], + [ + 617, + 646, + 647 + ], + [ + 617, + 647, + 618 + ], + [ + 618, + 647, + 648 + ], + [ + 618, + 648, + 619 + ], + [ + 619, + 648, + 649 + ], + [ + 619, + 649, + 620 + ], + [ + 620, + 649, + 650 + ], + [ + 620, + 650, + 621 + ], + [ + 621, + 650, + 651 + ], + [ + 621, + 651, + 622 + ], + [ + 622, + 651, + 652 + ], + [ + 622, + 652, + 623 + ], + [ + 623, + 652, + 653 + ], + [ + 623, + 653, + 624 + ], + [ + 624, + 653, + 654 + ], + [ + 624, + 654, + 625 + ], + [ + 625, + 654, + 655 + ], + [ + 625, + 655, + 626 + ], + [ + 626, + 655, + 656 + ], + [ + 626, + 656, + 627 + ], + [ + 627, + 656, + 657 + ], + [ + 627, + 657, + 628 + ], + [ + 628, + 657, + 658 + ], + [ + 628, + 658, + 629 + ], + [ + 629, + 658, + 659 + ], + [ + 629, + 659, + 630 + ], + [ + 630, + 659, + 660 + ], + [ + 630, + 660, + 631 + ], + [ + 631, + 660, + 661 + ], + [ + 631, + 661, + 632 + ], + [ + 632, + 661, + 662 + ], + [ + 632, + 662, + 633 + ], + [ + 633, + 662, + 663 + ], + [ + 633, + 663, + 634 + ], + [ + 634, + 663, + 664 + ], + [ + 634, + 664, + 635 + ], + [ + 635, + 664, + 665 + ], + [ + 635, + 665, + 636 + ], + [ + 636, + 665, + 666 + ], + [ + 636, + 666, + 637 + ], + [ + 638, + 667, + 668 + ], + [ + 638, + 668, + 639 + ], + [ + 639, + 668, + 669 + ], + [ + 639, + 669, + 640 + ], + [ + 640, + 669, + 670 + ], + [ + 640, + 670, + 641 + ], + [ + 641, + 670, + 671 + ], + [ + 641, + 671, + 642 + ], + [ + 642, + 671, + 672 + ], + [ + 642, + 672, + 643 + ], + [ + 643, + 672, + 673 + ], + [ + 643, + 673, + 644 + ], + [ + 644, + 673, + 674 + ], + [ + 644, + 674, + 645 + ], + [ + 645, + 674, + 675 + ], + [ + 645, + 675, + 646 + ], + [ + 646, + 675, + 676 + ], + [ + 646, + 676, + 647 + ], + [ + 647, + 676, + 677 + ], + [ + 647, + 677, + 648 + ], + [ + 648, + 677, + 678 + ], + [ + 648, + 678, + 649 + ], + [ + 649, + 678, + 679 + ], + [ + 649, + 679, + 650 + ], + [ + 650, + 679, + 680 + ], + [ + 650, + 680, + 651 + ], + [ + 651, + 680, + 681 + ], + [ + 651, + 681, + 652 + ], + [ + 652, + 681, + 682 + ], + [ + 652, + 682, + 653 + ], + [ + 653, + 682, + 683 + ], + [ + 653, + 683, + 654 + ], + [ + 654, + 683, + 684 + ], + [ + 654, + 684, + 655 + ], + [ + 655, + 684, + 685 + ], + [ + 655, + 685, + 656 + ], + [ + 656, + 685, + 686 + ], + [ + 656, + 686, + 657 + ], + [ + 657, + 686, + 687 + ], + [ + 657, + 687, + 658 + ], + [ + 658, + 687, + 688 + ], + [ + 658, + 688, + 659 + ], + [ + 659, + 688, + 689 + ], + [ + 659, + 689, + 660 + ], + [ + 660, + 689, + 690 + ], + [ + 660, + 690, + 661 + ], + [ + 661, + 690, + 691 + ], + [ + 661, + 691, + 662 + ], + [ + 662, + 691, + 692 + ], + [ + 662, + 692, + 663 + ], + [ + 663, + 692, + 693 + ], + [ + 663, + 693, + 664 + ], + [ + 664, + 693, + 694 + ], + [ + 664, + 694, + 665 + ], + [ + 665, + 694, + 695 + ], + [ + 665, + 695, + 666 + ], + [ + 667, + 696, + 697 + ], + [ + 667, + 697, + 668 + ], + [ + 668, + 697, + 698 + ], + [ + 668, + 698, + 669 + ], + [ + 669, + 698, + 699 + ], + [ + 669, + 699, + 670 + ], + [ + 670, + 699, + 700 + ], + [ + 670, + 700, + 671 + ], + [ + 671, + 700, + 701 + ], + [ + 671, + 701, + 672 + ], + [ + 672, + 701, + 702 + ], + [ + 672, + 702, + 673 + ], + [ + 673, + 702, + 703 + ], + [ + 673, + 703, + 674 + ], + [ + 674, + 703, + 704 + ], + [ + 674, + 704, + 675 + ], + [ + 675, + 704, + 705 + ], + [ + 675, + 705, + 676 + ], + [ + 676, + 705, + 706 + ], + [ + 676, + 706, + 677 + ], + [ + 677, + 706, + 707 + ], + [ + 677, + 707, + 678 + ], + [ + 678, + 707, + 708 + ], + [ + 678, + 708, + 679 + ], + [ + 679, + 708, + 709 + ], + [ + 679, + 709, + 680 + ], + [ + 680, + 709, + 710 + ], + [ + 680, + 710, + 681 + ], + [ + 681, + 710, + 711 + ], + [ + 681, + 711, + 682 + ], + [ + 682, + 711, + 712 + ], + [ + 682, + 712, + 683 + ], + [ + 683, + 712, + 713 + ], + [ + 683, + 713, + 684 + ], + [ + 684, + 713, + 714 + ], + [ + 684, + 714, + 685 + ], + [ + 685, + 714, + 715 + ], + [ + 685, + 715, + 686 + ], + [ + 686, + 715, + 716 + ], + [ + 686, + 716, + 687 + ], + [ + 687, + 716, + 717 + ], + [ + 687, + 717, + 688 + ], + [ + 688, + 717, + 718 + ], + [ + 688, + 718, + 689 + ], + [ + 689, + 718, + 719 + ], + [ + 689, + 719, + 690 + ], + [ + 690, + 719, + 720 + ], + [ + 690, + 720, + 691 + ], + [ + 691, + 720, + 721 + ], + [ + 691, + 721, + 692 + ], + [ + 692, + 721, + 722 + ], + [ + 692, + 722, + 693 + ], + [ + 693, + 722, + 723 + ], + [ + 693, + 723, + 694 + ], + [ + 694, + 723, + 724 + ], + [ + 694, + 724, + 695 + ], + [ + 696, + 725, + 726 + ], + [ + 696, + 726, + 697 + ], + [ + 697, + 726, + 727 + ], + [ + 697, + 727, + 698 + ], + [ + 698, + 727, + 728 + ], + [ + 698, + 728, + 699 + ], + [ + 699, + 728, + 729 + ], + [ + 699, + 729, + 700 + ], + [ + 700, + 729, + 730 + ], + [ + 700, + 730, + 701 + ], + [ + 701, + 730, + 731 + ], + [ + 701, + 731, + 702 + ], + [ + 702, + 731, + 732 + ], + [ + 702, + 732, + 703 + ], + [ + 703, + 732, + 733 + ], + [ + 703, + 733, + 704 + ], + [ + 704, + 733, + 734 + ], + [ + 704, + 734, + 705 + ], + [ + 705, + 734, + 735 + ], + [ + 705, + 735, + 706 + ], + [ + 706, + 735, + 736 + ], + [ + 706, + 736, + 707 + ], + [ + 707, + 736, + 737 + ], + [ + 707, + 737, + 708 + ], + [ + 708, + 737, + 738 + ], + [ + 708, + 738, + 709 + ], + [ + 709, + 738, + 739 + ], + [ + 709, + 739, + 710 + ], + [ + 710, + 739, + 740 + ], + [ + 710, + 740, + 711 + ], + [ + 711, + 740, + 741 + ], + [ + 711, + 741, + 712 + ], + [ + 712, + 741, + 742 + ], + [ + 712, + 742, + 713 + ], + [ + 713, + 742, + 743 + ], + [ + 713, + 743, + 714 + ], + [ + 714, + 743, + 744 + ], + [ + 714, + 744, + 715 + ], + [ + 715, + 744, + 745 + ], + [ + 715, + 745, + 716 + ], + [ + 716, + 745, + 746 + ], + [ + 716, + 746, + 717 + ], + [ + 717, + 746, + 747 + ], + [ + 717, + 747, + 718 + ], + [ + 718, + 747, + 748 + ], + [ + 718, + 748, + 719 + ], + [ + 719, + 748, + 749 + ], + [ + 719, + 749, + 720 + ], + [ + 720, + 749, + 750 + ], + [ + 720, + 750, + 721 + ], + [ + 721, + 750, + 751 + ], + [ + 721, + 751, + 722 + ], + [ + 722, + 751, + 752 + ], + [ + 722, + 752, + 723 + ], + [ + 723, + 752, + 753 + ], + [ + 723, + 753, + 724 + ], + [ + 725, + 754, + 755 + ], + [ + 725, + 755, + 726 + ], + [ + 726, + 755, + 756 + ], + [ + 726, + 756, + 727 + ], + [ + 727, + 756, + 757 + ], + [ + 727, + 757, + 728 + ], + [ + 728, + 757, + 758 + ], + [ + 728, + 758, + 729 + ], + [ + 729, + 758, + 759 + ], + [ + 729, + 759, + 730 + ], + [ + 730, + 759, + 760 + ], + [ + 730, + 760, + 731 + ], + [ + 731, + 760, + 761 + ], + [ + 731, + 761, + 732 + ], + [ + 732, + 761, + 762 + ], + [ + 732, + 762, + 733 + ], + [ + 733, + 762, + 763 + ], + [ + 733, + 763, + 734 + ], + [ + 734, + 763, + 764 + ], + [ + 734, + 764, + 735 + ], + [ + 735, + 764, + 765 + ], + [ + 735, + 765, + 736 + ], + [ + 736, + 765, + 766 + ], + [ + 736, + 766, + 737 + ], + [ + 737, + 766, + 767 + ], + [ + 737, + 767, + 738 + ], + [ + 738, + 767, + 768 + ], + [ + 738, + 768, + 739 + ], + [ + 739, + 768, + 769 + ], + [ + 739, + 769, + 740 + ], + [ + 740, + 769, + 770 + ], + [ + 740, + 770, + 741 + ], + [ + 741, + 770, + 771 + ], + [ + 741, + 771, + 742 + ], + [ + 742, + 771, + 772 + ], + [ + 742, + 772, + 743 + ], + [ + 743, + 772, + 773 + ], + [ + 743, + 773, + 744 + ], + [ + 744, + 773, + 774 + ], + [ + 744, + 774, + 745 + ], + [ + 745, + 774, + 775 + ], + [ + 745, + 775, + 746 + ], + [ + 746, + 775, + 776 + ], + [ + 746, + 776, + 747 + ], + [ + 747, + 776, + 777 + ], + [ + 747, + 777, + 748 + ], + [ + 748, + 777, + 778 + ], + [ + 748, + 778, + 749 + ], + [ + 749, + 778, + 779 + ], + [ + 749, + 779, + 750 + ], + [ + 750, + 779, + 780 + ], + [ + 750, + 780, + 751 + ], + [ + 751, + 780, + 781 + ], + [ + 751, + 781, + 752 + ], + [ + 752, + 781, + 782 + ], + [ + 752, + 782, + 753 + ], + [ + 754, + 783, + 784 + ], + [ + 754, + 784, + 755 + ], + [ + 755, + 784, + 785 + ], + [ + 755, + 785, + 756 + ], + [ + 756, + 785, + 786 + ], + [ + 756, + 786, + 757 + ], + [ + 757, + 786, + 787 + ], + [ + 757, + 787, + 758 + ], + [ + 758, + 787, + 788 + ], + [ + 758, + 788, + 759 + ], + [ + 759, + 788, + 789 + ], + [ + 759, + 789, + 760 + ], + [ + 760, + 789, + 790 + ], + [ + 760, + 790, + 761 + ], + [ + 761, + 790, + 791 + ], + [ + 761, + 791, + 762 + ], + [ + 762, + 791, + 792 + ], + [ + 762, + 792, + 763 + ], + [ + 763, + 792, + 793 + ], + [ + 763, + 793, + 764 + ], + [ + 764, + 793, + 794 + ], + [ + 764, + 794, + 765 + ], + [ + 765, + 794, + 795 + ], + [ + 765, + 795, + 766 + ], + [ + 766, + 795, + 796 + ], + [ + 766, + 796, + 767 + ], + [ + 767, + 796, + 797 + ], + [ + 767, + 797, + 768 + ], + [ + 768, + 797, + 798 + ], + [ + 768, + 798, + 769 + ], + [ + 769, + 798, + 799 + ], + [ + 769, + 799, + 770 + ], + [ + 770, + 799, + 800 + ], + [ + 770, + 800, + 771 + ], + [ + 771, + 800, + 801 + ], + [ + 771, + 801, + 772 + ], + [ + 772, + 801, + 802 + ], + [ + 772, + 802, + 773 + ], + [ + 773, + 802, + 803 + ], + [ + 773, + 803, + 774 + ], + [ + 774, + 803, + 804 + ], + [ + 774, + 804, + 775 + ], + [ + 775, + 804, + 805 + ], + [ + 775, + 805, + 776 + ], + [ + 776, + 805, + 806 + ], + [ + 776, + 806, + 777 + ], + [ + 777, + 806, + 807 + ], + [ + 777, + 807, + 778 + ], + [ + 778, + 807, + 808 + ], + [ + 778, + 808, + 779 + ], + [ + 779, + 808, + 809 + ], + [ + 779, + 809, + 780 + ], + [ + 780, + 809, + 810 + ], + [ + 780, + 810, + 781 + ], + [ + 781, + 810, + 811 + ], + [ + 781, + 811, + 782 + ], + [ + 783, + 812, + 813 + ], + [ + 783, + 813, + 784 + ], + [ + 784, + 813, + 814 + ], + [ + 784, + 814, + 785 + ], + [ + 785, + 814, + 815 + ], + [ + 785, + 815, + 786 + ], + [ + 786, + 815, + 816 + ], + [ + 786, + 816, + 787 + ], + [ + 787, + 816, + 817 + ], + [ + 787, + 817, + 788 + ], + [ + 788, + 817, + 818 + ], + [ + 788, + 818, + 789 + ], + [ + 789, + 818, + 819 + ], + [ + 789, + 819, + 790 + ], + [ + 790, + 819, + 820 + ], + [ + 790, + 820, + 791 + ], + [ + 791, + 820, + 821 + ], + [ + 791, + 821, + 792 + ], + [ + 792, + 821, + 822 + ], + [ + 792, + 822, + 793 + ], + [ + 793, + 822, + 823 + ], + [ + 793, + 823, + 794 + ], + [ + 794, + 823, + 824 + ], + [ + 794, + 824, + 795 + ], + [ + 795, + 824, + 825 + ], + [ + 795, + 825, + 796 + ], + [ + 796, + 825, + 826 + ], + [ + 796, + 826, + 797 + ], + [ + 797, + 826, + 827 + ], + [ + 797, + 827, + 798 + ], + [ + 798, + 827, + 828 + ], + [ + 798, + 828, + 799 + ], + [ + 799, + 828, + 829 + ], + [ + 799, + 829, + 800 + ], + [ + 800, + 829, + 830 + ], + [ + 800, + 830, + 801 + ], + [ + 801, + 830, + 831 + ], + [ + 801, + 831, + 802 + ], + [ + 802, + 831, + 832 + ], + [ + 802, + 832, + 803 + ], + [ + 803, + 832, + 833 + ], + [ + 803, + 833, + 804 + ], + [ + 804, + 833, + 834 + ], + [ + 804, + 834, + 805 + ], + [ + 805, + 834, + 835 + ], + [ + 805, + 835, + 806 + ], + [ + 806, + 835, + 836 + ], + [ + 806, + 836, + 807 + ], + [ + 807, + 836, + 837 + ], + [ + 807, + 837, + 808 + ], + [ + 808, + 837, + 838 + ], + [ + 808, + 838, + 809 + ], + [ + 809, + 838, + 839 + ], + [ + 809, + 839, + 810 + ], + [ + 810, + 839, + 840 + ], + [ + 810, + 840, + 811 + ], + [ + 871, + 870, + 841 + ], + [ + 842, + 871, + 841 + ], + [ + 872, + 871, + 842 + ], + [ + 843, + 872, + 842 + ], + [ + 873, + 872, + 843 + ], + [ + 844, + 873, + 843 + ], + [ + 874, + 873, + 844 + ], + [ + 845, + 874, + 844 + ], + [ + 875, + 874, + 845 + ], + [ + 846, + 875, + 845 + ], + [ + 876, + 875, + 846 + ], + [ + 847, + 876, + 846 + ], + [ + 877, + 876, + 847 + ], + [ + 848, + 877, + 847 + ], + [ + 878, + 877, + 848 + ], + [ + 849, + 878, + 848 + ], + [ + 879, + 878, + 849 + ], + [ + 850, + 879, + 849 + ], + [ + 880, + 879, + 850 + ], + [ + 851, + 880, + 850 + ], + [ + 881, + 880, + 851 + ], + [ + 852, + 881, + 851 + ], + [ + 882, + 881, + 852 + ], + [ + 853, + 882, + 852 + ], + [ + 883, + 882, + 853 + ], + [ + 854, + 883, + 853 + ], + [ + 884, + 883, + 854 + ], + [ + 855, + 884, + 854 + ], + [ + 885, + 884, + 855 + ], + [ + 856, + 885, + 855 + ], + [ + 886, + 885, + 856 + ], + [ + 857, + 886, + 856 + ], + [ + 887, + 886, + 857 + ], + [ + 858, + 887, + 857 + ], + [ + 888, + 887, + 858 + ], + [ + 859, + 888, + 858 + ], + [ + 889, + 888, + 859 + ], + [ + 860, + 889, + 859 + ], + [ + 890, + 889, + 860 + ], + [ + 861, + 890, + 860 + ], + [ + 891, + 890, + 861 + ], + [ + 862, + 891, + 861 + ], + [ + 892, + 891, + 862 + ], + [ + 863, + 892, + 862 + ], + [ + 893, + 892, + 863 + ], + [ + 864, + 893, + 863 + ], + [ + 894, + 893, + 864 + ], + [ + 865, + 894, + 864 + ], + [ + 895, + 894, + 865 + ], + [ + 866, + 895, + 865 + ], + [ + 896, + 895, + 866 + ], + [ + 867, + 896, + 866 + ], + [ + 897, + 896, + 867 + ], + [ + 868, + 897, + 867 + ], + [ + 898, + 897, + 868 + ], + [ + 869, + 898, + 868 + ], + [ + 900, + 899, + 870 + ], + [ + 871, + 900, + 870 + ], + [ + 901, + 900, + 871 + ], + [ + 872, + 901, + 871 + ], + [ + 902, + 901, + 872 + ], + [ + 873, + 902, + 872 + ], + [ + 903, + 902, + 873 + ], + [ + 874, + 903, + 873 + ], + [ + 904, + 903, + 874 + ], + [ + 875, + 904, + 874 + ], + [ + 905, + 904, + 875 + ], + [ + 876, + 905, + 875 + ], + [ + 906, + 905, + 876 + ], + [ + 877, + 906, + 876 + ], + [ + 907, + 906, + 877 + ], + [ + 878, + 907, + 877 + ], + [ + 908, + 907, + 878 + ], + [ + 879, + 908, + 878 + ], + [ + 909, + 908, + 879 + ], + [ + 880, + 909, + 879 + ], + [ + 910, + 909, + 880 + ], + [ + 881, + 910, + 880 + ], + [ + 911, + 910, + 881 + ], + [ + 882, + 911, + 881 + ], + [ + 912, + 911, + 882 + ], + [ + 883, + 912, + 882 + ], + [ + 913, + 912, + 883 + ], + [ + 884, + 913, + 883 + ], + [ + 914, + 913, + 884 + ], + [ + 885, + 914, + 884 + ], + [ + 915, + 914, + 885 + ], + [ + 886, + 915, + 885 + ], + [ + 916, + 915, + 886 + ], + [ + 887, + 916, + 886 + ], + [ + 917, + 916, + 887 + ], + [ + 888, + 917, + 887 + ], + [ + 918, + 917, + 888 + ], + [ + 889, + 918, + 888 + ], + [ + 919, + 918, + 889 + ], + [ + 890, + 919, + 889 + ], + [ + 920, + 919, + 890 + ], + [ + 891, + 920, + 890 + ], + [ + 921, + 920, + 891 + ], + [ + 892, + 921, + 891 + ], + [ + 922, + 921, + 892 + ], + [ + 893, + 922, + 892 + ], + [ + 923, + 922, + 893 + ], + [ + 894, + 923, + 893 + ], + [ + 924, + 923, + 894 + ], + [ + 895, + 924, + 894 + ], + [ + 925, + 924, + 895 + ], + [ + 896, + 925, + 895 + ], + [ + 926, + 925, + 896 + ], + [ + 897, + 926, + 896 + ], + [ + 927, + 926, + 897 + ], + [ + 898, + 927, + 897 + ], + [ + 929, + 928, + 899 + ], + [ + 900, + 929, + 899 + ], + [ + 930, + 929, + 900 + ], + [ + 901, + 930, + 900 + ], + [ + 931, + 930, + 901 + ], + [ + 902, + 931, + 901 + ], + [ + 932, + 931, + 902 + ], + [ + 903, + 932, + 902 + ], + [ + 933, + 932, + 903 + ], + [ + 904, + 933, + 903 + ], + [ + 934, + 933, + 904 + ], + [ + 905, + 934, + 904 + ], + [ + 935, + 934, + 905 + ], + [ + 906, + 935, + 905 + ], + [ + 936, + 935, + 906 + ], + [ + 907, + 936, + 906 + ], + [ + 937, + 936, + 907 + ], + [ + 908, + 937, + 907 + ], + [ + 938, + 937, + 908 + ], + [ + 909, + 938, + 908 + ], + [ + 939, + 938, + 909 + ], + [ + 910, + 939, + 909 + ], + [ + 940, + 939, + 910 + ], + [ + 911, + 940, + 910 + ], + [ + 941, + 940, + 911 + ], + [ + 912, + 941, + 911 + ], + [ + 942, + 941, + 912 + ], + [ + 913, + 942, + 912 + ], + [ + 943, + 942, + 913 + ], + [ + 914, + 943, + 913 + ], + [ + 944, + 943, + 914 + ], + [ + 915, + 944, + 914 + ], + [ + 945, + 944, + 915 + ], + [ + 916, + 945, + 915 + ], + [ + 946, + 945, + 916 + ], + [ + 917, + 946, + 916 + ], + [ + 947, + 946, + 917 + ], + [ + 918, + 947, + 917 + ], + [ + 948, + 947, + 918 + ], + [ + 919, + 948, + 918 + ], + [ + 949, + 948, + 919 + ], + [ + 920, + 949, + 919 + ], + [ + 950, + 949, + 920 + ], + [ + 921, + 950, + 920 + ], + [ + 951, + 950, + 921 + ], + [ + 922, + 951, + 921 + ], + [ + 952, + 951, + 922 + ], + [ + 923, + 952, + 922 + ], + [ + 953, + 952, + 923 + ], + [ + 924, + 953, + 923 + ], + [ + 954, + 953, + 924 + ], + [ + 925, + 954, + 924 + ], + [ + 955, + 954, + 925 + ], + [ + 926, + 955, + 925 + ], + [ + 956, + 955, + 926 + ], + [ + 927, + 956, + 926 + ], + [ + 958, + 957, + 928 + ], + [ + 929, + 958, + 928 + ], + [ + 959, + 958, + 929 + ], + [ + 930, + 959, + 929 + ], + [ + 960, + 959, + 930 + ], + [ + 931, + 960, + 930 + ], + [ + 961, + 960, + 931 + ], + [ + 932, + 961, + 931 + ], + [ + 962, + 961, + 932 + ], + [ + 933, + 962, + 932 + ], + [ + 963, + 962, + 933 + ], + [ + 934, + 963, + 933 + ], + [ + 964, + 963, + 934 + ], + [ + 935, + 964, + 934 + ], + [ + 965, + 964, + 935 + ], + [ + 936, + 965, + 935 + ], + [ + 966, + 965, + 936 + ], + [ + 937, + 966, + 936 + ], + [ + 967, + 966, + 937 + ], + [ + 938, + 967, + 937 + ], + [ + 968, + 967, + 938 + ], + [ + 939, + 968, + 938 + ], + [ + 969, + 968, + 939 + ], + [ + 940, + 969, + 939 + ], + [ + 970, + 969, + 940 + ], + [ + 941, + 970, + 940 + ], + [ + 971, + 970, + 941 + ], + [ + 942, + 971, + 941 + ], + [ + 972, + 971, + 942 + ], + [ + 943, + 972, + 942 + ], + [ + 973, + 972, + 943 + ], + [ + 944, + 973, + 943 + ], + [ + 974, + 973, + 944 + ], + [ + 945, + 974, + 944 + ], + [ + 975, + 974, + 945 + ], + [ + 946, + 975, + 945 + ], + [ + 976, + 975, + 946 + ], + [ + 947, + 976, + 946 + ], + [ + 977, + 976, + 947 + ], + [ + 948, + 977, + 947 + ], + [ + 978, + 977, + 948 + ], + [ + 949, + 978, + 948 + ], + [ + 979, + 978, + 949 + ], + [ + 950, + 979, + 949 + ], + [ + 980, + 979, + 950 + ], + [ + 951, + 980, + 950 + ], + [ + 981, + 980, + 951 + ], + [ + 952, + 981, + 951 + ], + [ + 982, + 981, + 952 + ], + [ + 953, + 982, + 952 + ], + [ + 983, + 982, + 953 + ], + [ + 954, + 983, + 953 + ], + [ + 984, + 983, + 954 + ], + [ + 955, + 984, + 954 + ], + [ + 985, + 984, + 955 + ], + [ + 956, + 985, + 955 + ], + [ + 987, + 986, + 957 + ], + [ + 958, + 987, + 957 + ], + [ + 988, + 987, + 958 + ], + [ + 959, + 988, + 958 + ], + [ + 989, + 988, + 959 + ], + [ + 960, + 989, + 959 + ], + [ + 990, + 989, + 960 + ], + [ + 961, + 990, + 960 + ], + [ + 991, + 990, + 961 + ], + [ + 962, + 991, + 961 + ], + [ + 992, + 991, + 962 + ], + [ + 963, + 992, + 962 + ], + [ + 993, + 992, + 963 + ], + [ + 964, + 993, + 963 + ], + [ + 994, + 993, + 964 + ], + [ + 965, + 994, + 964 + ], + [ + 995, + 994, + 965 + ], + [ + 966, + 995, + 965 + ], + [ + 996, + 995, + 966 + ], + [ + 967, + 996, + 966 + ], + [ + 997, + 996, + 967 + ], + [ + 968, + 997, + 967 + ], + [ + 998, + 997, + 968 + ], + [ + 969, + 998, + 968 + ], + [ + 999, + 998, + 969 + ], + [ + 970, + 999, + 969 + ], + [ + 1000, + 999, + 970 + ], + [ + 971, + 1000, + 970 + ], + [ + 1001, + 1000, + 971 + ], + [ + 972, + 1001, + 971 + ], + [ + 1002, + 1001, + 972 + ], + [ + 973, + 1002, + 972 + ], + [ + 1003, + 1002, + 973 + ], + [ + 974, + 1003, + 973 + ], + [ + 1004, + 1003, + 974 + ], + [ + 975, + 1004, + 974 + ], + [ + 1005, + 1004, + 975 + ], + [ + 976, + 1005, + 975 + ], + [ + 1006, + 1005, + 976 + ], + [ + 977, + 1006, + 976 + ], + [ + 1007, + 1006, + 977 + ], + [ + 978, + 1007, + 977 + ], + [ + 1008, + 1007, + 978 + ], + [ + 979, + 1008, + 978 + ], + [ + 1009, + 1008, + 979 + ], + [ + 980, + 1009, + 979 + ], + [ + 1010, + 1009, + 980 + ], + [ + 981, + 1010, + 980 + ], + [ + 1011, + 1010, + 981 + ], + [ + 982, + 1011, + 981 + ], + [ + 1012, + 1011, + 982 + ], + [ + 983, + 1012, + 982 + ], + [ + 1013, + 1012, + 983 + ], + [ + 984, + 1013, + 983 + ], + [ + 1014, + 1013, + 984 + ], + [ + 985, + 1014, + 984 + ], + [ + 1016, + 1015, + 986 + ], + [ + 987, + 1016, + 986 + ], + [ + 1017, + 1016, + 987 + ], + [ + 988, + 1017, + 987 + ], + [ + 1018, + 1017, + 988 + ], + [ + 989, + 1018, + 988 + ], + [ + 1019, + 1018, + 989 + ], + [ + 990, + 1019, + 989 + ], + [ + 1020, + 1019, + 990 + ], + [ + 991, + 1020, + 990 + ], + [ + 1021, + 1020, + 991 + ], + [ + 992, + 1021, + 991 + ], + [ + 1022, + 1021, + 992 + ], + [ + 993, + 1022, + 992 + ], + [ + 1023, + 1022, + 993 + ], + [ + 994, + 1023, + 993 + ], + [ + 1024, + 1023, + 994 + ], + [ + 995, + 1024, + 994 + ], + [ + 1025, + 1024, + 995 + ], + [ + 996, + 1025, + 995 + ], + [ + 1026, + 1025, + 996 + ], + [ + 997, + 1026, + 996 + ], + [ + 1027, + 1026, + 997 + ], + [ + 998, + 1027, + 997 + ], + [ + 1028, + 1027, + 998 + ], + [ + 999, + 1028, + 998 + ], + [ + 1029, + 1028, + 999 + ], + [ + 1000, + 1029, + 999 + ], + [ + 1030, + 1029, + 1000 + ], + [ + 1001, + 1030, + 1000 + ], + [ + 1031, + 1030, + 1001 + ], + [ + 1002, + 1031, + 1001 + ], + [ + 1032, + 1031, + 1002 + ], + [ + 1003, + 1032, + 1002 + ], + [ + 1033, + 1032, + 1003 + ], + [ + 1004, + 1033, + 1003 + ], + [ + 1034, + 1033, + 1004 + ], + [ + 1005, + 1034, + 1004 + ], + [ + 1035, + 1034, + 1005 + ], + [ + 1006, + 1035, + 1005 + ], + [ + 1036, + 1035, + 1006 + ], + [ + 1007, + 1036, + 1006 + ], + [ + 1037, + 1036, + 1007 + ], + [ + 1008, + 1037, + 1007 + ], + [ + 1038, + 1037, + 1008 + ], + [ + 1009, + 1038, + 1008 + ], + [ + 1039, + 1038, + 1009 + ], + [ + 1010, + 1039, + 1009 + ], + [ + 1040, + 1039, + 1010 + ], + [ + 1011, + 1040, + 1010 + ], + [ + 1041, + 1040, + 1011 + ], + [ + 1012, + 1041, + 1011 + ], + [ + 1042, + 1041, + 1012 + ], + [ + 1013, + 1042, + 1012 + ], + [ + 1043, + 1042, + 1013 + ], + [ + 1014, + 1043, + 1013 + ], + [ + 1045, + 1044, + 1015 + ], + [ + 1016, + 1045, + 1015 + ], + [ + 1046, + 1045, + 1016 + ], + [ + 1017, + 1046, + 1016 + ], + [ + 1047, + 1046, + 1017 + ], + [ + 1018, + 1047, + 1017 + ], + [ + 1048, + 1047, + 1018 + ], + [ + 1019, + 1048, + 1018 + ], + [ + 1049, + 1048, + 1019 + ], + [ + 1020, + 1049, + 1019 + ], + [ + 1050, + 1049, + 1020 + ], + [ + 1021, + 1050, + 1020 + ], + [ + 1051, + 1050, + 1021 + ], + [ + 1022, + 1051, + 1021 + ], + [ + 1052, + 1051, + 1022 + ], + [ + 1023, + 1052, + 1022 + ], + [ + 1053, + 1052, + 1023 + ], + [ + 1024, + 1053, + 1023 + ], + [ + 1054, + 1053, + 1024 + ], + [ + 1025, + 1054, + 1024 + ], + [ + 1055, + 1054, + 1025 + ], + [ + 1026, + 1055, + 1025 + ], + [ + 1056, + 1055, + 1026 + ], + [ + 1027, + 1056, + 1026 + ], + [ + 1057, + 1056, + 1027 + ], + [ + 1028, + 1057, + 1027 + ], + [ + 1058, + 1057, + 1028 + ], + [ + 1029, + 1058, + 1028 + ], + [ + 1059, + 1058, + 1029 + ], + [ + 1030, + 1059, + 1029 + ], + [ + 1060, + 1059, + 1030 + ], + [ + 1031, + 1060, + 1030 + ], + [ + 1061, + 1060, + 1031 + ], + [ + 1032, + 1061, + 1031 + ], + [ + 1062, + 1061, + 1032 + ], + [ + 1033, + 1062, + 1032 + ], + [ + 1063, + 1062, + 1033 + ], + [ + 1034, + 1063, + 1033 + ], + [ + 1064, + 1063, + 1034 + ], + [ + 1035, + 1064, + 1034 + ], + [ + 1065, + 1064, + 1035 + ], + [ + 1036, + 1065, + 1035 + ], + [ + 1066, + 1065, + 1036 + ], + [ + 1037, + 1066, + 1036 + ], + [ + 1067, + 1066, + 1037 + ], + [ + 1038, + 1067, + 1037 + ], + [ + 1068, + 1067, + 1038 + ], + [ + 1039, + 1068, + 1038 + ], + [ + 1069, + 1068, + 1039 + ], + [ + 1040, + 1069, + 1039 + ], + [ + 1070, + 1069, + 1040 + ], + [ + 1041, + 1070, + 1040 + ], + [ + 1071, + 1070, + 1041 + ], + [ + 1042, + 1071, + 1041 + ], + [ + 1072, + 1071, + 1042 + ], + [ + 1043, + 1072, + 1042 + ], + [ + 1074, + 1073, + 1044 + ], + [ + 1045, + 1074, + 1044 + ], + [ + 1075, + 1074, + 1045 + ], + [ + 1046, + 1075, + 1045 + ], + [ + 1076, + 1075, + 1046 + ], + [ + 1047, + 1076, + 1046 + ], + [ + 1077, + 1076, + 1047 + ], + [ + 1048, + 1077, + 1047 + ], + [ + 1078, + 1077, + 1048 + ], + [ + 1049, + 1078, + 1048 + ], + [ + 1079, + 1078, + 1049 + ], + [ + 1050, + 1079, + 1049 + ], + [ + 1080, + 1079, + 1050 + ], + [ + 1051, + 1080, + 1050 + ], + [ + 1081, + 1080, + 1051 + ], + [ + 1052, + 1081, + 1051 + ], + [ + 1082, + 1081, + 1052 + ], + [ + 1053, + 1082, + 1052 + ], + [ + 1083, + 1082, + 1053 + ], + [ + 1054, + 1083, + 1053 + ], + [ + 1084, + 1083, + 1054 + ], + [ + 1055, + 1084, + 1054 + ], + [ + 1085, + 1084, + 1055 + ], + [ + 1056, + 1085, + 1055 + ], + [ + 1086, + 1085, + 1056 + ], + [ + 1057, + 1086, + 1056 + ], + [ + 1087, + 1086, + 1057 + ], + [ + 1058, + 1087, + 1057 + ], + [ + 1088, + 1087, + 1058 + ], + [ + 1059, + 1088, + 1058 + ], + [ + 1089, + 1088, + 1059 + ], + [ + 1060, + 1089, + 1059 + ], + [ + 1090, + 1089, + 1060 + ], + [ + 1061, + 1090, + 1060 + ], + [ + 1091, + 1090, + 1061 + ], + [ + 1062, + 1091, + 1061 + ], + [ + 1092, + 1091, + 1062 + ], + [ + 1063, + 1092, + 1062 + ], + [ + 1093, + 1092, + 1063 + ], + [ + 1064, + 1093, + 1063 + ], + [ + 1094, + 1093, + 1064 + ], + [ + 1065, + 1094, + 1064 + ], + [ + 1095, + 1094, + 1065 + ], + [ + 1066, + 1095, + 1065 + ], + [ + 1096, + 1095, + 1066 + ], + [ + 1067, + 1096, + 1066 + ], + [ + 1097, + 1096, + 1067 + ], + [ + 1068, + 1097, + 1067 + ], + [ + 1098, + 1097, + 1068 + ], + [ + 1069, + 1098, + 1068 + ], + [ + 1099, + 1098, + 1069 + ], + [ + 1070, + 1099, + 1069 + ], + [ + 1100, + 1099, + 1070 + ], + [ + 1071, + 1100, + 1070 + ], + [ + 1101, + 1100, + 1071 + ], + [ + 1072, + 1101, + 1071 + ], + [ + 1103, + 1102, + 1073 + ], + [ + 1074, + 1103, + 1073 + ], + [ + 1104, + 1103, + 1074 + ], + [ + 1075, + 1104, + 1074 + ], + [ + 1105, + 1104, + 1075 + ], + [ + 1076, + 1105, + 1075 + ], + [ + 1106, + 1105, + 1076 + ], + [ + 1077, + 1106, + 1076 + ], + [ + 1107, + 1106, + 1077 + ], + [ + 1078, + 1107, + 1077 + ], + [ + 1108, + 1107, + 1078 + ], + [ + 1079, + 1108, + 1078 + ], + [ + 1109, + 1108, + 1079 + ], + [ + 1080, + 1109, + 1079 + ], + [ + 1110, + 1109, + 1080 + ], + [ + 1081, + 1110, + 1080 + ], + [ + 1111, + 1110, + 1081 + ], + [ + 1082, + 1111, + 1081 + ], + [ + 1112, + 1111, + 1082 + ], + [ + 1083, + 1112, + 1082 + ], + [ + 1113, + 1112, + 1083 + ], + [ + 1084, + 1113, + 1083 + ], + [ + 1114, + 1113, + 1084 + ], + [ + 1085, + 1114, + 1084 + ], + [ + 1115, + 1114, + 1085 + ], + [ + 1086, + 1115, + 1085 + ], + [ + 1116, + 1115, + 1086 + ], + [ + 1087, + 1116, + 1086 + ], + [ + 1117, + 1116, + 1087 + ], + [ + 1088, + 1117, + 1087 + ], + [ + 1118, + 1117, + 1088 + ], + [ + 1089, + 1118, + 1088 + ], + [ + 1119, + 1118, + 1089 + ], + [ + 1090, + 1119, + 1089 + ], + [ + 1120, + 1119, + 1090 + ], + [ + 1091, + 1120, + 1090 + ], + [ + 1121, + 1120, + 1091 + ], + [ + 1092, + 1121, + 1091 + ], + [ + 1122, + 1121, + 1092 + ], + [ + 1093, + 1122, + 1092 + ], + [ + 1123, + 1122, + 1093 + ], + [ + 1094, + 1123, + 1093 + ], + [ + 1124, + 1123, + 1094 + ], + [ + 1095, + 1124, + 1094 + ], + [ + 1125, + 1124, + 1095 + ], + [ + 1096, + 1125, + 1095 + ], + [ + 1126, + 1125, + 1096 + ], + [ + 1097, + 1126, + 1096 + ], + [ + 1127, + 1126, + 1097 + ], + [ + 1098, + 1127, + 1097 + ], + [ + 1128, + 1127, + 1098 + ], + [ + 1099, + 1128, + 1098 + ], + [ + 1129, + 1128, + 1099 + ], + [ + 1100, + 1129, + 1099 + ], + [ + 1130, + 1129, + 1100 + ], + [ + 1101, + 1130, + 1100 + ], + [ + 1132, + 1131, + 1102 + ], + [ + 1103, + 1132, + 1102 + ], + [ + 1133, + 1132, + 1103 + ], + [ + 1104, + 1133, + 1103 + ], + [ + 1134, + 1133, + 1104 + ], + [ + 1105, + 1134, + 1104 + ], + [ + 1135, + 1134, + 1105 + ], + [ + 1106, + 1135, + 1105 + ], + [ + 1136, + 1135, + 1106 + ], + [ + 1107, + 1136, + 1106 + ], + [ + 1137, + 1136, + 1107 + ], + [ + 1108, + 1137, + 1107 + ], + [ + 1138, + 1137, + 1108 + ], + [ + 1109, + 1138, + 1108 + ], + [ + 1139, + 1138, + 1109 + ], + [ + 1110, + 1139, + 1109 + ], + [ + 1140, + 1139, + 1110 + ], + [ + 1111, + 1140, + 1110 + ], + [ + 1141, + 1140, + 1111 + ], + [ + 1112, + 1141, + 1111 + ], + [ + 1142, + 1141, + 1112 + ], + [ + 1113, + 1142, + 1112 + ], + [ + 1143, + 1142, + 1113 + ], + [ + 1114, + 1143, + 1113 + ], + [ + 1144, + 1143, + 1114 + ], + [ + 1115, + 1144, + 1114 + ], + [ + 1145, + 1144, + 1115 + ], + [ + 1116, + 1145, + 1115 + ], + [ + 1146, + 1145, + 1116 + ], + [ + 1117, + 1146, + 1116 + ], + [ + 1147, + 1146, + 1117 + ], + [ + 1118, + 1147, + 1117 + ], + [ + 1148, + 1147, + 1118 + ], + [ + 1119, + 1148, + 1118 + ], + [ + 1149, + 1148, + 1119 + ], + [ + 1120, + 1149, + 1119 + ], + [ + 1150, + 1149, + 1120 + ], + [ + 1121, + 1150, + 1120 + ], + [ + 1151, + 1150, + 1121 + ], + [ + 1122, + 1151, + 1121 + ], + [ + 1152, + 1151, + 1122 + ], + [ + 1123, + 1152, + 1122 + ], + [ + 1153, + 1152, + 1123 + ], + [ + 1124, + 1153, + 1123 + ], + [ + 1154, + 1153, + 1124 + ], + [ + 1125, + 1154, + 1124 + ], + [ + 1155, + 1154, + 1125 + ], + [ + 1126, + 1155, + 1125 + ], + [ + 1156, + 1155, + 1126 + ], + [ + 1127, + 1156, + 1126 + ], + [ + 1157, + 1156, + 1127 + ], + [ + 1128, + 1157, + 1127 + ], + [ + 1158, + 1157, + 1128 + ], + [ + 1129, + 1158, + 1128 + ], + [ + 1159, + 1158, + 1129 + ], + [ + 1130, + 1159, + 1129 + ], + [ + 1161, + 1160, + 1131 + ], + [ + 1132, + 1161, + 1131 + ], + [ + 1162, + 1161, + 1132 + ], + [ + 1133, + 1162, + 1132 + ], + [ + 1163, + 1162, + 1133 + ], + [ + 1134, + 1163, + 1133 + ], + [ + 1164, + 1163, + 1134 + ], + [ + 1135, + 1164, + 1134 + ], + [ + 1165, + 1164, + 1135 + ], + [ + 1136, + 1165, + 1135 + ], + [ + 1166, + 1165, + 1136 + ], + [ + 1137, + 1166, + 1136 + ], + [ + 1167, + 1166, + 1137 + ], + [ + 1138, + 1167, + 1137 + ], + [ + 1168, + 1167, + 1138 + ], + [ + 1139, + 1168, + 1138 + ], + [ + 1169, + 1168, + 1139 + ], + [ + 1140, + 1169, + 1139 + ], + [ + 1170, + 1169, + 1140 + ], + [ + 1141, + 1170, + 1140 + ], + [ + 1171, + 1170, + 1141 + ], + [ + 1142, + 1171, + 1141 + ], + [ + 1172, + 1171, + 1142 + ], + [ + 1143, + 1172, + 1142 + ], + [ + 1173, + 1172, + 1143 + ], + [ + 1144, + 1173, + 1143 + ], + [ + 1174, + 1173, + 1144 + ], + [ + 1145, + 1174, + 1144 + ], + [ + 1175, + 1174, + 1145 + ], + [ + 1146, + 1175, + 1145 + ], + [ + 1176, + 1175, + 1146 + ], + [ + 1147, + 1176, + 1146 + ], + [ + 1177, + 1176, + 1147 + ], + [ + 1148, + 1177, + 1147 + ], + [ + 1178, + 1177, + 1148 + ], + [ + 1149, + 1178, + 1148 + ], + [ + 1179, + 1178, + 1149 + ], + [ + 1150, + 1179, + 1149 + ], + [ + 1180, + 1179, + 1150 + ], + [ + 1151, + 1180, + 1150 + ], + [ + 1181, + 1180, + 1151 + ], + [ + 1152, + 1181, + 1151 + ], + [ + 1182, + 1181, + 1152 + ], + [ + 1153, + 1182, + 1152 + ], + [ + 1183, + 1182, + 1153 + ], + [ + 1154, + 1183, + 1153 + ], + [ + 1184, + 1183, + 1154 + ], + [ + 1155, + 1184, + 1154 + ], + [ + 1185, + 1184, + 1155 + ], + [ + 1156, + 1185, + 1155 + ], + [ + 1186, + 1185, + 1156 + ], + [ + 1157, + 1186, + 1156 + ], + [ + 1187, + 1186, + 1157 + ], + [ + 1158, + 1187, + 1157 + ], + [ + 1188, + 1187, + 1158 + ], + [ + 1159, + 1188, + 1158 + ], + [ + 1190, + 1189, + 1160 + ], + [ + 1161, + 1190, + 1160 + ], + [ + 1191, + 1190, + 1161 + ], + [ + 1162, + 1191, + 1161 + ], + [ + 1192, + 1191, + 1162 + ], + [ + 1163, + 1192, + 1162 + ], + [ + 1193, + 1192, + 1163 + ], + [ + 1164, + 1193, + 1163 + ], + [ + 1194, + 1193, + 1164 + ], + [ + 1165, + 1194, + 1164 + ], + [ + 1195, + 1194, + 1165 + ], + [ + 1166, + 1195, + 1165 + ], + [ + 1196, + 1195, + 1166 + ], + [ + 1167, + 1196, + 1166 + ], + [ + 1197, + 1196, + 1167 + ], + [ + 1168, + 1197, + 1167 + ], + [ + 1198, + 1197, + 1168 + ], + [ + 1169, + 1198, + 1168 + ], + [ + 1199, + 1198, + 1169 + ], + [ + 1170, + 1199, + 1169 + ], + [ + 1200, + 1199, + 1170 + ], + [ + 1171, + 1200, + 1170 + ], + [ + 1201, + 1200, + 1171 + ], + [ + 1172, + 1201, + 1171 + ], + [ + 1202, + 1201, + 1172 + ], + [ + 1173, + 1202, + 1172 + ], + [ + 1203, + 1202, + 1173 + ], + [ + 1174, + 1203, + 1173 + ], + [ + 1204, + 1203, + 1174 + ], + [ + 1175, + 1204, + 1174 + ], + [ + 1205, + 1204, + 1175 + ], + [ + 1176, + 1205, + 1175 + ], + [ + 1206, + 1205, + 1176 + ], + [ + 1177, + 1206, + 1176 + ], + [ + 1207, + 1206, + 1177 + ], + [ + 1178, + 1207, + 1177 + ], + [ + 1208, + 1207, + 1178 + ], + [ + 1179, + 1208, + 1178 + ], + [ + 1209, + 1208, + 1179 + ], + [ + 1180, + 1209, + 1179 + ], + [ + 1210, + 1209, + 1180 + ], + [ + 1181, + 1210, + 1180 + ], + [ + 1211, + 1210, + 1181 + ], + [ + 1182, + 1211, + 1181 + ], + [ + 1212, + 1211, + 1182 + ], + [ + 1183, + 1212, + 1182 + ], + [ + 1213, + 1212, + 1183 + ], + [ + 1184, + 1213, + 1183 + ], + [ + 1214, + 1213, + 1184 + ], + [ + 1185, + 1214, + 1184 + ], + [ + 1215, + 1214, + 1185 + ], + [ + 1186, + 1215, + 1185 + ], + [ + 1216, + 1215, + 1186 + ], + [ + 1187, + 1216, + 1186 + ], + [ + 1217, + 1216, + 1187 + ], + [ + 1188, + 1217, + 1187 + ], + [ + 1219, + 1218, + 1189 + ], + [ + 1190, + 1219, + 1189 + ], + [ + 1220, + 1219, + 1190 + ], + [ + 1191, + 1220, + 1190 + ], + [ + 1221, + 1220, + 1191 + ], + [ + 1192, + 1221, + 1191 + ], + [ + 1222, + 1221, + 1192 + ], + [ + 1193, + 1222, + 1192 + ], + [ + 1223, + 1222, + 1193 + ], + [ + 1194, + 1223, + 1193 + ], + [ + 1224, + 1223, + 1194 + ], + [ + 1195, + 1224, + 1194 + ], + [ + 1225, + 1224, + 1195 + ], + [ + 1196, + 1225, + 1195 + ], + [ + 1226, + 1225, + 1196 + ], + [ + 1197, + 1226, + 1196 + ], + [ + 1227, + 1226, + 1197 + ], + [ + 1198, + 1227, + 1197 + ], + [ + 1228, + 1227, + 1198 + ], + [ + 1199, + 1228, + 1198 + ], + [ + 1229, + 1228, + 1199 + ], + [ + 1200, + 1229, + 1199 + ], + [ + 1230, + 1229, + 1200 + ], + [ + 1201, + 1230, + 1200 + ], + [ + 1231, + 1230, + 1201 + ], + [ + 1202, + 1231, + 1201 + ], + [ + 1232, + 1231, + 1202 + ], + [ + 1203, + 1232, + 1202 + ], + [ + 1233, + 1232, + 1203 + ], + [ + 1204, + 1233, + 1203 + ], + [ + 1234, + 1233, + 1204 + ], + [ + 1205, + 1234, + 1204 + ], + [ + 1235, + 1234, + 1205 + ], + [ + 1206, + 1235, + 1205 + ], + [ + 1236, + 1235, + 1206 + ], + [ + 1207, + 1236, + 1206 + ], + [ + 1237, + 1236, + 1207 + ], + [ + 1208, + 1237, + 1207 + ], + [ + 1238, + 1237, + 1208 + ], + [ + 1209, + 1238, + 1208 + ], + [ + 1239, + 1238, + 1209 + ], + [ + 1210, + 1239, + 1209 + ], + [ + 1240, + 1239, + 1210 + ], + [ + 1211, + 1240, + 1210 + ], + [ + 1241, + 1240, + 1211 + ], + [ + 1212, + 1241, + 1211 + ], + [ + 1242, + 1241, + 1212 + ], + [ + 1213, + 1242, + 1212 + ], + [ + 1243, + 1242, + 1213 + ], + [ + 1214, + 1243, + 1213 + ], + [ + 1244, + 1243, + 1214 + ], + [ + 1215, + 1244, + 1214 + ], + [ + 1245, + 1244, + 1215 + ], + [ + 1216, + 1245, + 1215 + ], + [ + 1246, + 1245, + 1216 + ], + [ + 1217, + 1246, + 1216 + ], + [ + 1248, + 1247, + 1218 + ], + [ + 1219, + 1248, + 1218 + ], + [ + 1249, + 1248, + 1219 + ], + [ + 1220, + 1249, + 1219 + ], + [ + 1250, + 1249, + 1220 + ], + [ + 1221, + 1250, + 1220 + ], + [ + 1251, + 1250, + 1221 + ], + [ + 1222, + 1251, + 1221 + ], + [ + 1252, + 1251, + 1222 + ], + [ + 1223, + 1252, + 1222 + ], + [ + 1253, + 1252, + 1223 + ], + [ + 1224, + 1253, + 1223 + ], + [ + 1254, + 1253, + 1224 + ], + [ + 1225, + 1254, + 1224 + ], + [ + 1255, + 1254, + 1225 + ], + [ + 1226, + 1255, + 1225 + ], + [ + 1256, + 1255, + 1226 + ], + [ + 1227, + 1256, + 1226 + ], + [ + 1257, + 1256, + 1227 + ], + [ + 1228, + 1257, + 1227 + ], + [ + 1258, + 1257, + 1228 + ], + [ + 1229, + 1258, + 1228 + ], + [ + 1259, + 1258, + 1229 + ], + [ + 1230, + 1259, + 1229 + ], + [ + 1260, + 1259, + 1230 + ], + [ + 1231, + 1260, + 1230 + ], + [ + 1261, + 1260, + 1231 + ], + [ + 1232, + 1261, + 1231 + ], + [ + 1262, + 1261, + 1232 + ], + [ + 1233, + 1262, + 1232 + ], + [ + 1263, + 1262, + 1233 + ], + [ + 1234, + 1263, + 1233 + ], + [ + 1264, + 1263, + 1234 + ], + [ + 1235, + 1264, + 1234 + ], + [ + 1265, + 1264, + 1235 + ], + [ + 1236, + 1265, + 1235 + ], + [ + 1266, + 1265, + 1236 + ], + [ + 1237, + 1266, + 1236 + ], + [ + 1267, + 1266, + 1237 + ], + [ + 1238, + 1267, + 1237 + ], + [ + 1268, + 1267, + 1238 + ], + [ + 1239, + 1268, + 1238 + ], + [ + 1269, + 1268, + 1239 + ], + [ + 1240, + 1269, + 1239 + ], + [ + 1270, + 1269, + 1240 + ], + [ + 1241, + 1270, + 1240 + ], + [ + 1271, + 1270, + 1241 + ], + [ + 1242, + 1271, + 1241 + ], + [ + 1272, + 1271, + 1242 + ], + [ + 1243, + 1272, + 1242 + ], + [ + 1273, + 1272, + 1243 + ], + [ + 1244, + 1273, + 1243 + ], + [ + 1274, + 1273, + 1244 + ], + [ + 1245, + 1274, + 1244 + ], + [ + 1275, + 1274, + 1245 + ], + [ + 1246, + 1275, + 1245 + ], + [ + 1277, + 1276, + 1247 + ], + [ + 1248, + 1277, + 1247 + ], + [ + 1278, + 1277, + 1248 + ], + [ + 1249, + 1278, + 1248 + ], + [ + 1279, + 1278, + 1249 + ], + [ + 1250, + 1279, + 1249 + ], + [ + 1280, + 1279, + 1250 + ], + [ + 1251, + 1280, + 1250 + ], + [ + 1281, + 1280, + 1251 + ], + [ + 1252, + 1281, + 1251 + ], + [ + 1282, + 1281, + 1252 + ], + [ + 1253, + 1282, + 1252 + ], + [ + 1283, + 1282, + 1253 + ], + [ + 1254, + 1283, + 1253 + ], + [ + 1284, + 1283, + 1254 + ], + [ + 1255, + 1284, + 1254 + ], + [ + 1285, + 1284, + 1255 + ], + [ + 1256, + 1285, + 1255 + ], + [ + 1286, + 1285, + 1256 + ], + [ + 1257, + 1286, + 1256 + ], + [ + 1287, + 1286, + 1257 + ], + [ + 1258, + 1287, + 1257 + ], + [ + 1288, + 1287, + 1258 + ], + [ + 1259, + 1288, + 1258 + ], + [ + 1289, + 1288, + 1259 + ], + [ + 1260, + 1289, + 1259 + ], + [ + 1290, + 1289, + 1260 + ], + [ + 1261, + 1290, + 1260 + ], + [ + 1291, + 1290, + 1261 + ], + [ + 1262, + 1291, + 1261 + ], + [ + 1292, + 1291, + 1262 + ], + [ + 1263, + 1292, + 1262 + ], + [ + 1293, + 1292, + 1263 + ], + [ + 1264, + 1293, + 1263 + ], + [ + 1294, + 1293, + 1264 + ], + [ + 1265, + 1294, + 1264 + ], + [ + 1295, + 1294, + 1265 + ], + [ + 1266, + 1295, + 1265 + ], + [ + 1296, + 1295, + 1266 + ], + [ + 1267, + 1296, + 1266 + ], + [ + 1297, + 1296, + 1267 + ], + [ + 1268, + 1297, + 1267 + ], + [ + 1298, + 1297, + 1268 + ], + [ + 1269, + 1298, + 1268 + ], + [ + 1299, + 1298, + 1269 + ], + [ + 1270, + 1299, + 1269 + ], + [ + 1300, + 1299, + 1270 + ], + [ + 1271, + 1300, + 1270 + ], + [ + 1301, + 1300, + 1271 + ], + [ + 1272, + 1301, + 1271 + ], + [ + 1302, + 1301, + 1272 + ], + [ + 1273, + 1302, + 1272 + ], + [ + 1303, + 1302, + 1273 + ], + [ + 1274, + 1303, + 1273 + ], + [ + 1304, + 1303, + 1274 + ], + [ + 1275, + 1304, + 1274 + ], + [ + 1306, + 1305, + 1276 + ], + [ + 1277, + 1306, + 1276 + ], + [ + 1307, + 1306, + 1277 + ], + [ + 1278, + 1307, + 1277 + ], + [ + 1308, + 1307, + 1278 + ], + [ + 1279, + 1308, + 1278 + ], + [ + 1309, + 1308, + 1279 + ], + [ + 1280, + 1309, + 1279 + ], + [ + 1310, + 1309, + 1280 + ], + [ + 1281, + 1310, + 1280 + ], + [ + 1311, + 1310, + 1281 + ], + [ + 1282, + 1311, + 1281 + ], + [ + 1312, + 1311, + 1282 + ], + [ + 1283, + 1312, + 1282 + ], + [ + 1313, + 1312, + 1283 + ], + [ + 1284, + 1313, + 1283 + ], + [ + 1314, + 1313, + 1284 + ], + [ + 1285, + 1314, + 1284 + ], + [ + 1315, + 1314, + 1285 + ], + [ + 1286, + 1315, + 1285 + ], + [ + 1316, + 1315, + 1286 + ], + [ + 1287, + 1316, + 1286 + ], + [ + 1317, + 1316, + 1287 + ], + [ + 1288, + 1317, + 1287 + ], + [ + 1318, + 1317, + 1288 + ], + [ + 1289, + 1318, + 1288 + ], + [ + 1319, + 1318, + 1289 + ], + [ + 1290, + 1319, + 1289 + ], + [ + 1320, + 1319, + 1290 + ], + [ + 1291, + 1320, + 1290 + ], + [ + 1321, + 1320, + 1291 + ], + [ + 1292, + 1321, + 1291 + ], + [ + 1322, + 1321, + 1292 + ], + [ + 1293, + 1322, + 1292 + ], + [ + 1323, + 1322, + 1293 + ], + [ + 1294, + 1323, + 1293 + ], + [ + 1324, + 1323, + 1294 + ], + [ + 1295, + 1324, + 1294 + ], + [ + 1325, + 1324, + 1295 + ], + [ + 1296, + 1325, + 1295 + ], + [ + 1326, + 1325, + 1296 + ], + [ + 1297, + 1326, + 1296 + ], + [ + 1327, + 1326, + 1297 + ], + [ + 1298, + 1327, + 1297 + ], + [ + 1328, + 1327, + 1298 + ], + [ + 1299, + 1328, + 1298 + ], + [ + 1329, + 1328, + 1299 + ], + [ + 1300, + 1329, + 1299 + ], + [ + 1330, + 1329, + 1300 + ], + [ + 1301, + 1330, + 1300 + ], + [ + 1331, + 1330, + 1301 + ], + [ + 1302, + 1331, + 1301 + ], + [ + 1332, + 1331, + 1302 + ], + [ + 1303, + 1332, + 1302 + ], + [ + 1333, + 1332, + 1303 + ], + [ + 1304, + 1333, + 1303 + ], + [ + 1335, + 1334, + 1305 + ], + [ + 1306, + 1335, + 1305 + ], + [ + 1336, + 1335, + 1306 + ], + [ + 1307, + 1336, + 1306 + ], + [ + 1337, + 1336, + 1307 + ], + [ + 1308, + 1337, + 1307 + ], + [ + 1338, + 1337, + 1308 + ], + [ + 1309, + 1338, + 1308 + ], + [ + 1339, + 1338, + 1309 + ], + [ + 1310, + 1339, + 1309 + ], + [ + 1340, + 1339, + 1310 + ], + [ + 1311, + 1340, + 1310 + ], + [ + 1341, + 1340, + 1311 + ], + [ + 1312, + 1341, + 1311 + ], + [ + 1342, + 1341, + 1312 + ], + [ + 1313, + 1342, + 1312 + ], + [ + 1343, + 1342, + 1313 + ], + [ + 1314, + 1343, + 1313 + ], + [ + 1344, + 1343, + 1314 + ], + [ + 1315, + 1344, + 1314 + ], + [ + 1345, + 1344, + 1315 + ], + [ + 1316, + 1345, + 1315 + ], + [ + 1346, + 1345, + 1316 + ], + [ + 1317, + 1346, + 1316 + ], + [ + 1347, + 1346, + 1317 + ], + [ + 1318, + 1347, + 1317 + ], + [ + 1348, + 1347, + 1318 + ], + [ + 1319, + 1348, + 1318 + ], + [ + 1349, + 1348, + 1319 + ], + [ + 1320, + 1349, + 1319 + ], + [ + 1350, + 1349, + 1320 + ], + [ + 1321, + 1350, + 1320 + ], + [ + 1351, + 1350, + 1321 + ], + [ + 1322, + 1351, + 1321 + ], + [ + 1352, + 1351, + 1322 + ], + [ + 1323, + 1352, + 1322 + ], + [ + 1353, + 1352, + 1323 + ], + [ + 1324, + 1353, + 1323 + ], + [ + 1354, + 1353, + 1324 + ], + [ + 1325, + 1354, + 1324 + ], + [ + 1355, + 1354, + 1325 + ], + [ + 1326, + 1355, + 1325 + ], + [ + 1356, + 1355, + 1326 + ], + [ + 1327, + 1356, + 1326 + ], + [ + 1357, + 1356, + 1327 + ], + [ + 1328, + 1357, + 1327 + ], + [ + 1358, + 1357, + 1328 + ], + [ + 1329, + 1358, + 1328 + ], + [ + 1359, + 1358, + 1329 + ], + [ + 1330, + 1359, + 1329 + ], + [ + 1360, + 1359, + 1330 + ], + [ + 1331, + 1360, + 1330 + ], + [ + 1361, + 1360, + 1331 + ], + [ + 1332, + 1361, + 1331 + ], + [ + 1362, + 1361, + 1332 + ], + [ + 1333, + 1362, + 1332 + ], + [ + 1364, + 1363, + 1334 + ], + [ + 1335, + 1364, + 1334 + ], + [ + 1365, + 1364, + 1335 + ], + [ + 1336, + 1365, + 1335 + ], + [ + 1366, + 1365, + 1336 + ], + [ + 1337, + 1366, + 1336 + ], + [ + 1367, + 1366, + 1337 + ], + [ + 1338, + 1367, + 1337 + ], + [ + 1368, + 1367, + 1338 + ], + [ + 1339, + 1368, + 1338 + ], + [ + 1369, + 1368, + 1339 + ], + [ + 1340, + 1369, + 1339 + ], + [ + 1370, + 1369, + 1340 + ], + [ + 1341, + 1370, + 1340 + ], + [ + 1371, + 1370, + 1341 + ], + [ + 1342, + 1371, + 1341 + ], + [ + 1372, + 1371, + 1342 + ], + [ + 1343, + 1372, + 1342 + ], + [ + 1373, + 1372, + 1343 + ], + [ + 1344, + 1373, + 1343 + ], + [ + 1374, + 1373, + 1344 + ], + [ + 1345, + 1374, + 1344 + ], + [ + 1375, + 1374, + 1345 + ], + [ + 1346, + 1375, + 1345 + ], + [ + 1376, + 1375, + 1346 + ], + [ + 1347, + 1376, + 1346 + ], + [ + 1377, + 1376, + 1347 + ], + [ + 1348, + 1377, + 1347 + ], + [ + 1378, + 1377, + 1348 + ], + [ + 1349, + 1378, + 1348 + ], + [ + 1379, + 1378, + 1349 + ], + [ + 1350, + 1379, + 1349 + ], + [ + 1380, + 1379, + 1350 + ], + [ + 1351, + 1380, + 1350 + ], + [ + 1381, + 1380, + 1351 + ], + [ + 1352, + 1381, + 1351 + ], + [ + 1382, + 1381, + 1352 + ], + [ + 1353, + 1382, + 1352 + ], + [ + 1383, + 1382, + 1353 + ], + [ + 1354, + 1383, + 1353 + ], + [ + 1384, + 1383, + 1354 + ], + [ + 1355, + 1384, + 1354 + ], + [ + 1385, + 1384, + 1355 + ], + [ + 1356, + 1385, + 1355 + ], + [ + 1386, + 1385, + 1356 + ], + [ + 1357, + 1386, + 1356 + ], + [ + 1387, + 1386, + 1357 + ], + [ + 1358, + 1387, + 1357 + ], + [ + 1388, + 1387, + 1358 + ], + [ + 1359, + 1388, + 1358 + ], + [ + 1389, + 1388, + 1359 + ], + [ + 1360, + 1389, + 1359 + ], + [ + 1390, + 1389, + 1360 + ], + [ + 1361, + 1390, + 1360 + ], + [ + 1391, + 1390, + 1361 + ], + [ + 1362, + 1391, + 1361 + ], + [ + 1393, + 1392, + 1363 + ], + [ + 1364, + 1393, + 1363 + ], + [ + 1394, + 1393, + 1364 + ], + [ + 1365, + 1394, + 1364 + ], + [ + 1395, + 1394, + 1365 + ], + [ + 1366, + 1395, + 1365 + ], + [ + 1396, + 1395, + 1366 + ], + [ + 1367, + 1396, + 1366 + ], + [ + 1397, + 1396, + 1367 + ], + [ + 1368, + 1397, + 1367 + ], + [ + 1398, + 1397, + 1368 + ], + [ + 1369, + 1398, + 1368 + ], + [ + 1399, + 1398, + 1369 + ], + [ + 1370, + 1399, + 1369 + ], + [ + 1400, + 1399, + 1370 + ], + [ + 1371, + 1400, + 1370 + ], + [ + 1401, + 1400, + 1371 + ], + [ + 1372, + 1401, + 1371 + ], + [ + 1402, + 1401, + 1372 + ], + [ + 1373, + 1402, + 1372 + ], + [ + 1403, + 1402, + 1373 + ], + [ + 1374, + 1403, + 1373 + ], + [ + 1404, + 1403, + 1374 + ], + [ + 1375, + 1404, + 1374 + ], + [ + 1405, + 1404, + 1375 + ], + [ + 1376, + 1405, + 1375 + ], + [ + 1406, + 1405, + 1376 + ], + [ + 1377, + 1406, + 1376 + ], + [ + 1407, + 1406, + 1377 + ], + [ + 1378, + 1407, + 1377 + ], + [ + 1408, + 1407, + 1378 + ], + [ + 1379, + 1408, + 1378 + ], + [ + 1409, + 1408, + 1379 + ], + [ + 1380, + 1409, + 1379 + ], + [ + 1410, + 1409, + 1380 + ], + [ + 1381, + 1410, + 1380 + ], + [ + 1411, + 1410, + 1381 + ], + [ + 1382, + 1411, + 1381 + ], + [ + 1412, + 1411, + 1382 + ], + [ + 1383, + 1412, + 1382 + ], + [ + 1413, + 1412, + 1383 + ], + [ + 1384, + 1413, + 1383 + ], + [ + 1414, + 1413, + 1384 + ], + [ + 1385, + 1414, + 1384 + ], + [ + 1415, + 1414, + 1385 + ], + [ + 1386, + 1415, + 1385 + ], + [ + 1416, + 1415, + 1386 + ], + [ + 1387, + 1416, + 1386 + ], + [ + 1417, + 1416, + 1387 + ], + [ + 1388, + 1417, + 1387 + ], + [ + 1418, + 1417, + 1388 + ], + [ + 1389, + 1418, + 1388 + ], + [ + 1419, + 1418, + 1389 + ], + [ + 1390, + 1419, + 1389 + ], + [ + 1420, + 1419, + 1390 + ], + [ + 1391, + 1420, + 1390 + ], + [ + 1422, + 1421, + 1392 + ], + [ + 1393, + 1422, + 1392 + ], + [ + 1423, + 1422, + 1393 + ], + [ + 1394, + 1423, + 1393 + ], + [ + 1424, + 1423, + 1394 + ], + [ + 1395, + 1424, + 1394 + ], + [ + 1425, + 1424, + 1395 + ], + [ + 1396, + 1425, + 1395 + ], + [ + 1426, + 1425, + 1396 + ], + [ + 1397, + 1426, + 1396 + ], + [ + 1427, + 1426, + 1397 + ], + [ + 1398, + 1427, + 1397 + ], + [ + 1428, + 1427, + 1398 + ], + [ + 1399, + 1428, + 1398 + ], + [ + 1429, + 1428, + 1399 + ], + [ + 1400, + 1429, + 1399 + ], + [ + 1430, + 1429, + 1400 + ], + [ + 1401, + 1430, + 1400 + ], + [ + 1431, + 1430, + 1401 + ], + [ + 1402, + 1431, + 1401 + ], + [ + 1432, + 1431, + 1402 + ], + [ + 1403, + 1432, + 1402 + ], + [ + 1433, + 1432, + 1403 + ], + [ + 1404, + 1433, + 1403 + ], + [ + 1434, + 1433, + 1404 + ], + [ + 1405, + 1434, + 1404 + ], + [ + 1435, + 1434, + 1405 + ], + [ + 1406, + 1435, + 1405 + ], + [ + 1436, + 1435, + 1406 + ], + [ + 1407, + 1436, + 1406 + ], + [ + 1437, + 1436, + 1407 + ], + [ + 1408, + 1437, + 1407 + ], + [ + 1438, + 1437, + 1408 + ], + [ + 1409, + 1438, + 1408 + ], + [ + 1439, + 1438, + 1409 + ], + [ + 1410, + 1439, + 1409 + ], + [ + 1440, + 1439, + 1410 + ], + [ + 1411, + 1440, + 1410 + ], + [ + 1441, + 1440, + 1411 + ], + [ + 1412, + 1441, + 1411 + ], + [ + 1442, + 1441, + 1412 + ], + [ + 1413, + 1442, + 1412 + ], + [ + 1443, + 1442, + 1413 + ], + [ + 1414, + 1443, + 1413 + ], + [ + 1444, + 1443, + 1414 + ], + [ + 1415, + 1444, + 1414 + ], + [ + 1445, + 1444, + 1415 + ], + [ + 1416, + 1445, + 1415 + ], + [ + 1446, + 1445, + 1416 + ], + [ + 1417, + 1446, + 1416 + ], + [ + 1447, + 1446, + 1417 + ], + [ + 1418, + 1447, + 1417 + ], + [ + 1448, + 1447, + 1418 + ], + [ + 1419, + 1448, + 1418 + ], + [ + 1449, + 1448, + 1419 + ], + [ + 1420, + 1449, + 1419 + ], + [ + 1451, + 1450, + 1421 + ], + [ + 1422, + 1451, + 1421 + ], + [ + 1452, + 1451, + 1422 + ], + [ + 1423, + 1452, + 1422 + ], + [ + 1453, + 1452, + 1423 + ], + [ + 1424, + 1453, + 1423 + ], + [ + 1454, + 1453, + 1424 + ], + [ + 1425, + 1454, + 1424 + ], + [ + 1455, + 1454, + 1425 + ], + [ + 1426, + 1455, + 1425 + ], + [ + 1456, + 1455, + 1426 + ], + [ + 1427, + 1456, + 1426 + ], + [ + 1457, + 1456, + 1427 + ], + [ + 1428, + 1457, + 1427 + ], + [ + 1458, + 1457, + 1428 + ], + [ + 1429, + 1458, + 1428 + ], + [ + 1459, + 1458, + 1429 + ], + [ + 1430, + 1459, + 1429 + ], + [ + 1460, + 1459, + 1430 + ], + [ + 1431, + 1460, + 1430 + ], + [ + 1461, + 1460, + 1431 + ], + [ + 1432, + 1461, + 1431 + ], + [ + 1462, + 1461, + 1432 + ], + [ + 1433, + 1462, + 1432 + ], + [ + 1463, + 1462, + 1433 + ], + [ + 1434, + 1463, + 1433 + ], + [ + 1464, + 1463, + 1434 + ], + [ + 1435, + 1464, + 1434 + ], + [ + 1465, + 1464, + 1435 + ], + [ + 1436, + 1465, + 1435 + ], + [ + 1466, + 1465, + 1436 + ], + [ + 1437, + 1466, + 1436 + ], + [ + 1467, + 1466, + 1437 + ], + [ + 1438, + 1467, + 1437 + ], + [ + 1468, + 1467, + 1438 + ], + [ + 1439, + 1468, + 1438 + ], + [ + 1469, + 1468, + 1439 + ], + [ + 1440, + 1469, + 1439 + ], + [ + 1470, + 1469, + 1440 + ], + [ + 1441, + 1470, + 1440 + ], + [ + 1471, + 1470, + 1441 + ], + [ + 1442, + 1471, + 1441 + ], + [ + 1472, + 1471, + 1442 + ], + [ + 1443, + 1472, + 1442 + ], + [ + 1473, + 1472, + 1443 + ], + [ + 1444, + 1473, + 1443 + ], + [ + 1474, + 1473, + 1444 + ], + [ + 1445, + 1474, + 1444 + ], + [ + 1475, + 1474, + 1445 + ], + [ + 1446, + 1475, + 1445 + ], + [ + 1476, + 1475, + 1446 + ], + [ + 1447, + 1476, + 1446 + ], + [ + 1477, + 1476, + 1447 + ], + [ + 1448, + 1477, + 1447 + ], + [ + 1478, + 1477, + 1448 + ], + [ + 1449, + 1478, + 1448 + ], + [ + 1480, + 1479, + 1450 + ], + [ + 1451, + 1480, + 1450 + ], + [ + 1481, + 1480, + 1451 + ], + [ + 1452, + 1481, + 1451 + ], + [ + 1482, + 1481, + 1452 + ], + [ + 1453, + 1482, + 1452 + ], + [ + 1483, + 1482, + 1453 + ], + [ + 1454, + 1483, + 1453 + ], + [ + 1484, + 1483, + 1454 + ], + [ + 1455, + 1484, + 1454 + ], + [ + 1485, + 1484, + 1455 + ], + [ + 1456, + 1485, + 1455 + ], + [ + 1486, + 1485, + 1456 + ], + [ + 1457, + 1486, + 1456 + ], + [ + 1487, + 1486, + 1457 + ], + [ + 1458, + 1487, + 1457 + ], + [ + 1488, + 1487, + 1458 + ], + [ + 1459, + 1488, + 1458 + ], + [ + 1489, + 1488, + 1459 + ], + [ + 1460, + 1489, + 1459 + ], + [ + 1490, + 1489, + 1460 + ], + [ + 1461, + 1490, + 1460 + ], + [ + 1491, + 1490, + 1461 + ], + [ + 1462, + 1491, + 1461 + ], + [ + 1492, + 1491, + 1462 + ], + [ + 1463, + 1492, + 1462 + ], + [ + 1493, + 1492, + 1463 + ], + [ + 1464, + 1493, + 1463 + ], + [ + 1494, + 1493, + 1464 + ], + [ + 1465, + 1494, + 1464 + ], + [ + 1495, + 1494, + 1465 + ], + [ + 1466, + 1495, + 1465 + ], + [ + 1496, + 1495, + 1466 + ], + [ + 1467, + 1496, + 1466 + ], + [ + 1497, + 1496, + 1467 + ], + [ + 1468, + 1497, + 1467 + ], + [ + 1498, + 1497, + 1468 + ], + [ + 1469, + 1498, + 1468 + ], + [ + 1499, + 1498, + 1469 + ], + [ + 1470, + 1499, + 1469 + ], + [ + 1500, + 1499, + 1470 + ], + [ + 1471, + 1500, + 1470 + ], + [ + 1501, + 1500, + 1471 + ], + [ + 1472, + 1501, + 1471 + ], + [ + 1502, + 1501, + 1472 + ], + [ + 1473, + 1502, + 1472 + ], + [ + 1503, + 1502, + 1473 + ], + [ + 1474, + 1503, + 1473 + ], + [ + 1504, + 1503, + 1474 + ], + [ + 1475, + 1504, + 1474 + ], + [ + 1505, + 1504, + 1475 + ], + [ + 1476, + 1505, + 1475 + ], + [ + 1506, + 1505, + 1476 + ], + [ + 1477, + 1506, + 1476 + ], + [ + 1507, + 1506, + 1477 + ], + [ + 1478, + 1507, + 1477 + ], + [ + 1509, + 1508, + 1479 + ], + [ + 1480, + 1509, + 1479 + ], + [ + 1510, + 1509, + 1480 + ], + [ + 1481, + 1510, + 1480 + ], + [ + 1511, + 1510, + 1481 + ], + [ + 1482, + 1511, + 1481 + ], + [ + 1512, + 1511, + 1482 + ], + [ + 1483, + 1512, + 1482 + ], + [ + 1513, + 1512, + 1483 + ], + [ + 1484, + 1513, + 1483 + ], + [ + 1514, + 1513, + 1484 + ], + [ + 1485, + 1514, + 1484 + ], + [ + 1515, + 1514, + 1485 + ], + [ + 1486, + 1515, + 1485 + ], + [ + 1516, + 1515, + 1486 + ], + [ + 1487, + 1516, + 1486 + ], + [ + 1517, + 1516, + 1487 + ], + [ + 1488, + 1517, + 1487 + ], + [ + 1518, + 1517, + 1488 + ], + [ + 1489, + 1518, + 1488 + ], + [ + 1519, + 1518, + 1489 + ], + [ + 1490, + 1519, + 1489 + ], + [ + 1520, + 1519, + 1490 + ], + [ + 1491, + 1520, + 1490 + ], + [ + 1521, + 1520, + 1491 + ], + [ + 1492, + 1521, + 1491 + ], + [ + 1522, + 1521, + 1492 + ], + [ + 1493, + 1522, + 1492 + ], + [ + 1523, + 1522, + 1493 + ], + [ + 1494, + 1523, + 1493 + ], + [ + 1524, + 1523, + 1494 + ], + [ + 1495, + 1524, + 1494 + ], + [ + 1525, + 1524, + 1495 + ], + [ + 1496, + 1525, + 1495 + ], + [ + 1526, + 1525, + 1496 + ], + [ + 1497, + 1526, + 1496 + ], + [ + 1527, + 1526, + 1497 + ], + [ + 1498, + 1527, + 1497 + ], + [ + 1528, + 1527, + 1498 + ], + [ + 1499, + 1528, + 1498 + ], + [ + 1529, + 1528, + 1499 + ], + [ + 1500, + 1529, + 1499 + ], + [ + 1530, + 1529, + 1500 + ], + [ + 1501, + 1530, + 1500 + ], + [ + 1531, + 1530, + 1501 + ], + [ + 1502, + 1531, + 1501 + ], + [ + 1532, + 1531, + 1502 + ], + [ + 1503, + 1532, + 1502 + ], + [ + 1533, + 1532, + 1503 + ], + [ + 1504, + 1533, + 1503 + ], + [ + 1534, + 1533, + 1504 + ], + [ + 1505, + 1534, + 1504 + ], + [ + 1535, + 1534, + 1505 + ], + [ + 1506, + 1535, + 1505 + ], + [ + 1536, + 1535, + 1506 + ], + [ + 1507, + 1536, + 1506 + ], + [ + 1538, + 1537, + 1508 + ], + [ + 1509, + 1538, + 1508 + ], + [ + 1539, + 1538, + 1509 + ], + [ + 1510, + 1539, + 1509 + ], + [ + 1540, + 1539, + 1510 + ], + [ + 1511, + 1540, + 1510 + ], + [ + 1541, + 1540, + 1511 + ], + [ + 1512, + 1541, + 1511 + ], + [ + 1542, + 1541, + 1512 + ], + [ + 1513, + 1542, + 1512 + ], + [ + 1543, + 1542, + 1513 + ], + [ + 1514, + 1543, + 1513 + ], + [ + 1544, + 1543, + 1514 + ], + [ + 1515, + 1544, + 1514 + ], + [ + 1545, + 1544, + 1515 + ], + [ + 1516, + 1545, + 1515 + ], + [ + 1546, + 1545, + 1516 + ], + [ + 1517, + 1546, + 1516 + ], + [ + 1547, + 1546, + 1517 + ], + [ + 1518, + 1547, + 1517 + ], + [ + 1548, + 1547, + 1518 + ], + [ + 1519, + 1548, + 1518 + ], + [ + 1549, + 1548, + 1519 + ], + [ + 1520, + 1549, + 1519 + ], + [ + 1550, + 1549, + 1520 + ], + [ + 1521, + 1550, + 1520 + ], + [ + 1551, + 1550, + 1521 + ], + [ + 1522, + 1551, + 1521 + ], + [ + 1552, + 1551, + 1522 + ], + [ + 1523, + 1552, + 1522 + ], + [ + 1553, + 1552, + 1523 + ], + [ + 1524, + 1553, + 1523 + ], + [ + 1554, + 1553, + 1524 + ], + [ + 1525, + 1554, + 1524 + ], + [ + 1555, + 1554, + 1525 + ], + [ + 1526, + 1555, + 1525 + ], + [ + 1556, + 1555, + 1526 + ], + [ + 1527, + 1556, + 1526 + ], + [ + 1557, + 1556, + 1527 + ], + [ + 1528, + 1557, + 1527 + ], + [ + 1558, + 1557, + 1528 + ], + [ + 1529, + 1558, + 1528 + ], + [ + 1559, + 1558, + 1529 + ], + [ + 1530, + 1559, + 1529 + ], + [ + 1560, + 1559, + 1530 + ], + [ + 1531, + 1560, + 1530 + ], + [ + 1561, + 1560, + 1531 + ], + [ + 1532, + 1561, + 1531 + ], + [ + 1562, + 1561, + 1532 + ], + [ + 1533, + 1562, + 1532 + ], + [ + 1563, + 1562, + 1533 + ], + [ + 1534, + 1563, + 1533 + ], + [ + 1564, + 1563, + 1534 + ], + [ + 1535, + 1564, + 1534 + ], + [ + 1565, + 1564, + 1535 + ], + [ + 1536, + 1565, + 1535 + ], + [ + 1567, + 1566, + 1537 + ], + [ + 1538, + 1567, + 1537 + ], + [ + 1568, + 1567, + 1538 + ], + [ + 1539, + 1568, + 1538 + ], + [ + 1569, + 1568, + 1539 + ], + [ + 1540, + 1569, + 1539 + ], + [ + 1570, + 1569, + 1540 + ], + [ + 1541, + 1570, + 1540 + ], + [ + 1571, + 1570, + 1541 + ], + [ + 1542, + 1571, + 1541 + ], + [ + 1572, + 1571, + 1542 + ], + [ + 1543, + 1572, + 1542 + ], + [ + 1573, + 1572, + 1543 + ], + [ + 1544, + 1573, + 1543 + ], + [ + 1574, + 1573, + 1544 + ], + [ + 1545, + 1574, + 1544 + ], + [ + 1575, + 1574, + 1545 + ], + [ + 1546, + 1575, + 1545 + ], + [ + 1576, + 1575, + 1546 + ], + [ + 1547, + 1576, + 1546 + ], + [ + 1577, + 1576, + 1547 + ], + [ + 1548, + 1577, + 1547 + ], + [ + 1578, + 1577, + 1548 + ], + [ + 1549, + 1578, + 1548 + ], + [ + 1579, + 1578, + 1549 + ], + [ + 1550, + 1579, + 1549 + ], + [ + 1580, + 1579, + 1550 + ], + [ + 1551, + 1580, + 1550 + ], + [ + 1581, + 1580, + 1551 + ], + [ + 1552, + 1581, + 1551 + ], + [ + 1582, + 1581, + 1552 + ], + [ + 1553, + 1582, + 1552 + ], + [ + 1583, + 1582, + 1553 + ], + [ + 1554, + 1583, + 1553 + ], + [ + 1584, + 1583, + 1554 + ], + [ + 1555, + 1584, + 1554 + ], + [ + 1585, + 1584, + 1555 + ], + [ + 1556, + 1585, + 1555 + ], + [ + 1586, + 1585, + 1556 + ], + [ + 1557, + 1586, + 1556 + ], + [ + 1587, + 1586, + 1557 + ], + [ + 1558, + 1587, + 1557 + ], + [ + 1588, + 1587, + 1558 + ], + [ + 1559, + 1588, + 1558 + ], + [ + 1589, + 1588, + 1559 + ], + [ + 1560, + 1589, + 1559 + ], + [ + 1590, + 1589, + 1560 + ], + [ + 1561, + 1590, + 1560 + ], + [ + 1591, + 1590, + 1561 + ], + [ + 1562, + 1591, + 1561 + ], + [ + 1592, + 1591, + 1562 + ], + [ + 1563, + 1592, + 1562 + ], + [ + 1593, + 1592, + 1563 + ], + [ + 1564, + 1593, + 1563 + ], + [ + 1594, + 1593, + 1564 + ], + [ + 1565, + 1594, + 1564 + ], + [ + 1596, + 1595, + 1566 + ], + [ + 1567, + 1596, + 1566 + ], + [ + 1597, + 1596, + 1567 + ], + [ + 1568, + 1597, + 1567 + ], + [ + 1598, + 1597, + 1568 + ], + [ + 1569, + 1598, + 1568 + ], + [ + 1599, + 1598, + 1569 + ], + [ + 1570, + 1599, + 1569 + ], + [ + 1600, + 1599, + 1570 + ], + [ + 1571, + 1600, + 1570 + ], + [ + 1601, + 1600, + 1571 + ], + [ + 1572, + 1601, + 1571 + ], + [ + 1602, + 1601, + 1572 + ], + [ + 1573, + 1602, + 1572 + ], + [ + 1603, + 1602, + 1573 + ], + [ + 1574, + 1603, + 1573 + ], + [ + 1604, + 1603, + 1574 + ], + [ + 1575, + 1604, + 1574 + ], + [ + 1605, + 1604, + 1575 + ], + [ + 1576, + 1605, + 1575 + ], + [ + 1606, + 1605, + 1576 + ], + [ + 1577, + 1606, + 1576 + ], + [ + 1607, + 1606, + 1577 + ], + [ + 1578, + 1607, + 1577 + ], + [ + 1608, + 1607, + 1578 + ], + [ + 1579, + 1608, + 1578 + ], + [ + 1609, + 1608, + 1579 + ], + [ + 1580, + 1609, + 1579 + ], + [ + 1610, + 1609, + 1580 + ], + [ + 1581, + 1610, + 1580 + ], + [ + 1611, + 1610, + 1581 + ], + [ + 1582, + 1611, + 1581 + ], + [ + 1612, + 1611, + 1582 + ], + [ + 1583, + 1612, + 1582 + ], + [ + 1613, + 1612, + 1583 + ], + [ + 1584, + 1613, + 1583 + ], + [ + 1614, + 1613, + 1584 + ], + [ + 1585, + 1614, + 1584 + ], + [ + 1615, + 1614, + 1585 + ], + [ + 1586, + 1615, + 1585 + ], + [ + 1616, + 1615, + 1586 + ], + [ + 1587, + 1616, + 1586 + ], + [ + 1617, + 1616, + 1587 + ], + [ + 1588, + 1617, + 1587 + ], + [ + 1618, + 1617, + 1588 + ], + [ + 1589, + 1618, + 1588 + ], + [ + 1619, + 1618, + 1589 + ], + [ + 1590, + 1619, + 1589 + ], + [ + 1620, + 1619, + 1590 + ], + [ + 1591, + 1620, + 1590 + ], + [ + 1621, + 1620, + 1591 + ], + [ + 1592, + 1621, + 1591 + ], + [ + 1622, + 1621, + 1592 + ], + [ + 1593, + 1622, + 1592 + ], + [ + 1623, + 1622, + 1593 + ], + [ + 1594, + 1623, + 1593 + ], + [ + 1625, + 1624, + 1595 + ], + [ + 1596, + 1625, + 1595 + ], + [ + 1626, + 1625, + 1596 + ], + [ + 1597, + 1626, + 1596 + ], + [ + 1627, + 1626, + 1597 + ], + [ + 1598, + 1627, + 1597 + ], + [ + 1628, + 1627, + 1598 + ], + [ + 1599, + 1628, + 1598 + ], + [ + 1629, + 1628, + 1599 + ], + [ + 1600, + 1629, + 1599 + ], + [ + 1630, + 1629, + 1600 + ], + [ + 1601, + 1630, + 1600 + ], + [ + 1631, + 1630, + 1601 + ], + [ + 1602, + 1631, + 1601 + ], + [ + 1632, + 1631, + 1602 + ], + [ + 1603, + 1632, + 1602 + ], + [ + 1633, + 1632, + 1603 + ], + [ + 1604, + 1633, + 1603 + ], + [ + 1634, + 1633, + 1604 + ], + [ + 1605, + 1634, + 1604 + ], + [ + 1635, + 1634, + 1605 + ], + [ + 1606, + 1635, + 1605 + ], + [ + 1636, + 1635, + 1606 + ], + [ + 1607, + 1636, + 1606 + ], + [ + 1637, + 1636, + 1607 + ], + [ + 1608, + 1637, + 1607 + ], + [ + 1638, + 1637, + 1608 + ], + [ + 1609, + 1638, + 1608 + ], + [ + 1639, + 1638, + 1609 + ], + [ + 1610, + 1639, + 1609 + ], + [ + 1640, + 1639, + 1610 + ], + [ + 1611, + 1640, + 1610 + ], + [ + 1641, + 1640, + 1611 + ], + [ + 1612, + 1641, + 1611 + ], + [ + 1642, + 1641, + 1612 + ], + [ + 1613, + 1642, + 1612 + ], + [ + 1643, + 1642, + 1613 + ], + [ + 1614, + 1643, + 1613 + ], + [ + 1644, + 1643, + 1614 + ], + [ + 1615, + 1644, + 1614 + ], + [ + 1645, + 1644, + 1615 + ], + [ + 1616, + 1645, + 1615 + ], + [ + 1646, + 1645, + 1616 + ], + [ + 1617, + 1646, + 1616 + ], + [ + 1647, + 1646, + 1617 + ], + [ + 1618, + 1647, + 1617 + ], + [ + 1648, + 1647, + 1618 + ], + [ + 1619, + 1648, + 1618 + ], + [ + 1649, + 1648, + 1619 + ], + [ + 1620, + 1649, + 1619 + ], + [ + 1650, + 1649, + 1620 + ], + [ + 1621, + 1650, + 1620 + ], + [ + 1651, + 1650, + 1621 + ], + [ + 1622, + 1651, + 1621 + ], + [ + 1652, + 1651, + 1622 + ], + [ + 1623, + 1652, + 1622 + ], + [ + 1654, + 1653, + 1624 + ], + [ + 1625, + 1654, + 1624 + ], + [ + 1655, + 1654, + 1625 + ], + [ + 1626, + 1655, + 1625 + ], + [ + 1656, + 1655, + 1626 + ], + [ + 1627, + 1656, + 1626 + ], + [ + 1657, + 1656, + 1627 + ], + [ + 1628, + 1657, + 1627 + ], + [ + 1658, + 1657, + 1628 + ], + [ + 1629, + 1658, + 1628 + ], + [ + 1659, + 1658, + 1629 + ], + [ + 1630, + 1659, + 1629 + ], + [ + 1660, + 1659, + 1630 + ], + [ + 1631, + 1660, + 1630 + ], + [ + 1661, + 1660, + 1631 + ], + [ + 1632, + 1661, + 1631 + ], + [ + 1662, + 1661, + 1632 + ], + [ + 1633, + 1662, + 1632 + ], + [ + 1663, + 1662, + 1633 + ], + [ + 1634, + 1663, + 1633 + ], + [ + 1664, + 1663, + 1634 + ], + [ + 1635, + 1664, + 1634 + ], + [ + 1665, + 1664, + 1635 + ], + [ + 1636, + 1665, + 1635 + ], + [ + 1666, + 1665, + 1636 + ], + [ + 1637, + 1666, + 1636 + ], + [ + 1667, + 1666, + 1637 + ], + [ + 1638, + 1667, + 1637 + ], + [ + 1668, + 1667, + 1638 + ], + [ + 1639, + 1668, + 1638 + ], + [ + 1669, + 1668, + 1639 + ], + [ + 1640, + 1669, + 1639 + ], + [ + 1670, + 1669, + 1640 + ], + [ + 1641, + 1670, + 1640 + ], + [ + 1671, + 1670, + 1641 + ], + [ + 1642, + 1671, + 1641 + ], + [ + 1672, + 1671, + 1642 + ], + [ + 1643, + 1672, + 1642 + ], + [ + 1673, + 1672, + 1643 + ], + [ + 1644, + 1673, + 1643 + ], + [ + 1674, + 1673, + 1644 + ], + [ + 1645, + 1674, + 1644 + ], + [ + 1675, + 1674, + 1645 + ], + [ + 1646, + 1675, + 1645 + ], + [ + 1676, + 1675, + 1646 + ], + [ + 1647, + 1676, + 1646 + ], + [ + 1677, + 1676, + 1647 + ], + [ + 1648, + 1677, + 1647 + ], + [ + 1678, + 1677, + 1648 + ], + [ + 1649, + 1678, + 1648 + ], + [ + 1679, + 1678, + 1649 + ], + [ + 1650, + 1679, + 1649 + ], + [ + 1680, + 1679, + 1650 + ], + [ + 1651, + 1680, + 1650 + ], + [ + 1681, + 1680, + 1651 + ], + [ + 1652, + 1681, + 1651 + ], + [ + 29, + 0, + 841 + ], + [ + 29, + 841, + 870 + ], + [ + 0, + 1, + 842 + ], + [ + 0, + 842, + 841 + ], + [ + 1, + 2, + 843 + ], + [ + 1, + 843, + 842 + ], + [ + 2, + 3, + 844 + ], + [ + 2, + 844, + 843 + ], + [ + 3, + 4, + 845 + ], + [ + 3, + 845, + 844 + ], + [ + 4, + 5, + 846 + ], + [ + 4, + 846, + 845 + ], + [ + 5, + 6, + 847 + ], + [ + 5, + 847, + 846 + ], + [ + 6, + 7, + 848 + ], + [ + 6, + 848, + 847 + ], + [ + 7, + 8, + 849 + ], + [ + 7, + 849, + 848 + ], + [ + 8, + 9, + 850 + ], + [ + 8, + 850, + 849 + ], + [ + 9, + 10, + 851 + ], + [ + 9, + 851, + 850 + ], + [ + 10, + 11, + 852 + ], + [ + 10, + 852, + 851 + ], + [ + 11, + 12, + 853 + ], + [ + 11, + 853, + 852 + ], + [ + 12, + 13, + 854 + ], + [ + 12, + 854, + 853 + ], + [ + 13, + 14, + 855 + ], + [ + 13, + 855, + 854 + ], + [ + 14, + 15, + 856 + ], + [ + 14, + 856, + 855 + ], + [ + 15, + 16, + 857 + ], + [ + 15, + 857, + 856 + ], + [ + 16, + 17, + 858 + ], + [ + 16, + 858, + 857 + ], + [ + 17, + 18, + 859 + ], + [ + 17, + 859, + 858 + ], + [ + 18, + 19, + 860 + ], + [ + 18, + 860, + 859 + ], + [ + 19, + 20, + 861 + ], + [ + 19, + 861, + 860 + ], + [ + 20, + 21, + 862 + ], + [ + 20, + 862, + 861 + ], + [ + 21, + 22, + 863 + ], + [ + 21, + 863, + 862 + ], + [ + 22, + 23, + 864 + ], + [ + 22, + 864, + 863 + ], + [ + 23, + 24, + 865 + ], + [ + 23, + 865, + 864 + ], + [ + 24, + 25, + 866 + ], + [ + 24, + 866, + 865 + ], + [ + 25, + 26, + 867 + ], + [ + 25, + 867, + 866 + ], + [ + 26, + 27, + 868 + ], + [ + 26, + 868, + 867 + ], + [ + 28, + 57, + 898 + ], + [ + 28, + 898, + 869 + ], + [ + 27, + 28, + 869 + ], + [ + 27, + 869, + 868 + ], + [ + 58, + 29, + 870 + ], + [ + 58, + 870, + 899 + ], + [ + 57, + 86, + 927 + ], + [ + 57, + 927, + 898 + ], + [ + 87, + 58, + 899 + ], + [ + 87, + 899, + 928 + ], + [ + 86, + 115, + 956 + ], + [ + 86, + 956, + 927 + ], + [ + 116, + 87, + 928 + ], + [ + 116, + 928, + 957 + ], + [ + 115, + 144, + 985 + ], + [ + 115, + 985, + 956 + ], + [ + 145, + 116, + 957 + ], + [ + 145, + 957, + 986 + ], + [ + 144, + 173, + 1014 + ], + [ + 144, + 1014, + 985 + ], + [ + 174, + 145, + 986 + ], + [ + 174, + 986, + 1015 + ], + [ + 173, + 202, + 1043 + ], + [ + 173, + 1043, + 1014 + ], + [ + 203, + 174, + 1015 + ], + [ + 203, + 1015, + 1044 + ], + [ + 202, + 231, + 1072 + ], + [ + 202, + 1072, + 1043 + ], + [ + 232, + 203, + 1044 + ], + [ + 232, + 1044, + 1073 + ], + [ + 231, + 260, + 1101 + ], + [ + 231, + 1101, + 1072 + ], + [ + 261, + 232, + 1073 + ], + [ + 261, + 1073, + 1102 + ], + [ + 260, + 289, + 1130 + ], + [ + 260, + 1130, + 1101 + ], + [ + 290, + 261, + 1102 + ], + [ + 290, + 1102, + 1131 + ], + [ + 289, + 318, + 1159 + ], + [ + 289, + 1159, + 1130 + ], + [ + 319, + 290, + 1131 + ], + [ + 319, + 1131, + 1160 + ], + [ + 318, + 347, + 1188 + ], + [ + 318, + 1188, + 1159 + ], + [ + 348, + 319, + 1160 + ], + [ + 348, + 1160, + 1189 + ], + [ + 347, + 376, + 1217 + ], + [ + 347, + 1217, + 1188 + ], + [ + 377, + 348, + 1189 + ], + [ + 377, + 1189, + 1218 + ], + [ + 376, + 405, + 1246 + ], + [ + 376, + 1246, + 1217 + ], + [ + 406, + 377, + 1218 + ], + [ + 406, + 1218, + 1247 + ], + [ + 405, + 434, + 1275 + ], + [ + 405, + 1275, + 1246 + ], + [ + 435, + 406, + 1247 + ], + [ + 435, + 1247, + 1276 + ], + [ + 434, + 463, + 1304 + ], + [ + 434, + 1304, + 1275 + ], + [ + 464, + 435, + 1276 + ], + [ + 464, + 1276, + 1305 + ], + [ + 463, + 492, + 1333 + ], + [ + 463, + 1333, + 1304 + ], + [ + 493, + 464, + 1305 + ], + [ + 493, + 1305, + 1334 + ], + [ + 492, + 521, + 1362 + ], + [ + 492, + 1362, + 1333 + ], + [ + 522, + 493, + 1334 + ], + [ + 522, + 1334, + 1363 + ], + [ + 521, + 550, + 1391 + ], + [ + 521, + 1391, + 1362 + ], + [ + 551, + 522, + 1363 + ], + [ + 551, + 1363, + 1392 + ], + [ + 550, + 579, + 1420 + ], + [ + 550, + 1420, + 1391 + ], + [ + 580, + 551, + 1392 + ], + [ + 580, + 1392, + 1421 + ], + [ + 579, + 608, + 1449 + ], + [ + 579, + 1449, + 1420 + ], + [ + 609, + 580, + 1421 + ], + [ + 609, + 1421, + 1450 + ], + [ + 608, + 637, + 1478 + ], + [ + 608, + 1478, + 1449 + ], + [ + 638, + 609, + 1450 + ], + [ + 638, + 1450, + 1479 + ], + [ + 637, + 666, + 1507 + ], + [ + 637, + 1507, + 1478 + ], + [ + 667, + 638, + 1479 + ], + [ + 667, + 1479, + 1508 + ], + [ + 666, + 695, + 1536 + ], + [ + 666, + 1536, + 1507 + ], + [ + 696, + 667, + 1508 + ], + [ + 696, + 1508, + 1537 + ], + [ + 695, + 724, + 1565 + ], + [ + 695, + 1565, + 1536 + ], + [ + 725, + 696, + 1537 + ], + [ + 725, + 1537, + 1566 + ], + [ + 724, + 753, + 1594 + ], + [ + 724, + 1594, + 1565 + ], + [ + 754, + 725, + 1566 + ], + [ + 754, + 1566, + 1595 + ], + [ + 753, + 782, + 1623 + ], + [ + 753, + 1623, + 1594 + ], + [ + 783, + 754, + 1595 + ], + [ + 783, + 1595, + 1624 + ], + [ + 782, + 811, + 1652 + ], + [ + 782, + 1652, + 1623 + ], + [ + 812, + 783, + 1624 + ], + [ + 812, + 1624, + 1653 + ], + [ + 813, + 812, + 1653 + ], + [ + 813, + 1653, + 1654 + ], + [ + 814, + 813, + 1654 + ], + [ + 814, + 1654, + 1655 + ], + [ + 815, + 814, + 1655 + ], + [ + 815, + 1655, + 1656 + ], + [ + 816, + 815, + 1656 + ], + [ + 816, + 1656, + 1657 + ], + [ + 817, + 816, + 1657 + ], + [ + 817, + 1657, + 1658 + ], + [ + 818, + 817, + 1658 + ], + [ + 818, + 1658, + 1659 + ], + [ + 819, + 818, + 1659 + ], + [ + 819, + 1659, + 1660 + ], + [ + 820, + 819, + 1660 + ], + [ + 820, + 1660, + 1661 + ], + [ + 821, + 820, + 1661 + ], + [ + 821, + 1661, + 1662 + ], + [ + 822, + 821, + 1662 + ], + [ + 822, + 1662, + 1663 + ], + [ + 823, + 822, + 1663 + ], + [ + 823, + 1663, + 1664 + ], + [ + 824, + 823, + 1664 + ], + [ + 824, + 1664, + 1665 + ], + [ + 825, + 824, + 1665 + ], + [ + 825, + 1665, + 1666 + ], + [ + 826, + 825, + 1666 + ], + [ + 826, + 1666, + 1667 + ], + [ + 827, + 826, + 1667 + ], + [ + 827, + 1667, + 1668 + ], + [ + 828, + 827, + 1668 + ], + [ + 828, + 1668, + 1669 + ], + [ + 829, + 828, + 1669 + ], + [ + 829, + 1669, + 1670 + ], + [ + 830, + 829, + 1670 + ], + [ + 830, + 1670, + 1671 + ], + [ + 831, + 830, + 1671 + ], + [ + 831, + 1671, + 1672 + ], + [ + 832, + 831, + 1672 + ], + [ + 832, + 1672, + 1673 + ], + [ + 833, + 832, + 1673 + ], + [ + 833, + 1673, + 1674 + ], + [ + 834, + 833, + 1674 + ], + [ + 834, + 1674, + 1675 + ], + [ + 835, + 834, + 1675 + ], + [ + 835, + 1675, + 1676 + ], + [ + 836, + 835, + 1676 + ], + [ + 836, + 1676, + 1677 + ], + [ + 837, + 836, + 1677 + ], + [ + 837, + 1677, + 1678 + ], + [ + 838, + 837, + 1678 + ], + [ + 838, + 1678, + 1679 + ], + [ + 839, + 838, + 1679 + ], + [ + 839, + 1679, + 1680 + ], + [ + 840, + 839, + 1680 + ], + [ + 840, + 1680, + 1681 + ], + [ + 811, + 840, + 1681 + ], + [ + 811, + 1681, + 1652 + ] + ] + } + }, + "objects": [ + { + "node_id": "braided-galleries", + "name": "Braided galleries", + "role": "gallery", + "color": [ + 0.37, + 0.56, + 0.68 + ], + "id": "braided-galleries/0000/main", + "kind": "mesh", + "geometry": "fcde8763c3b44c8c85737dea193a91c590c8d3649547beb9ee2a527b6c420627", + "matrix": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "braided-galleries", + "name": "Braided galleries", + "role": "gallery", + "color": [ + 0.37, + 0.56, + 0.68 + ], + "id": "braided-galleries/0001/main", + "kind": "mesh", + "geometry": "fcde8763c3b44c8c85737dea193a91c590c8d3649547beb9ee2a527b6c420627", + "matrix": [ + [ + 0.6948128937411447, + -0.523579070142282, + 0.0, + 0.0 + ], + [ + 0.523579070142282, + 0.6948128937411447, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.87, + 6.5 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "braided-galleries", + "name": "Braided galleries", + "role": "gallery", + "color": [ + 0.37, + 0.56, + 0.68 + ], + "id": "braided-galleries/0002/main", + "kind": "mesh", + "geometry": "fcde8763c3b44c8c85737dea193a91c590c8d3649547beb9ee2a527b6c420627", + "matrix": [ + [ + 0.20862991461788666, + -0.7275789776557136, + 0.0, + 0.0 + ], + [ + 0.7275789776557136, + 0.20862991461788666, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.7569, + 12.155000000000001 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0000/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0001/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.981627183447664, + -0.1908089953765448, + 0.0, + 0.0 + ], + [ + 0.1908089953765448, + 0.981627183447664, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 2.8 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0002/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.9271838545667874, + -0.374606593415912, + 0.0, + 0.0 + ], + [ + 0.374606593415912, + 0.9271838545667874, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 5.6 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0003/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.838670567945424, + -0.5446390350150271, + 0.0, + 0.0 + ], + [ + 0.5446390350150271, + 0.838670567945424, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 8.399999999999999 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0004/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.7193398003386512, + -0.6946583704589974, + 0.0, + 0.0 + ], + [ + 0.6946583704589974, + 0.7193398003386512, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 11.2 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0005/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.5735764363510462, + -0.8191520442889919, + 0.0, + 0.0 + ], + [ + 0.8191520442889919, + 0.5735764363510462, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 14.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0006/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.40673664307580026, + -0.913545457642601, + 0.0, + 0.0 + ], + [ + 0.913545457642601, + 0.40673664307580026, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 16.8 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0007/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.22495105434386506, + -0.9743700647852354, + 0.0, + 0.0 + ], + [ + 0.9743700647852354, + 0.22495105434386506, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 19.6 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "outer-rings", + "name": "Contour rings", + "role": "structure", + "color": [ + 0.63, + 0.68, + 0.73 + ], + "id": "outer-rings/0008/main", + "kind": "mesh", + "geometry": "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c", + "matrix": [ + [ + 0.034899496702501004, + -0.9993908270190959, + 0.0, + 0.0 + ], + [ + 0.9993908270190959, + 0.034899496702501004, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 22.400000000000002 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "spiral-spines", + "name": "Spiral spines", + "role": "structure", + "color": [ + 0.69, + 0.47, + 0.29 + ], + "id": "spiral-spines/0000/main", + "kind": "mesh", + "geometry": "f7d19d9bc226b4099ada1ba681a45cd92816312ae86a0df800a6b061a6ace591", + "matrix": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "spiral-spines", + "name": "Spiral spines", + "role": "structure", + "color": [ + 0.69, + 0.47, + 0.29 + ], + "id": "spiral-spines/0001/main", + "kind": "mesh", + "geometry": "f7d19d9bc226b4099ada1ba681a45cd92816312ae86a0df800a6b061a6ace591", + "matrix": [ + [ + 6.123233995736766e-17, + -1.0, + 0.0, + 0.0 + ], + [ + 1.0, + 6.123233995736766e-17, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "spiral-spines", + "name": "Spiral spines", + "role": "structure", + "color": [ + 0.69, + 0.47, + 0.29 + ], + "id": "spiral-spines/0002/main", + "kind": "mesh", + "geometry": "f7d19d9bc226b4099ada1ba681a45cd92816312ae86a0df800a6b061a6ace591", + "matrix": [ + [ + -1.0, + -1.2246467991473532e-16, + 0.0, + 0.0 + ], + [ + 1.2246467991473532e-16, + -1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "spiral-spines", + "name": "Spiral spines", + "role": "structure", + "color": [ + 0.69, + 0.47, + 0.29 + ], + "id": "spiral-spines/0003/main", + "kind": "mesh", + "geometry": "f7d19d9bc226b4099ada1ba681a45cd92816312ae86a0df800a6b061a6ace591", + "matrix": [ + [ + -1.8369701987210297e-16, + 1.0, + 0.0, + 0.0 + ], + [ + -1.0, + -1.8369701987210297e-16, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + }, + { + "node_id": "saddle-shell", + "name": "Lower saddle", + "role": "shell", + "color": [ + 0.57, + 0.66, + 0.58 + ], + "id": "saddle-shell/main", + "kind": "mesh", + "geometry": "0dffb116a00bf047bc7c280cc089f5f0e7a3c0cd7bc563e8ab70a865bf4f75c4", + "matrix": [ + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ] + } + ], + "bounds": { + "min": [ + -17.048244688287987, + -17.048244688287987, + -10.329223338490118 + ], + "max": [ + 17.048244688287987, + 17.048244688287987, + 18.50260343880961 + ] + }, + "validation": { + "geometry_reports": { + "fcde8763c3b44c8c85737dea193a91c590c8d3649547beb9ee2a527b6c420627": { + "vertices": 960, + "triangles": 1920, + "boundary_edges": 0, + "nonmanifold_edges": 0, + "inconsistent_edges": 0, + "degenerate_triangles": 0, + "signed_volume": 48.99943870799469 + }, + "0476a3b75d099baec6295bdaf453a7ed15be4ef9deb63c110419a7b32390424c": { + "vertices": 576, + "triangles": 1152, + "boundary_edges": 0, + "nonmanifold_edges": 0, + "inconsistent_edges": 0, + "degenerate_triangles": 0, + "signed_volume": 6.071615853487659 + }, + "f7d19d9bc226b4099ada1ba681a45cd92816312ae86a0df800a6b061a6ace591": { + "vertices": 452, + "triangles": 900, + "boundary_edges": 0, + "nonmanifold_edges": 0, + "inconsistent_edges": 0, + "degenerate_triangles": 0, + "signed_volume": 9.75434693967866 + }, + "0dffb116a00bf047bc7c280cc089f5f0e7a3c0cd7bc563e8ab70a865bf4f75c4": { + "vertices": 1682, + "triangles": 3360, + "boundary_edges": 0, + "nonmanifold_edges": 0, + "inconsistent_edges": 0, + "degenerate_triangles": 0, + "signed_volume": 44.825050095521355 + } + }, + "warnings": [], + "self_intersections_checked": false, + "walkability_checked": false + }, + "stats": { + "nodes": 13, + "objects": 17, + "unique_meshes": 4, + "vertices": 3670, + "triangles": 23088 + }, + "bundle_hash": "c7fbfd0528618a64c9868a908dbc19de3a40cec5e6a6247ef52937b0ace462eb" +} diff --git a/examples/wave_extension.py b/examples/wave_extension.py new file mode 100644 index 0000000..bf7ba2a --- /dev/null +++ b/examples/wave_extension.py @@ -0,0 +1,17 @@ +"""Example of a composable curve deformation loaded with --plugin.""" +import math +from spatial_lab.kernel import register_operator + +@register_operator('wave-z', version=1, inputs=('path',), + description='Displace a curve along world Z by a sinusoid of world X.') +def wave_z(context, params, inputs): + path = inputs['path'] + if path['kind'] != 'curve': + raise ValueError('wave-z requires a curve') + amplitude = context.number(params.get('amplitude', 1)) + wavelength = context.number(params.get('wavelength', 6)) + if wavelength <= 0: + raise ValueError('wavelength must be positive') + points = [[x, y, z + amplitude * math.sin(math.tau * x / wavelength)] + for x, y, z in path['points']] + return {'kind': 'curve', 'points': points, 'closed': path['closed']} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..a6735bf --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,19 @@ +[build-system] +requires = ["setuptools>=68"] +build-backend = "setuptools.build_meta" + +[project] +name = "spatial-lab" +version = "0.1.0" +description = "Agent-operated mathematical geometry workbench with a verified Blender bridge" +requires-python = ">=3.11" +dependencies = [] + +[project.scripts] +spatial-lab = "spatial_lab.cli:main" + +[tool.setuptools] +packages = ["spatial_lab"] + +[tool.setuptools.package-data] +spatial_lab = ["web/*"] diff --git a/spatial-lab b/spatial-lab new file mode 100755 index 0000000..81148fc --- /dev/null +++ b/spatial-lab @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +"""Run from any working directory without installation.""" +from spatial_lab.cli import main +raise SystemExit(main()) diff --git a/spatial_lab/__init__.py b/spatial_lab/__init__.py new file mode 100644 index 0000000..937f574 --- /dev/null +++ b/spatial_lab/__init__.py @@ -0,0 +1,7 @@ +"""Spatial Lab: editable mathematical construction graphs and portable geometry.""" +__version__ = "0.1.0" + +from .kernel import build, register_operator +from .project import Project + +__all__ = ["build", "register_operator", "Project"] diff --git a/spatial_lab/__main__.py b/spatial_lab/__main__.py new file mode 100644 index 0000000..13be635 --- /dev/null +++ b/spatial_lab/__main__.py @@ -0,0 +1,2 @@ +from .cli import main +raise SystemExit(main()) diff --git a/spatial_lab/cli.py b/spatial_lab/cli.py new file mode 100644 index 0000000..1627192 --- /dev/null +++ b/spatial_lab/cli.py @@ -0,0 +1,61 @@ +import argparse +import json +import sys +from pathlib import Path +from . import __version__ +from .kernel import build, operator_catalog, load_plugin, validate_bundle +from .project import Project, read_json, write_json +from .examples import demo_project, small_project + +def main(argv=None): + p=argparse.ArgumentParser(prog='spatial-lab',description='Mathematical geometry workbench; author through commands, inspect in a browser, transfer exact meshes to Blender.') + p.add_argument('--version',action='version',version=__version__) + p.add_argument('--plugin',action='append',default=[],help='Load a trusted local Python operator module (repeatable)') + s=p.add_subparsers(dest='command',required=True) + q=s.add_parser('init',help='Create an editable project');q.add_argument('project');q.add_argument('--example',choices=['atrium','simple'],default='atrium') + q=s.add_parser('build',help='Evaluate and export the technical bundle');q.add_argument('project');q.add_argument('--out',required=True) + q=s.add_parser('inspect',help='Show evaluated nodes and mesh checks');q.add_argument('project');q.add_argument('--node') + q=s.add_parser('param',help='Change a global parameter transactionally');q.add_argument('project');q.add_argument('name');q.add_argument('value',help='JSON value, e.g. 12 or "2*pi"') + q=s.add_parser('patch',help='Apply an atomic list of graph changes');q.add_argument('project');q.add_argument('changes',help='JSON file containing an array of changes') + q=s.add_parser('node',help='Add or replace a node by stable ID');q.add_argument('project');q.add_argument('spec',help='JSON file containing one node') + q=s.add_parser('remove',help='Remove a node');q.add_argument('project');q.add_argument('node_id');q.add_argument('--cascade',action='store_true') + for name in ['undo','redo']: + q=s.add_parser(name);q.add_argument('project') + s.add_parser('ops',help='List installed operators and their versions') + q=s.add_parser('check',help='Check bundle integrity');q.add_argument('bundle') + q=s.add_parser('serve',help='Run the read-only, live geometry viewer');q.add_argument('project');q.add_argument('--port',type=int,default=8767) + a=p.parse_args(argv) + try: + for plugin in a.plugin:load_plugin(plugin) + if a.command=='ops':result=operator_catalog() + elif a.command=='init': + if Path(a.project).exists():raise ValueError('Project already exists; choose another path') + project=demo_project() if a.example=='atrium' else small_project();b=build(project);write_json(a.project,project);result={'project':str(Path(a.project).resolve()),**b['stats']} + elif a.command=='build': + b=Project(a.project).build();write_json(a.out,b);result={'bundle':str(Path(a.out).resolve()),'hash':b['bundle_hash'],**b['stats'],'warnings':b['validation']['warnings']} + elif a.command=='inspect': + b=Project(a.project).build() + if a.node: + result=next((n for n in b['nodes'] if n['id']==a.node),None) + if result is None:raise ValueError('No such node: '+a.node) + else:result={'name':b['name'],'parameters':b['recipe'].get('parameters',{}),'nodes':b['nodes'],'stats':b['stats'],'bounds':b['bounds'],'validation':b['validation']} + elif a.command=='check': + b=read_json(a.bundle);validate_bundle(b);result={'valid':True,'hash':b['bundle_hash'],'stats':b['stats']} + elif a.command=='serve': + from .server import serve + serve(a.project,a.port);return 0 + else: + project=Project(a.project) + if a.command in ['undo','redo']:b=project.travel(a.command) + else: + if a.command=='patch':changes=read_json(a.changes) + elif a.command=='node':changes=[{'action':'upsert_node','node':read_json(a.spec)}] + elif a.command=='remove':changes=[{'action':'remove_node','id':a.node_id,'cascade':a.cascade}] + elif a.command=='param':changes=[{'action':'set_parameter','name':a.name,'value':json.loads(a.value)}] + b=project.apply(changes) + result={'action':a.command,'project_hash':b['project_hash'],**b['stats'],'warnings':b['validation']['warnings']} + print(json.dumps(result,indent=2,allow_nan=False));return 0 + except (ValueError,OSError,KeyError,TypeError) as e: + print(json.dumps({'error':str(e)}),file=sys.stderr);return 2 + +if __name__=='__main__':raise SystemExit(main()) diff --git a/spatial_lab/examples.py b/spatial_lab/examples.py new file mode 100644 index 0000000..47ddf9f --- /dev/null +++ b/spatial_lab/examples.py @@ -0,0 +1,28 @@ +"""Editable examples built exclusively from expressions, frames, sections and transforms.""" +from .kernel import PROJECT_SCHEMA + +def demo_project(): + return { + 'schema':PROJECT_SCHEMA,'id':'braided-atrium','name':'Braided atrium', + 'parameters':{'radius':11,'lobe':3.2,'rise':4.8,'width':1.25,'thickness':.24,'twist':360,'samples':240,'levels':3}, + 'nodes':[ + {'id':'braid-path','op':'curve','params':{'xyz':['(radius+lobe*cos(3*t))*cos(2*t)','(radius+lobe*cos(3*t))*sin(2*t)','rise*sin(3*t)'],'domain':[0,'tau'],'segments':'samples','closed':True},'visible':False,'role':'route'}, + {'id':'braid-frames','op':'frames','inputs':{'path':'braid-path'},'params':{'twist_degrees':'twist'},'visible':False}, + {'id':'braid-section','op':'sweep','inputs':{'frames':'braid-frames'},'params':{'profile':[['-width/2','-thickness/2'],['width/2','-thickness/2'],['width/2','thickness/2'],['-width/2','thickness/2']]},'visible':False}, + {'id':'braided-galleries','name':'Braided galleries','op':'repeat','inputs':{'source':'braid-section'},'params':{'count':'levels','translate':[0,0,6.5],'rotate':[0,0,37],'scale':.87},'color':[.37,.56,.68],'role':'gallery'}, + {'id':'ring-path','op':'curve','params':{'xyz':['(radius+lobe+2.6)*cos(t)','(radius+lobe+2.6)*sin(t)','-6+0.65*sin(4*t)'],'segments':144,'closed':True},'visible':False}, + {'id':'ring-frames','op':'frames','inputs':{'path':'ring-path'},'visible':False}, + {'id':'ring-section','op':'sweep','inputs':{'frames':'ring-frames'},'params':{'profile':[[-.13,-.11],[.13,-.11],[.13,.11],[-.13,.11]]},'visible':False}, + {'id':'outer-rings','name':'Contour rings','op':'repeat','inputs':{'source':'ring-section'},'params':{'count':9,'translate':[0,0,2.8],'rotate':[0,0,11]},'color':[.63,.68,.73],'role':'structure'}, + {'id':'spine-path','op':'curve','params':{'xyz':['(radius+lobe+2.6)*cos(t)','(radius+lobe+2.6)*sin(t)','-6+18*t/pi'],'domain':[0,'1.35*pi'],'segments':112},'visible':False}, + {'id':'spine-frames','op':'frames','inputs':{'path':'spine-path'},'visible':False}, + {'id':'spine-section','op':'sweep','inputs':{'frames':'spine-frames'},'params':{'profile':[[-.18,-.18],[.18,-.18],[.18,.18],[-.18,.18]]},'visible':False}, + {'id':'spiral-spines','name':'Spiral spines','op':'repeat','inputs':{'source':'spine-section'},'params':{'count':4,'rotate':[0,0,90]},'color':[.69,.47,.29],'role':'structure'}, + {'id':'saddle-shell','name':'Lower saddle','op':'surface','params':{'xyz':['u','v','0.025*(u*u-v*v)-9'],'u_domain':[-7,7],'v_domain':[-7,7],'u_segments':28,'v_segments':28,'thickness':.22},'color':[.57,.66,.58],'role':'shell'} + ]} + +def small_project(): + return {'schema':PROJECT_SCHEMA,'id':'first-study','name':'First study','parameters':{'height':4},'nodes':[ + {'id':'path','op':'curve','params':{'xyz':['8*cos(t)','8*sin(t)','height*t/tau'],'domain':[0,'tau'],'segments':96},'visible':False}, + {'id':'local-frames','op':'frames','inputs':{'path':'path'},'visible':False}, + {'id':'gallery','op':'sweep','inputs':{'frames':'local-frames'},'params':{'profile':[[-1,-.15],[1,-.15],[1,.15],[-1,.15]]},'role':'gallery'}]} diff --git a/spatial_lab/expressions.py b/spatial_lab/expressions.py new file mode 100644 index 0000000..fbbcd13 --- /dev/null +++ b/spatial_lab/expressions.py @@ -0,0 +1,56 @@ +"""Bounded arithmetic expressions, interpreted without eval or Python execution.""" +import ast +import math +from functools import lru_cache + +FUNCTIONS={k:getattr(math,k) for k in ['sin','cos','tan','asin','acos','atan','atan2','sqrt','exp','log','floor','ceil','radians','degrees']} +FUNCTIONS.update(abs=abs,min=min,max=max) +CONSTANTS={'pi':math.pi,'tau':math.tau,'e':math.e} + +@lru_cache(maxsize=512) +def parse(text): + if len(text)>2048:raise ValueError('Expression exceeds 2048 characters') + tree=ast.parse(text,mode='eval') + if sum(1 for _ in ast.walk(tree))>128:raise ValueError('Expression is too complex') + permitted=(ast.Expression,ast.Constant,ast.Name,ast.Load,ast.BinOp,ast.UnaryOp,ast.Call,ast.Add,ast.Sub,ast.Mult,ast.Div,ast.Pow,ast.Mod,ast.USub,ast.UAdd) + for n in ast.walk(tree): + if not isinstance(n,permitted):raise ValueError(f'Unsupported expression syntax: {type(n).__name__}') + if isinstance(n,ast.Constant) and (isinstance(n.value,bool) or not isinstance(n.value,(int,float))):raise ValueError('Only numeric literals are allowed') + if isinstance(n,ast.Call) and (not isinstance(n.func,ast.Name) or n.func.id not in FUNCTIONS or n.keywords):raise ValueError('Only documented math functions are allowed') + return tree.body + +def scalar(value, variables=None): + env={**CONSTANTS,**(variables or {})} + def walk(n): + if isinstance(n,ast.Constant):return float(n.value) + if isinstance(n,ast.Name): + if n.id not in env:raise ValueError(f'Unknown symbol: {n.id}') + return float(env[n.id]) + if isinstance(n,ast.UnaryOp):return -walk(n.operand) if isinstance(n.op,ast.USub) else walk(n.operand) + if isinstance(n,ast.Call):return FUNCTIONS[n.func.id](*[walk(a) for a in n.args]) + a,b=walk(n.left),walk(n.right) + if isinstance(n.op,ast.Pow): + if abs(b)>32 or abs(a)>1e9:raise ValueError('Power operands exceed limits') + return a**b + if isinstance(n.op,ast.Add):return a+b + if isinstance(n.op,ast.Sub):return a-b + if isinstance(n.op,ast.Mult):return a*b + if isinstance(n.op,ast.Div):return a/b + if isinstance(n.op,ast.Mod):return a%b + raise ValueError('Unsupported operator') + try: + if isinstance(value,bool):raise ValueError('A boolean is not a numeric expression') + result=walk(parse(value)) if isinstance(value,str) else float(value) + if isinstance(result,complex) or not math.isfinite(result) or abs(result)>1e9:raise ValueError('Expression result must be finite and within ±1e9') + return result + except (ZeroDivisionError,OverflowError,TypeError,ValueError,SyntaxError,RecursionError) as e: + raise ValueError(f'Invalid expression {str(value)[:100]!r}: {e}') from e + +def vector(value,variables=None,size=3): + if not isinstance(value,(list,tuple)) or len(value)!=size:raise ValueError(f'Expected a {size}-component vector') + return [scalar(v,variables) for v in value] + +def integer(value,variables=None,low=1,high=2048): + n=scalar(value,variables) + if n!=int(n) or not low<=n<=high:raise ValueError(f'Expected an integer in [{low}, {high}]') + return int(n) diff --git a/spatial_lab/kernel.py b/spatial_lab/kernel.py new file mode 100644 index 0000000..42931ad --- /dev/null +++ b/spatial_lab/kernel.py @@ -0,0 +1,170 @@ +"""Construction graph evaluation and the neutral, deterministic geometry contract.""" +import copy +import hashlib +import importlib.util +import json +import math +import re +from dataclasses import dataclass +from pathlib import Path +from .expressions import scalar, vector, integer, CONSTANTS, FUNCTIONS +from .math3d import identity, point, mesh_report, length, sub + +PROJECT_SCHEMA='spatial-lab.project/1' +BUNDLE_SCHEMA='spatial-lab.bundle/1' +OPERATORS={} + +def canonical(data):return json.dumps(data,sort_keys=True,separators=(',',':'),allow_nan=False) +def digest(data):return hashlib.sha256(canonical(data).encode()).hexdigest() + +def register_operator(name,version=1,description='',inputs=()): + """Register a trusted Python operator: function(context, params, resolved_inputs).""" + def decorate(fn): + if name in OPERATORS:raise ValueError(f'Operator already registered: {name}') + OPERATORS[name]={'function':fn,'version':version,'description':description,'inputs':list(inputs)} + return fn + return decorate + +def operator_catalog(): + from . import operators # noqa: F401 + return {name:{k:v for k,v in op.items() if k!='function'} for name,op in sorted(OPERATORS.items())} + +def load_plugin(path): + operator_catalog() + p=Path(path).resolve() + spec=importlib.util.spec_from_file_location('spatial_lab_extension_'+hashlib.sha256(str(p).encode()).hexdigest()[:16],p) + if not spec or not spec.loader:raise ValueError(f'Cannot load plugin: {p}') + module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module) + +@dataclass +class Context: + variables:dict + node_id:str + def number(self,v):return scalar(v,self.variables) + def vec(self,v,size=3):return vector(v,self.variables,size) + def count(self,v,low=1,high=2048):return integer(v,self.variables,low,high) + def expression(self,expression,**variables):return scalar(expression,{**self.variables,**variables}) + +def dependencies(node): + out=[] + for v in node.get('inputs',{}).values(): + if isinstance(v,str):out.append(v) + elif isinstance(v,list) and all(isinstance(x,str) for x in v):out.extend(v) + else:raise ValueError(f"{node.get('id')}: input references must be node IDs or lists of IDs") + return out + +def evaluate(project): + operator_catalog() + if project.get('schema')!=PROJECT_SCHEMA:raise ValueError(f'Expected {PROJECT_SCHEMA}') + if not re.fullmatch(r'[A-Za-z0-9_.-]{1,80}',project.get('id','')):raise ValueError('Project ID must contain 1–80 letters, digits, dots, underscores or hyphens') + nodes=project.get('nodes') + if not isinstance(nodes,list) or len(nodes)>256:raise ValueError('Project needs a nodes array with at most 256 nodes') + variables={} + for k,v in project.get('parameters',{}).items(): + if not re.fullmatch(r'[A-Za-z_][A-Za-z0-9_]*',k) or k in {*CONSTANTS,*FUNCTIONS,'t','u','v'}:raise ValueError(f'Reserved or invalid parameter name: {k}') + variables[k]=scalar(v) + by_id={} + for node in nodes: + name=node.get('id','') + if not re.fullmatch(r'[A-Za-z][A-Za-z0-9_.-]{0,63}',name):raise ValueError(f'Invalid node ID: {name}') + if name in by_id:raise ValueError(f'Duplicate node ID: {name}') + if not isinstance(node.get('params',{}),dict) or not isinstance(node.get('inputs',{}),dict):raise ValueError(f'{name}: params and inputs must be objects') + by_id[name]=node + results={};visiting=[];order=[] + def visit(name): + if name in results:return results[name] + if name in visiting:raise ValueError('Dependency cycle: '+' → '.join(visiting+[name])) + if name not in by_id:raise ValueError(f'Missing node: {name}') + node=by_id[name];op=OPERATORS.get(node.get('op')) + if op is None:raise ValueError(f"{name}: unknown operator {node.get('op')!r}; load its plugin explicitly") + if node.get('version',1)!=op['version']:raise ValueError(f'{name}: unsupported operator version') + raw=node.get('inputs',{}) + if set(raw)!=set(op['inputs']):raise ValueError(f"{name}: expected inputs {op['inputs']}, got {list(raw)}") + dependencies(node);visiting.append(name) + inputs={k:visit(v) if isinstance(v,str) else [visit(x) for x in v] for k,v in raw.items()} + try:result=op['function'](Context(variables,name),node.get('params',{}),inputs) + except (ValueError,KeyError,TypeError,IndexError,OverflowError) as e:raise ValueError(f'{name} ({node["op"]}): {e}') from e + if not isinstance(result,dict) or result.get('kind') not in ['curve','frames','mesh']:raise ValueError(f'{name}: operator returned an unsupported entity') + results[name]=result;visiting.pop();order.append(name) + return result + for name in by_id:visit(name) + return results,order + +def _finite_vectors(vertices,size=3): + if not vertices:raise ValueError('Geometry is empty') + for p in vertices: + if len(p)!=size or any(not isinstance(x,(int,float)) or not math.isfinite(x) or abs(x)>1e9 for x in p):raise ValueError('Invalid or nonfinite geometry coordinates') + +def build(project): + results,order=evaluate(project);nodes={n['id']:n for n in project['nodes']} + geometries={};objects=[];reports={};bounds_points=[];warnings=[];node_info=[] + for name in order: + node=nodes[name];entity=results[name];kind=entity['kind'] + summary={'id':name,'op':node['op'],'kind':kind,'inputs':node.get('inputs',{}),'params':node.get('params',{}),'visible':node.get('visible',True),'role':node.get('role','geometry')} + if kind=='curve': + pts=entity['points'];_finite_vectors(pts) + summary['points']=len(pts);summary['length_m']=sum(length(sub(b,a)) for a,b in zip(pts,pts[1:]+([pts[0]] if entity.get('closed') else []))) + if 'estimated_chord_error' in entity:summary['estimated_chord_error_m']=entity['estimated_chord_error'] + elif kind=='frames':summary['frames']=len(entity['frames']) + else:summary['parts']=len(entity['parts']) + node_info.append(summary) + if not node.get('visible',True):continue + color=vector(node.get('color',[.40,.56,.68])) + if any(c<0 or c>1 for c in color):raise ValueError(f'{name}: color channels must be in [0,1]') + base={'node_id':name,'name':node.get('name',name),'role':node.get('role','geometry'),'color':color} + if kind=='mesh': + if len(entity['parts'])>2048:raise ValueError(f'{name}: more than 2048 instances') + keys=set() + for part in entity['parts']: + key=str(part.get('key','main')) + if key in keys:raise ValueError(f'{name}: duplicate part key {key}') + keys.add(key) + geom={'vertices':part['vertices'],'faces':part['faces']} + gid=digest(geom) + if gid not in geometries: + _finite_vectors(geom['vertices']) + if len(geom['vertices'])>200000 or len(geom['faces'])>500000:raise ValueError('Per-geometry complexity limit exceeded') + report=mesh_report(**geom) + if report['degenerate_triangles'] or report['nonmanifold_edges'] or report['inconsistent_edges']:raise ValueError(f'{name}: invalid mesh topology: {report}') + if part.get('closed',False) and (report['boundary_edges'] or report['signed_volume']<=1e-10):raise ValueError(f'{name}: expected an outward-oriented closed solid: {report}') + geometries[gid]=geom;reports[gid]=report + if report['boundary_edges']:warnings.append(f'{name}: open surface ({report["boundary_edges"]} boundary edges)') + matrix=part.get('matrix',identity());_finite_vectors(matrix,4) + if len(matrix)!=4 or matrix[3]!=[0,0,0,1]:raise ValueError('Transforms must be affine 4×4 matrices') + from .math3d import determinant + if determinant(matrix)<=1e-10:raise ValueError('Transforms must preserve orientation and be invertible') + objects.append({**base,'id':name+'/'+key,'kind':'mesh','geometry':gid,'matrix':matrix}) + bounds_points.extend(point(matrix,p) for p in geom['vertices']) + elif kind=='curve': + objects.append({**base,'id':name+'/path','kind':'curve','points':entity['points'],'closed':entity.get('closed',False),'matrix':identity()}) + bounds_points.extend(entity['points']) + else: + for i,f in enumerate(entity['frames']): + m=[[f['x'][j],f['y'][j],f['z'][j],f['origin'][j]] for j in range(3)]+[[0,0,0,1]] + objects.append({**base,'id':name+f'/frame-{i:04}','kind':'frame','matrix':m});bounds_points.append(f['origin']) + if len(objects)>4096 or sum(len(g['vertices']) for g in geometries.values())>500000 or len(bounds_points)>2000000:raise ValueError('Scene complexity limit exceeded') + bounds={'min':[min(p[i] for p in bounds_points) for i in range(3)],'max':[max(p[i] for p in bounds_points) for i in range(3)]} if bounds_points else {'min':[-1,-1,-1],'max':[1,1,1]} + bundle={'schema':BUNDLE_SCHEMA,'project_id':project['id'],'name':project.get('name',project['id']),'project_hash':digest(project),'units':'meters','handedness':'right','up_axis':'+Z','matrix_convention':'row arrays; column vectors; local-to-world','recipe':copy.deepcopy(project),'nodes':node_info,'geometries':geometries,'objects':objects,'bounds':bounds,'validation':{'geometry_reports':reports,'warnings':warnings,'self_intersections_checked':False,'walkability_checked':False},'stats':{'nodes':len(nodes),'objects':len(objects),'unique_meshes':len(geometries),'vertices':sum(len(g['vertices']) for g in geometries.values()),'triangles':sum(len(geometries[o['geometry']]['faces']) for o in objects if o['kind']=='mesh')}} + bundle['bundle_hash']=digest(bundle) + return bundle + +def validate_bundle(bundle): + """Validate untrusted bundle data before handing it to an adapter.""" + if bundle.get('schema')!=BUNDLE_SCHEMA:raise ValueError('Unsupported bundle schema') + if (bundle.get('units'),bundle.get('handedness'),bundle.get('up_axis'))!=('meters','right','+Z'):raise ValueError('Unsupported coordinate convention') + if digest({k:v for k,v in bundle.items() if k!='bundle_hash'})!=bundle.get('bundle_hash'):raise ValueError('Bundle hash does not match its contents') + for gid,g in bundle['geometries'].items(): + if digest(g)!=gid:raise ValueError(f'Geometry hash mismatch: {gid}') + _finite_vectors(g['vertices']);report=mesh_report(**g) + if report['degenerate_triangles'] or report['nonmanifold_edges'] or report['inconsistent_edges']:raise ValueError('Invalid mesh topology in bundle') + ids=set() + for o in bundle['objects']: + if o['id'] in ids:raise ValueError('Duplicate object ID') + ids.add(o['id']) + if o.get('kind') not in ['mesh','curve','frame']:raise ValueError('Unsupported object kind') + m=o['matrix'];_finite_vectors(m,4) + from .math3d import determinant + if len(m)!=4 or m[3]!=[0,0,0,1] or determinant(m)<=1e-10:raise ValueError('Invalid object transform') + if o['kind']=='mesh' and o['geometry'] not in bundle['geometries']:raise ValueError('Missing geometry reference') + if o['kind']=='curve':_finite_vectors(o['points']) + return True diff --git a/spatial_lab/math3d.py b/spatial_lab/math3d.py new file mode 100644 index 0000000..64ba031 --- /dev/null +++ b/spatial_lab/math3d.py @@ -0,0 +1,111 @@ +"""Small, dependency-free geometry routines. Right-handed, Z-up, metres.""" +import math + +EPS = 1e-10 + +def add(a, b): return [a[i] + b[i] for i in range(3)] +def sub(a, b): return [a[i] - b[i] for i in range(3)] +def mul(a, s): return [v * s for v in a] +def dot(a, b): return sum(x*y for x, y in zip(a, b)) +def cross(a, b): return [a[1]*b[2]-a[2]*b[1], a[2]*b[0]-a[0]*b[2], a[0]*b[1]-a[1]*b[0]] +def length(a): return math.sqrt(dot(a, a)) +def unit(a): + d = length(a) + if d < EPS: raise ValueError("Cannot normalize a zero-length vector") + return mul(a, 1/d) +def identity(): return [[float(i == j) for j in range(4)] for i in range(4)] +def matmul(a, b): return [[sum(a[i][k]*b[k][j] for k in range(4)) for j in range(4)] for i in range(4)] +def point(m, p): return [sum(m[i][j]*p[j] for j in range(3)) + m[i][3] for i in range(3)] +def direction(m, p): return [sum(m[i][j]*p[j] for j in range(3)) for i in range(3)] +def determinant(m): return dot(m[0][:3], cross(m[1][:3], m[2][:3])) +def rotate(v, axis, angle): + c, s = math.cos(angle), math.sin(angle) + return add(add(mul(v, c), mul(cross(axis, v), s)), mul(axis, dot(axis, v)*(1-c))) +def transport(v, old_t, new_t): + axis = cross(old_t, new_t); sn = length(axis); cs = max(-1., min(1., dot(old_t, new_t))) + if sn < EPS: + if cs < 0: raise ValueError("Curve reverses direction by 180 degrees; refine or change the path") + return v[:] + return rotate(v, mul(axis, 1/sn), math.atan2(sn, cs)) +def transform(translation=(0,0,0), rotation=(0,0,0), scale=(1,1,1)): + if isinstance(scale, (int, float)): scale = [scale]*3 + if len(scale) != 3 or any(s <= 0 for s in scale): raise ValueError("Scale must have three positive components") + rx, ry, rz = [math.radians(v) for v in rotation] + cx,sx,cy,sy,cz,sz = math.cos(rx),math.sin(rx),math.cos(ry),math.sin(ry),math.cos(rz),math.sin(rz) + x = [[1,0,0,0],[0,cx,-sx,0],[0,sx,cx,0],[0,0,0,1]] + y = [[cy,0,sy,0],[0,1,0,0],[-sy,0,cy,0],[0,0,0,1]] + z = [[cz,-sz,0,0],[sz,cz,0,0],[0,0,1,0],[0,0,0,1]] + m = matmul(z,matmul(y,x)) + for i in range(3): + for j in range(3): m[i][j] *= scale[j] + m[i][3] = translation[i] + return m +def frames(points, closed=False, up=(0,0,1), twist=0): + """Rotation-minimizing frames, with distributed holonomy correction on closed paths.""" + n = len(points) + if n < (3 if closed else 2): raise ValueError("Too few points for frames") + tangents = [] + for i in range(n): + a = points[(i-1)%n] if closed or i else points[0] + b = points[(i+1)%n] if closed or i < n-1 else points[-1] + tangents.append(unit(sub(b,a))) + t0 = tangents[0]; right = cross(t0, unit(up)) + if length(right) < EPS: + axis = min([[1,0,0],[0,1,0],[0,0,1]], key=lambda x: abs(dot(x,t0))) + right = cross(t0,axis) + rights = [unit(right)] + for i in range(1,n): rights.append(unit(transport(rights[-1],tangents[i-1],tangents[i]))) + correction = 0 + if closed: + if abs(twist/360-round(twist/360)) > 1e-8: + raise ValueError("Closed frames require twist_degrees to be a multiple of 360") + seam = transport(rights[-1], tangents[-1], tangents[0]) + correction = math.atan2(dot(t0,cross(seam,rights[0])),dot(seam,rights[0])) + out = [] + for i,(p,t,r) in enumerate(zip(points,tangents,rights)): + a = (correction+math.radians(twist))*i/(n if closed else n-1) + r = unit(rotate(r,t,a)); u = unit(cross(r,t)) + out.append({"origin":p[:], "x":r, "y":t, "z":u}) + return out + +def triangulate_polygon(points): + """Ear clipping in 2D; accepts either winding, rejects invalid/degenerate profiles.""" + n = len(points) + if n < 3: raise ValueError("A section needs at least three vertices") + def orient(a,b,c): return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0]) + area = sum(a[0]*b[1]-b[0]*a[1] for a,b in zip(points,points[1:]+points[:1]))*.5 + if abs(area) < EPS: raise ValueError("Section has zero area") + # A simple polygon must not have crossings or repeated vertices. + for i in range(n): + for j in range(i+1,n): + if math.dist(points[i],points[j]) < EPS: raise ValueError("Section has duplicate vertices") + if j == i+1 or (i==0 and j==n-1): continue + a,b,c,d=points[i],points[(i+1)%n],points[j],points[(j+1)%n] + if orient(a,b,c)*orient(a,b,d)<-EPS and orient(c,d,a)*orient(c,d,b)<-EPS: + raise ValueError("Section self-intersects") + ids = list(range(n)) if area > 0 else list(reversed(range(n))) + triangles=[] + while len(ids)>3: + found=False + for k in range(len(ids)): + a,b,c=ids[k-1],ids[k],ids[(k+1)%len(ids)] + if orient(points[a],points[b],points[c])<=EPS: continue + inside=any(all(v>=-EPS for v in [orient(points[a],points[b],points[q]),orient(points[b],points[c],points[q]),orient(points[c],points[a],points[q])]) for q in ids if q not in (a,b,c)) + if inside:continue + triangles.append([a,b,c]);ids.pop(k);found=True;break + if not found:raise ValueError("Section cannot be triangulated; remove collinear or crossing edges") + triangles.append(ids) + return triangles, area + +def mesh_report(vertices, faces): + edges={}; directed={}; degenerate=[]; volume=0. + for i,f in enumerate(faces): + if len(f)!=3 or len(set(f))!=3 or any(not isinstance(x,int) or x<0 or x>=len(vertices) for x in f): + raise ValueError(f"Invalid triangle {i}: {f}") + a,b,c=[vertices[j] for j in f] + if length(cross(sub(b,a),sub(c,a)))<1e-10: degenerate.append(i) + volume+=dot(a,cross(b,c))/6 + for x,y in zip(f,f[1:]+f[:1]): + key=tuple(sorted((x,y)));edges[key]=edges.get(key,0)+1 + directed[key]=directed.get(key,0)+(1 if x2 for v in edges.values()),"inconsistent_edges":sum(edges[k]==2 and v!=0 for k,v in directed.items()),"degenerate_triangles":len(degenerate),"signed_volume":volume} diff --git a/spatial_lab/operators.py b/spatial_lab/operators.py new file mode 100644 index 0000000..aa4be9b --- /dev/null +++ b/spatial_lab/operators.py @@ -0,0 +1,142 @@ +"""Built-in construction tools. Plugins register the same small interface.""" +import math +from .kernel import register_operator +from .math3d import * + +def require(entity,kind): + if entity.get('kind')!=kind:raise ValueError(f'Expected {kind}, got {entity.get("kind")}') + return entity + +def mesh(vertices,faces,closed=True): + if closed and mesh_report(vertices,faces)['signed_volume']<0:faces=[list(reversed(f)) for f in faces] + return {'kind':'mesh','parts':[{'key':'main','vertices':vertices,'faces':faces,'closed':closed,'matrix':identity()}]} + +@register_operator('curve',description='Sample a parametric 3D curve x(t), y(t), z(t). Chord-error estimate is recorded.',inputs=()) +def curve(c,p,inputs): + expressions=p.get('xyz') + if not isinstance(expressions,list) or len(expressions)!=3:raise ValueError('xyz must contain three expressions') + a,b=c.vec(p.get('domain',[0,'tau']),2);n=c.count(p.get('segments',128),low=2,high=4096);closed=bool(p.get('closed',False)) + if b<=a:raise ValueError('Domain must increase') + def at(t):return [c.expression(x,t=t) for x in expressions] + points=[at(a+(b-a)*i/n) for i in range(n if closed else n+1)] + if closed and length(sub(points[0],at(b)))>1e-6:raise ValueError('Closed curve endpoints do not coincide within 1e-6 m') + if any(length(sub(x,y))<1e-9 for x,y in zip(points,points[1:])):raise ValueError('Curve has coincident adjacent samples') + error=max(length(sub(at(a+(b-a)*(i+.5)/n),mul(add(points[i],points[(i+1)%len(points)]),.5))) for i in range(n)) + if 'max_chord_error' in p and error>c.number(p['max_chord_error']):raise ValueError(f'Estimated chord error {error:.6g} m exceeds max_chord_error; increase segments') + return {'kind':'curve','points':points,'closed':closed,'estimated_chord_error':error} + +@register_operator('polyline',description='Define a path directly from mathematical points.',inputs=()) +def polyline(c,p,inputs): + pts=[c.vec(v) for v in p['points']] + if not 2<=len(pts)<=4096:raise ValueError('Polyline needs 2–4096 points') + if p.get('closed') and len(pts)<3:raise ValueError('Closed polyline needs at least 3 points') + if any(length(sub(a,b))<1e-9 for a,b in zip(pts,pts[1:])):raise ValueError('Repeated adjacent point') + if p.get('closed') and length(sub(pts[0],pts[-1]))<1e-9:raise ValueError('Do not repeat the first point of a closed polyline') + return {'kind':'curve','points':pts,'closed':bool(p.get('closed',False))} + +@register_operator('frames',description='Parallel-transport local frames along a curve, with optional distributed twist.',inputs=('path',)) +def frame_op(c,p,inputs): + path=require(inputs['path'],'curve');closed=path['closed'] + return {'kind':'frames','closed':closed,'frames':frames(path['points'],closed,c.vec(p.get('up',[0,0,1])),c.number(p.get('twist_degrees',0)))} + +@register_operator('sweep',description='Sweep a closed 2D section in the local X/Z plane along local frames.',inputs=('frames',)) +def sweep(c,p,inputs): + fr=require(inputs['frames'],'frames');profile=[c.vec(v,2) for v in p['profile']] + if len(profile)>128:raise ValueError('Profile is limited to 128 vertices') + cap,area=triangulate_polygon(profile) + if area<0:profile.reverse();cap,area=triangulate_polygon(profile) + fs=fr['frames'];n,m=len(fs),len(profile) + if n*m>200000:raise ValueError('Sweep exceeds 200,000 vertices; reduce samples or section resolution') + verts=[add(f['origin'],add(mul(f['x'],x),mul(f['z'],z))) for f in fs for x,z in profile] + faces=[] + for i in range(n if fr['closed'] else n-1): + k=(i+1)%n + for j in range(m): + q=(j+1)%m;a,b,d,e=i*m+j,k*m+j,k*m+q,i*m+q + faces.extend([[a,b,d],[a,d,e]]) + capped=bool(p.get('cap',True)) + if not fr['closed'] and capped: + faces.extend(cap);faces.extend([[v+(n-1)*m for v in reversed(t)] for t in cap]) + return mesh(verts,faces,fr['closed'] or capped) + +@register_operator('surface',description='Sample x(u,v), y(u,v), z(u,v); optionally thicken into a closed shell.',inputs=()) +def surface(c,p,inputs): + xyz=p['xyz'];ua,ub=c.vec(p.get('u_domain',[0,1]),2);va,vb=c.vec(p.get('v_domain',[0,1]),2) + nu=c.count(p.get('u_segments',32),low=2,high=256);nv=c.count(p.get('v_segments',16),low=2,high=256) + wu,wv=bool(p.get('wrap_u',False)),bool(p.get('wrap_v',False));rows,cols=nu if wu else nu+1,nv if wv else nv+1 + if ua>=ub or va>=vb or len(xyz)!=3:raise ValueError('Invalid surface domain or xyz') + def at(u,v):return [c.expression(x,u=u,v=v) for x in xyz] + if wu and any(length(sub(at(ua,va+(vb-va)*i/nv),at(ub,va+(vb-va)*i/nv)))>1e-6 for i in range(nv+1)):raise ValueError('u seam does not close') + if wv and any(length(sub(at(ua+(ub-ua)*i/nu,va),at(ua+(ub-ua)*i/nu,vb)))>1e-6 for i in range(nu+1)):raise ValueError('v seam does not close') + verts=[at(ua+(ub-ua)*i/nu,va+(vb-va)*j/nv) for i in range(rows) for j in range(cols)] + faces=[] + for i in range(nu): + for j in range(nv): + a=i*cols+j;b=((i+1)%rows)*cols+j;d=((i+1)%rows)*cols+(j+1)%cols;e=i*cols+(j+1)%cols + faces.extend([[a,b,d],[a,d,e]]) + thick=c.number(p.get('thickness',0)) + if thick<0:raise ValueError('Thickness cannot be negative') + if not thick:return mesh(verts,faces,wu and wv) + normals=[[0.,0.,0.] for _ in verts] + for a,b,d in faces: + normal=cross(sub(verts[b],verts[a]),sub(verts[d],verts[a])) + for i in [a,b,d]:normals[i]=add(normals[i],normal) + normals=[unit(n) for n in normals];n=len(verts) + thick_verts=[add(v,mul(norm,thick*.5)) for v,norm in zip(verts,normals)]+[sub(v,mul(norm,thick*.5)) for v,norm in zip(verts,normals)] + all_faces=faces+[[i+n for i in reversed(f)] for f in faces];edges={} + for f in faces: + for a,b in zip(f,f[1:]+f[:1]): + key=tuple(sorted((a,b)));edges.setdefault(key,[]).append((a,b)) + for edge in edges.values(): + if len(edge)==1: + a,b=edge[0];all_faces.extend([[b,a,a+n],[b,a+n,b+n]]) + return mesh(thick_verts,all_faces,True) + +@register_operator('loft',description='Connect sampled closed 3D contours with matching vertex counts. Ends are capped when planar.',inputs=('sections',)) +def loft(c,p,inputs): + curves=[require(v,'curve') for v in inputs['sections']] + if len(curves)<2 or not all(v['closed'] for v in curves):raise ValueError('Loft needs at least two closed curves') + m=len(curves[0]['points']) + if any(len(v['points'])!=m for v in curves):raise ValueError('All sections must have matching point counts and correspondence') + verts=[v for section in curves for v in section['points']];faces=[] + for i in range(len(curves)-1): + for j in range(m): + q=(j+1)%m;a,b,d,e=i*m+j,(i+1)*m+j,(i+1)*m+q,i*m+q + faces.extend([[a,b,d],[a,d,e]]) + cap=bool(p.get('cap',True)) + if cap: + for idx,section in [(0,curves[0]),(len(curves)-1,curves[-1])]: + pts=section['points'];origin=pts[0];x=unit(sub(pts[1],origin));normal=None + for pt in pts[2:]: + candidate=cross(x,sub(pt,origin)) + if length(candidate)>1e-8:normal=unit(candidate);break + if normal is None:raise ValueError('Degenerate loft end section') + if any(abs(dot(sub(pt,origin),normal))>1e-6 for pt in pts):raise ValueError('Capped loft ends must be planar') + y=cross(normal,x);flat=[[dot(sub(pt,origin),x),dot(sub(pt,origin),y)] for pt in pts] + triangles,_=triangulate_polygon(flat) + if idx:triangles=[list(reversed(f)) for f in triangles] + faces.extend([[j+idx*m for j in f] for f in triangles]) + return mesh(verts,faces,cap) + +@register_operator('transform',description='Apply an affine transform to mesh instances or curve points; rotations are XYZ Euler degrees.',inputs=('source',)) +def transform_op(c,p,inputs): + source=inputs['source'];scale=p.get('scale',[1,1,1]);scale=c.vec(scale) if isinstance(scale,list) else c.number(scale) + matrix=transform(c.vec(p.get('translate',[0,0,0])),c.vec(p.get('rotate',[0,0,0])),scale) + if source['kind']=='curve':return {**source,'points':[point(matrix,v) for v in source['points']]} + require(source,'mesh') + return {'kind':'mesh','parts':[{**part,'matrix':matmul(matrix,part['matrix'])} for part in source['parts']]} + +@register_operator('repeat',description='Repeat a mesh using a cumulative step transform; shared mesh data and stable instance IDs.',inputs=('source',)) +def repeat(c,p,inputs): + source=require(inputs['source'],'mesh');count=c.count(p.get('count',2),high=256) + if len(source['parts'])*count>2048:raise ValueError('Repeat would exceed 2048 parts') + step=transform(c.vec(p.get('translate',[0,0,0])),c.vec(p.get('rotate',[0,0,0])),c.number(p.get('scale',1))) + current=identity();parts=[] + for i in range(count): + parts.extend({**part,'key':f'{i:04}/'+part['key'],'matrix':matmul(current,part['matrix'])} for part in source['parts']) + current=matmul(step,current) + return {'kind':'mesh','parts':parts} + +@register_operator('merge',description='Group mesh parts without boolean operations; preserves individual identities.',inputs=('sources',)) +def merge(c,p,inputs): + return {'kind':'mesh','parts':[{**part,'key':f'{i:04}/'+part['key']} for i,source in enumerate(inputs['sources']) for part in require(source,'mesh')['parts']]} diff --git a/spatial_lab/project.py b/spatial_lab/project.py new file mode 100644 index 0000000..41c2d37 --- /dev/null +++ b/spatial_lab/project.py @@ -0,0 +1,101 @@ +"""Transactional project edits, with bounded persistent undo/redo.""" +import copy +import json +import os +import tempfile +from contextlib import contextmanager +from pathlib import Path +from .kernel import build, digest, dependencies + +def read_json(path): + p=Path(path) + if p.stat().st_size>64*1024*1024:raise ValueError('JSON input exceeds 64 MiB') + with p.open() as f:return json.load(f) + +def write_json(path,data): + p=Path(path);p.parent.mkdir(parents=True,exist_ok=True) + fd,temp=tempfile.mkstemp(prefix=p.name+'.',suffix='.tmp',dir=p.parent) + try: + with os.fdopen(fd,'w') as f: + json.dump(data,f,indent=2,allow_nan=False);f.write('\n');f.flush();os.fsync(f.fileno()) + os.replace(temp,p) + finally: + if os.path.exists(temp):os.unlink(temp) + +class Project: + def __init__(self,path): + self.path=Path(path).resolve() + self.history_path=self.path.parent/'.spatial_lab'/(self.path.name+'.history.json') + + def read(self):return read_json(self.path) + def build(self):return build(self.read()) + + @contextmanager + def _lock(self): + self.history_path.parent.mkdir(parents=True,exist_ok=True) + with self.history_path.with_suffix('.lock').open('a+b') as f: + if os.name=='nt': + import msvcrt + f.seek(0,2) + if f.tell()==0:f.write(b'0');f.flush() + f.seek(0);msvcrt.locking(f.fileno(),msvcrt.LK_NBLCK,1) + else: + import fcntl + fcntl.flock(f.fileno(),fcntl.LOCK_EX|fcntl.LOCK_NB) + try:yield + finally: + if os.name=='nt':f.seek(0);msvcrt.locking(f.fileno(),msvcrt.LK_UNLCK,1) + else:fcntl.flock(f.fileno(),fcntl.LOCK_UN) + + def _history(self,current): + h=read_json(self.history_path) if self.history_path.exists() else {} + # External JSON edits or an interrupted two-file write invalidate history, + # never the current project. The next edit starts a new undo chain. + if h.get('current_hash')!=digest(current):h={'past':[],'future':[],'current_hash':digest(current)} + return h + + def _save(self,project,history): + history['current_hash']=digest(project) + write_json(self.history_path,history);write_json(self.path,project) + + def apply(self,changes): + if not isinstance(changes,list) or not changes:raise ValueError('An edit transaction needs a nonempty list of changes') + with self._lock(): + before=self.read();after=copy.deepcopy(before);h=self._history(before) + for change in changes: + action=change.get('action') + if action=='set_parameter':after.setdefault('parameters',{})[change['name']]=change['value'] + elif action=='upsert_node': + node=copy.deepcopy(change['node']);ids=[n['id'] for n in after['nodes']] + if node['id'] in ids:after['nodes'][ids.index(node['id'])]=node + else:after['nodes'].append(node) + elif action=='patch_node': + node=next((n for n in after['nodes'] if n['id']==change['id']),None) + if node is None:raise ValueError('No such node: '+change['id']) + for key,value in change['patch'].items(): + if key=='id':raise ValueError('Stable node IDs cannot be renamed with patch_node') + if key in ['params','inputs']:node.setdefault(key,{}).update(value) + else:node[key]=value + elif action=='remove_node': + target=change['id'] + if target not in [n['id'] for n in after['nodes']]:raise ValueError('No such node: '+target) + removing={target} + while True: + dependents={n['id'] for n in after['nodes'] if any(d in removing for d in dependencies(n))}-removing + if dependents and not change.get('cascade',False):raise ValueError('Node is used by: '+', '.join(sorted(dependents))) + if not dependents:break + removing.update(dependents) + after['nodes']=[n for n in after['nodes'] if n['id'] not in removing] + else:raise ValueError(f'Unknown edit action: {action}') + result=build(after) # Failed evaluation leaves both project and history untouched. + if digest(before)==digest(after):return result + h['past']=(h['past']+[before])[-64:];h['future']=[];self._save(after,h) + return result + + def travel(self,direction): + if direction not in ['undo','redo']:raise ValueError('Expected undo or redo') + with self._lock(): + current=self.read();h=self._history(current);src,dst=('past','future') if direction=='undo' else ('future','past') + if not h[src]:raise ValueError('Nothing to '+direction+' (external edits start a new history chain)') + target=h[src][-1];result=build(target);h[src].pop();h[dst]=(h[dst]+[current])[-64:];self._save(target,h) + return result diff --git a/spatial_lab/server.py b/spatial_lab/server.py new file mode 100644 index 0000000..28bd52e --- /dev/null +++ b/spatial_lab/server.py @@ -0,0 +1,61 @@ +"""A local, read-only live viewer. Authoring remains in Python/CLI transactions.""" +import hashlib +import json +import threading +from http.server import BaseHTTPRequestHandler,ThreadingHTTPServer +from pathlib import Path +from urllib.parse import urlsplit +from .kernel import build,operator_catalog +from .project import read_json + +def make_server(project_path,port=8767): + path=Path(project_path).resolve();assets=Path(__file__).parent/'web' + state={'source_hash':None,'bundle':None,'error':None};lock=threading.Lock() + def current(): + with lock: + try: + with path.open('rb') as f:raw=f.read(64*1024*1024+1) + if len(raw)>64*1024*1024:raise ValueError('JSON input exceeds 64 MiB') + key=hashlib.sha256(raw).hexdigest() + if key!=state['source_hash']: + state['source_hash']=key + try:state['bundle']=build(json.loads(raw));state['error']=None + except (ValueError,TypeError,KeyError) as e:state['error']=str(e) + except (OSError,ValueError) as e:state['error']=str(e) + return state.copy() + class Handler(BaseHTTPRequestHandler): + def log_message(self,fmt,*args):pass + def send(self,data,kind='application/json',status=200,etag=None,download=None): + body=data if isinstance(data,bytes) else json.dumps(data,allow_nan=False).encode() + self.send_response(status);self.send_header('Content-Type',kind);self.send_header('Content-Length',str(len(body))) + self.send_header('Cache-Control','no-cache');self.send_header('X-Content-Type-Options','nosniff') + self.send_header('Content-Security-Policy',"default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data:") + if etag:self.send_header('ETag',etag) + if download:self.send_header('Content-Disposition',f'attachment; filename="{download}"') + self.end_headers() + try:self.wfile.write(body) + except (BrokenPipeError,ConnectionResetError):pass + def do_GET(self): + route=urlsplit(self.path).path + if route in ['/','/app.js','/style.css']: + name='index.html' if route=='/' else route[1:];kind={'.html':'text/html; charset=utf-8','.js':'text/javascript; charset=utf-8','.css':'text/css; charset=utf-8'}[Path(name).suffix] + self.send((assets/name).read_bytes(),kind);return + if route=='/api/operators':self.send(operator_catalog());return + if route in ['/api/bundle','/export.bundle.json','/api/status']: + result=current() + if result['error']:self.send({'error':result['error'],'source':path.name,'stale':bool(result['bundle'])},status=422);return + b=result['bundle'];tag='"'+b['bundle_hash']+'"' + if route=='/api/status':self.send({'source':path.name,'project_hash':b['project_hash'],'bundle_hash':b['bundle_hash'],'stats':b['stats']});return + if self.headers.get('If-None-Match')==tag and route=='/api/bundle':self.send(b'',status=304,etag=tag);return + self.send(b,etag=tag,download=b['project_id']+'.bundle.json' if route=='/export.bundle.json' else None);return + self.send({'error':'Not found'},status=404) + server=ThreadingHTTPServer(('127.0.0.1',port),Handler);server.daemon_threads=True + return server + +def serve(path,port): + build(read_json(path)) + server=make_server(path,port) + print(f'Spatial Lab: http://127.0.0.1:{server.server_port}\nWatching: {Path(path).resolve()}',flush=True) + try:server.serve_forever() + except KeyboardInterrupt:pass + finally:server.server_close() diff --git a/spatial_lab/web/app.js b/spatial_lab/web/app.js new file mode 100644 index 0000000..df8f486 --- /dev/null +++ b/spatial_lab/web/app.js @@ -0,0 +1,116 @@ +"use strict"; +const $=s=>document.querySelector(s), canvas=$("#viewport"), gl=canvas.getContext("webgl2",{antialias:true,alpha:false}); +let bundle=null,etag=null,selected=null,isolated=false,showSolid=true,showWire=false,showGuides=true,section=false,clipZ=1e9,resources=[],grid=null; +let yaw=-.9,pitch=.52,distance=62,target=[0,0,5],radius=25,viewMode="orbit",dirty=true; +const add=(a,b)=>a.map((x,i)=>x+b[i]),sub=(a,b)=>a.map((x,i)=>x-b[i]),mul=(a,s)=>a.map(x=>x*s),dot=(a,b)=>a.reduce((s,x,i)=>s+x*b[i],0),cross=(a,b)=>[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]],unit=a=>mul(a,1/(Math.hypot(...a)||1)); +const identity=()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]; +function multiply(a,b){let o=new Array(16).fill(0);for(let c=0;c<4;c++)for(let r=0;r<4;r++)for(let k=0;k<4;k++)o[c*4+r]+=a[k*4+r]*b[c*4+k];return o;} +function lookAt(eye,center,up){let z=unit(sub(eye,center)),x=unit(cross(up,z)),y=cross(z,x);return[x[0],y[0],z[0],0,x[1],y[1],z[1],0,x[2],y[2],z[2],0,-dot(x,eye),-dot(y,eye),-dot(z,eye),1];} +function perspective(fov,aspect,near,far){let f=1/Math.tan(fov/2),nf=1/(near-far);return[f/aspect,0,0,0,0,f,0,0,0,0,(far+near)*nf,-1,0,0,2*far*near*nf,0];} +function ortho(w,h,near,far){return[2/w,0,0,0,0,2/h,0,0,0,0,-2/(far-near),0,0,0,-(far+near)/(far-near),1];} +function colMajor(rows){return rows[0].map((_,i)=>rows.map(r=>r[i])).flat();} +function normalMatrix(m){const a=[m[0],m[1],m[2]],b=[m[4],m[5],m[6]],c=[m[8],m[9],m[10]],d=dot(a,cross(b,c));return[...mul(cross(b,c),1/d),...mul(cross(c,a),1/d),...mul(cross(a,b),1/d)];} +let program,loc={}; +function shader(type,src){let s=gl.createShader(type);gl.shaderSource(s,src);gl.compileShader(s);if(!gl.getShaderParameter(s,gl.COMPILE_STATUS))throw new Error(gl.getShaderInfoLog(s));return s;} +function initializeGL(){ + if(!gl)throw new Error("WebGL 2 is unavailable. JSON export and the Python kernel still work."); + program=gl.createProgram();gl.attachShader(program,shader(gl.VERTEX_SHADER,`#version 300 es + precision highp float; + layout(location=0) in vec3 position; layout(location=1) in vec3 normal; + uniform mat4 mvp; uniform mat4 model; uniform mat3 normals; + out vec3 world; out vec3 n; + void main(){world=(model*vec4(position,1.0)).xyz;n=normals*normal;gl_Position=mvp*vec4(position,1.0);}`)); + gl.attachShader(program,shader(gl.FRAGMENT_SHADER,`#version 300 es + precision highp float;in vec3 world;in vec3 n;uniform vec3 color;uniform float unlit;uniform float clipHeight;out vec4 frag; + void main(){if(world.z>clipHeight)discard;vec3 nn=normalize(n+vec3(0.00001));float light=0.50+0.38*abs(dot(nn,normalize(vec3(-0.35,-0.55,0.78))))+0.12*max(nn.z,0.0);frag=vec4(color*mix(light,1.0,unlit),1.0);}`)); + gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS))throw new Error(gl.getProgramInfoLog(program)); + for(const name of ["mvp","model","normals","color","unlit","clipHeight"])loc[name]=gl.getUniformLocation(program,name); + gl.enable(gl.DEPTH_TEST);gl.clearColor(.914,.933,.953,1); +} +function makeGeometry(g,lineOnly=false){ + const points=g.vertices,normal=points.map(()=>[0,0,0]),faces=g.faces||[]; + for(const [a,b,c] of faces){const n=cross(sub(points[b],points[a]),sub(points[c],points[a]));for(const i of [a,b,c])normal[i]=add(normal[i],n);} + const edgeSet=new Set(),edges=[]; + if(g.edges){for(const e of g.edges)edges.push(...e);}else for(const f of faces)for(let j=0;j<3;j++){let a=f[j],b=f[(j+1)%3],key=Math.min(a,b)+":"+Math.max(a,b);if(!edgeSet.has(key)){edgeSet.add(key);edges.push(a,b);}} + const vao=gl.createVertexArray();gl.bindVertexArray(vao);const buffers=[]; + function attribute(index,data){let b=gl.createBuffer();buffers.push(b);gl.bindBuffer(gl.ARRAY_BUFFER,b);gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(data),gl.STATIC_DRAW);gl.enableVertexAttribArray(index);gl.vertexAttribPointer(index,3,gl.FLOAT,false,0,0);} + attribute(0,points.flat());attribute(1,normal.map(unit).flat()); + function indices(data){let b=gl.createBuffer();buffers.push(b);gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,b);gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,new Uint32Array(data),gl.STATIC_DRAW);return b;} + const triangles=indices(faces.flat()),lines=indices(edges);gl.bindVertexArray(null); + return{vao,buffers,triangles,lines,triangleCount:faces.length*3,lineCount:edges.length,lineOnly}; +} +function dispose(){for(const r of resources){gl.deleteVertexArray(r.vao);for(const b of r.buffers)gl.deleteBuffer(b);}resources=[];} +let geometries=new Map(),drawables=[]; +function install(data){ + const previous=!!bundle;bundle=data;dispose();geometries=new Map();drawables=[]; + for(const [id,g] of Object.entries(data.geometries)){let r=makeGeometry(g);geometries.set(id,r);resources.push(r);} + for(const o of data.objects){let resource=geometries.get(o.geometry); + if(o.kind==="curve"){let edges=o.points.slice(1).map((_,i)=>[i,i+1]);if(o.closed)edges.push([o.points.length-1,0]);resource=makeGeometry({vertices:o.points,edges},true);resources.push(resource);} + if(o.kind==="frame"){resource=makeGeometry({vertices:[[0,0,0],[.65,0,0],[0,.65,0],[0,0,.65]],edges:[[0,1],[0,2],[0,3]]},true);resources.push(resource);} + drawables.push({object:o,resource,model:colMajor(o.matrix)}); + } + const min=data.bounds.min,max=data.bounds.max;radius=Math.max(1,Math.hypot(...sub(max,min))/2); + if(!previous){target=mul(add(min,max),.5);distance=radius*2.7;} + const step=10**Math.floor(Math.log10(radius/5)),extent=Math.ceil(radius*1.3/step)*step,points=[],edges=[];const base=Math.floor(min[2]/step)*step; + for(let x=-extent;x<=extent+.001;x+=step){let n=points.length;points.push([x,-extent,base],[x,extent,base],[-extent,x,base],[extent,x,base]);edges.push([n,n+1],[n+2,n+3]);} + grid=makeGeometry({vertices:points,edges},true);resources.push(grid); + $("#project-name").textContent=data.name;document.title=data.name+" — Spatial Lab"; + $("#node-count").textContent=data.stats.nodes+" nodes"; + $("#statistics").textContent=`${data.stats.objects} objects / ${data.stats.unique_meshes} meshes / ${data.stats.triangles.toLocaleString()} triangles`; + const warning=data.validation.warnings.length;$("#validation").textContent=warning?`${warning} topology notes`:"Mesh topology checked";$("#validation").classList.toggle("warn",warning>0); + $("#validation").title="Checks finite coordinates, triangle indices, edge incidence and solid orientation. Does not test self-intersections or walkability."; + const slider=$("#section-height");slider.min=min[2]-.1;slider.max=max[2]+.1;if(!section){slider.value=max[2]+.1;clipZ=1e9;} + if(selected&&!data.nodes.some(n=>n.id===selected))selected=null; + outline();inspector();dirty=true; +} +function outline(){ + const list=$("#nodes");list.replaceChildren(); + for(const n of bundle.nodes){let b=document.createElement("button");b.className="node"+(n.id===selected?" selected":"")+(!n.visible?" computational":"");b.dataset.node=n.id;b.title=n.id; + const symbol=document.createElement("span");symbol.className="symbol";symbol.textContent=n.kind==="curve"?"∿":n.kind==="frames"?"⊥":"▱"; + const label=document.createElement("span");label.className="label";label.append(document.createTextNode(n.id));let small=document.createElement("small");small.textContent=n.op;label.append(small); + const vis=document.createElement("span");vis.className="visibility";vis.textContent=n.visible?"●":""; + b.append(symbol,label,vis);b.onclick=()=>{selected=selected===n.id?null:n.id;if(!selected)isolated=false;outline();inspector();dirty=true;};list.append(b); + } +} +function inspector(){ + const root=$("#inspector");root.replaceChildren();$("#clear-selection").hidden=!selected;$("#isolate").setAttribute("aria-pressed",String(isolated)); + if(!selected){$("#selection-name").textContent="Project parameters";$("#selection-status").textContent="All geometry";for(const [k,v] of Object.entries(bundle.recipe.parameters||{})){let row=document.createElement("div");row.className="param-row";let a=document.createElement("span"),b=document.createElement("span");a.textContent=k;b.textContent=typeof v==="string"?v:JSON.stringify(v);row.append(a,b);root.append(row);}return;} + const n=bundle.nodes.find(n=>n.id===selected);$("#selection-name").textContent=n.id;$("#selection-status").textContent=n.visible?(isolated?"Isolated: ":"Selected: ")+n.id:"Construction node: "+n.id; + let dl=document.createElement("dl");for(const [k,v] of Object.entries({operation:n.op,role:n.role,...n.inputs,...n.params})){let dt=document.createElement("dt"),dd=document.createElement("dd");dt.textContent=k;dd.textContent=typeof v==="string"?v:JSON.stringify(v);dl.append(dt,dd);}root.append(dl); +} +function draw(){ + if(!gl||!bundle)return;const dpr=Math.min(devicePixelRatio,2),w=Math.round(canvas.clientWidth*dpr),h=Math.round(canvas.clientHeight*dpr);if(canvas.width!==w||canvas.height!==h){canvas.width=w;canvas.height=h;dirty=true;}if(!dirty)return;dirty=false; + gl.viewport(0,0,w,h);gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);gl.useProgram(program); + let offset=[Math.cos(yaw)*Math.cos(pitch),Math.sin(yaw)*Math.cos(pitch),Math.sin(pitch)],eye=add(target,mul(offset,distance)),v=lookAt(eye,target,[0,0,1]); + let p=viewMode==="orbit"?perspective(.70,w/h,.05,Math.max(1000,distance+radius*10)):ortho(distance*.7*w/h,distance*.7,.05,Math.max(1000,distance+radius*10));let pv=multiply(p,v); + function render(r,m,color,lines=false){gl.bindVertexArray(r.vao);gl.uniformMatrix4fv(loc.model,false,m);gl.uniformMatrix4fv(loc.mvp,false,multiply(pv,m));gl.uniformMatrix3fv(loc.normals,false,normalMatrix(m));gl.uniform3fv(loc.color,color);gl.uniform1f(loc.unlit,lines?1:0);gl.uniform1f(loc.clipHeight,section?clipZ:1e9);gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,lines?r.lines:r.triangles);gl.drawElements(lines?gl.LINES:gl.TRIANGLES,lines?r.lineCount:r.triangleCount,gl.UNSIGNED_INT,0);} + if(showGuides)render(grid,identity(),[.77,.82,.86],true); + let visible=0; + for(const d of drawables){const o=d.object;if(isolated&&o.node_id!==selected)continue;if(d.resource.lineOnly&&!showGuides)continue;visible++; + const selectedObject=selected===o.node_id,color=selectedObject?[.82,.56,.28]:o.color; + if(showSolid&&!d.resource.lineOnly){gl.enable(gl.POLYGON_OFFSET_FILL);gl.polygonOffset(1,1);render(d.resource,d.model,color);gl.disable(gl.POLYGON_OFFSET_FILL);} + if(showWire||d.resource.lineOnly||selectedObject)render(d.resource,d.model,selectedObject?[.38,.24,.12]:showSolid?mul(color,.54):mul(color,.68),true); + } + $("#empty").hidden=visible>0;gl.bindVertexArray(null); +} +function animate(){draw();requestAnimationFrame(animate);} +function setView(name){viewMode=name;if(name==="top"){yaw=-Math.PI/2;pitch=Math.PI/2-.0001;}if(name==="front"){yaw=-Math.PI/2;pitch=0;}if(name==="side"){yaw=0;pitch=0;}if(name==="orbit"){yaw=-.9;pitch=.52;}document.querySelectorAll("[data-view]").forEach(b=>b.classList.toggle("active",b.dataset.view===name));$("#view-label").textContent=name==="orbit"?"Perspective":name[0].toUpperCase()+name.slice(1)+" / orthographic";dirty=true;} +for(const b of document.querySelectorAll("[data-view]"))b.onclick=()=>setView(b.dataset.view); +$("#fit").onclick=()=>{if(bundle){target=mul(add(bundle.bounds.min,bundle.bounds.max),.5);distance=radius*(viewMode==="orbit"?2.7:2.4);dirty=true;}}; +function toggle(id,get,set){$(id).onclick=()=>{set(!get());$(id).setAttribute("aria-pressed",String(get()));dirty=true;};} +toggle("#solid",()=>showSolid,v=>{showSolid=v;if(!showSolid&&!showWire){showWire=true;$("#wire").setAttribute("aria-pressed","true");}}); +toggle("#wire",()=>showWire,v=>{showWire=v;if(!showWire&&!showSolid){showSolid=true;$("#solid").setAttribute("aria-pressed","true");}}); +toggle("#guides",()=>showGuides,v=>showGuides=v);toggle("#isolate",()=>isolated,v=>{isolated=!!selected&&v;inspector();}); +$("#clear-selection").onclick=()=>{selected=null;isolated=false;outline();inspector();dirty=true;}; +$("#section-enabled").onchange=e=>{section=e.target.checked;$("#section-height").disabled=!section;updateClip();}; +function updateClip(){clipZ=Number($("#section-height").value);$("#section-value").textContent=section?clipZ.toFixed(2)+" m":"—";dirty=true;}$("#section-height").oninput=updateClip; +let drag=null; +canvas.addEventListener("pointerdown",e=>{canvas.setPointerCapture(e.pointerId);drag={x:e.clientX,y:e.clientY,pan:e.shiftKey||e.button===1};}); +canvas.addEventListener("pointerup",()=>drag=null);canvas.addEventListener("pointercancel",()=>drag=null); +canvas.addEventListener("pointermove",e=>{if(!drag)return;const dx=e.clientX-drag.x,dy=e.clientY-drag.y;drag.x=e.clientX;drag.y=e.clientY;if(drag.pan){const right=[-Math.sin(yaw),Math.cos(yaw),0],up=cross(unit([Math.cos(yaw)*Math.cos(pitch),Math.sin(yaw)*Math.cos(pitch),Math.sin(pitch)]),right);target=add(target,add(mul(right,-dx*distance/canvas.clientHeight*.65),mul(up,dy*distance/canvas.clientHeight*.65)));}else{if(viewMode!=="orbit")setView("orbit");yaw-=dx*.006;pitch=Math.max(-1.5,Math.min(1.5,pitch+dy*.006));}dirty=true;}); +canvas.addEventListener("wheel",e=>{e.preventDefault();distance=Math.max(.2,Math.min(radius*30,distance*Math.exp(e.deltaY*.001)));dirty=true;},{passive:false}); +canvas.addEventListener("keydown",e=>{if(e.key==="Escape")$("#clear-selection").click();if(e.key.toLowerCase()==="f")$("#fit").click();}); +new ResizeObserver(()=>dirty=true).observe(canvas); +function showError(message){$("#error").hidden=false;$("#error").textContent=(bundle?"Source cannot be built. Showing the last valid geometry.\n":"")+message;$("#live-state").textContent="Build error";$("#live-state").classList.add("error");} +async function refresh(){try{const r=await fetch("/api/bundle",{headers:etag?{"If-None-Match":etag}:{}});if(r.status!==304){const data=await r.json();if(!r.ok)throw new Error(data.error||r.statusText);etag=r.headers.get("ETag");install(data);}$("#error").hidden=true;$("#live-state").textContent="Live project";$("#live-state").classList.remove("error");}catch(e){showError(e.message);}finally{setTimeout(refresh,1800);}} +try{initializeGL();refresh();animate();}catch(e){showError(e.message);} diff --git a/spatial_lab/web/index.html b/spatial_lab/web/index.html new file mode 100644 index 0000000..90a794f --- /dev/null +++ b/spatial_lab/web/index.html @@ -0,0 +1,17 @@ + +Spatial Lab + +
Spatial LabOpening project…ConnectingExport geometry
+
+ +
+ +
Perspective
XYZ ↑
Drag to orbit · Shift-drag to pan · Scroll to zoom
+
All geometry
+
Waiting for geometry Metres / Z up
+
+
diff --git a/spatial_lab/web/style.css b/spatial_lab/web/style.css new file mode 100644 index 0000000..c0ea638 --- /dev/null +++ b/spatial_lab/web/style.css @@ -0,0 +1 @@ +:root{font-family:"Segoe UI",Arial,sans-serif;color:#213348;background:#e9eef3;font-synthesis:none;font-size:13px;color-scheme:light}*{box-sizing:border-box}body{margin:0;height:100vh;overflow:hidden}button,a,input{font:inherit}button{border:0;background:transparent;color:inherit;cursor:pointer;border-radius:4px;padding:7px 11px}button:hover{background:#e1e7ed}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #347dba;outline-offset:2px}button.active{background:#d8e4ee;color:#164568}button[aria-pressed=true]{background:#d8e4ee;color:#164568}header{height:57px;display:flex;align-items:center;gap:17px;padding:0 23px;background:#f9fbfc;border-bottom:1px solid #cdd7e0}header strong{font-size:19px;font-weight:650;letter-spacing:-.55px}.divider{height:21px;width:1px;background:#cdd7e0}#project-name{font-size:14px}#live-state{margin-left:auto;color:#50686a;font-size:12px}#live-state.error{color:#a03434}#export{color:#245278;text-decoration:none;border:1px solid #c5d2dd;border-radius:5px;padding:7px 12px;background:white}#export:hover{border-color:#7091ac}main{display:grid;grid-template-columns:270px minmax(0,1fr);height:calc(100vh - 57px)}aside{background:#f9fbfc;border-right:1px solid #cdd7e0;display:flex;flex-direction:column;min-height:0}.outline{flex:1;overflow:auto;padding:19px 11px 8px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 10px 13px;gap:10px}h1,h2{font-size:13px;font-weight:650;margin:0}.section-title>span{color:#728598;font-size:12px}.node{width:100%;text-align:left;display:grid;grid-template-columns:17px minmax(0,1fr) 22px;align-items:center;gap:8px;margin-bottom:2px;padding:8px 9px}.node.selected{background:#dde8f0}.node .symbol{font-size:15px;color:#708ca2}.node .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}.node .label small{display:block;color:#8191a0;font-size:10px}.node .visibility{font-size:11px;color:#8a9aa6}.node.computational .label{color:#6d8191}.inspector{max-height:38%;min-height:135px;overflow:auto;padding:15px 11px;background:#f0f4f7;border-top:1px solid #cdd7e0}#clear-selection{padding:0 5px;font-size:21px;color:#708597}#inspector{padding:0 10px}dl{margin:0}dt{color:#718596;font-size:11px;margin-top:11px}dd{margin:3px 0 0;font-family:ui-monospace,"Cascadia Code",monospace;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.param-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0}.param-row span:first-child{color:#6d8090}.param-row span:last-child{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:12px}aside footer{padding:13px 21px;color:#81929f;font-size:11px;line-height:1.55;border-top:1px solid #d9e1e7}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}nav{height:49px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;border-bottom:1px solid #d1dbe3;background:#f3f6f9;gap:10px}.button-group{display:flex;gap:2px}nav button{font-size:12px}.viewport-wrap{position:relative;flex:1;min-height:100px;overflow:hidden;background:#e9eef3}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}#view-label{position:absolute;top:17px;left:22px;color:#6c8191;font-size:11px;pointer-events:none}.axis-key{position:absolute;right:22px;bottom:19px;display:flex;gap:13px;font-size:11px;font-weight:600;pointer-events:none}.axis-key span:nth-child(1){color:#a97160}.axis-key span:nth-child(2){color:#67927b}.axis-key span:nth-child(3){color:#638db1}.help{position:absolute;left:22px;bottom:19px;color:#7b8e9d;font-size:11px;pointer-events:none}#error{position:absolute;left:20px;right:20px;bottom:47px;padding:14px 17px;border:1px solid #d9aaaa;border-left:3px solid #a64949;background:#fff5f2;color:#7d3030;white-space:pre-wrap;line-height:1.5;max-height:35%;overflow:auto}#empty{position:absolute;inset:45% 0 auto;text-align:center;color:#748897}.section-bar{min-height:44px;display:flex;align-items:center;gap:15px;padding:0 20px;border-top:1px solid #cdd7e0;background:#f2f6f8;font-size:11px}.section-bar label{display:flex;align-items:center;gap:5px;white-space:nowrap}.section-bar input[type=range]{width:190px;accent-color:#6587a1;height:18px}output{font-variant-numeric:tabular-nums;min-width:65px;color:#647c8f}#selection-status{margin-left:auto;color:#647c8f}.status-bar{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 20px;background:#e1e9ef;color:#60788b;font-size:10px;font-variant-numeric:tabular-nums}#validation{color:#607d6d}#validation.warn{color:#986b39}[hidden]{display:none!important}@media(max-width:800px){main{grid-template-columns:215px minmax(0,1fr)}header{padding:0 14px;gap:11px}header strong{font-size:16px}nav{height:auto;min-height:74px;flex-wrap:wrap;gap:3px;padding:7px}nav button{padding:6px 8px}#live-state{display:none}.section-bar{gap:6px;padding:0 10px}.section-bar input[type=range]{width:90px}.help{display:none}.status-bar{flex-wrap:wrap;padding:6px 10px;gap:5px}#selection-status{display:none}}@media(max-width:520px){main{grid-template-columns:165px minmax(0,1fr)}header #project-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header #export{font-size:10px;padding:6px}aside footer{padding:9px 12px}.outline{padding:14px 5px}.node{gap:4px;padding:7px 5px;grid-template-columns:13px minmax(0,1fr)}.node .visibility{display:none}.node .label{font-size:11px}.inspector{padding:13px 4px}.section-bar output{display:none}#statistics{font-size:9px}} diff --git a/tests/blender_roundtrip.py b/tests/blender_roundtrip.py new file mode 100644 index 0000000..58762be --- /dev/null +++ b/tests/blender_roundtrip.py @@ -0,0 +1,85 @@ +"""Integration test in real Blender, including geometry edits, pruning and undo. + +blender -b --factory-startup --python tests/blender_roundtrip.py +Writes a verified demonstration and report to out/. +""" +import importlib.util +import sys +import tempfile +from pathlib import Path +import bpy + +root = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(root)) +from spatial_lab.examples import demo_project +from spatial_lab.project import Project, write_json + +spec = importlib.util.spec_from_file_location('bridge', root / 'blender/bridge.py') +bridge = importlib.util.module_from_spec(spec) +spec.loader.exec_module(bridge) +scene = bridge.create_scene('Spatial Lab / Braided atrium') +bpy.context.window.scene = scene + +with tempfile.TemporaryDirectory() as temporary: + path = Path(temporary) / 'study.json' + write_json(path, demo_project()) + project = Project(path) + original = project.build() + bridge.import_bundle(original, scene) + original_check = bridge.verify_bundle(original, scene) + assert original_check['passed'], original_check + obj = next(o for o in scene.objects if o.get('spatial_lab_id') == 'braided-galleries/0000/main') + pointer = obj.as_pointer() + original_material = obj.material_slots[0].material + modifier = obj.modifiers.new('Artist bevel', 'BEVEL') + artist_material = bpy.data.materials.new('Artist material') + obj.material_slots[0].material = artist_material + marker = bpy.data.objects.new('Unrelated object', None) + scene.collection.objects.link(marker) + + changed = project.apply([ + {'action': 'set_parameter', 'name': 'width', 'value': 1.8}, + {'action': 'set_parameter', 'name': 'levels', 'value': 2}, + ]) + assert changed['geometries'] != original['geometries'] + updated = bridge.import_bundle(changed, scene) + changed_check = bridge.verify_bundle(changed, scene) + assert changed_check['passed'], changed_check + assert updated['created'] == 0 and updated['updated'] == 16 and len(updated['removed']) == 1 + assert obj.as_pointer() == pointer and obj.modifiers.get(modifier.name).as_pointer() == modifier.as_pointer() + assert obj.material_slots[0].material == artist_material and marker.name in scene.objects + + restored = project.travel('undo') + assert restored == original + bridge.import_bundle(restored, scene) + undo_check = bridge.verify_bundle(restored, scene) + assert undo_check['passed'], undo_check + assert obj.as_pointer() == pointer and obj.material_slots[0].material == artist_material + obj.modifiers.remove(modifier) + obj.material_slots[0].material = original_material + bpy.data.objects.remove(marker, do_unlink=True) + bpy.data.materials.remove(artist_material) + + out = root / 'out' + write_json(out / 'braided_atrium.bundle.json', restored) + write_json(out / 'blender_verification.json', { + 'blender_version': bpy.app.version_string, + 'initial': original_check, 'edited': changed_check, 'undo': undo_check, + 'changed_import': updated, + 'preserved_object_identity_modifiers_materials_and_unrelated_objects': True, + 'undo_restored_identical_bundle': True, + }) + from mathutils import Vector + target = Vector((0, 0, 4.5)) + rotation = (target - Vector((45, -55, 35))).to_track_quat('-Z', 'Y') + for screen in bpy.data.screens: + for area in screen.areas: + if area.type == 'VIEW_3D': + view = area.spaces.active + bridge.enum_set(view.shading, 'type', 'SOLID') + bridge.enum_set(view.shading, 'color_type', 'MATERIAL') + view.region_3d.view_location = target + view.region_3d.view_distance = 62 + view.region_3d.view_rotation = rotation + bpy.ops.wm.save_as_mainfile(filepath=str(out / 'Braided_Atrium.blend')) + print('PASS: changed geometry, pruned instance, preserved artist work, exact undo, Blender parity.') diff --git a/tests/test_kernel.py b/tests/test_kernel.py new file mode 100644 index 0000000..fb24de7 --- /dev/null +++ b/tests/test_kernel.py @@ -0,0 +1,103 @@ +import copy +import math +import unittest +from spatial_lab.kernel import build,evaluate,validate_bundle,PROJECT_SCHEMA,digest,register_operator +from spatial_lab.expressions import scalar +from spatial_lab.math3d import frames,dot,cross,length,sub,mesh_report +from spatial_lab.examples import demo_project + +def project(nodes,parameters=None):return {'schema':PROJECT_SCHEMA,'id':'test','parameters':parameters or {},'nodes':nodes} +def straight():return project([ + {'id':'path','op':'polyline','params':{'points':[[0,0,0],[0,3,0]]},'visible':False}, + {'id':'frame','op':'frames','inputs':{'path':'path'},'visible':False}, + {'id':'solid','op':'sweep','inputs':{'frames':'frame'},'params':{'profile':[[-1,-.5],[1,-.5],[1,.5],[-1,.5]]}}]) + +class Expressions(unittest.TestCase): + def test_math(self):self.assertAlmostEqual(scalar('sin(pi/2)*radius + sqrt(9)',{'radius':4}),7) + def test_no_python_execution(self): + for text in ["__import__('os')","x.__class__","[1,2][0]","(lambda: 1)()","sum(x for x in [1])"]: + with self.subTest(text=text),self.assertRaises(ValueError):scalar(text) + def test_domain_and_resource_guards(self): + for text in ['1/0','sqrt(-1)','1e309','2**1000000','exp(10000)','unknown+1']: + with self.subTest(text=text),self.assertRaises(ValueError):scalar(text) + +class Geometry(unittest.TestCase): + def test_straight_sweep_analytical_volume(self): + b=build(straight());r=next(iter(b['validation']['geometry_reports'].values())) + self.assertAlmostEqual(r['signed_volume'],6);self.assertEqual(r['boundary_edges'],0) + self.assertEqual(b['bounds'],{'min':[-1.,0.,-.5],'max':[1.,3.,.5]}) + def test_frames_are_right_handed_orthonormal(self): + pts=[[math.cos(i*.05)*5,math.sin(i*.05)*5,i*.02] for i in range(100)] + for f in frames(pts,twist=720): + self.assertAlmostEqual(dot(f['x'],f['y']),0,places=10) + self.assertAlmostEqual(dot(cross(f['x'],f['y']),f['z']),1,places=10) + def test_closed_frame_seam_and_mesh(self): + p=straight();p['nodes'][0]={'id':'path','op':'curve','params':{'xyz':['5*cos(t)','5*sin(t)',0],'closed':True,'segments':64},'visible':False} + b=build(p);r=next(iter(b['validation']['geometry_reports'].values())) + self.assertEqual(r['boundary_edges'],0);self.assertEqual(r['inconsistent_edges'],0) + result,_=evaluate(p);fs=result['frame']['frames'] + self.assertGreater(dot(fs[0]['x'],fs[-1]['x']),.99) + def test_closed_fractional_twist_rejected(self): + p=straight();p['nodes'][0]={'id':'path','op':'curve','params':{'xyz':['5*cos(t)','5*sin(t)',0],'closed':True},'visible':False};p['nodes'][1]['params']={'twist_degrees':180} + with self.assertRaisesRegex(ValueError,'multiple of 360'):build(p) + def test_closed_endpoint_mismatch_rejected(self): + with self.assertRaisesRegex(ValueError,'endpoints'):build(project([{'id':'curve','op':'curve','params':{'xyz':['t',0,0],'closed':True}}])) + def test_chord_quality_requirement_is_enforced(self): + with self.assertRaisesRegex(ValueError,'chord error'):build(project([{'id':'curve','op':'curve','params':{'xyz':['5*cos(t)','5*sin(t)',0],'closed':True,'segments':8,'max_chord_error':.001}}])) + def test_closed_polyline_needs_three_points(self): + with self.assertRaisesRegex(ValueError,'at least 3'):build(project([{'id':'line','op':'polyline','params':{'points':[[0,0,0],[1,0,0]],'closed':True}}])) + def test_concave_section_is_capped(self): + p=straight();p['nodes'][2]['params']['profile']=[[0,0],[2,0],[2,1],[1,1],[1,2],[0,2]] + r=next(iter(build(p)['validation']['geometry_reports'].values()));self.assertAlmostEqual(r['signed_volume'],9);self.assertEqual(r['boundary_edges'],0) + def test_self_crossing_section_rejected(self): + p=straight();p['nodes'][2]['params']['profile']=[[0,0],[2,2],[2,0],[0,2]] + with self.assertRaises(ValueError):build(p) + def test_thick_surface_volume(self): + b=build(project([{'id':'slab','op':'surface','params':{'xyz':['u','v',0],'u_domain':[0,2],'v_domain':[0,3],'u_segments':4,'v_segments':4,'thickness':.4}}])) + r=next(iter(b['validation']['geometry_reports'].values()));self.assertAlmostEqual(r['signed_volume'],2.4);self.assertEqual(r['boundary_edges'],0) + def test_open_surface_is_explicit(self): + b=build(project([{'id':'sheet','op':'surface','params':{'xyz':['u','v','u*v']}}]));self.assertTrue(b['validation']['warnings']) + def test_periodic_surface_torus(self): + p=project([{'id':'torus','op':'surface','params':{'xyz':['(5+cos(v))*cos(u)','(5+cos(v))*sin(u)','sin(v)'],'u_domain':[0,'tau'],'v_domain':[0,'tau'],'wrap_u':True,'wrap_v':True,'u_segments':32,'v_segments':16}}]) + r=next(iter(build(p)['validation']['geometry_reports'].values()));self.assertEqual(r['boundary_edges'],0);self.assertGreater(r['signed_volume'],90) + def test_loft(self): + p=project([{'id':'a','op':'polyline','params':{'points':[[0,0,0],[2,0,0],[2,2,0],[0,2,0]],'closed':True},'visible':False}, + {'id':'b','op':'polyline','params':{'points':[[0,0,3],[2,0,3],[2,2,3],[0,2,3]],'closed':True},'visible':False}, + {'id':'loft','op':'loft','inputs':{'sections':['a','b']}}]) + r=next(iter(build(p)['validation']['geometry_reports'].values()));self.assertAlmostEqual(r['signed_volume'],12) + def test_instances_share_geometry_and_have_stable_ids(self): + p=straight();p['nodes'][2]['visible']=False;p['nodes'].append({'id':'array','op':'repeat','inputs':{'source':'solid'},'params':{'count':4,'translate':[5,0,0]}}) + b=build(p);self.assertEqual(len(b['geometries']),1);self.assertEqual([o['id'] for o in b['objects']],['array/0000/main','array/0001/main','array/0002/main','array/0003/main']);self.assertEqual(b['bounds']['max'][0],16) + def test_transform_bounds(self): + p=straight();p['nodes'][2]['visible']=False;p['nodes'].append({'id':'moved','op':'transform','inputs':{'source':'solid'},'params':{'translate':[10,0,0],'rotate':[0,0,90],'scale':2}}) + b=build(p);self.assertAlmostEqual(b['bounds']['min'][0],4);self.assertAlmostEqual(b['bounds']['max'][1],2) + def test_invalid_reflection(self): + p=straight();p['nodes'].append({'id':'bad','op':'transform','inputs':{'source':'solid'},'params':{'scale':-1}}) + with self.assertRaisesRegex(ValueError,'positive'):build(p) + +class Graph(unittest.TestCase): + def test_order_independent_dependencies(self): + p=straight();b=build(p);p['nodes'].reverse();other=build(p) + self.assertEqual(b['geometries'],other['geometries']);self.assertEqual(b['objects'],other['objects']) + def test_cycles_and_missing_references(self): + p=straight();p['nodes'][0]={'id':'path','op':'transform','inputs':{'source':'solid'}} + with self.assertRaisesRegex(ValueError,'cycle'):build(p) + p=straight();p['nodes'][1]['inputs']['path']='absent' + with self.assertRaisesRegex(ValueError,'Missing node'):build(p) + def test_duplicate_id_and_version(self): + p=straight();p['nodes'].append(copy.deepcopy(p['nodes'][0])) + with self.assertRaisesRegex(ValueError,'Duplicate'):build(p) + p=straight();p['nodes'][0]['version']=500 + with self.assertRaisesRegex(ValueError,'version'):build(p) + def test_bundle_is_deterministic_and_tamper_evident(self): + b=build(straight());self.assertEqual(b,build(straight()));self.assertTrue(validate_bundle(b));b['objects'][0]['matrix'][0][3]=100 + with self.assertRaisesRegex(ValueError,'hash'):validate_bundle(b) + def test_demo_is_closed_and_valid(self): + b=build(demo_project());self.assertEqual(b['stats']['objects'],17);self.assertEqual(b['validation']['warnings'],[]) + for r in b['validation']['geometry_reports'].values():self.assertEqual(r['boundary_edges'],0) + def test_extension_registry(self): + @register_operator('test-guide',description='Test extension') + def guide(c,p,inputs):return {'kind':'curve','points':[[0,0,0],[c.number(p['length']),0,0]],'closed':False} + b=build(project([{'id':'custom','op':'test-guide','params':{'length':'L'}}],{'L':7}));self.assertEqual(b['bounds']['max'][0],7) + +if __name__=='__main__':unittest.main() diff --git a/tests/test_project.py b/tests/test_project.py new file mode 100644 index 0000000..0dcc6ef --- /dev/null +++ b/tests/test_project.py @@ -0,0 +1,34 @@ +import json +import tempfile +import unittest +from pathlib import Path +from spatial_lab.project import Project,write_json +from spatial_lab.examples import small_project + +class Editing(unittest.TestCase): + def setUp(self): + self.tmp=tempfile.TemporaryDirectory();self.path=Path(self.tmp.name)/'study.json';write_json(self.path,small_project());self.project=Project(self.path) + def tearDown(self):self.tmp.cleanup() + def test_edit_undo_redo_exactly(self): + original=self.project.build();modified=self.project.apply([{'action':'set_parameter','name':'height','value':8}]) + self.assertNotEqual(original['bundle_hash'],modified['bundle_hash']);self.assertEqual([o['id'] for o in original['objects']],[o['id'] for o in modified['objects']]) + self.assertEqual(Project(self.path).travel('undo'),original);self.assertEqual(Project(self.path).travel('redo'),modified) + def test_failed_transaction_changes_nothing(self): + before=self.path.read_bytes() + with self.assertRaises(ValueError):self.project.apply([{'action':'set_parameter','name':'height','value':9},{'action':'patch_node','id':'path','patch':{'params':{'xyz':['1/0',0,0]}}}]) + self.assertEqual(self.path.read_bytes(),before);self.assertFalse(self.project.history_path.exists()) + def test_dependency_aware_removal(self): + with self.assertRaisesRegex(ValueError,'used by'):self.project.apply([{'action':'remove_node','id':'path'}]) + b=self.project.apply([{'action':'remove_node','id':'path','cascade':True}]);self.assertEqual(b['stats']['nodes'],0) + self.assertEqual(self.project.travel('undo')['stats']['nodes'],3) + def test_add_and_patch_nodes(self): + b=self.project.apply([{'action':'upsert_node','node':{'id':'echo','op':'transform','inputs':{'source':'gallery'},'params':{'translate':[0,0,10]}}},{'action':'patch_node','id':'gallery','patch':{'visible':False}}]) + self.assertEqual(b['objects'][0]['id'],'echo/main');self.assertGreater(b['bounds']['min'][2],9) + def test_new_edit_clears_redo(self): + self.project.apply([{'action':'set_parameter','name':'height','value':8}]);self.project.travel('undo');self.project.apply([{'action':'set_parameter','name':'height','value':6}]) + with self.assertRaisesRegex(ValueError,'Nothing to redo'):self.project.travel('redo') + def test_external_edit_does_not_restore_stale_history(self): + self.project.apply([{'action':'set_parameter','name':'height','value':8}]);p=self.project.read();p['parameters']['height']=10;write_json(self.path,p) + with self.assertRaisesRegex(ValueError,'Nothing to undo'):self.project.travel('undo') + +if __name__=='__main__':unittest.main() diff --git a/tests/test_server.py b/tests/test_server.py new file mode 100644 index 0000000..a5f72a0 --- /dev/null +++ b/tests/test_server.py @@ -0,0 +1,36 @@ +import json +import tempfile +import threading +import unittest +import urllib.request +import urllib.error +from pathlib import Path +from spatial_lab.server import make_server +from spatial_lab.project import Project,write_json +from spatial_lab.examples import small_project + +class ViewerServer(unittest.TestCase): + def setUp(self): + self.tmp=tempfile.TemporaryDirectory();self.path=Path(self.tmp.name)/'study.json';write_json(self.path,small_project());self.server=make_server(self.path,0);self.thread=threading.Thread(target=self.server.serve_forever,daemon=True);self.thread.start();self.url=f'http://127.0.0.1:{self.server.server_port}' + def tearDown(self):self.server.shutdown();self.server.server_close();self.thread.join();self.tmp.cleanup() + def get(self,path):return urllib.request.urlopen(self.url+path) + def test_bundle_live_changes_and_etag(self): + with self.get('/api/bundle') as r:a=json.load(r);tag=r.headers['ETag'] + with self.assertRaises(urllib.error.HTTPError) as caught:urllib.request.urlopen(urllib.request.Request(self.url+'/api/bundle',headers={'If-None-Match':tag})) + self.assertEqual(caught.exception.code,304);caught.exception.close() + Project(self.path).apply([{'action':'set_parameter','name':'height','value':12}]) + with self.get('/api/bundle') as r:b=json.load(r) + self.assertNotEqual(a['project_hash'],b['project_hash']) + def test_error_does_not_silently_serve_stale_geometry(self): + with self.get('/api/bundle') as r:json.load(r) + self.path.write_text('{bad json') + with self.assertRaises(urllib.error.HTTPError) as caught:self.get('/api/bundle') + self.assertEqual(caught.exception.code,422);error=json.load(caught.exception);caught.exception.close();self.assertTrue(error['stale']);self.assertIn('error',error) + def test_no_arbitrary_file_access(self): + with self.assertRaises(urllib.error.HTTPError) as caught:self.get('/../../etc/passwd') + self.assertEqual(caught.exception.code,404);caught.exception.close() + def test_viewer_and_download(self): + with self.get('/') as r:self.assertIn(b'viewport',r.read()) + with self.get('/export.bundle.json') as r:self.assertIn('attachment',r.headers['Content-Disposition']);self.assertEqual(json.load(r)['schema'],'spatial-lab.bundle/1') + +if __name__=='__main__':unittest.main()