Copy disabled (too large)
Download .txt
Showing preview only (63,368K chars total). Download the full file to get everything.
Repository: adnanwahab/Simple-WebGPU
Branch: main
Commit: dd2f4d2227f3
Files: 478
Total size: 60.3 MB
Directory structure:
gitextract_35rvr7io/
├── .gitignore
├── .replit
├── __init__.py
├── backend/
│ ├── .gitignore
│ ├── .python-version
│ ├── README.md
│ ├── hi.py
│ └── marketing_source_sync.py
├── blog/
│ ├── .gitignore
│ ├── README.md
│ ├── bun.lockb
│ ├── index.ts
│ ├── observablehq.config.js
│ ├── package.json
│ └── src/
│ ├── .gitignore
│ ├── .observablehq/
│ │ └── deploy.json
│ ├── algorithms/
│ │ └── map-reduce.md
│ ├── components/
│ │ ├── editor.js
│ │ └── timeline.js
│ ├── connectivity/
│ │ ├── livekit-webrtc.md
│ │ └── tailscale-caddy-dns-porkbun.md
│ ├── cpp/
│ │ ├── concurrency-parallelism.md
│ │ └── memory-management.md
│ ├── data/
│ │ ├── events.json
│ │ └── launches.csv.js
│ ├── data-analysis/
│ │ ├── events.json
│ │ ├── launches.csv.js
│ │ └── olap.md
│ ├── data-vis/
│ │ ├── anomaly-detection.md
│ │ ├── capacity-planning.md
│ │ ├── crisis-diagnosis.md
│ │ └── systems-design.md
│ ├── devops/
│ │ ├── docker.md
│ │ └── terraform.md
│ ├── dynamicland/
│ │ └── dynamicland.md
│ ├── embedded/
│ │ ├── hardware-in-the-loop-simulation.md
│ │ └── zig.md
│ ├── hardware/
│ │ └── soldering-pcb-3d-printing.md
│ ├── index.md
│ ├── llms/
│ │ └── ollama-claude-o1-pro.md
│ ├── maps/
│ │ ├── hd-mapping.md
│ │ └── open-street-maps.md
│ ├── math/
│ │ ├── linear-algebra.md
│ │ ├── probability.md
│ │ └── real-analysis.md
│ ├── neuroscience/
│ │ ├── constructionism.md
│ │ ├── free-will.md
│ │ └── single-cell-analysis.md
│ ├── perception/
│ │ ├── object-detection.md
│ │ ├── scene-understanding.md
│ │ ├── semantic-segmentation.md
│ │ ├── sensor-calibration.md
│ │ └── vision-transformers.md
│ ├── python/
│ │ └── uv_jupyter_testing.md
│ ├── robotics/
│ │ └── motion-planning.md
│ └── simulation/
│ ├── Unity.md
│ ├── Unreal-Engine.md
│ └── reinforcement-learning.md
├── data/
│ ├── 150_algo_vis.json
│ ├── 150_games.json
│ ├── citations.txt
│ ├── cognitive_biases.json
│ ├── cognitive_biases.md
│ ├── data.json
│ ├── dynamicland/
│ │ └── everything.json
│ ├── educational robotics for 141 dollars _ Robotics Odyssey.html
│ ├── educational robotics for 141 dollars _ Robotics Odyssey_files/
│ │ ├── 1683-90852ff38d0f48c3.js
│ │ ├── 22305925
│ │ ├── 2549-d685c5a8b5e44383.js
│ │ ├── 3999-eb7c9b525e00cb6c.js
│ │ ├── 4169-a2f83540e7ed7bf5.js
│ │ ├── 7297-514aacfbea18160d.js
│ │ ├── 8234-563c4d907b8a6e14.js
│ │ ├── 8764-fb7153f259170265.js
│ │ ├── 9273-d14a7c3909b5f026.js
│ │ ├── 93497294
│ │ ├── 9430-e1d1710730c7a2db.js
│ │ ├── BTd3N5Oj2jk.html
│ │ ├── Main.js
│ │ ├── [...specifiers]-6a923aab3931db26.js
│ │ ├── _app-4ca44e0e0c4aea04.js
│ │ ├── _buildManifest.js
│ │ ├── _ssgManifest.js
│ │ ├── ad_status.js
│ │ ├── bTS-krGMW8fDflzgOBqs4RfQ289v88xjeZzvxqf94UM.js
│ │ ├── base.js
│ │ ├── cast_sender(1).js
│ │ ├── cast_sender.js
│ │ ├── clarity.js
│ │ ├── client.js
│ │ ├── d01c1a66254bf331.css
│ │ ├── dynamical-systems-xerox-parc-dynamicland.html
│ │ ├── embed.js
│ │ ├── framework-a17bb443126b4122.js
│ │ ├── htmx.org@1.9.3
│ │ ├── hyperscript.org@0.9.9
│ │ ├── js
│ │ ├── main-481a3b56229fbdcf.js
│ │ ├── mootools.js
│ │ ├── ok8h7h9e0q
│ │ ├── output.css
│ │ ├── perception.html
│ │ ├── polyfills-42372ed130431b0a.js
│ │ ├── prediction@124.html
│ │ ├── remote.js
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource.html
│ │ ├── simulation.html
│ │ ├── style.css
│ │ ├── webpack-165ff3e7383b672c.js
│ │ ├── worker-BxqpBb1S.css
│ │ ├── worker-DfKuigH-.js
│ │ ├── worker-lLzrCfCS(1).html
│ │ ├── worker-lLzrCfCS(2).html
│ │ ├── worker-lLzrCfCS(3).html
│ │ ├── worker-lLzrCfCS.html
│ │ ├── www-embed-player.js
│ │ └── www-player.css
│ ├── first_flyio/
│ │ ├── Dockerfile
│ │ ├── connect_to_livekit.py
│ │ ├── fly.toml
│ │ ├── main.py
│ │ └── start.sh
│ ├── games_collection.json
│ ├── machines.json
│ ├── magic_iframe.js
│ ├── mental_models.json
│ ├── misc_vis.json
│ └── parsed_links.json
├── go-libo-demo/
│ ├── go.mod
│ ├── go.sum
│ └── main.go
├── hello.py
├── notebooks/
│ ├── Rtings_for_robotics.ipynb
│ ├── Untitled.ipynb
│ ├── browser_base_research_agent.py
│ ├── dist/
│ │ ├── _file/
│ │ │ └── data/
│ │ │ ├── events.46a3a628.json
│ │ │ └── launches.5c43450e.csv
│ │ ├── _import/
│ │ │ └── components/
│ │ │ └── timeline.3a99cfed.js
│ │ ├── _npm/
│ │ │ ├── @observablehq/
│ │ │ │ ├── plot@0.6.16/
│ │ │ │ │ └── d3b1d894.js
│ │ │ │ └── sample-datasets@1.0.1/
│ │ │ │ ├── aapl.csv
│ │ │ │ └── penguins.csv
│ │ │ ├── binary-search-bounds@2.0.5/
│ │ │ │ └── 1ee6c50d.js
│ │ │ ├── d3-array@3.2.4/
│ │ │ │ └── 37839b6a.js
│ │ │ ├── d3-axis@3.0.0/
│ │ │ │ └── bd0afa17.js
│ │ │ ├── d3-brush@3.0.0/
│ │ │ │ └── 6495590f.js
│ │ │ ├── d3-chord@3.0.1/
│ │ │ │ └── 84d7b8e9.js
│ │ │ ├── d3-color@3.1.0/
│ │ │ │ └── 2c0cdfa2.js
│ │ │ ├── d3-contour@4.0.2/
│ │ │ │ └── d496a3b3.js
│ │ │ ├── d3-delaunay@6.0.4/
│ │ │ │ └── 00c41b5d.js
│ │ │ ├── d3-dispatch@3.0.1/
│ │ │ │ └── b5f7cdc6.js
│ │ │ ├── d3-drag@3.0.0/
│ │ │ │ └── ef06b1ff.js
│ │ │ ├── d3-dsv@3.0.1/
│ │ │ │ └── 407f7a1f.js
│ │ │ ├── d3-ease@3.0.1/
│ │ │ │ └── 6f15f633.js
│ │ │ ├── d3-fetch@3.0.1/
│ │ │ │ └── 35880c2a.js
│ │ │ ├── d3-force@3.0.0/
│ │ │ │ └── 5e1ff060.js
│ │ │ ├── d3-format@3.1.0/
│ │ │ │ └── 33fb7288.js
│ │ │ ├── d3-geo@3.1.1/
│ │ │ │ └── 5e427f4b.js
│ │ │ ├── d3-hierarchy@3.1.2/
│ │ │ │ └── f1db2593.js
│ │ │ ├── d3-interpolate@3.0.1/
│ │ │ │ └── 034b7bcb.js
│ │ │ ├── d3-path@3.1.0/
│ │ │ │ └── 4bb53638.js
│ │ │ ├── d3-polygon@3.0.1/
│ │ │ │ └── bbafde58.js
│ │ │ ├── d3-quadtree@3.0.1/
│ │ │ │ └── aa5b35a8.js
│ │ │ ├── d3-random@3.0.1/
│ │ │ │ └── 32c7fec2.js
│ │ │ ├── d3-scale-chromatic@3.1.0/
│ │ │ │ └── cf9b720b.js
│ │ │ ├── d3-scale@4.0.2/
│ │ │ │ └── 4143aac9.js
│ │ │ ├── d3-selection@3.0.0/
│ │ │ │ └── a4e530fb.js
│ │ │ ├── d3-shape@3.2.0/
│ │ │ │ └── be692bd9.js
│ │ │ ├── d3-time-format@4.1.0/
│ │ │ │ └── 28d1ef76.js
│ │ │ ├── d3-time@3.1.0/
│ │ │ │ └── 3a9ac1c1.js
│ │ │ ├── d3-timer@3.0.1/
│ │ │ │ └── f31b5398.js
│ │ │ ├── d3-transition@3.0.1/
│ │ │ │ └── 0c259fbf.js
│ │ │ ├── d3-zoom@3.0.0/
│ │ │ │ └── da4a6ccc.js
│ │ │ ├── d3@7.9.0/
│ │ │ │ └── fcf2830e.js
│ │ │ ├── delaunator@5.0.1/
│ │ │ │ └── e67acb27.js
│ │ │ ├── internmap@2.0.3/
│ │ │ │ └── 5eed35fd.js
│ │ │ ├── interval-tree-1d@1.0.4/
│ │ │ │ └── a62ae5ce.js
│ │ │ ├── isoformat@0.2.1/
│ │ │ │ └── c68fbd73.js
│ │ │ └── robust-predicates@3.0.2/
│ │ │ └── 8ac9039b.js
│ │ ├── _observablehq/
│ │ │ ├── client.966d4ea1.js
│ │ │ ├── runtime.f168f711.js
│ │ │ ├── stdlib.1d18d6f6.js
│ │ │ ├── theme-air,near-midnight,alt,wide.db1cdf55.css
│ │ │ └── theme-air,near-midnight.dcdbf18e.css
│ │ ├── example-dashboard.html
│ │ ├── example-report.html
│ │ └── index.html
│ ├── dynamicland.ipynb
│ ├── geospatial.ipynb
│ ├── learning_from_driving.ipynb
│ ├── polars_geospatial.ipynb
│ ├── prediction/
│ │ └── prediction.ipynb
│ ├── simulation/
│ │ └── simulation.ipynb
│ ├── simulation_editor/
│ │ ├── .gitignore
│ │ ├── bun.lockb
│ │ ├── netlify.toml
│ │ ├── package.json
│ │ ├── readme.md
│ │ ├── src/
│ │ │ ├── addToScene.js
│ │ │ ├── createBox.js
│ │ │ ├── createFloor.js
│ │ │ ├── createMeshForShape.js
│ │ │ ├── dist/
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── assets/
│ │ │ │ │ └── index-CC6HPAIA.js
│ │ │ │ ├── draco/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── draco_decoder.js
│ │ │ │ │ ├── draco_decoder.wasm
│ │ │ │ │ ├── draco_encoder.js
│ │ │ │ │ ├── draco_wasm_wrapper.js
│ │ │ │ │ └── gltf/
│ │ │ │ │ ├── draco_decoder.js
│ │ │ │ │ ├── draco_decoder.wasm
│ │ │ │ │ ├── draco_encoder.js
│ │ │ │ │ └── draco_wasm_wrapper.js
│ │ │ │ ├── index.html
│ │ │ │ ├── js/
│ │ │ │ │ ├── debug-renderer.js
│ │ │ │ │ ├── example.js
│ │ │ │ │ ├── jolt-physics.multithread.wasm-compat.js
│ │ │ │ │ ├── jolt-physics.wasm-compat.js
│ │ │ │ │ ├── object_stream.js
│ │ │ │ │ ├── ragdoll_loader.js
│ │ │ │ │ ├── soft-body-creator.js
│ │ │ │ │ └── three/
│ │ │ │ │ ├── CSS3DRenderer.js
│ │ │ │ │ ├── OrbitControls.js
│ │ │ │ │ └── WebGL.js
│ │ │ │ ├── mini_home.gltf
│ │ │ │ ├── models/
│ │ │ │ │ ├── .gitkeep
│ │ │ │ │ └── DamagedHelmet/
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── glTF/
│ │ │ │ │ └── DamagedHelmet.gltf
│ │ │ │ └── textures/
│ │ │ │ └── Park2/
│ │ │ │ └── readme.txt
│ │ │ ├── getSoftBodyMesh.js
│ │ │ ├── getThreeObjectForBody.js
│ │ │ ├── index.css
│ │ │ ├── index.html
│ │ │ ├── initGraphics.js
│ │ │ ├── initPhysics.js
│ │ │ ├── lighting.js
│ │ │ ├── main.js
│ │ │ ├── onWindowResize.js
│ │ │ ├── postprocessing.js
│ │ │ ├── renderLoop.js
│ │ │ ├── renderhelmet.js
│ │ │ ├── setupCollisionFiltering.js
│ │ │ ├── setupExample.js
│ │ │ ├── updatePhysics.js
│ │ │ └── utils/
│ │ │ ├── cool_lighting.js
│ │ │ ├── edit_scene.js
│ │ │ ├── games_list_view.js
│ │ │ ├── gltf-loader.js
│ │ │ ├── handleUserInput.js
│ │ │ ├── jolt-physics.wasm-compat.js
│ │ │ ├── lyricDetector.js
│ │ │ ├── play_karaoke.js
│ │ │ └── wiki-game.ts
│ │ ├── static/
│ │ │ ├── .gitkeep
│ │ │ ├── draco/
│ │ │ │ ├── README.md
│ │ │ │ ├── draco_decoder.js
│ │ │ │ ├── draco_decoder.wasm
│ │ │ │ ├── draco_encoder.js
│ │ │ │ ├── draco_wasm_wrapper.js
│ │ │ │ └── gltf/
│ │ │ │ ├── draco_decoder.js
│ │ │ │ ├── draco_decoder.wasm
│ │ │ │ ├── draco_encoder.js
│ │ │ │ └── draco_wasm_wrapper.js
│ │ │ ├── js/
│ │ │ │ ├── debug-renderer.js
│ │ │ │ ├── example.js
│ │ │ │ ├── jolt-physics.multithread.wasm-compat.js
│ │ │ │ ├── jolt-physics.wasm-compat.js
│ │ │ │ ├── object_stream.js
│ │ │ │ ├── ragdoll_loader.js
│ │ │ │ ├── soft-body-creator.js
│ │ │ │ └── three/
│ │ │ │ ├── CSS3DRenderer.js
│ │ │ │ ├── OrbitControls.js
│ │ │ │ └── WebGL.js
│ │ │ ├── mini_home.gltf
│ │ │ ├── models/
│ │ │ │ ├── .gitkeep
│ │ │ │ └── DamagedHelmet/
│ │ │ │ ├── README.md
│ │ │ │ └── glTF/
│ │ │ │ └── DamagedHelmet.gltf
│ │ │ └── textures/
│ │ │ └── Park2/
│ │ │ └── readme.txt
│ │ └── vite.config.js
│ ├── src/
│ │ └── .observablehq/
│ │ └── cache/
│ │ ├── _build.json
│ │ ├── _npm/
│ │ │ ├── @observablehq/
│ │ │ │ ├── plot@0.6.16/
│ │ │ │ │ ├── _esm.js
│ │ │ │ │ └── package.json
│ │ │ │ └── sample-datasets@1.0.1/
│ │ │ │ ├── aapl.csv
│ │ │ │ └── penguins.csv
│ │ │ ├── binary-search-bounds@2.0.5/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-array@3.2.4/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── d3-axis@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-brush@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-chord@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-color@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-contour@4.0.2/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-delaunay@6.0.4/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── d3-dispatch@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-drag@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-dsv@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-ease@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-fetch@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-force@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-format@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-geo@3.1.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-hierarchy@3.1.2/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-interpolate@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-path@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-polygon@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-quadtree@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-random@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-scale-chromatic@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-scale@4.0.2/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-selection@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-shape@3.2.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-time-format@4.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-time@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-timer@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-transition@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-zoom@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3@7.9.0/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── delaunator@5.0.1/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── internmap@2.0.3/
│ │ │ │ └── _esm.js
│ │ │ ├── interval-tree-1d@1.0.4/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── isoformat@0.2.1/
│ │ │ │ └── _esm.js
│ │ │ └── robust-predicates@3.0.2/
│ │ │ └── _esm.js
│ │ ├── _observablehq/
│ │ │ ├── client.js
│ │ │ ├── runtime.js
│ │ │ └── stdlib.js
│ │ └── data/
│ │ └── launches.csv
│ └── whisper-transcribe.py
├── pyproject.toml
├── readme.md
├── replit.nix
├── scripts/
│ ├── archive/
│ │ ├── add_domain_to_resend.ts
│ │ ├── auto_organize_desktop.sh
│ │ ├── automate_observablehq.ts
│ │ ├── file-rewriter.ts
│ │ ├── find_all_markdowns.sh
│ │ ├── flirtflow.ts
│ │ ├── fly_bun_proxy/
│ │ │ ├── http.ts
│ │ │ └── package.json
│ │ ├── gifmaker.ts
│ │ ├── livekit_webhook.ts
│ │ ├── llama-in-the-loop.ts
│ │ ├── playwright.ts
│ │ ├── readme
│ │ ├── src/
│ │ │ ├── agents/
│ │ │ │ └── playwright-optimizely.ts
│ │ │ ├── archive/
│ │ │ │ └── web/
│ │ │ │ └── web.ts
│ │ │ └── caddy/
│ │ │ └── hashirama.html
│ │ └── walk_social_graph.ts
│ ├── bun.lockb
│ ├── click_house_mock.ts
│ ├── index.ts
│ ├── infra/
│ │ ├── gpu/
│ │ │ ├── Caddyfile
│ │ │ ├── _jupyterconfig/
│ │ │ │ ├── jupyter_lab_config.py
│ │ │ │ ├── jupyter_server_config.py
│ │ │ │ ├── lab/
│ │ │ │ │ └── workspaces/
│ │ │ │ │ └── default-37a8.jupyterlab-workspace
│ │ │ │ └── migrated
│ │ │ ├── debug_caddy.sh
│ │ │ └── simple-setup.sh
│ │ └── gpu2/
│ │ └── Caddyfile
│ ├── install.sh
│ ├── octokit.ts
│ ├── osm-parse.ts
│ ├── package.json
│ ├── process_311.ts
│ ├── process_311_into_bins.ts
│ ├── sqlite_db.ts
│ ├── supabase_browser.ts
│ ├── tigris.ts
│ └── tools/
│ ├── livekit.ts
│ ├── playlist.ts
│ └── playwright/
│ ├── dynamicland_book_shelf.ts
│ ├── dynamicland_bookshelf.json
│ ├── linkedin-parse-companies.ts
│ ├── parse_dynamicland.ts
│ ├── waymo.json
│ └── zoox.json
├── server.py
└── web/
├── .gitignore
├── README.md
├── bun.lockb
├── homelab/
│ └── data/
│ └── errors.json
├── next.config.ts
├── package.json
├── postcss.config.mjs
├── prettier.config.js
├── public/
│ └── bootstrap.sh
├── src/
│ ├── .next/
│ │ ├── app-build-manifest.json
│ │ ├── build-manifest.json
│ │ ├── cache/
│ │ │ └── .rscinfo
│ │ ├── fallback-build-manifest.json
│ │ ├── package.json
│ │ ├── react-loadable-manifest.json
│ │ ├── server/
│ │ │ ├── app-paths-manifest.json
│ │ │ ├── interception-route-rewrite-manifest.js
│ │ │ ├── middleware-build-manifest.js
│ │ │ ├── middleware-manifest.json
│ │ │ ├── middleware-react-loadable-manifest.js
│ │ │ ├── next-font-manifest.js
│ │ │ ├── next-font-manifest.json
│ │ │ ├── pages-manifest.json
│ │ │ ├── server-reference-manifest.js
│ │ │ └── server-reference-manifest.json
│ │ ├── static/
│ │ │ └── development/
│ │ │ ├── _buildManifest.js
│ │ │ ├── _clientMiddlewareManifest.json
│ │ │ └── _ssgManifest.js
│ │ └── trace
│ ├── app/
│ │ ├── api/
│ │ │ ├── group_chat/
│ │ │ │ └── route.ts
│ │ │ ├── livekit/
│ │ │ │ └── get_token/
│ │ │ │ └── route.ts
│ │ │ ├── object_state_change/
│ │ │ │ └── route.ts
│ │ │ ├── resend/
│ │ │ │ └── route.ts
│ │ │ ├── supabase/
│ │ │ │ └── route.ts
│ │ │ ├── vehicle_data/
│ │ │ │ └── route.ts
│ │ │ └── vis/
│ │ │ └── route.ts
│ │ ├── blog/
│ │ │ ├── dynamicland_2025/
│ │ │ │ ├── content.md
│ │ │ │ ├── markdown-styles.module.css
│ │ │ │ └── page.tsx
│ │ │ ├── events.json
│ │ │ ├── health_tensor_hospital_of_the_future/
│ │ │ │ ├── content.md
│ │ │ │ ├── markdown-styles.module.css
│ │ │ │ └── page.tsx
│ │ │ └── page.tsx
│ │ ├── demos/
│ │ │ ├── 0/
│ │ │ │ └── page.jsx
│ │ │ ├── 1/
│ │ │ │ └── page.jsx
│ │ │ ├── 2/
│ │ │ │ └── page.tsx
│ │ │ ├── 4/
│ │ │ │ └── page.tsx
│ │ │ ├── 51/
│ │ │ │ └── page.tsx
│ │ │ ├── 79/
│ │ │ │ └── page.tsx
│ │ │ ├── 83/
│ │ │ │ └── page.jsx
│ │ │ ├── karaoke/
│ │ │ │ └── page.tsx
│ │ │ └── map/
│ │ │ └── page.jsx
│ │ ├── error.tsx
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ ├── loading.tsx
│ │ ├── not-found.tsx
│ │ ├── page.tsx
│ │ ├── providers.tsx
│ │ ├── robotics-odyssey/
│ │ │ └── page.tsx
│ │ ├── simulation_game/
│ │ │ └── page.tsx
│ │ └── tools/
│ │ ├── git_visualizer/
│ │ │ └── page.tsx
│ │ ├── group_chat/
│ │ │ └── page.jsx
│ │ ├── livekit/
│ │ │ └── page.tsx
│ │ ├── page.tsx
│ │ ├── resume/
│ │ │ └── page.tsx
│ │ └── tailscale/
│ │ └── page.tsx
│ ├── components/
│ │ ├── ArticleLayout.tsx
│ │ ├── Card.tsx
│ │ ├── Container.tsx
│ │ ├── Dialog.tsx
│ │ ├── Footer.tsx
│ │ ├── Header.tsx
│ │ ├── HomePageHeader.jsx
│ │ ├── ImageGallery.tsx
│ │ ├── Layout.tsx
│ │ ├── MagicIframe.jsx
│ │ ├── PortfolioGrid.tsx
│ │ ├── Prose.tsx
│ │ ├── Section.tsx
│ │ ├── SimpleLayout.tsx
│ │ ├── Sliders.jsx
│ │ ├── SocialIcons.tsx
│ │ ├── cover-image.tsx
│ │ ├── pageflip.jsx
│ │ └── texteditor.jsx
│ ├── interfaces/
│ │ ├── author.ts
│ │ └── post.ts
│ ├── lib/
│ │ ├── AudioAPI.js
│ │ ├── articles.ts
│ │ ├── constants.ts
│ │ ├── formatDate.ts
│ │ ├── markdownToHtml.ts
│ │ └── supabaseClient.ts
│ └── tsconfig.json
├── tailwind.config.ts
└── tsconfig.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.DS_Store
/dist/
node_modules/
yarn-error.log
.ropeproject/
.bunlockb
.ipynb_checkpoints
# Build directory
build/
out/
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# IDE specific files
.vscode/
.idea/
*.swp
node_modules
# Local Netlify folder
.netlify
================================================
FILE: .replit
================================================
entrypoint = "scripts/index.ts"
[nix]
channel = "stable-24_05"
[deployment]
run = ["bun", "run", "scripts/index.ts"]
deploymentTarget = "cloudrun"
================================================
FILE: __init__.py
================================================
print(123)
================================================
FILE: backend/.gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
================================================
FILE: backend/.python-version
================================================
3.10
================================================
FILE: backend/README.md
================================================
```bash
# lint
uvx ruff format marketing_source_sync.py
# type check
uvx mypy --strict marketing_source_sync.py
# run test
uvx pytest marketing_source_sync.py
# or
python -m unittest marketing_source_sync.py
```
================================================
FILE: backend/hi.py
================================================
def main():
print("Hello from anus!")
if __name__ == "__main__":
main()
================================================
FILE: backend/marketing_source_sync.py
================================================
# from dataclasses import dataclass
# from datetime import date, timedelta
# import sqlite3
# from typing import Iterator, List
# import unittest
# _db = sqlite3.connect(":memory:")
# CREATE_MARKETING_SOURCES_TABLE = """
# CREATE TABLE marketing_sources (
# id INTEGER PRIMARY KEY,
# name TEXT,
# synced_until TEXT
# )
# """
# CREATE_MARKETING_SOURCE_DATA_TABLE = """
# CREATE TABLE marketing_source_data (
# marketing_source_id INTEGER,
# ad_id INTEGER,
# date TEXT,
# impressions REAL,
# clicks REAL,
# conversions REAL,
# spend REAL,
# FOREIGN KEY (marketing_source_id) REFERENCES marketing_sources(id)
# )
# """
# @dataclass
# class MarkingSourceRow:
# ad_id: int
# date: date
# impressions: float
# clicks: float
# conversions: float
# spend: float
# class DummyMarketingSource:
# """Dummy marketing source sync implementation.
# (!) This implementation is entirely correct and complete.
# This dummy source has 10 active ads.
# Each ad serves 1000 impressions, 100 clicks and 1 conversion, and spends $10 per day.
# E.g. for since: 2021-01-01, until: 2021-01-03, the data would be:
# ad_id | date | impressions | clicks | conversions | spend
# ------|------------|-------------|--------|-------------|------
# 0 | 2021-01-01 | 1000 | 100 | 1 | 10
# 0 | 2021-01-02 | 1000 | 100 | 1 | 10
# 0 | 2021-01-03 | 1000 | 100 | 1 | 10
# 1 | 2021-01-01 | 1000 | 100 | 1 | 10
# 1 | 2021-01-02 | 1000 | 100 | 1 | 10
# 1 | 2021-01-03 | 1000 | 100 | 1 | 10
# 2 | 2021-01-01 | 1000 | 100 | 1 | 10
# ...
# """
# def get_data(self, since: date, until: date) -> Iterator[MarkingSourceRow]:
# yield from [
# MarkingSourceRow(
# ad_id=ad_id,
# date=date,
# impressions=1000,
# clicks=100,
# conversions=1,
# spend=10,
# )
# for ad_id in range(10)
# for date in [
# since + timedelta(days=i) for i in range((until - since).days + 1)
# ]
# ]
# @dataclass
# class MarketingsourceSyncer:
# """Syncs marketing source data from a third-party API to the database."""
# id_: int
# def run(self, until: date) -> None:
# impl = self._get_sync_impl()
# since = self._get_sync_cursor()
# for row in impl.get_data(since, until):
# self._save_row(row)
# self._update_synced_until(until)
# def _get_sync_impl(self) -> DummyMarketingSource:
# """Returns a marketing source sync implementation based on the source's type.
# For now, we only have a dummy implementation."""
# return DummyMarketingSource()
# def _get_sync_cursor(self) -> date:
# """Returns the last synced timestamp for the marketing source."""
# synced_until: str | None = _db.execute(
# "SELECT synced_until FROM marketing_sources WHERE id = ?", (self.id_,)
# ).fetchone()[0]
# if synced_until is None:
# # initial sync: sync the last 7 days (including today)
# return date.today() - timedelta(days=6)
# return date.fromisoformat(synced_until)
# def _update_synced_until(self, until: date) -> None:
# """Updates the synced_until timestamp to the current progress for the marketing source."""
# _db.execute(
# "UPDATE marketing_sources SET synced_until = ? WHERE id = ?",
# (until.isoformat(), self.id_),
# )
# def _save_row(self, row: MarkingSourceRow) -> None:
# """Saves the marketing source data to the database."""
# _db.execute(
# """
# INSERT INTO marketing_source_data (marketing_source_id, ad_id, date, impressions, clicks, conversions, spend)
# VALUES (?, ?, ?, ?, ?, ?, ?)
# """,
# (
# self.id_,
# row.ad_id,
# row.date.isoformat(),
# row.impressions,
# row.clicks,
# row.conversions,
# row.spend,
# ),
# )
# class TestMarketingSourceSync(unittest.TestCase):
# def setUp(self) -> None:
# self._migrate_db()
# self._dummy_sync_id = self._create_sync("Dummy source")
# def tearDown(self) -> None:
# self._clean_db()
# def test_marketing_source_initial(self) -> None:
# # run an initial sync
# until = date.today()
# syncer = MarketingsourceSyncer(self._dummy_sync_id)
# syncer.run(until)
# # verify the resulting metrics
# totals = _db.execute(
# "SELECT count(*), sum(impressions), sum(clicks), sum(conversions), sum(spend) FROM marketing_source_data WHERE marketing_source_id = ?",
# (self._dummy_sync_id,),
# ).fetchone()
# self.assertEqual(totals, (70, 70_000, 7_000, 70, 700))
# def _migrate_db(self) -> None:
# _db.execute(CREATE_MARKETING_SOURCE_DATA_TABLE)
# _db.execute(CREATE_MARKETING_SOURCES_TABLE)
# def _clean_db(self) -> None:
# _db.execute("DROP TABLE marketing_source_data")
# _db.execute("DROP TABLE marketing_sources")
# def _create_sync(self, name: str) -> int:
# id_: int = _db.execute(
# "INSERT INTO marketing_sources (name, synced_until) VALUES (?, ?) RETURNING id",
# (name, None),
# ).fetchone()[0]
# return id_
# """
# In production, we notice that the data displayed by Converge does not match the data from the third-party API.
# While the data from the backfilled 7 days is correct, from the moment the sync is turned on, we see the following:
# | impressions | clicks | conversions | spend |
# date | cvg | dummy | cvg | dummy | cvg | dummy | cvg | dummy |
# -----------|-------|-------|-------|-------|-------|-------|-------|--------|
# 2021-01-01 | 1000 | 1000 | 100 | 100 | 1 | 1 | 10 | 10 | <--- backfilled
# 2021-01-02 | 1000 | 1000 | 100 | 100 | 1 | 1 | 10 | 10 | <--- backfilled
# 2021-01-03 | 1000 | 1000 | 100 | 100 | 1 | 1 | 10 | 10 | <--- backfilled
# 2021-01-04 | 1000 | 1000 | 100 | 100 | 1 | 1 | 10 | 10 | <--- backfilled
# 2021-01-05 | 1000 | 1000 | 100 | 100 | 1 | 1 | 10 | 10 | <--- backfilled
# 2021-01-06 | 1000 | 1000 | 100 | 100 | 1 | 1 | 10 | 10 | <--- backfilled
# 2021-01-07 | 2000 | 1000 | 200 | 100 | 2 | 1 | 20 | 10 | <--- sync turned on
# 2021-01-08 | 2000 | 1000 | 200 | 100 | 2 | 1 | 20 | 10 | <--- sync active
# 2021-01-09 | 2000 | 1000 | 200 | 100 | 2 | 1 | 20 | 10 | <--- sync active
# 2021-01-10 | 2000 | 1000 | 200 | 100 | 2 | 1 | 20 | 10 | <--- today
# Find the bug, fix it, and write a unit test to ensure it does not reappear.
# """
================================================
FILE: blog/.gitignore
================================================
.DS_Store
/dist/
node_modules/
yarn-error.log
================================================
FILE: blog/README.md
================================================
# robotics-odyssey = a living document - edited by 8 billion scientist artist wizards 2026
https://roboticsuniversity.observablehq.cloud/dynamicbotnotebook/ -
This is an [Observable Framework](https://observablehq.com/framework/) app. To install the required dependencies, run:
```
npm install
```
Then, to start the local preview server, run:
```
npm run dev
```
Then visit <http://localhost:3000> to preview your app.
For more, see <https://observablehq.com/framework/getting-started>.
## Project structure
A typical Framework project looks like this:
```ini
.
├─ src
│ ├─ components
│ │ └─ timeline.js # an importable module
│ ├─ data
│ │ ├─ launches.csv.js # a data loader
│ │ └─ events.json # a static data file
│ ├─ example-dashboard.md # a page
│ ├─ example-report.md # another page
│ └─ index.md # the home page
├─ .gitignore
├─ observablehq.config.js # the app config file
├─ package.json
└─ README.md
```
**`src`** - This is the “source root” — where your source files live. Pages go here. Each page is a Markdown file. Observable Framework uses [file-based routing](https://observablehq.com/framework/project-structure#routing), which means that the name of the file controls where the page is served. You can create as many pages as you like. Use folders to organize your pages.
**`src/index.md`** - This is the home page for your app. You can have as many additional pages as you’d like, but you should always have a home page, too.
**`src/data`** - You can put [data loaders](https://observablehq.com/framework/data-loaders) or static data files anywhere in your source root, but we recommend putting them here.
**`src/components`** - You can put shared [JavaScript modules](https://observablehq.com/framework/imports) anywhere in your source root, but we recommend putting them here. This helps you pull code out of Markdown files and into JavaScript modules, making it easier to reuse code across pages, write tests and run linters, and even share code with vanilla web applications.
**`observablehq.config.js`** - This is the [app configuration](https://observablehq.com/framework/config) file, such as the pages and sections in the sidebar navigation, and the app’s title.
## Command reference
| Command | Description |
| ----------------- | -------------------------------------------------------- |
| `npm install` | Install or reinstall dependencies |
| `npm run dev` | Start local preview server |
| `npm run build` | Build your static site, generating `./dist` |
| `npm run deploy` | Deploy your app to Observable |
| `npm run clean` | Clear the local data loader cache |
| `npm run observable` | Run commands like `observable help` |
================================================
FILE: blog/index.ts
================================================
import fs from "fs";
// fs.readdirSync("src").forEach((folder) => {
// if (fs.statSync(`src/${folder}`).isDirectory()) {
// const dir = `src/${folder}`;
// fs.readdirSync(`${dir}`).forEach((file) => {
// const fileName = `${dir}/${file}`;
// console.log(fileName);
// // fs.appendFileSync(
// // fileName,
// // `<a href="https://github.com/BotParty/homelab_status_page/blob/main/[${folder}/${file}](${folder}/${file})">click here to edit</a>\n`,
// // );
// });
// }
// });
import config from "./observablehq.config";
config.pages.forEach((folder) => {
folder.pages.forEach((page) => {
const thisPage = page.path;
const href = `<a href="https://github.com/adnanwahab/homelab/blob/main/src/${thisPage}">click here to edit this document</a>`;
console.log(href);
//fs.unlinkSync("src/" + thisPage);
//fs.appendFileSync("src/" + thisPage + ".md", href);
const frontMatter = `---\ntitle: ${page.name}\n---\n${href}`;
console.log(frontMatter);
// fs.appendFileSync("src/" + thisPage + ".md", frontMatter);
});
});
================================================
FILE: blog/observablehq.config.js
================================================
export default {
title: "robotics-odyssey",
pages: [
{
name: "Geospatial HD Mapping",
pages: [
{
name: "Open street maps osmium",
path: "/maps/open-street-maps",
},
{ name: "HD Mapping", path: "/maps/hd-mapping" },
],
},
{
name: "Modern C++",
pages: [
{ name: "Memory Management", path: "/cpp/memory-management" },
{
name: "Concurrency & Parallelism",
path: "/cpp/concurrency-parallelism",
},
],
},
{
name: "Simulation ",
pages: [
{
name: "Reinforcement Learning",
path: "/simulation/reinforcement-learning",
},
{ name: "Unreal Engine", path: "/simulation/Unreal-Engine" },
],
},
// {
// name: "Embedded Systems",
// pages: [
// { name: "zig", path: "/embedded/zig" },
// {
// name: "hardware in the loop simulation",
// path: "/embedded/hardware-in-the-loop-simulation",
// },
// ],
// },
// {
// name: "Computer Vision",
// pages: [
// {
// name: "Object Detection with yolo",
// path: "/perception/object-detection",
// },
// {
// name: "Scene Understanding",
// path: "/perception/scene-understanding",
// },
// {
// name: "Semantic Segmentation with segment-anything-2",
// path: "/perception/semantic-segmentation",
// },
// {
// name: "Sensor Calibration",
// path: "/perception/sensor-calibration",
// },
// ],
// },
// {
// name: "Devops",
// pages: [
// { name: "terraform", path: "/devops/terraform" },
// { name: "docker", path: "/devops/docker" },
// ],
// },
// {
// name: "Robotics",
// pages: [
// { name: "Motion Planning", path: "/robotics/motion-planning" },
// ],
// },
// {
// name: "Hardware Engineering",
// pages: [
// {
// name: "Soldering, PCB, and 3D Printing",
// path: "/hardware/soldering-pcb-3d-printing",
// },
// ],
// },
// {
// name: "Data Visualization",
// pages: [
// {
// name: "capacity planning",
// path: "/data-vis/capacity-planning",
// },
// {
// name: "Anomaly Detection",
// path: "/data-vis/anomaly-detection",
// },
// { name: "Systems Design", path: "/data-vis/systems-design" },
// {
// name: "Crisis Diagnosis",
// path: "/data-vis/crisis-diagnosis",
// },
// ],
// },
// {
// name: "Data Analysis",
// pages: [{ name: "olap", path: "/data-analysis/olap" }],
// },
// {
// name: "Networking and Connectivity",
// pages: [
// {
// name: "Dashboard",
// path: "/connectivity/tailscale-caddy-dns-porkbun",
// },
// { name: "Report", path: "/connectivity/livekit-webrtc" },
// ],
// },
// {
// name: "LLMs theory and practice",
// pages: [
// {
// name: "ollama-claude-o1-pro",
// path: "/llms/ollama-claude-o1-pro",
// },
// ],
// },
// {
// name: "Python Fundamentals",
// pages: [
// {
// name: "uv jupyter testing",
// path: "/python/uv_jupyter_testing",
// },
// ],
// },
// {
// name: "NeuroScience and Biotech",
// pages: [
// { name: "Free will", path: "/neuroscience/free-will" },
// {
// name: "Single Cell Analysis",
// path: "/neuroscience/single-cell-analysis",
// },
// ],
// },
// {
// name: "Dynamicland",
// pages: [{ name: "Dynamicland", path: "/dynamicland/dynamicland" }],
// },
// {
// name: "Embedded Systems",
// pages: [
// { name: "zig", path: "/embedded/zig" },
// {
// name: "hardware in the loop simulation",
// path: "/embedded/hardware-in-the-loop-simulation",
// },
// ],
// },
// {
// name: "Simulation with Unreal Engine",
// pages: [
// {
// name: "Dashboard",
// path: "/simulation/reinforcement-learning",
// },
// { name: "Report", path: "/simulation/reinforcement-learning" },
// ],
// },
// {
// name: "Computer Vision",
// pages: [
// {
// name: "Object Detection with yolo",
// path: "/perception/object-detection",
// },
// {
// name: "Scene Understanding",
// path: "/perception/scene-understanding",
// },
// {
// name: "Semantic Segmentation with segment-anything-2",
// path: "/perception/semantic-segmentation",
// },
// {
// name: "Sensor Calibration",
// path: "/perception/sensor-calibration",
// },
// ],
// },
],
// Content to add to the head of the page, e.g. for a favicon:
head: `<script>document.querySelector('#suggest-edit')</script>
<style>
#edit::hover{
cursor:pointer;
}
</style>
`,
// The path to the source root.
root: "src",
// Some additional configuration options and their defaults:
theme: "slate", // try "light", "dark", "slate", etc.
header: "robotics odyssey blog", // what to show in the header (HTML)
footer: "<div id='suggest-edit'>Click here to suggest an edit!!!</div>", // what to show in the footer (HTML)
sidebar: true, // whether to show the sidebar
toc: true, // whether to show the table of contents
pager: true, // whether to show previous & next links in the footer
// output: "dist", // path to the output root for build
search: true, // activate search
linkify: true, // convert URLs in Markdown to links
typographer: true, // smart quotes and other typographic improvements
// preserveExtension: false, // drop .html from URLs
// preserveIndex: false, // drop /index from URLs
};
================================================
FILE: blog/package.json
================================================
{
"type": "module",
"private": true,
"scripts": {
"clean": "rimraf src/.observablehq/cache",
"build": "observable build",
"dev": "observable preview",
"deploy": "observable deploy",
"observable": "observable"
},
"dependencies": {
"@codemirror/view": "^6.36.2",
"@observablehq/framework": "^1.13.0",
"d3-dsv": "^3.0.1",
"d3-time-format": "^4.1.0"
},
"devDependencies": {
"rimraf": "^5.0.5"
},
"engines": {
"node": ">=18"
}
}
================================================
FILE: blog/src/.gitignore
================================================
/.observablehq/cache/
================================================
FILE: blog/src/.observablehq/deploy.json
================================================
{
"projectId": "3da0c33bb85ca725",
"projectSlug": "dynamicbotnotebook",
"workspaceLogin": "roboticsuniversity"
}
================================================
FILE: blog/src/algorithms/map-reduce.md
================================================
/algorithms/map-reduce<a href="https://github.com/BotParty/homelab_status_page/blob/main/algorithms/map-reduce">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//algorithms/map-reduce">click here to edit this document</a>
================================================
FILE: blog/src/components/editor.js
================================================
// import { javascript } from "npm:@codemirror/lang-javascript";
// import { EditorView, keymap } from "npm:@codemirror/view";
// import { button } from "npm:@observablehq/inputs";
// import { basicSetup } from "npm:codemirror";
// import octokit from "@octokit/rest";
// // https://github.com/octokit/octokit.js`
// # First get the SHA of the default branch (e.g., main)
// curl -H "Authorization: Bearer YOUR_GITHUB_TOKEN" \
// "https://api.github.com/repos/forkOwner/OriginalRepo/git/refs/heads/main"
// # Suppose it returns "object": { "sha": "ABC123..." }, use that in the next call
// curl -X POST \
// -H "Authorization: Bearer YOUR_GITHUB_TOKEN" \
// -d '{"ref":"refs/heads/my-proposed-change","sha":"ABC123..."}' \
// "https://api.github.com/repos/forkOwner/OriginalRepo/git/refs"
// curl -X PUT \
// -H "Authorization: Bearer YOUR_GITHUB_TOKEN" \
// -d '{
// "message": "Propose changes to docs",
// "content": "'"$BASE64_CONTENT"'",
// "branch": "my-proposed-change"
// }' \
// "https://api.github.com/repos/forkOwner/OriginalRepo/contents/docs/README.md"
// curl -X POST \
// -H "Authorization: Bearer YOUR_GITHUB_TOKEN" \
// -d '{
// "title": "Propose edits to the documentation",
// "head": "forkOwner:my-proposed-change",
// "base": "main",
// "body": "Here is a summary of my changes..."
// }' \
// "https://api.github.com/repos/OriginalOwner/OriginalRepo/pulls"
// export function Editor({
// value = "",
// style = "font-size: 14px; position: absolute; top:0; right:0; border: 1px solid green;",
// } = {}) {
// const parent = document.createElement("div");
// parent.style = style;
// parent.value = value;
// const run = () => {
// parent.value = String(editor.state.doc);
// parent.dispatchEvent(new InputEvent("input", { bubbles: true }));
// };
// const editor = new EditorView({
// parent,
// doc: value,
// extensions: [
// basicSetup,
// javascript(),
// keymap.of([
// { key: "Shift-Enter", preventDefault: true, run },
// { key: "Mod-s", preventDefault: true, run },
// ]),
// ],
// });
// parent.addEventListener(
// "input",
// (event) => event.isTrusted && event.stopImmediatePropagation(),
// );
// parent.appendChild(button([["Run", run]]));
// return parent;
// }
// async function createBranch(forkOwner, forkName) {
// // First, get the SHA of the default branch (e.g., main)
// const defaultBranch = "main";
// const refs = await octokit.rest.git.getRef({
// owner: forkOwner,
// repo: forkName,
// ref: `heads/${defaultBranch}`,
// });
// const baseSha = refs.data.object.sha;
// // Next, create a new branch ref (e.g., "my-proposed-change")
// const newBranch = "my-proposed-change";
// await octokit.rest.git.createRef({
// owner: forkOwner,
// repo: forkName,
// ref: `refs/heads/${newBranch}`,
// sha: baseSha,
// });
// console.log(`Branch created: ${newBranch}`);
// return newBranch;
// }
// async function commitFileChange(forkOwner, forkName, branchName) {
// const path = "docs/README.md";
// const message = "Propose changes to docs";
// const newContent = "Hello, world!"; // Replace with whatever content
// const base64Content = Buffer.from(newContent).toString("base64");
// // PUT /repos/{owner}/{repo}/contents/{path}
// await octokit.rest.repos.createOrUpdateFileContents({
// owner: forkOwner,
// repo: forkName,
// path,
// message,
// content: base64Content,
// branch: branchName,
// // If updating an existing file, pass `sha` of the existing file
// });
// console.log(`File updated: ${path} on branch ${branchName}`);
// }
// async function openPullRequest(forkOwner, forkName, branchName) {
// const originalOwner = "OriginalOwner";
// const originalRepo = "OriginalRepo";
// const prTitle = "Propose edits to the documentation";
// const prBody = "Here is a summary of my changes...";
// // POST /repos/{owner}/{repo}/pulls
// const pr = await octokit.rest.pulls.create({
// owner: originalOwner,
// repo: originalRepo,
// title: prTitle,
// head: `${forkOwner}:${branchName}`, // The fork + branch from the user
// base: "main", // The branch in the original repo
// body: prBody,
// });
// console.log(`Pull request created: ${pr.data.html_url}`);
// }
// async function proposeEdit() {
// const { forkOwner, forkName } = await createFork();
// const branchName = await createBranch(forkOwner, forkName);
// await commitFileChange(forkOwner, forkName, branchName);
// await openPullRequest(forkOwner, forkName, branchName);
// }
// proposeEdit().catch(err => {
// console.error("Error proposing edit:", err);
// });
// # CodeMirror
// Here’s a basic editor powered by CodeMirror. Its value is exposed as `input`, and then the result of `eval`’ing `input` is shown below. Try editing the code and then running it with Shift-Enter or by clicking the Run button.
// ```js echo
// const input = view(Editor({value: "1 + 2"}));
// ```
// ```js echo
// eval(input)
// ```
// The editor is implemented in a component:
// ```js echo
// import {Editor} from "./components/Editor.js";
// ```
// The implementation looks like this:
// ```js run=false
// import {javascript} from "npm:@codemirror/lang-javascript";
// import {EditorView, keymap} from "npm:@codemirror/view";
// import {button} from "npm:@observablehq/inputs";
// import {basicSetup} from "npm:codemirror";
// export function Editor({
// value = "",
// style = "font-size: 14px;"
// } = {}) {
// const parent = document.createElement("div");
// parent.style = style;
// parent.value = value;
// const run = () => {
// parent.value = String(editor.state.doc);
// parent.dispatchEvent(new InputEvent("input", {bubbles: true}));
// };
// const editor = new EditorView({
// parent,
// doc: value,
// extensions: [
// basicSetup,
// javascript(),
// keymap.of([
// {key: "Shift-Enter", preventDefault: true, run},
// {key: "Mod-s", preventDefault: true, run}
// ])
// ]
// });
// parent.addEventListener("input", (event) => event.isTrusted && event.stopImmediatePropagation());
// parent.appendChild(button([["Run", run]]));
// return parent;
// }
// ```
// viewof proposeEdit = {
// // Create a wrapper element (a form with a text area and button)
// const wrapper = html`<form style="margin: 1em 0;">
// <label style="display: block; margin-bottom: 0.5em;">
// Proposed changes:
// <textarea
// name="proposal"
// rows="5"
// style="width: 100%; font-family: sans-serif; margin-top: 0.5em;"
// placeholder="Describe your proposed edits..."
// ></textarea>
// </label>
// <button type="submit" style="padding: 0.5em 1em; cursor: pointer;">
// Propose Edit
// </button>
// </form>`;
// // On form submission
// wrapper.onsubmit = async (event) => {
// event.preventDefault();
// // Get user input from the text area
// const proposedChanges = wrapper.proposal.value.trim();
// if (!proposedChanges) {
// alert("Please enter some text describing your proposed edit.");
// return;
// }
// // “Currently viewed page” (works in many environments, including Observable)
// const currentPage = location.href;
// // 1) Create a Gist on GitHub to store the proposed edits
// const gistPayload = {
// description: `Proposed edits from Observable: ${currentPage}`,
// public: false,
// files: {
// "proposal.md": {
// content: `**Page:** ${currentPage}\n\n**Proposal:**\n\n${proposedChanges}`
// },
// },
// };
// let gistUrl;
// try {
// const gistResponse = await fetch(GIST_ENDPOINT, {
// method: "POST",
// headers: GITHUB_HEADERS,
// body: JSON.stringify(gistPayload),
// });
// if (!gistResponse.ok) {
// const error = await gistResponse.json();
// throw new Error(error.message || "Failed to create Gist.");
// }
// const gistData = await gistResponse.json();
// gistUrl = gistData.html_url;
// } catch (err) {
// alert(`Error creating Gist: ${err.message}`);
// return;
// }
// // 2) Store metadata in Supabase (optional)
// // Suppose we have a table named "edits" with columns:
// // - id: primary key
// // - page_url: text
// // - proposal: text
// // - gist_url: text
// const { data, error } = await supabase.from("edits").insert([
// {
// page_url: currentPage,
// proposal: proposedChanges,
// gist_url: gistUrl,
// },
// ]);
// if (error) {
// console.error("Error inserting into Supabase:", error);
// alert("Error saving proposal in Supabase.");
// return;
// }
// alert(`Proposal submitted!\nView gist: ${gistUrl}`);
// // Clear the text area
// wrapper.proposal.value = "";
// };
// return wrapper;
// }
// allProposals = (await supabase
// .from("edits")
// .select("*")
// .order("id", { ascending: false })).data
// md`# All Proposals
// Below is a list of recent proposals from the "edits" table in Supabase.
// `
// html`
// <table style="width: 100%; border-collapse: collapse;">
// <thead>
// <tr style="text-align: left; border-bottom: 1px solid #ccc;">
// <th style="padding: 0.5em;">ID</th>
// <th style="padding: 0.5em;">Page URL</th>
// <th style="padding: 0.5em;">Proposal</th>
// <th style="padding: 0.5em;">Gist</th>
// </tr>
// </thead>
// <tbody>
// ${allProposals?.map(
// (edit) => html`
// <tr style="border-bottom: 1px solid #ccc;">
// <td style="padding: 0.5em;">${edit.id}</td>
// <td style="padding: 0.5em; max-width: 200px; overflow: hidden;">
// <a href="${edit.page_url}" target="_blank">${edit.page_url}</a>
// </td>
// <td style="padding: 0.5em;">${edit.proposal}</td>
// <td style="padding: 0.5em;">
// <a href="${edit.gist_url}" target="_blank">View Gist</a>
// </td>
// </tr>
// `
// )}
// </tbody>
// </table>
// `
================================================
FILE: blog/src/components/timeline.js
================================================
import * as Plot from "npm:@observablehq/plot";
export function timeline(events, {width, height} = {}) {
return Plot.plot({
width,
height,
marginTop: 30,
x: {nice: true, label: null, tickFormat: ""},
y: {axis: null},
marks: [
Plot.ruleX(events, {x: "year", y: "y", markerEnd: "dot", strokeWidth: 2.5}),
Plot.ruleY([0]),
Plot.text(events, {x: "year", y: "y", text: "name", lineAnchor: "bottom", dy: -10, lineWidth: 10, fontSize: 12})
]
});
}
================================================
FILE: blog/src/connectivity/livekit-webrtc.md
================================================
/connectivity/livekit-webrtc<a href="https://github.com/BotParty/homelab_status_page/blob/main/connectivity/livekit-webrtc">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/connectivity/livekit-webrtc">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//connectivity/livekit-webrtc">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//connectivity/livekit-webrtc">click here to edit this document</a>
================================================
FILE: blog/src/connectivity/tailscale-caddy-dns-porkbun.md
================================================
/connectivity/tailscale-caddy-dns-porkbun<a href="https://github.com/BotParty/homelab_status_page/blob/main/connectivity/tailscale-caddy-dns-porkbun">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/connectivity/tailscale-caddy-dns-porkbun">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//connectivity/tailscale-caddy-dns-porkbun">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//connectivity/tailscale-caddy-dns-porkbun">click here to edit this document</a>
================================================
FILE: blog/src/cpp/concurrency-parallelism.md
================================================
/cpp/concurrency-parallelism<a href="https://github.com/BotParty/homelab_status_page/blob/main/cpp/concurrency-parallelism">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/cpp/concurrency-parallelism">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//cpp/concurrency-parallelism">click here to edit this document</a>
================================================
FILE: blog/src/cpp/memory-management.md
================================================
/cpp/memory-management<a href="https://github.com/BotParty/homelab_status_page/blob/main/cpp/memory-management">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/cpp/memory-management">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//cpp/memory-management">click here to edit this document</a>
================================================
FILE: blog/src/data/events.json
================================================
[
{"name": "Sputnik 1", "year": 1957, "y": 10},
{"name": "Apollo 11", "year": 1969, "y": 20},
{"name": "Viking 1 and 2", "year": 1975, "y": 30},
{"name": "Space Shuttle Columbia", "year": 1981, "y": 40},
{"name": "Hubble Space Telescope", "year": 1990, "y": 50},
{"name": "ISS Construction", "year": 1998, "y": 60}
]
================================================
FILE: blog/src/data/launches.csv.js
================================================
import {csvFormat, tsvParse} from "d3-dsv";
import {utcParse} from "d3-time-format";
async function text(url) {
const response = await fetch(url);
if (!response.ok) throw new Error(`fetch failed: ${response.status}`);
return response.text();
}
// “Top” vehicles
const TOP_LAUNCH_VEHICLES = new Set([
"Falcon9",
"R-7",
"R-14",
"Thor",
"DF5",
"R-36",
"Proton",
"Titan",
"Zenit",
"Atlas"
]);
// “Top” launching states
const TOP_STATES_MAP = new Map([
["US", "United States"],
["SU", "Soviet Union"],
["RU", "Russia"],
["CN", "China"]
]);
// Load and parse launch vehicles.
const launchVehicles = tsvParse(await text("https://planet4589.org/space/gcat/tsv/tables/lv.tsv"));
// Construct map to lookup vehicle family from name.
const launchVehicleFamilyMap = new Map(launchVehicles.map((d) => [d["#LV_Name"], d.LV_Family.trim()]));
// Reduce cardinality by mapping smaller states to “Other”.
function normalizeState(d) {
return TOP_STATES_MAP.get(d) ?? "Other";
}
// Reduce cardinality by mapping smaller launch families to “Other”.
function normalizeFamily(d) {
const family = launchVehicleFamilyMap.get(d);
return TOP_LAUNCH_VEHICLES.has(family) ? family : "Other";
}
// Parse dates!
const parseDate = utcParse("%Y %b %_d");
// Load and parse launch-log and trim down to smaller size.
const launchHistory = tsvParse(await text("https://planet4589.org/space/gcat/tsv/derived/launchlog.tsv"), (d) => ({
date: parseDate(d.Launch_Date.slice(0, 11)),
state: normalizeState(d.LVState),
stateId: d.LVState,
family: normalizeFamily(d.LV_Type)
})).filter((d) => d.date != null);
// Write out csv formatted data.
process.stdout.write(csvFormat(launchHistory));
================================================
FILE: blog/src/data-analysis/events.json
================================================
[
{"name": "Sputnik 1", "year": 1957, "y": 10},
{"name": "Apollo 11", "year": 1969, "y": 20},
{"name": "Viking 1 and 2", "year": 1975, "y": 30},
{"name": "Space Shuttle Columbia", "year": 1981, "y": 40},
{"name": "Hubble Space Telescope", "year": 1990, "y": 50},
{"name": "ISS Construction", "year": 1998, "y": 60}
]
================================================
FILE: blog/src/data-analysis/launches.csv.js
================================================
import {csvFormat, tsvParse} from "d3-dsv";
import {utcParse} from "d3-time-format";
async function text(url) {
const response = await fetch(url);
if (!response.ok) throw new Error(`fetch failed: ${response.status}`);
return response.text();
}
// “Top” vehicles
const TOP_LAUNCH_VEHICLES = new Set([
"Falcon9",
"R-7",
"R-14",
"Thor",
"DF5",
"R-36",
"Proton",
"Titan",
"Zenit",
"Atlas"
]);
// “Top” launching states
const TOP_STATES_MAP = new Map([
["US", "United States"],
["SU", "Soviet Union"],
["RU", "Russia"],
["CN", "China"]
]);
// Load and parse launch vehicles.
const launchVehicles = tsvParse(await text("https://planet4589.org/space/gcat/tsv/tables/lv.tsv"));
// Construct map to lookup vehicle family from name.
const launchVehicleFamilyMap = new Map(launchVehicles.map((d) => [d["#LV_Name"], d.LV_Family.trim()]));
// Reduce cardinality by mapping smaller states to “Other”.
function normalizeState(d) {
return TOP_STATES_MAP.get(d) ?? "Other";
}
// Reduce cardinality by mapping smaller launch families to “Other”.
function normalizeFamily(d) {
const family = launchVehicleFamilyMap.get(d);
return TOP_LAUNCH_VEHICLES.has(family) ? family : "Other";
}
// Parse dates!
const parseDate = utcParse("%Y %b %_d");
// Load and parse launch-log and trim down to smaller size.
const launchHistory = tsvParse(await text("https://planet4589.org/space/gcat/tsv/derived/launchlog.tsv"), (d) => ({
date: parseDate(d.Launch_Date.slice(0, 11)),
state: normalizeState(d.LVState),
stateId: d.LVState,
family: normalizeFamily(d.LV_Type)
})).filter((d) => d.date != null);
// Write out csv formatted data.
process.stdout.write(csvFormat(launchHistory));
================================================
FILE: blog/src/data-analysis/olap.md
================================================
/data-analysis/olap<a href="https://github.com/BotParty/homelab_status_page/blob/main/data-analysis/olap">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/data-analysis/olap">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-analysis/olap">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-analysis/olap">click here to edit this document</a>
================================================
FILE: blog/src/data-vis/anomaly-detection.md
================================================
/data-vis/anomaly-detection<a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/anomaly-detection">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/anomaly-detection">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/anomaly-detection">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/anomaly-detection">click here to edit this document</a>
================================================
FILE: blog/src/data-vis/capacity-planning.md
================================================
/data-vis/capacity-planning<a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/capacity-planning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/capacity-planning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/capacity-planning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/capacity-planning">click here to edit this document</a>
================================================
FILE: blog/src/data-vis/crisis-diagnosis.md
================================================
/data-vis/crisis-diagnosis<a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/crisis-diagnosis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/crisis-diagnosis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/crisis-diagnosis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/crisis-diagnosis">click here to edit this document</a>
================================================
FILE: blog/src/data-vis/systems-design.md
================================================
/data-vis/systems-design<a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/systems-design">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/data-vis/systems-design">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/systems-design">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//data-vis/systems-design">click here to edit this document</a>
================================================
FILE: blog/src/devops/docker.md
================================================
/devops/docker<a href="https://github.com/BotParty/homelab_status_page/blob/main/devops/docker">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/devops/docker">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//devops/docker">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//devops/docker">click here to edit this document</a>
================================================
FILE: blog/src/devops/terraform.md
================================================
/devops/terraform<a href="https://github.com/BotParty/homelab_status_page/blob/main/devops/terraform">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/devops/terraform">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//devops/terraform">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//devops/terraform">click here to edit this document</a>
================================================
FILE: blog/src/dynamicland/dynamicland.md
================================================
/dynamicland/dynamicland<a href="https://github.com/BotParty/homelab_status_page/blob/main/dynamicland/dynamicland">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/dynamicland/dynamicland">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//dynamicland/dynamicland">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//dynamicland/dynamicland">click here to edit this document</a>
================================================
FILE: blog/src/embedded/hardware-in-the-loop-simulation.md
================================================
/embedded/hardware-in-the-loop-simulation<a href="https://github.com/BotParty/homelab_status_page/blob/main/embedded/hardware-in-the-loop-simulation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/embedded/hardware-in-the-loop-simulation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/embedded/hardware-in-the-loop-simulation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//embedded/hardware-in-the-loop-simulation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//embedded/hardware-in-the-loop-simulation">click here to edit this document</a>
================================================
FILE: blog/src/embedded/zig.md
================================================
/embedded/zig<a href="https://github.com/BotParty/homelab_status_page/blob/main/embedded/zig">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/embedded/zig">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/embedded/zig">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//embedded/zig">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//embedded/zig">click here to edit this document</a>
================================================
FILE: blog/src/hardware/soldering-pcb-3d-printing.md
================================================
/hardware/soldering-pcb-3d-printing<a href="https://github.com/BotParty/homelab_status_page/blob/main/hardware/soldering-pcb-3d-printing">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/hardware/soldering-pcb-3d-printing">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//hardware/soldering-pcb-3d-printing">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//hardware/soldering-pcb-3d-printing">click here to edit this document</a>
================================================
FILE: blog/src/index.md
================================================
---
theme: slate
---
================================================
FILE: blog/src/llms/ollama-claude-o1-pro.md
================================================
/llms/ollama-claude-o1-pro<a href="https://github.com/BotParty/homelab_status_page/blob/main/llms/ollama-claude-o1-pro">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/llms/ollama-claude-o1-pro">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//llms/ollama-claude-o1-pro">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//llms/ollama-claude-o1-pro">click here to edit this document</a>
================================================
FILE: blog/src/maps/hd-mapping.md
================================================
deck.gl is a “GPU-powered framework for visual exploratory data analysis of large datasets.” You can import deck.gl’s standalone bundle like so:
import deck from "npm:deck.gl";
const {DeckGL, AmbientLight, GeoJsonLayer, HexagonLayer, LightingEffect, PointLight} = deck;
Data: Department for Transport
const data = FileAttachment("../data/dft-road-collisions.csv").csv({array: true, typed: true}).then((data) => data.slice(1));
const topo = import.meta.resolve("npm:visionscarto-world-atlas/world/50m.json");
const world = fetch(topo).then((response) => response.json());
const countries = world.then((world) => topojson.feature(world, world.objects.countries));
2. The layout
Using nested divs, we position a large area for the chart, and a card floating on top that will receive the title, the color legend, and interactive controls:
<div class="card" style="margin: 0 -1rem;">
## Personal injury road collisions, 2022
### ${data.length.toLocaleString("en-US")} reported collisions on public roads
<figure style="max-width: none; position: relative;">
<div id="container" style="border-radius: 8px; overflow: hidden; background: rgb(18, 35, 48); height: 800px; margin: 1rem 0; "></div>
<div style="position: absolute; top: 1rem; right: 1rem; filter: drop-shadow(0 0 4px rgba(0,0,0,.5));">${colorLegend}</div>
<figcaption>Data: <a href="https://www.data.gov.uk/dataset/cb7ae6f0-4be6-4935-9277-47e5ce24a11f/road-safety-data">Department for Transport</a></figcaption>
</figure>
</div>
The colors are represented as (red, green, blue) triplets, as expected by deck.gl. The legend is made using Observable Plot:
const colorRange = [
[1, 152, 189],
[73, 227, 206],
[216, 254, 181],
[254, 237, 177],
[254, 173, 84],
[209, 55, 78]
];
const colorLegend = Plot.plot({
margin: 0,
marginTop: 20,
width: 180,
height: 35,
style: "color: white;",
x: {padding: 0, axis: null},
marks: [
Plot.cellX(colorRange, {fill: ([r, g, b]) => `rgb(${r},${g},${b})`, inset: 0.5}),
Plot.text(["Fewer"], {frameAnchor: "top-left", dy: -12}),
Plot.text(["More"], {frameAnchor: "top-right", dy: -12})
]
});
3. The DeckGL instance
We create a DeckGL instance targetting the container defined in the layout. During development & preview, this code can run several times, so we take care to clean it up each time the code block runs:
const deckInstance = new DeckGL({
container,
initialViewState,
getTooltip,
effects,
controller: true
});
// clean up if this code re-runs
invalidation.then(() => {
deckInstance.finalize();
container.innerHTML = "";
});
initialViewState describes the initial position of the camera:
const initialViewState = {
longitude: -2,
latitude: 53.5,
zoom: 5.7,
minZoom: 5,
maxZoom: 15,
pitch: 40.5,
bearing: -5
};
getTooltip generates the contents displayed when you mouse over a hexagon:
function getTooltip({object}) {
if (!object) return null;
const [lng, lat] = object.position;
const count = object.points.length;
return `latitude: ${lat.toFixed(2)}
longitude: ${lng.toFixed(2)}
${count} collisions`;
}
effects defines the lighting:
const effects = [
new LightingEffect({
ambientLight: new AmbientLight({color: [255, 255, 255], intensity: 1.0}),
pointLight: new PointLight({color: [255, 255, 255], intensity: 0.8, position: [-0.144528, 49.739968, 80000]}),
pointLight2: new PointLight({color: [255, 255, 255], intensity: 0.8, position: [-3.807751, 54.104682, 8000]})
})
];
4. The props
Since some parameters are interactive, we use the setProps method to update the layers when their value changes:
deckInstance.setProps({
layers: [
new GeoJsonLayer({
id: "base-map",
data: countries,
lineWidthMinPixels: 1,
getLineColor: [60, 60, 60],
getFillColor: [9, 16, 29]
}),
new HexagonLayer({
id: "heatmap",
data,
coverage,
radius,
upperPercentile,
colorRange,
elevationScale: 50,
elevationRange: [0, 5000 * t],
extruded: true,
getPosition: (d) => d,
pickable: true,
material: {
ambient: 0.64,
diffuse: 0.6,
shininess: 32,
specularColor: [51, 51, 51]
}
})
]
});
Lastly, the t variable controls the height of the extruded hexagons with a generator (that can be reset with a button input):
const t = (function* () {
const duration = 1000;
const start = performance.now();
const end = start + duration;
let now;
while ((now = performance.now()) < end) yield d3.easeCubicInOut(Math.max(0, (now - start) / duration));
yield 1;
})();
================================================
FILE: blog/src/maps/open-street-maps.md
================================================
/maps/open-street-maps<a href="https://github.com/BotParty/homelab_status_page/blob/main/[maps/open-street-maps.md](maps/open-street-maps.md)"></a>
<a href="https://github.com/BotParty/homelab_status_page/blob/main/[maps/open-street-maps.md](maps/open-street-maps.md)">click here to edit</a>
<a href="https://github.com/BotParty/homelab_status_page/blob/main/maps/open-street-maps">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/maps/open-street-maps">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/maps/open-street-maps">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//maps/open-street-maps">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//maps/open-street-maps">click here to edit this document</a>
================================================
FILE: blog/src/math/linear-algebra.md
================================================
/math/linear-algebra<a href="https://github.com/BotParty/homelab_status_page/blob/main/math/linear-algebra">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//math/linear-algebra">click here to edit this document</a>
================================================
FILE: blog/src/math/probability.md
================================================
/math/probability<a href="https://github.com/BotParty/homelab_status_page/blob/main/math/probability">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//math/probability">click here to edit this document</a>
================================================
FILE: blog/src/math/real-analysis.md
================================================
/math/real-analysis<a href="https://github.com/BotParty/homelab_status_page/blob/main/math/real-analysis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//math/real-analysis">click here to edit this document</a>
================================================
FILE: blog/src/neuroscience/constructionism.md
================================================
Jean Piaget studied object constancy.
without that theory, there would be no user interface.
so only .1% of the population would enjoy computing.
================================================
FILE: blog/src/neuroscience/free-will.md
================================================
# Saposlky Determined
# Seugn Lab Connectome
34 trillion neurons
# NEurips
# lead study - crime rate went up
https://en.wikipedia.org/wiki/DSM-5 was not quantitative in any way and it was inhumane.
The DSM-6 is starting to be quantitative.
Physicans and Psychologists dealth with intractable problems.
Dynamicland makes intractctbble problems solvable.
# 200 cognitivie biases
# 200 Mental Models
# References
1. https://en.wikipedia.org/wiki/Lead%E2%80%93crime_hypothesis<a href="https://github.com/BotParty/homelab_status_page/blob/main/neuroscience/free-will">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/neuroscience/free-will">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//neuroscience/free-will">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//neuroscience/free-will">click here to edit this document</a>
================================================
FILE: blog/src/neuroscience/single-cell-analysis.md
================================================
/neuroscience/single-cell-analysis<a href="https://github.com/BotParty/homelab_status_page/blob/main/neuroscience/single-cell-analysis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/neuroscience/single-cell-analysis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//neuroscience/single-cell-analysis">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//neuroscience/single-cell-analysis">click here to edit this document</a>
================================================
FILE: blog/src/perception/object-detection.md
================================================
/perception/object-detection<a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/object-detection">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/object-detection">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/object-detection">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/object-detection">click here to edit this document</a>
================================================
FILE: blog/src/perception/scene-understanding.md
================================================
/perception/scene-understanding<a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/scene-understanding">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/scene-understanding">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/scene-understanding">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/scene-understanding">click here to edit this document</a>
================================================
FILE: blog/src/perception/semantic-segmentation.md
================================================
/perception/semantic-segmentation<a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/semantic-segmentation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/semantic-segmentation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/semantic-segmentation">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/semantic-segmentation">click here to edit this document</a>
================================================
FILE: blog/src/perception/sensor-calibration.md
================================================
/perception/sensor-calibration<a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/sensor-calibration">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/sensor-calibration">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/sensor-calibration">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/sensor-calibration">click here to edit this document</a>
================================================
FILE: blog/src/perception/vision-transformers.md
================================================
/perception/vision-transformers<a href="https://github.com/BotParty/homelab_status_page/blob/main/perception/vision-transformers">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//perception/vision-transformers">click here to edit this document</a>
================================================
FILE: blog/src/python/uv_jupyter_testing.md
================================================
/python/uv_jupyter_testing<a href="https://github.com/BotParty/homelab_status_page/blob/main/python/uv_jupyter_testing">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/python/uv_jupyter_testing">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//python/uv_jupyter_testing">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//python/uv_jupyter_testing">click here to edit this document</a>
================================================
FILE: blog/src/robotics/motion-planning.md
================================================
/robotics/motion-planning<a href="https://github.com/BotParty/homelab_status_page/blob/main/robotics/motion-planning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/robotics/motion-planning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//robotics/motion-planning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//robotics/motion-planning">click here to edit this document</a>
================================================
FILE: blog/src/simulation/Unity.md
================================================
/simulation/Unity<a href="https://github.com/BotParty/homelab_status_page/blob/main/simulation/Unity">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//simulation/Unity">click here to edit this document</a>
================================================
FILE: blog/src/simulation/Unreal-Engine.md
================================================
/simulation/Unreal-Engine<a href="https://github.com/BotParty/homelab_status_page/blob/main/simulation/Unreal-Engine">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//simulation/Unreal-Engine">click here to edit this document</a>
================================================
FILE: blog/src/simulation/reinforcement-learning.md
================================================
/simulation/reinforcement-learning<a href="https://github.com/BotParty/homelab_status_page/blob/main/simulation/reinforcement-learning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/simulation/reinforcement-learning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/simulation/reinforcement-learning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//simulation/reinforcement-learning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//simulation/reinforcement-learning">click here to edit this document</a><a href="https://github.com/BotParty/homelab_status_page/blob/main/src//simulation/reinforcement-learning">click here to edit this document</a>
================================================
FILE: data/150_algo_vis.json
================================================
{
"topics": [
{
"id": 1,
"title": "3D Simulation with Gazebo",
"description": "Learn how to set up and simulate robot models in a realistic 3D environment using Gazebo."
},
{
"id": 2,
"title": "Robot Visualization with RViz",
"description": "Explore how to use RViz in ROS to visualize sensor data, robot states, and interactive markers."
},
{
"id": 3,
"title": "Building URDF Models",
"description": "Understand how to create and visualize robot models using the Unified Robot Description Format (URDF)."
},
{
"id": 4,
"title": "Interactive Markers in RViz",
"description": "Implement interactive markers in RViz for user-driven control and manipulation of on-screen robots."
},
{
"id": 5,
"title": "Multi-Robot Coordination in Gazebo",
"description": "Simulate fleets of robots in Gazebo to study collaborative control, path planning, and task allocation."
},
{
"id": 6,
"title": "Sensor Fusion Visualization",
"description": "Combine data from multiple sensors in real time to provide a comprehensive view of a robot’s surroundings."
},
{
"id": 7,
"title": "Motion Planning with MoveIt!",
"description": "Use MoveIt! with RViz to visualize and plan trajectories for robotic arms in simulation or on real hardware."
},
{
"id": 8,
"title": "ROS TF Frames Visualization",
"description": "Display coordinate frames of complex robotic systems to better understand transformations and hierarchies."
},
{
"id": 9,
"title": "Map Building and SLAM",
"description": "Visualize map building processes and pose updates using SLAM algorithms like gmapping or Cartographer."
},
{
"id": 10,
"title": "3D Point Cloud Rendering",
"description": "Render point clouds from depth cameras or LiDAR sensors in RViz to observe real-time environmental data."
},
{
"id": 11,
"title": "Kinematic Chains Visualization",
"description": "Show how joints and links of robotic arms move and connect through an interactive kinematic chain display."
},
{
"id": 12,
"title": "Robot Control Dashboards",
"description": "Design interactive dashboards with control widgets and live data visualizations for teleoperation."
},
{
"id": 13,
"title": "Virtual Reality Robot Visualization",
"description": "Explore VR environments to view and interact with robot simulations in an immersive 3D space."
},
{
"id": 14,
"title": "AR Overlays for Robotics",
"description": "Use augmented reality headsets to overlay robot status, sensor readings, and path planning in the real world."
},
{
"id": 15,
"title": "Navigation Stack Visualization",
"description": "Inspect navigation goals, local and global paths, and costmaps in RViz to debug robot navigation behavior."
},
{
"id": 16,
"title": "Trajectory Visualization",
"description": "Plot and analyze robot trajectories to understand motion planning outcomes and optimize route efficiency."
},
{
"id": 17,
"title": "Robot Arm Grasp Simulation",
"description": "Visualize robotic grippers closing on target objects to evaluate grasp planning algorithms."
},
{
"id": 18,
"title": "Collision Detection and Avoidance",
"description": "Detect collisions in real time within simulated environments to prevent robot damage or unsafe maneuvers."
},
{
"id": 19,
"title": "RQT Graph for ROS Nodes",
"description": "Visually represent communication between ROS nodes, topics, and services for better debugging."
},
{
"id": 20,
"title": "Gazebo Plugin Visualization",
"description": "Enhance simulations with custom Gazebo plugins to visualize sensor noise, contact forces, or advanced physics."
},
{
"id": 21,
"title": "Lidar Scan Visualization",
"description": "Render 2D lidar scans in RViz to identify obstacles, measure distances, and support SLAM applications."
},
{
"id": 22,
"title": "Map Server and AMCL",
"description": "Visualize robot localization within a pre-built map using Adaptive Monte Carlo Localization in RViz."
},
{
"id": 23,
"title": "3D Model Import into Gazebo",
"description": "Import custom 3D object models (like furniture or machinery) to create realistic robot simulation scenarios."
},
{
"id": 24,
"title": "Dynamic Simulation with Physics Engines",
"description": "Explore the impact of gravity, friction, and collisions in robotics using simulators like ODE or Bullet."
},
{
"id": 25,
"title": "Camera Calibration and Visualization",
"description": "Visualize camera images and perform calibration checks to ensure accurate robot vision workflows."
},
{
"id": 26,
"title": "Heatmaps for Sensor Data",
"description": "Create heatmaps from sensor data to quickly spot high-intensity areas, like distance or temperature readings."
},
{
"id": 27,
"title": "Visual Odometry Debugging",
"description": "Plot odometry data to validate robot motion estimates and correct drifting or calibration errors."
},
{
"id": 28,
"title": "Interactive Scripts in Jupyter for Robotics",
"description": "Use Jupyter notebooks for plotting sensor data, controlling robots, and visualizing results in real time."
},
{
"id": 29,
"title": "Point Cloud Segmentation",
"description": "Display segmented point clouds to separate foreground objects from backgrounds for advanced perception tasks."
},
{
"id": 30,
"title": "3D Mesh Visualization",
"description": "Render 3D mesh models of robots or environments for improved realism in simulation and debugging."
},
{
"id": 31,
"title": "Open3D for Robotics",
"description": "Leverage Open3D libraries to visualize point clouds, meshes, and perform advanced geometric processing."
},
{
"id": 32,
"title": "Robotic Swarm Visualization",
"description": "Animate multiple robots working together in a swarm, highlighting interactions and group objectives."
},
{
"id": 33,
"title": "Distance and Proximity Sensors",
"description": "Use distance sensor data, such as ultrasound or IR, to visualize how robots perceive close-range objects."
},
{
"id": 34,
"title": "Simulating Differential Drive Robots",
"description": "Set up and visualize differential drive robots, including wheel encoders, odometry, and motion constraints."
},
{
"id": 35,
"title": "In-circuit Signal Visualization",
"description": "Monitor and visualize signals at the microcontroller level to debug robotics hardware integration."
},
{
"id": 36,
"title": "Marine Robot Simulation",
"description": "Simulate underwater or surface vehicles with environment-specific factors like buoyancy and water currents."
},
{
"id": 37,
"title": "Aerial Drone Visualization",
"description": "Visualize drone flight paths, sensor data, and control signals for multi-rotor or fixed-wing UAVs."
},
{
"id": 38,
"title": "Mechanical Linkage Animations",
"description": "Create animations of gears, levers, and linkages to illustrate the mechanics of complex robot assemblies."
},
{
"id": 39,
"title": "Robot End-Effector Paths",
"description": "Display the paths of end-effectors (grippers, tools) in real or simulated environments to refine planning."
},
{
"id": 40,
"title": "Telemetry Data Dashboards",
"description": "Set up real-time dashboards for critical telemetry like battery level, temperature, and motor currents."
},
{
"id": 41,
"title": "Physics-Based Soft Robot Simulation",
"description": "Visualize soft, deformable robots in simulations that account for elasticity and shape changes."
},
{
"id": 42,
"title": "Haptic Feedback Visualization",
"description": "Integrate haptic devices with robotics software and visualize force-feedback interactions."
},
{
"id": 43,
"title": "Network Topology for Distributed Robots",
"description": "Map out communication networks for distributed robot systems, including bandwidth and latency metrics."
},
{
"id": 44,
"title": "Path Optimization Visual Aid",
"description": "Compare multiple path planning solutions side by side for speed, safety, and energy usage optimization."
},
{
"id": 45,
"title": "Thermal Imaging Overlays",
"description": "Use thermal camera data to visualize temperature gradients and detect overheating in robotic components."
},
{
"id": 46,
"title": "Factory Floor Robot Simulations",
"description": "Model assembly line robots and conveyor belts with interactive layers showing throughput and potential jams."
},
{
"id": 47,
"title": "Time-lapse of Robot Operations",
"description": "Generate accelerated visual timelines of complex robot tasks to study efficiency and detect bottlenecks."
},
{
"id": 48,
"title": "Multi-Camera Robot Monitoring",
"description": "Display video feeds from multiple cameras on a single dashboard for complete situational awareness."
},
{
"id": 49,
"title": "State Machine Visualization",
"description": "Graphically depict finite state machines controlling robots, highlighting transitions and active states."
},
{
"id": 50,
"title": "Advanced Kinematics Visualization",
"description": "Show forward and inverse kinematics solutions for complex manipulators, emphasizing reachable workspaces."
}
]
}
================================================
FILE: data/150_games.json
================================================
{
"games": [
{
"title": "Baldur's Gate 3",
"tags": [
"RPG",
"Character Customization",
"Choices Matter",
"Story Rich",
"Turn-Based Combat"
],
"release_date": "2023-08-03",
"review_status": "Overwhelmingly Positive",
"review_count": 625765,
"price": {
"original": 59.99,
"discounted": 47.99,
"discount_percentage": 20
}
},
{
"title": "Vampire Survivors",
"tags": [
"Action Roguelike",
"Bullet Hell",
"Pixel Graphics",
"Roguelite",
"2D"
],
"release_date": "2022-10-20",
"review_status": "Overwhelmingly Positive",
"review_count": 231614,
"price": {
"original": 4.99,
"discounted": 3.49,
"discount_percentage": 30
}
},
{
"title": "DAVE THE DIVER",
"tags": [
"Pixel Graphics",
"Casual",
"Management",
"Adventure",
"Relaxing"
],
"release_date": "2023-06-28",
"review_status": "Overwhelmingly Positive",
"review_count": 108719,
"price": {
"original": 19.99,
"discounted": 13.39,
"discount_percentage": 33
}
},
{
"title": "Hogwarts Legacy",
"tags": ["Magic", "Fantasy", "Open World", "Singleplayer", "Adventure"],
"release_date": "2023-02-10",
"review_status": "Very Positive",
"review_count": 213056,
"price": {
"original": 59.99,
"discounted": 14.99,
"discount_percentage": 75
}
},
{
"title": "ELDEN RING",
"tags": ["Souls-like", "Open World", "Dark Fantasy", "RPG", "Difficult"],
"release_date": "2022-02-24",
"review_status": "Very Positive",
"review_count": 727101,
"price": {
"original": 59.99,
"discounted": 35.99,
"discount_percentage": 40
}
}
]
}
================================================
FILE: data/citations.txt
================================================
================================================
FILE: data/cognitive_biases.json
================================================
{
"title": "List of cognitive biases (Wikipedia article)",
"introSummary": "Cognitive biases are systematic patterns of deviation from norm or rationality in judgment, often studied in psychology, sociology, and behavioral economics.",
"sections": [
{
"sectionTitle": "Belief, decision-making and behavioral biases",
"biases": [
{
"name": "Anchoring bias",
"summary": "Tendency to rely too heavily on the first piece of information (the 'anchor') when making decisions.",
"subBiases": [
{
"name": "Common source bias",
"summary": "Tendency to compare or rely on studies from the same source or methodology."
},
{
"name": "Conservatism bias",
"summary": "Failing to revise one’s beliefs adequately when presented with new evidence."
},
{
"name": "Functional fixedness",
"summary": "Seeing objects as only functioning in their usual way."
},
{
"name": "Law of the instrument",
"summary": "\"If all you have is a hammer, everything looks like a nail.\" Over-reliance on a familiar tool."
}
]
},
{
"name": "Apophenia",
"summary": "Perceiving meaningful connections among unrelated phenomena.",
"subBiases": [
{
"name": "Clustering illusion",
"summary": "Overestimating importance of small clusters or streaks in large samples of random data."
},
{
"name": "Illusory correlation",
"summary": "Seeing a relationship between two unrelated events."
},
{
"name": "Pareidolia",
"summary": "Seeing significant patterns in vague stimuli (e.g., seeing faces in clouds)."
}
]
},
{
"name": "Availability heuristic",
"summary": "Overestimating likelihood of events that come easily to mind, e.g., because they’re recent or vivid.",
"subBiases": [
{
"name": "Anthropocentric thinking",
"summary": "Using human analogies to reason about less familiar phenomena."
},
{
"name": "Anthropomorphism",
"summary": "Attributing human traits or intentions to non-humans (animals, objects, etc.)."
},
{
"name": "Attentional bias",
"summary": "Recurring thoughts affect perception, focusing attention on certain stimuli."
},
{
"name": "Frequency illusion / Baader–Meinhof phenomenon",
"summary": "Once you notice something, you see it everywhere."
},
{
"name": "Implicit association",
"summary": "Automatic and unconscious association between concepts."
},
{
"name": "Salience bias",
"summary": "Focusing on items that are more striking and ignoring those that are not."
},
{
"name": "Selection bias",
"summary": "Non-random sample selection leads to unrepresentative data."
},
{
"name": "Survivorship bias",
"summary": "Concentrating on the survivors of a process and overlooking those that did not survive."
},
{
"name": "Well travelled road effect",
"summary": "Underestimating travel time for familiar routes and overestimating it for unfamiliar routes."
}
]
},
{
"name": "Cognitive dissonance",
"summary": "Mental discomfort caused by holding contradictory information or beliefs.",
"subBiases": [
{
"name": "Normalcy bias",
"summary": "Refusal to plan for or react to a disaster which has never happened before."
},
{
"name": "Effort justification",
"summary": "Attributing greater value to an outcome if one worked hard for it (e.g. IKEA effect)."
},
{
"name": "Ben Franklin effect",
"summary": "Doing a favor for someone makes you like them more."
}
]
},
{
"name": "Confirmation bias",
"summary": "Seeking or interpreting evidence in a way that confirms existing beliefs.",
"subBiases": [
{
"name": "Backfire effect",
"summary": "Disconfirming evidence can strengthen existing beliefs."
},
{
"name": "Congruence bias",
"summary": "Testing only direct confirmations of one hypothesis instead of seeking alternatives."
},
{
"name": "Experimenter's / Expectation bias",
"summary": "Researchers more readily accept data that fits their expectations."
},
{
"name": "Observer-expectancy effect",
"summary": "Unconsciously influencing an experiment to find expected results."
},
{
"name": "Selective perception",
"summary": "Expectations shape what we perceive."
},
{
"name": "Semmelweis reflex",
"summary": "Rejecting new evidence that contradicts established norms."
}
]
},
{
"name": "Egocentric bias",
"summary": "Overreliance on one’s own perspective; seeing oneself differently from how others see you.",
"subBiases": [
{
"name": "Bias blind spot",
"summary": "Seeing oneself as less biased than other people."
},
{
"name": "False consensus effect",
"summary": "Overestimating how many people share your beliefs or opinions."
},
{
"name": "False uniqueness bias",
"summary": "Believing one's attributes or traits are more unique than they really are."
},
{
"name": "Forer (Barnum) effect",
"summary": "Accepting vague, general statements as being highly accurate for oneself (e.g., horoscopes)."
},
{
"name": "Illusion of asymmetric insight",
"summary": "Thinking you know others better than they know you."
},
{
"name": "Illusion of control",
"summary": "Overestimating how much control one has over external events."
},
{
"name": "Illusion of transparency",
"summary": "Overestimating how well others can discern your internal states and vice versa."
},
{
"name": "Illusion of validity",
"summary": "Overestimating the accuracy of one’s judgments."
},
{
"name": "Illusory superiority (Lake Wobegon effect)",
"summary": "Overestimating one’s positive qualities compared to others."
},
{
"name": "Naïve cynicism",
"summary": "Expecting others to be more self-serving and biased than oneself."
},
{
"name": "Naïve realism",
"summary": "Belief that we see objective reality and anyone who disagrees is irrational or uninformed."
},
{
"name": "Overconfidence effect",
"summary": "Excessive confidence in one’s answers to questions or estimates."
},
{
"name": "Planning fallacy",
"summary": "Underestimating how long it will take to complete tasks."
},
{
"name": "Restraint bias",
"summary": "Overestimating one’s capacity to resist temptation."
},
{
"name": "Trait ascription bias",
"summary": "Seeing oneself as more flexible and less predictable than others."
},
{
"name": "Third-person effect",
"summary": "Believing that media messages affect others more than oneself."
}
]
},
{
"name": "Extension neglect",
"summary": "Failing to properly consider sample size or scope when evaluating outcomes or probabilities.",
"subBiases": [
{
"name": "Base rate fallacy / Base rate neglect",
"summary": "Ignoring general base-rate information and focusing on specifics."
},
{
"name": "Compassion fade",
"summary": "Less compassion for large groups than for a single identifiable victim."
},
{
"name": "Conjunction fallacy",
"summary": "Assuming specific conditions are more probable than broader ones."
},
{
"name": "Duration neglect",
"summary": "Overlooking the length of an experience when evaluating its impact."
},
{
"name": "Hyperbolic discounting",
"summary": "Stronger preference for immediate payoffs relative to later payoffs."
},
{
"name": "Insensitivity to sample size",
"summary": "Underestimating variability in small samples."
},
{
"name": "Less-is-better effect",
"summary": "Preferring the smaller set if judged independently, but not in comparison."
},
{
"name": "Neglect of probability",
"summary": "Ignoring probability in uncertain situations."
},
{
"name": "Scope neglect",
"summary": "Insensitivity to the scope of a problem (e.g., paying the same to save 2,000 or 20,000 birds)."
},
{
"name": "Zero-risk bias",
"summary": "Preferring to reduce a small risk to zero over a greater total reduction in a larger risk."
}
]
},
{
"name": "False priors",
"summary": "Incorrect initial assumptions or knowledge leading to biased conclusions.",
"subBiases": [
{
"name": "Agent detection bias",
"summary": "Presuming the intervention of a sentient agent in ambiguous situations."
},
{
"name": "Automation bias",
"summary": "Overreliance on automated systems, overriding correct decisions."
},
{
"name": "Gender bias",
"summary": "Implicit biases that discriminate based on gender."
},
{
"name": "Sexual overperception bias",
"summary": "Overestimating or underestimating another's sexual interest."
},
{
"name": "Stereotyping",
"summary": "Expecting certain characteristics based on group membership."
}
]
},
{
"name": "Framing effect",
"summary": "Drawing different conclusions from the same information, depending on how it's presented.",
"subBiases": [
{
"name": "Contrast effect",
"summary": "Enhancement or diminishment of perception when compared with something else."
},
{
"name": "Decoy effect",
"summary": "Preferences change when a dominated option is introduced as a 'decoy.'"
},
{
"name": "Default effect",
"summary": "Choosing the default option when faced with multiple choices."
},
{
"name": "Denomination effect",
"summary": "Spending more when money is in smaller denominations."
},
{
"name": "Distinction bias",
"summary": "Seeing options as more dissimilar when evaluated together than separately."
},
{
"name": "Domain neglect bias / Context neglect bias",
"summary": "Failing to apply relevant domain knowledge or context properly."
}
]
},
{
"name": "Logical fallacy (selected)",
"summary": "Errors in reasoning often arising from incorrect inferences or assumptions.",
"subBiases": [
{
"name": "Berkson's paradox",
"summary": "Misinterpreting conditional probabilities in statistical contexts."
},
{
"name": "Escalation of commitment / Sunk cost fallacy",
"summary": "Continuing a failing course of action because of prior investment."
},
{
"name": "Gambler's fallacy",
"summary": "Believing that separate chance events influence one another (e.g., coin flips)."
},
{
"name": "Hot-hand fallacy",
"summary": "Belief that success 'streaks' increase the probability of subsequent success."
},
{
"name": "Plan continuation bias",
"summary": "Sticking to an initial plan despite evidence it’s no longer appropriate."
},
{
"name": "Subadditivity effect",
"summary": "Judging the probability of the whole as less than the sum of its parts."
},
{
"name": "Zero-sum bias",
"summary": "Mistakenly viewing a situation as strictly win–lose."
}
]
},
{
"name": "Prospect theory biases",
"summary": "Behavioral economic theory describing how people choose between probabilistic alternatives.",
"subBiases": [
{
"name": "Ambiguity effect",
"summary": "Avoiding choices where probability of outcomes is unknown."
},
{
"name": "Disposition effect",
"summary": "Selling assets that have gained value, while keeping assets that have lost value."
},
{
"name": "Dread aversion",
"summary": "Negative anticipation can have disproportionately strong emotional impact."
},
{
"name": "Endowment effect",
"summary": "Demanding more to give up an object than one would pay to acquire it."
},
{
"name": "Loss aversion",
"summary": "Losses loom larger than gains of the same size."
},
{
"name": "Pseudocertainty effect",
"summary": "Risk-averse choices when outcomes are positive, but risk-seeking to avoid negative outcomes."
},
{
"name": "Status quo bias",
"summary": "Preference for the current state of affairs."
},
{
"name": "System justification",
"summary": "Defending the status quo, even at one’s own expense."
}
]
},
{
"name": "Self-assessment biases",
"summary": "Biases affecting how people judge their own abilities or traits.",
"subBiases": [
{
"name": "Dunning–Kruger effect",
"summary": "Unskilled people often overestimate their competence; experts sometimes underestimate theirs."
},
{
"name": "Hot-cold empathy gap",
"summary": "Underestimating how states of drive or emotion alter behavior or preferences."
},
{
"name": "Hard–easy effect",
"summary": "Overestimating chances of success on hard tasks, underestimating for easy ones."
},
{
"name": "Illusion of explanatory depth",
"summary": "Believing one understands complex topics better than one actually does."
},
{
"name": "Impostor syndrome",
"summary": "Persistent fear of being exposed as a fraud despite evidence of success."
},
{
"name": "Objectivity illusion",
"summary": "Believing oneself to be more objective than others."
}
]
},
{
"name": "Truth judgment biases",
"summary": "Biases that affect how people judge the truth or believability of statements.",
"subBiases": [
{
"name": "Belief bias",
"summary": "Judging the strength of an argument by the believability of its conclusion."
},
{
"name": "Illusory truth effect",
"summary": "Repeated statements feel truer than new statements, regardless of their truth value."
},
{
"name": "Rhyme as reason effect",
"summary": "Rhyming statements are seen as more truthful or persuasive."
},
{
"name": "Subjective validation",
"summary": "Statements are seen as true if one’s belief demands it to be true."
}
]
},
{
"name": "Other biases (selected)",
"summary": "Miscellaneous biases affecting decisions or behavior.",
"examples": [
{
"name": "Action bias",
"summary": "Preference to act to address a problem, even when doing nothing is better."
},
{
"name": "Additive bias",
"summary": "Inclination to add elements to solve a problem rather than remove them."
},
{
"name": "Curse of knowledge",
"summary": "Difficulty in imagining what it’s like not to know something once you do know it."
},
{
"name": "Declinism",
"summary": "Viewing the past favorably and the future negatively."
},
{
"name": "End-of-history illusion",
"summary": "Belief that one will change less in the future than one has in the past."
},
{
"name": "Hindsight bias",
"summary": "\"I knew it all along.\" Seeing past events as more predictable than they were."
},
{
"name": "Optimism bias",
"summary": "Overestimating the likelihood of positive events and underestimating negative ones."
},
{
"name": "Ostrich effect",
"summary": "Ignoring an obvious negative reality."
},
{
"name": "Outcome bias",
"summary": "Judging decisions by their outcomes rather than by their quality at the time."
},
{
"name": "Pessimism bias",
"summary": "Overestimating the likelihood of negative outcomes, often seen with depression."
},
{
"name": "Projection bias",
"summary": "Overestimating how much future preferences will match current preferences."
},
{
"name": "Proportionality bias",
"summary": "Assuming large events have large causes; can fuel conspiracy thinking."
},
{
"name": "Surrogation",
"summary": "Confusing a performance measure with the actual construct it represents."
},
{
"name": "Teleological bias",
"summary": "Ascribing purpose or design to natural events that are not goal-directed."
},
{
"name": "Unconscious / Implicit bias",
"summary": "Automatic attitudes or stereotypes that affect understanding and actions."
},
{
"name": "Unit bias",
"summary": "Perception that a single unit (e.g., one plate of food) is the ‘appropriate’ amount."
},
{
"name": "Women are wonderful effect",
"summary": "Associating more positive attributes with women than men."
}
]
}
]
},
{
"sectionTitle": "Memory biases",
"summary": "Biases affecting the encoding, storage, or retrieval of memories.",
"subsections": [
{
"subsectionTitle": "Misattribution of memory",
"summary": "Mistakenly attributing a memory to an incorrect source.",
"subBiases": [
{
"name": "Cryptomnesia",
"summary": "A memory is mistaken for original thought."
},
{
"name": "False memory",
"summary": "Imagined events mistaken for true memories."
},
{
"name": "Social cryptomnesia",
"summary": "Forgetting how social change occurred while remembering that it happened."
},
{
"name": "Source confusion",
"summary": "Mixing up the source of a memory."
},
{
"name": "Suggestibility",
"summary": "Memories influenced by the phrasing of questions or external suggestions."
},
{
"name": "Perky effect",
"summary": "Real images can be misremembered as imagined and vice versa."
}
]
},
{
"subsectionTitle": "Other memory biases (selected)",
"biasList": [
{
"name": "Bizarreness effect",
"summary": "Bizarre information is more memorable than commonplace information."
},
{
"name": "Choice-supportive bias",
"summary": "Remembering one's choices as better than they were."
},
{
"name": "Consistency bias",
"summary": "Incorrectly remembering past beliefs as similar to present beliefs."
},
{
"name": "Fading affect bias",
"summary": "Emotion associated with unpleasant memories fades faster than that of pleasant ones."
},
{
"name": "Google effect",
"summary": "Forgetting information that can easily be found online."
},
{
"name": "Hindsight bias",
"summary": "Recalling past events as more predictable than they actually were."
},
{
"name": "Misinformation effect",
"summary": "Memory becomes distorted by post-event information."
},
{
"name": "Negativity bias (in memory)",
"summary": "Greater recall of unpleasant memories over positive ones."
},
{
"name": "Peak–end rule",
"summary": "Evaluating experiences by how they were at their peak and how they ended."
},
{
"name": "Rosy retrospection",
"summary": "Recalling past events more favorably than they actually were."
},
{
"name": "Spacing effect",
"summary": "Better recall for information studied in spaced intervals."
},
{
"name": "Zeigarnik effect",
"summary": "Uncompleted tasks are remembered better than completed ones."
}
]
}
]
}
],
"seeAlso": [
"List of fallacies",
"Heuristics in judgment and decision making",
"Observational error (systematic bias)",
"Media bias",
"Motivated reasoning",
"Self-handicapping"
],
"notes": "This JSON is an illustrative example, providing a condensed summary of each bias.",
"licenseNotice": "Text is adapted from Wikipedia and available under CC-BY-SA 4.0."
}
================================================
FILE: data/cognitive_biases.md
================================================
1–10: Attention, Perception & Memory Distortions
Anchoring Bias
Relying too heavily on the first piece of information (the “anchor”) we receive when making decisions.
Attentional Bias
Tendency to pay more attention to certain stimuli while neglecting others, often because of our current emotional state or expectations.
Availability Heuristic
Estimating likelihood or frequency of events based on how easily examples come to mind (recent, vivid, dramatic).
Baader–Meinhof Phenomenon (Frequency Illusion)
Once you notice something, you start seeing it everywhere, creating the illusion it’s suddenly more frequent.
Change Blindness
Failing to notice even large changes in a visual scene when our attention is directed elsewhere.
Confirmation Bias
Seeking or interpreting evidence in ways that confirm our preexisting beliefs, and ignoring disconfirming data.
Context Effect
Cognitive perception of stimuli is influenced by the surrounding environment or context.
Contrast Effect
Perception of something is affected by comparisons to something else (e.g., an object seems bigger if it’s placed near smaller objects).
Egocentric Bias
Over-focusing on our own perspective and experiences, making it difficult to see situations through others’ eyes.
Illusory Truth Effect
Repeated statements feel more true over time, simply because we’ve heard them often.
11–20: Judgment under Uncertainty
Ambiguity Effect
Avoiding options for which missing information makes the probability of outcomes seem ‘unknown.’
Base Rate Neglect
Ignoring general (statistical) information in favor of specifics or anecdotes when estimating probabilities.
Belief Bias
Judging the strength of an argument by the plausibility of its conclusion rather than how strongly it’s supported.
Clustering Illusion
Seeing patterns in random data (e.g., ‘hot streaks’ in coin tosses).
Conjunction Fallacy
Judging the conjunction of events as likelier than a single general event (e.g., “Linda is a bank teller and activist” seeming likelier than just “Linda is a bank teller”).
Gambler’s Fallacy
Believing that past random events affect the probabilities in the random event at hand (“I’ve flipped five heads, so a tail is ‘due’”).
Hindsight Bias
After an event, believing we “knew it all along” or that it was easily predictable.
Hot-Hand Fallacy
Thinking someone who experiences success (e.g., making consecutive basketball shots) has a greater chance of further success, even in purely random sequences.
Law of the Instrument
Overreliance on a familiar tool or approach (“If all you have is a hammer, everything looks like a nail.”).
Survivorship Bias
Focusing on successes or survivors while overlooking those that did not survive (creating a skewed perspective).
21–30: Social & Group Dynamics
Actor–Observer Bias
We attribute our own actions to external circumstances, but others’ actions to their character or disposition.
Authority Bias
Being overly influenced by authority figures or experts, sometimes beyond rational justification.
Bandwagon Effect (Social Proof)
Doing or believing things just because many other people do.
Bystander Effect
In a group, individuals are less likely to help someone in distress because they assume someone else will.
Collective Effort Model
People in groups often reduce individual effort if they believe their contributions aren’t personally critical.
False Consensus Effect
Overestimating how much other people share our own attitudes and behaviors.
Illusion of Transparency
Tendency to overestimate others’ ability to know our emotional states or intentions.
Ingroup Bias
Showing preferential treatment and judgments toward members of one’s own group over outsiders.
Outgroup Homogeneity Effect
Seeing members of other groups as more similar to each other than they really are.
Social Comparison Bias
Disliking or feeling competitive with someone we perceive as “better” or more talented in some area we care about.
31–40: Motivation & Self-Perception
Dunning–Kruger Effect
Incompetent individuals overestimate their skill; experts may underestimate their relative competence.
Effort Justification
Placing greater value on outcomes that required more work, even if they aren’t inherently better.
Extrinsic Incentive Error
Believing others are more motivated by money or external rewards than they actually are—underestimating intrinsic motivations.
IKEA Effect
People value something they partially created more than a similar product they didn’t help make.
Illusion of Control
Overestimating one’s influence over external events, especially in random outcomes.
Moral Licensing
After doing something morally good, feeling “licensed” to act in a self-indulgent or less moral way.
Planning Fallacy
Underestimating the time, costs, and risks of future actions, often leading to missed deadlines or budget overruns.
Projection Bias
Assuming that our current preferences or values will remain constant in the future.
Self-Serving Bias
Attributing successes to our own skill, and failures to external factors.
Sunk Cost Fallacy
Continuing a behavior or endeavor because of previously invested resources (time, money) rather than cutting losses.
41–50: Emotional & Affective Biases
Affect Heuristic
Making decisions based on our emotions (“gut feeling”) rather than objective evidence.
Empathy Gap
Underestimating the influence of emotional and visceral states on our behavior when we’re not currently experiencing them.
Framing Effect
Being influenced by how information is presented (gain vs. loss framing) rather than just the facts themselves.
Hedonic Adaptation
Tendency to quickly return to a relatively stable level of happiness despite major positive or negative events.
Negativity Bias
Giving more weight to negative experiences or information than positive ones of equal intensity.
Pessimism Bias
Overestimating the likelihood of negative outcomes, relative to probabilities.
Positivity Bias (Optimism Bias)
Overestimating the likelihood of positive outcomes, relative to probabilities.
Priming
Exposure to a stimulus influences responses to subsequent stimuli, often unconsciously.
Reactive Devaluation
Devaluing proposals or ideas merely because they originate from an adversary or disliked source.
Rosy Retrospection
Remembering past events as more positive than they actually were.
51–60: Decision & Behavior Traps
Choice-Supportive Bias
Remembering chosen options as better than they really were, and rejected options as worse.
Decoy Effect
Preferences for options change when a third, asymmetrically dominated option is introduced.
Distinction Bias
Viewing two options as more dissimilar when simultaneously evaluating them than when separately evaluating them.
Endowment Effect
Placing higher value on things we own simply because we own them.
Fear of Missing Out (FOMO)
Anxiety that not experiencing something (a trend or event) will lead to regret or lost opportunities.
Hyperbolic Discounting
Preferring smaller, sooner rewards to larger, later rewards, irrationally undervaluing future gains.
Irrational Escalation
Continuing a decision even when rational analysis suggests a better alternative, often due to prior investment.
Menu Dependence
Choices depend on how options are grouped or compared, not just on their absolute value.
Regret Aversion
Avoiding taking actions for fear that whatever happens, we’ll regret making the “wrong” choice.
Status Quo Bias
Preferring things to stay the same by doing nothing or by sticking with a previous decision.
61–70: Communication & Language Effects
Authority Suggestion Effect
The way language from an authority figure can override individual judgment (akin to Authority Bias).
Euphemism Treadmill
New, mild terms for a concept eventually take on the negative connotations of the old term.
Labeling Effect
Assigning a label to a person or thing influences how we perceive them or it afterward.
Name Letter Effect
People prefer letters in their own name and will make decisions biased toward them (e.g., brand names, locations).
Rhyme-as-Reason Effect
Rhyming statements seem more truthful (e.g., “If it doesn’t fit, you must acquit”).
Sapir–Whorf Hypothesis (Linguistic Relativity)
The language we use shapes how we think and perceive reality.
Semantic Priming
Words we read or hear can prime us to interpret subsequent information in aligned ways.
Weasel Words
The strategic use of vague or ambiguous language to create an impression without making a firm statement.
Wording Effect
The specific phrasing in surveys or polls can influence participants’ responses.
Zeigarnik Effect
People remember uncompleted or interrupted tasks better than completed ones—can be language- or context-driven.
71–80: Social Interaction & Identity
Cheerleader Effect
Individuals appear more attractive in a group than they do alone.
Displacement of Conflict
Redirecting conflict from a powerful target to a safer or more convenient one.
Double Standard
Judging the same action differently depending on who performs it or other group identifiers.
Ethnocentrism
Evaluating other cultures or groups according to the standards of one’s own culture, often with a sense of superiority.
Group Attribution Error
Believing that group members’ characteristics and preferences are all related or individually similar.
Halo Effect
Overall positive impression of a person (or brand) colors our judgments about their other traits or products.
Horns Effect (Reverse Halo)
Negative initial impression spills over into judgments about other aspects of a person or thing.
Identifiable Victim Effect
We respond more strongly to specific individuals in crisis than to large, abstract groups.
Social Desirability Bias
Answering questions or behaving in ways that are viewed favorably by others, rather than truthfully.
Spiral of Silence
Individuals may stay silent if they believe their views are in the minority, thereby reinforcing that perceived majority view.
81–90: Memory, Recall, & Information Processing
Cryptomnesia
Mistaking a memory for a novel idea (“unconscious plagiarism”).
Google Effect (Digital Amnesia)
Forgetting information that can easily be looked up online.
Illusory Correlation
Perceiving a relationship between variables (often people, events, or behaviors) even when no such relationship exists.
Leveling and Sharpening
When recounting memories, we drop details that seem irrelevant (leveling) but focus heavily on unusual details (sharpening).
Memory Inhibition
Recall of certain details is inhibited by exposure to related but misleading or distracting information.
Misattribution of Memory
Attributing a memory to the wrong source or confusing an imagined event with reality.
Misinformation Effect
Post-event information can distort recall of the original event (especially in eyewitness testimony).
Peak–End Rule
We judge experiences largely based on how they felt at their peak (best or worst) and how they ended.
Recall Bias
Systematic errors in memory due to personal beliefs, time passage, or emotional factors.
Telescoping Effect
Events from the past seem more recent than they are (forward telescoping) or more distant (backward telescoping).
91–100: Moral, Ethical, & Political Biases
Just-World Hypothesis
Belief that the world is fair; people get what they deserve, and deserve what they get.
Outrage Bias
Tendency to become disproportionately angry or outraged at minor offenses, especially online.
System Justification
Defending and rationalizing the status quo, even at personal or collective cost.
Tyranny of Small Decisions
Many small, individually rational decisions can lead to undesirable collective outcomes.
Ultimate Attribution Error
Attributing negative outgroup behavior to dispositional causes while excusing the same behavior by ingroup members as situational.
Worse-Than-Average Effect
Believing we are worse than average at tasks we’re not confident in (opposite of the better-than-average effect).
Zero-Sum Bias
Viewing situations as zero-sum (one side’s gain is another’s loss) even if they’re not.
Decency Gap
Demanding higher moral standards from opponents while making excuses for lapses in one’s own side.
Binding Bias
Overvaluing group cohesion or loyalty to the extent that it overrides personal moral judgments.
Apologies as Admission
In some cultures or contexts, apologizing is perceived as admission of guilt, discouraging genuine remorse or relationship repair.
101–110: Time, Planning & Future-Oriented Biases
Temporal Discounting
Valuing immediate rewards disproportionately more than future rewards (similar to Hyperbolic Discounting).
Present Bias
Focusing on immediate wants or needs at the expense of long-term goals.
Ziegarnik–Lewin Effect
Unfinished goals or tasks dominate our attention, but finishing them can abruptly reduce motivation.
Future Blindness
Underestimating potential changes or disruptions that might happen over time, leading to overconfidence.
Expectation Escalation
Upwardly adjusting what we consider “normal” or “adequate” once a higher standard is reached.
Procrastination
Delaying tasks despite expecting to be worse off for the delay; often linked to anxiety and poor impulse control.
Time-Saving Bias
Overestimating the time saved by faster tasks and underestimating time saved by slower tasks.
Punctuality Fallacy
Assuming that success depends on perfect timing, neglecting other critical factors such as quality or synergy.
Reminiscence Bump
People tend to recall many memories from adolescence and early adulthood because of that period’s significance.
Transient Bias
Over-focusing on current conditions and forgetting that life circumstances are fluid.
111–120: Risk Assessment & Management
Action Bias
Preference for action over inaction, even if inaction would produce a better outcome.
Black Swan Blindness
Ignoring or downplaying low-probability, high-impact events until after they occur.
Dread Risk
Overestimating the risk of a dramatic, publicized event (plane crash, terrorism) vs. more likely yet mundane risks (car accidents).
Zero-Risk Bias
Prefer reducing a small risk to zero over larger overall risk reductions elsewhere.
Exponential Growth Bias
Underestimating how quickly exponential processes grow (e.g., compound interest, viral spread).
House-Money Effect
Taking more risks with money or resources perceived as “house money” (winnings or windfalls).
Sudden-Death Aversion
Avoiding high-risk/high-reward “sudden-death” scenarios, even when they could maximize chances of success.
Toxic Handling
One individual in a group handles all negativity and stress, skewing risk perceptions for everyone else.
Generalization of Failure
After one failure, seeing all risk-taking as more likely to fail.
Ambiguity Aversion
Preferring known probabilities over unknown probabilities, even if the unknown could be advantageous.
121–130: Cultural, Ideological & Media-Driven Biases
Cultural Bias
Interpreting and judging phenomena in terms particular to one’s own culture.
Denomination Effect
Spending more freely with smaller currency denominations or digital credits than large bills.
Herding
Copying the masses’ behavior, often driven by media, social networks, or cultural norms.
Groupthink
Desire for group cohesion leads to suppressing dissenting viewpoints and critical thinking.
Illusory Superiority (Better-Than-Average Effect)
Overestimating our own qualities and abilities relative to others.
Media Equation
People tend to treat media (like computers or TV) as if they were real people, applying social rules to them.
Meme Theory (Thought Contagion)
Ideas spread like viruses, replicating through social and cultural transmission.
Normalization of Deviance
Gradual process by which unacceptable practices or standards become acceptable over time.
Punctuated Equilibrium in Culture
Long periods of cultural stability followed by sudden shifts, often triggered by external events.
Socio-Centric Thinking
Viewing issues primarily through the lens of one’s social group or ideology, ignoring broader perspectives.
131–140: Mental Shortcuts & Heuristics
Affect Heuristic
Quick judgments based on emotional reactions rather than factual analysis (overlaps with “Affect Bias”).
Availability Cascade
Self-reinforcing process where a collective belief gains plausibility through repeated public discussion.
Cognitive Ease
Preferencing ideas that are easy to process or recall over those that require more mental effort.
Fluency Heuristic
If one option is processed more fluently (faster, more familiar), we judge it to be superior.
Forer Effect (Barnum Effect)
Seeing vague, general personality descriptions as uniquely applicable to ourselves.
Length Implication Heuristic
Longer messages or lists can appear more credible simply because they are more detailed.
Mere Exposure Effect
People develop a preference for things simply because they’re familiar.
Occam’s Razor Misapplication
Over-simplifying solutions or dismissing complex truth by appealing to “the simplest explanation.”
Processing Difficulty Effect
Occasionally, harder-to-read or decipher text can lead to better recall or deeper processing (counterintuitive effect).
Scarcity Heuristic
Perceiving things as more valuable if they are scarce or limited.
141–150: Errors in Explanation & Causality
Anthropomorphism
Attributing human traits or intentions to non-human entities or events.
Circular Reasoning
Using the conclusion as a premise without offering real evidence.
Correlation vs. Causation Error
Mistaking correlation for causation or failing to consider third variables or reverse causation.
Curse of Knowledge
Once we know something, we find it hard to imagine not knowing it—making it difficult to teach or explain.
Distorted Definition of Randomness
Expecting random sequences to look more orderly or more ‘patterned’ than they truly are.
Essentialism
Believing that certain things have an unchanging ‘essence’ that dictates how they will behave or be perceived.
Focusing Effect
Overemphasizing a single factor at the expense of others when explaining outcomes.
Fundamental Attribution Error
Attributing others’ behavior too much to personality and not enough to context—(Actor–Observer Bias is a related phenomenon).
Hasty Generalization
Drawing a broad conclusion from a tiny sample.
Post Hoc Ergo Propter Hoc
Assuming that because one thing happened after another, it was caused by the other (“after this, therefore because of this”).
151–160: Problem-Solving & Strategy Pitfalls
Bike-Shedding
Spending disproportionate time on trivial issues while neglecting more complex, important ones.
Blaming the Victim
Finding reasons why the victim of a misfortune is responsible, often to preserve a sense of justice.
Boundary Effect
Overlooking how changes near boundary conditions (limits) can invalidate certain assumptions or methods.
Broken Window Theory (misused cognitively)
Extrapolating from small signs of disorder that major problems must exist or will develop if not corrected.
Cobra Effect
Solutions that exacerbate the problem they’re trying to solve due to misguided incentives.
Defensive Decision-Making
Choosing the option that protects against the worst outcome for oneself, rather than aiming for the best overall outcome.
Escalation of Commitment
Similar to the Sunk Cost Fallacy—continuing on a failing path to justify resources already spent.
Goal Dilution
When multiple goals are pursued simultaneously, motivation and effectiveness toward each goal can be diluted.
Parkinson’s Law of Triviality
Similar to Bike-Shedding—time spent on an issue is inversely proportional to its actual importance.
Tragedy of the Commons
Individuals, acting independently in self-interest, can deplete shared resources, harming everyone in the long run.
161–170: Economic & Market Biases
Bubble Thinking
Collective psychological phenomenon where asset prices rise far above fundamental value, driven by group euphoria.
Diminishing Sensitivity
Gains or losses have diminishing psychological impact as their absolute amount grows (related to Prospect Theory).
Disposition Effect
Tendency to sell assets that have increased in value while holding assets that have dropped in value, seeking to avoid loss realization.
End of History Illusion
Underestimating how much our preferences and values will change in the future.
Hedonic Framing
Splitting gains and combining losses to maximize perceived outcomes (e.g., listing multiple benefits separately, grouping costs together).
Money Illusion
Focusing on nominal dollar amounts rather than real purchasing power (ignoring inflation or deflation).
Prospect Theory (Loss Aversion)
We feel the pain of losses more strongly than the pleasure of equivalent gains.
Reference Price Effect
A perceived “fair” or “normal” price serves as a reference; deviations feel like gains or losses.
Restraint Bias
Overestimating our capacity to resist temptation, which can lead to exposing ourselves to unnecessary risks.
Weber–Fechner Law
Perceived change in a stimulus is proportional to the initial intensity of that stimulus (applies to money, weight, brightness, etc.).
171–180: Technology, Tools & Environment Biases
Automation Bias
Over-relying on automated systems (algorithms, software) even when they are flawed or incomplete.
Digital Divide Fallacy
Ignoring that not all user bases have equal technological access or skill, skewing usage or adoption data.
Feature Creep
Overcomplicating products or systems by adding unnecessary features (can confuse or alienate users).
Generational Bias
Assuming technological or cultural changes are inferior or superior based solely on generational identity.
Not-Invented-Here Syndrome
Avoiding or undervaluing external ideas/technologies because they weren’t developed in-house.
Online Disinhibition Effect
People say or do things online they wouldn’t do face to face, often due to perceived anonymity.
Overconfidence in Tools
Trusting technology’s readouts or numeric data without cross-checking or common sense.
Platform Effect
Believing a certain platform’s popularity or structure implies inherent superiority or inevitability.
Seductive Detail Effect
Irrelevant but interesting features or data can distract from the core purpose, reducing learning or clarity.
Technological Lock-In
Once a technology is adopted widely, switching becomes expensive or complicated, even if superior alternatives exist.
181–190: Ethics, Morality & Relationship to Others
Altruism Bias
Overestimating the benevolence of our own motives, underestimating others’ cynicism or self-interest.
Defensive Attribution
Explaining others’ misfortunes by blaming them for the situation, to protect our own sense of invulnerability.
Empathy Gap in Morality
Difficulty in understanding the moral choices of people in drastically different emotional states or contexts.
Ethical Fading
Situations in which the moral aspects of a decision are overlooked or ‘faded out’ under pressure.
Licensing Effect in Ethics
Doing one ‘good deed’ can make people feel they have a moral license to do something not-so-good afterward.
Moral Credential Effect
Accumulating “moral credits” from past good deeds to rationalize or excuse future questionable actions.
Prejudice Blindness
Underestimating the extent of one’s own biases or discriminatory behavior.
Psychological Numbing**
Diminished emotional response when facing large-scale problems (e.g., statistics on famine or disasters).
Self-Righteousness Bias
Viewing one’s own moral stance as inherently superior, while dismissing legitimate points of others.
Slippery Slope
Fearing that a small first step will lead to a chain of related (and often extreme) events, though sometimes the chain is improbable.
191–200: Meta-Biases & Self-Reflection
Blind-Spot Bias
Recognizing the impact of biases in others’ judgments while failing to see the impact of biases on one’s own judgments.
Bias Blindness in Groups
Groups believe they are less biased than other groups, ignoring their own group-level blind spots.
Cynicism Bias
Overestimating selfishness or malicious intent in others, ignoring the possibility of honest mistakes or benign motives.
Double-Counting Fallacy
Mistaking two pieces of evidence that are not truly independent as separate confirmations of a hypothesis.
Falsification Neglect
Not actively looking for ways to prove our beliefs wrong, contrary to the scientific ideal of falsification.
Gradual Decay of Bias Awareness
Even if we learn about biases, over time, we revert to old patterns unless we continuously practice reflection.
Hindsight Overcorrection
Sometimes, trying to avoid hindsight bias makes us overcorrect and assume we knew less than we did.
Instrumental Rationalization
Using superficial “rational” arguments to justify a pre-chosen conclusion, rather than letting logic guide the conclusion.
Noble Cause Corruption
Rationalizing unethical behavior in the name of a “greater good,” ignoring immediate harm.
Third-Person Effect
Believing that media or biases affect others more than they affect us, underestimating our own susceptibility.
================================================
FILE: data/data.json
================================================
[
"1. 150 cognitive biases",
"2. 150 mental models",
"3. 150 books - bookshelf dynamicland.org -",
"4. simulations - bungie, unreal, unity, three.js",
"5. maps - leaflet, mapbox, deck.gl - UWDataVis",
"6. blogs - heaton, pg, tptacek, xe iaso",
"7. 150 videos studio.yoga , skyting.yoga, replits / agents / tools - bungie - halo - adam + adnan - 20"
]
================================================
FILE: data/dynamicland/everything.json
================================================
[
"https://bookshop.org/book/9781477325766",
"https://bookshop.org/book/9780521292429",
"https://archive.org/details/in.gov.ignca.12550",
"https://bookshop.org/book/9780674699069",
"https://www.routledge.com/Orality-and-Literacy-30th-Anniversary-Edition/Ong/p/book/9780415538381",
"https://bookshop.org/book/9780521299558",
"https://en.wikipedia.org/wiki/The_Educated_Mind",
"https://www.edwardtufte.com/book/envisioning-information/",
"https://en.wikipedia.org/wiki/Understanding_Comics",
"https://mitpress.mit.edu/9780262581462/cognition-in-the-wild/",
"https://bookshop.org/book/9780143117469",
"https://bookshop.org/book/9780679740476",
"https://en.wikipedia.org/wiki/A_Pattern_Language",
"https://en.wikipedia.org/wiki/The_Oregon_Experiment",
"https://en.wikipedia.org/wiki/How_Buildings_Learn",
"https://bookshop.org/book/9780226113470",
"https://bookshop.org/book/9780679764892",
"http://www.newmediareader.com/",
"https://bookshop.org/book/9780125232708",
"https://bookshop.org/book/9781783083442",
"https://worrydream.com/refs/Nelson_T_1974_-_Computer_Lib,_Dream_Machines.pdf",
"https://en.wikipedia.org/wiki/Literary_Machines",
"https://bookshop.org/book/9781541675124",
"https://worrydream.com/refs/Allen-Conn_2003_-_Powerful_Ideas_in_the_Classroom.pdf",
"https://www.rheingold.com/texts/tft/",
"https://en.wikipedia.org/wiki/Sketchpad",
"https://dougengelbart.org/content/view/201/",
"https://dl.acm.org/doi/book/10.1145/61975",
"https://worrydream.com/refs/Krasner_1983_-_Smalltalk-80_Bits_of_History,_Words_of_Advice.pdf",
"https://archive.org/details/humaninterfacewh0000bolt",
"https://worrydream.com/refs/Bolt_1979_-_Spatial_Data_Management.pdf",
"https://worrydream.com/refs/Kim_1988_-_Viewpoint,_Toward_a_Computer_for_Visual_Thinkers.pdf",
"https://en.wikipedia.org/wiki/Seeing_Like_a_State",
"https://mitpress.mit.edu/9780262546799/simulation-and-its-discontents/",
"https://bookshop.org/book/9780143036531",
"https://bookshop.org/book/9780679745402",
"https://bookshop.org/book/9781842300114",
"https://web.stanford.edu/dept/SUL/sites/mac/primary/docs/satori/",
"https://bookshop.org/book/9781732265110",
"https://bookshop.org/book/9780804738712",
"https://worrydream.com/refs/Piumarta_2010_-_Points_of_View.pdf",
"https://bookshop.org/book/9781849901154"
]
================================================
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey.html
================================================
================================================
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/1683-90852ff38d0f48c3.js
================================================
!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new t.Error).stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="c3d83145-effc-4e57-8b38-6011c45bf9c1",t._sentryDebugIdIdentifier="sentry-dbid-c3d83145-effc-4e57-8b38-6011c45bf9c1")}catch(t){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1683],{94587:function(t,n,e){e.d(n,{Nw:function(){return a},ml:function(){return o},ZP:function(){return l}});var r=e(9757),i=e(40477);let u=(0,i.Z)(r.Z),o=u.right,a=u.left;(0,i.Z)(function(t){return null===t?NaN:+t}).center;var l=o},40477:function(t,n,e){e.d(n,{Z:function(){return u}});var r=e(9757),i=e(98837);function u(t){let n,e,u;function a(t,r,i=0,u=t.length){if(i<u){if(0!==n(r,r))return u;do{let n=i+u>>>1;0>e(t[n],r)?i=n+1:u=n}while(i<u)}return i}return 2!==t.length?(n=r.Z,e=(n,e)=>(0,r.Z)(t(n),e),u=(n,e)=>t(n)-e):(n=t===r.Z||t===i.Z?t:o,e=t,u=t),{left:a,center:function(t,n,e=0,r=t.length){let i=a(t,n,e,r-1);return i>e&&u(t[i-1],n)>-u(t[i],n)?i-1:i},right:function(t,r,i=0,u=t.length){if(i<u){if(0!==n(r,r))return u;do{let n=i+u>>>1;0>=e(t[n],r)?i=n+1:u=n}while(i<u)}return i}}}function o(){return 0}},98837:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}},18776:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t,n){let e;if(void 0===n)for(let n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e<i||void 0===e&&i>=i)&&(e=i)}return e}},88398:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t,n){let e;if(void 0===n)for(let n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}},62664:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e}},96815:function(t,n,e){e.d(n,{Yu:function(){return tp}});var r,i=e(96057),u=e(23838);let o={capture:!0,passive:!1};function a(t){t.preventDefault(),t.stopImmediatePropagation()}var l=e(62218),s=e(73109),c=e(21680),f=e(91739);function h(t,n,e){var r=new f.B7;return n=null==n?0:+n,r.restart(e=>{r.stop(),t(e+n)},n,e),r}var p=(0,i.Z)("start","end","cancel","interrupt"),v=[];function d(t,n,e,r,i,u){var o=t.__transition;if(o){if(e in o)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function u(l){var s,c,f,p;if(1!==e.state)return a();for(s in i)if((p=i[s]).name===e.name){if(3===p.state)return h(u);4===p.state?(p.state=6,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete i[s]):+s<n&&(p.state=6,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete i[s])}if(h(function(){3===e.state&&(e.state=4,e.timer.restart(o,e.delay,e.time),o(l))}),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(s=0,e.state=3,r=Array(f=e.tween.length),c=-1;s<f;++s)(p=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(r[++c]=p);r.length=c+1}}function o(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(a),e.state=5,1),u=-1,o=r.length;++u<o;)r[u].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),a())}function a(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=(0,f.HT)(function(t){e.state=1,e.timer.restart(u,e.delay,e.time),e.delay<=t&&u(t-e.delay)},0,e.time)}(t,e,{name:n,index:r,group:i,on:p,tween:v,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:0})}function g(t,n){var e=m(t,n);if(e.state>0)throw Error("too late; already scheduled");return e}function y(t,n){var e=m(t,n);if(e.state>3)throw Error("too late; already running");return e}function m(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw Error("transition not found");return e}function _(t,n){var e,r,i,u=t.__transition,o=!0;if(u){for(i in n=null==n?null:n+"",u){if((e=u[i]).name!==n){o=!1;continue}r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete u[i]}o&&delete t.__transition}}var w=e(68063),b=180/Math.PI,x={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function M(t,n,e,r,i,u){var o,a,l;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,l/=a),t*r<n*e&&(t=-t,n=-n,l=-l,o=-o),{translateX:i,translateY:u,rotate:Math.atan2(n,t)*b,skewX:Math.atan(l)*b,scaleX:o,scaleY:a}}function T(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(u,o){var a,l,s,c,f=[],h=[];return u=t(u),o=t(o),!function(t,r,i,u,o,a){if(t!==i||r!==u){var l=o.push("translate(",null,n,null,e);a.push({i:l-4,x:(0,w.Z)(t,i)},{i:l-2,x:(0,w.Z)(r,u)})}else(i||u)&&o.push("translate("+i+n+u+e)}(u.translateX,u.translateY,o.translateX,o.translateY,f,h),(a=u.rotate)!==(l=o.rotate)?(a-l>180?l+=360:l-a>180&&(a+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:(0,w.Z)(a,l)})):l&&f.push(i(f)+"rotate("+l+r),(s=u.skewX)!==(c=o.skewX)?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:(0,w.Z)(s,c)}):c&&f.push(i(f)+"skewX("+c+r),!function(t,n,e,r,u,o){if(t!==e||n!==r){var a=u.push(i(u)+"scale(",null,",",null,")");o.push({i:a-4,x:(0,w.Z)(t,e)},{i:a-2,x:(0,w.Z)(n,r)})}else(1!==e||1!==r)&&u.push(i(u)+"scale("+e+","+r+")")}(u.scaleX,u.scaleY,o.scaleX,o.scaleY,f,h),u=o=null,function(t){for(var n,e=-1,r=h.length;++e<r;)f[(n=h[e]).i]=n.x(t);return f.join("")}}}var Z=T(function(t){let n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?x:M(n.a,n.b,n.c,n.d,n.e,n.f)},"px, ","px)","deg)"),C=T(function(t){return null==t?x:(r||(r=document.createElementNS("http://www.w3.org/2000/svg","g")),r.setAttribute("transform",t),t=r.transform.baseVal.consolidate())?M((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):x},", ",")",")"),A=e(31663);function U(t,n,e){var r=t._id;return t.each(function(){var t=y(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return m(t,r).value[n]}}var D=e(4447),S=e(79591),N=e(16773);function Y(t,n){var e;return("number"==typeof n?w.Z:n instanceof D.ZP?S.ZP:(e=(0,D.ZP)(n))?(n=e,S.ZP):N.Z)(t,n)}var E=e(24421),k=e(83010),P=e(19701),F=c.ZP.prototype.constructor,H=e(52627);function B(t){return function(){this.style.removeProperty(t)}}var I=0;function L(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}var O=c.ZP.prototype;L.prototype=(function(t){return(0,c.ZP)().transition(t)}).prototype={constructor:L,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=(0,k.Z)(t));for(var r=this._groups,i=r.length,u=Array(i),o=0;o<i;++o)for(var a,l,s=r[o],c=s.length,f=u[o]=Array(c),h=0;h<c;++h)(a=s[h])&&(l=t.call(a,a.__data__,h,s))&&("__data__"in a&&(l.__data__=a.__data__),f[h]=l,d(f[h],n,e,h,f,m(a,e)));return new L(u,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=(0,P.Z)(t));for(var r=this._groups,i=r.length,u=[],o=[],a=0;a<i;++a)for(var l,s=r[a],c=s.length,f=0;f<c;++f)if(l=s[f]){for(var h,p=t.call(l,l.__data__,f,s),v=m(l,e),g=0,y=p.length;g<y;++g)(h=p[g])&&d(h,n,e,g,p,v);u.push(p),o.push(l)}return new L(u,o,n,e)},selectChild:O.selectChild,selectChildren:O.selectChildren,filter:function(t){"function"!=typeof t&&(t=(0,E.Z)(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var u,o=n[i],a=o.length,l=r[i]=[],s=0;s<a;++s)(u=o[s])&&t.call(u,u.__data__,s,o)&&l.push(u);return new L(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var n=this._groups,e=t._groups,r=n.length,i=e.length,u=Math.min(r,i),o=Array(r),a=0;a<u;++a)for(var l,s=n[a],c=e[a],f=s.length,h=o[a]=Array(f),p=0;p<f;++p)(l=s[p]||c[p])&&(h[p]=l);for(;a<r;++a)o[a]=n[a];return new L(o,this._parents,this._name,this._id)},selection:function(){return new F(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=++I,r=this._groups,i=r.length,u=0;u<i;++u)for(var o,a=r[u],l=a.length,s=0;s<l;++s)if(o=a[s]){var c=m(o,n);d(o,t,e,s,a,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new L(r,this._parents,t,e)},call:O.call,nodes:O.nodes,node:O.node,size:O.size,empty:O.empty,each:O.each,on:function(t,n){var e,r,i,u=this._id;return arguments.length<2?m(this.node(),u).on.on(t):this.each((i=(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})?g:y,function(){var o=i(this,u),a=o.on;a!==e&&(r=(e=a).copy()).on(t,n),o.on=r}))},attr:function(t,n){var e=(0,A.Z)(t),r="transform"===e?C:Y;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,u;return function(){var o,a,l=e(this);return null==l?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local))===(a=l+"")?null:o===r&&a===i?u:(i=a,u=n(r=o,l))}}:function(t,n,e){var r,i,u;return function(){var o,a,l=e(this);return null==l?void this.removeAttribute(t):(o=this.getAttribute(t))===(a=l+"")?null:o===r&&a===i?u:(i=a,u=n(r=o,l))}})(e,r,U(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i,u=e+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===u?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i,u=e+"";return function(){var o=this.getAttribute(t);return o===u?null:o===r?i:i=n(r=o,e)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw Error();var r=(0,A.Z)(t);return this.tween(e,(r.local?function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttributeNS(t.space,t.local,i.call(this,n))}),e}return i._value=n,i}:function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttribute(t,i.call(this,n))}),e}return i._value=n,i})(r,n))},style:function(t,n,e){var r,i,u,o,a,l,s,c,f,h,p,v,d,g,m,_,w,b,x,M,T,C="transform"==(t+="")?Z:Y;return null==n?this.styleTween(t,(r=t,function(){var t=(0,H.S)(this,r),n=(this.style.removeProperty(r),(0,H.S)(this,r));return t===n?null:t===i&&n===u?o:o=C(i=t,u=n)})).on("end.style."+t,B(t)):"function"==typeof n?this.styleTween(t,(a=t,l=U(this,"style."+t,n),function(){var t=(0,H.S)(this,a),n=l(this),e=n+"";return null==n&&(this.style.removeProperty(a),e=n=(0,H.S)(this,a)),t===e?null:t===s&&e===c?f:(c=e,f=C(s=t,n))})).each((h=this._id,w="end."+(_="style."+(p=t)),function(){var t=y(this,h),n=t.on,e=null==t.value[_]?m||(m=B(p)):void 0;(n!==v||g!==e)&&(d=(v=n).copy()).on(w,g=e),t.on=d})):this.styleTween(t,(b=t,T=n+"",function(){var t=(0,H.S)(this,b);return t===T?null:t===x?M:M=C(x=t,n)}),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw Error();return this.tween(r,function(t,n,e){var r,i;function u(){var u=n.apply(this,arguments);return u!==i&&(r=(i=u)&&function(n){this.style.setProperty(t,u.call(this,n),e)}),r}return u._value=n,u}(t,n,null==e?"":e))},text:function(t){var n,e;return this.tween("text","function"==typeof t?(n=U(this,"text",t),function(){var t=n(this);this.textContent=null==t?"":t}):(e=null==t?"":t+"",function(){this.textContent=e}))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw Error();return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){this.textContent=r.call(this,t)}),n}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=m(this.node(),e).tween,u=0,o=i.length;u<o;++u)if((r=i[u]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=y(this,t),u=i.tween;if(u!==e){r=e=u;for(var o=0,a=r.length;o<a;++o)if(r[o].name===n){(r=r.slice()).splice(o,1);break}}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw Error();return function(){var u=y(this,t),o=u.tween;if(o!==r){i=(r=o).slice();for(var a={name:n,value:e},l=0,s=i.length;l<s;++l)if(i[l].name===n){i[l]=a;break}l===s&&i.push(a)}u.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){g(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){g(this,t).delay=n}})(n,t)):m(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){y(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){y(this,t).duration=n}})(n,t)):m(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw Error();return function(){y(this,t).ease=n}}(n,t)):m(this.node(),n).ease},easeVarying:function(t){var n;if("function"!=typeof t)throw Error();return this.each((n=this._id,function(){var e=t.apply(this,arguments);if("function"!=typeof e)throw Error();y(this,n).ease=e}))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(u,o){var a={value:o},l={value:function(){0==--i&&u()}};e.each(function(){var e=y(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(a),n._.interrupt.push(a),n._.end.push(l)),e.on=n}),0===i&&u()})},[Symbol.iterator]:O[Symbol.iterator]};var z={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};c.ZP.prototype.interrupt=function(t){return this.each(function(){_(this,t)})},c.ZP.prototype.transition=function(t){var n,e;t instanceof L?(n=t._id,t=t._name):(n=++I,(e=z).time=(0,f.zO)(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,u=0;u<i;++u)for(var o,a=r[u],l=a.length,s=0;s<l;++s)(o=a[s])&&d(o,t,n,s,a,e||function(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw Error(`transition ${n} not found`);return e}(o,n));return new L(r,this._parents,t,n)};var j=t=>()=>t;function V(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:u}})}function X(t){t.preventDefault(),t.stopImmediatePropagation()}var J={name:"drag"},q={name:"space"},W={name:"handle"},R={name:"center"};let{abs:G,max:K,min:Q}=Math;function $(t){return[+t[0],+t[1]]}function tt(t){return[$(t[0]),$(t[1])]}var tn={name:"x",handles:["w","e"].map(tl),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},te={name:"y",handles:["n","s"].map(tl),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}};["n","w","e","s","nw","ne","sw","se"].map(tl);var tr={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},ti={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},tu={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},to={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},ta={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function tl(t){return{type:t}}function ts(t){return!t.ctrlKey&&!t.button}function tc(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function tf(){return navigator.maxTouchPoints||"ontouchstart"in this}function th(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function tp(){return function(t){var n,e=tc,r=ts,c=tf,f=!0,h=(0,i.Z)("start","brush","end"),p=6;function v(n){var e=n.property("__brush",x).selectAll(".overlay").data([tl("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",tr.overlay).merge(e).each(function(){var t=th(this).extent;(0,u.Z)(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),n.selectAll(".selection").data([tl("selection")]).enter().append("rect").attr("class","selection").attr("cursor",tr.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,function(t){return t.type});r.exit().remove(),r.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return tr[t.type]}),n.each(d).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",m).filter(c).on("touchstart.brush",m).on("touchmove.brush",w).on("touchend.brush touchcancel.brush",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(){var t=(0,u.Z)(this),n=th(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-p/2:n[0][0]-p/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-p/2:n[0][1]-p/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+p:p}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+p:p})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function g(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new y(t,n,e):r}function y(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function m(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,l,c,h,p,v,y,m,w,b,x,M=this,T=e.target.__data__.type,Z=(f&&e.metaKey?T="overlay":T)==="selection"?J:f&&e.altKey?R:W,C=t===te?null:to[T],A=t===tn?null:ta[T],U=th(M),D=U.extent,S=U.selection,N=D[0][0],Y=D[0][1],E=D[1][0],k=D[1][1],P=0,F=0,H=C&&A&&f&&e.shiftKey,B=Array.from(e.touches||[e],t=>{let n=t.identifier;return(t=(0,s.Z)(t,M)).point0=t.slice(),t.identifier=n,t});_(M);var I=g(M,arguments,!0).beforestart();if("overlay"===T){S&&(w=!0);let n=[B[0],B[1]||B[0]];U.selection=S=[[i=t===te?N:Q(n[0][0],n[1][0]),c=t===tn?Y:Q(n[0][1],n[1][1])],[p=t===te?E:K(n[0][0],n[1][0]),y=t===tn?k:K(n[0][1],n[1][1])]],B.length>1&&tl(e)}else i=S[0][0],c=S[0][1],p=S[1][0],y=S[1][1];l=i,h=c,v=p,m=y;var L=(0,u.Z)(M).attr("pointer-events","none"),O=L.selectAll(".overlay").attr("cursor",tr[T]);if(e.touches)I.moved=tt,I.ended=ts;else{var z,j,V,$=(0,u.Z)(e.view).on("mousemove.brush",tt,!0).on("mouseup.brush",ts,!0);f&&$.on("keydown.brush",function(t){switch(t.keyCode){case 16:H=C&&A;break;case 18:Z===W&&(C&&(p=v-P*C,i=l+P*C),A&&(y=m-F*A,c=h+F*A),Z=R,tl(t));break;case 32:(Z===W||Z===R)&&(C<0?p=v-P:C>0&&(i=l-P),A<0?y=m-F:A>0&&(c=h-F),Z=q,O.attr("cursor",tr.selection),tl(t));break;default:return}X(t)},!0).on("keyup.brush",function(t){switch(t.keyCode){case 16:H&&(b=x=H=!1,tl(t));break;case 18:Z===R&&(C<0?p=v:C>0&&(i=l),A<0?y=m:A>0&&(c=h),Z=W,tl(t));break;case 32:Z===q&&(t.altKey?(C&&(p=v-P*C,i=l+P*C),A&&(y=m-F*A,c=h+F*A),Z=R):(C<0?p=v:C>0&&(i=l),A<0?y=m:A>0&&(c=h),Z=W),O.attr("cursor",tr[T]),tl(t));break;default:return}X(t)},!0),j=(z=e.view).document.documentElement,V=(0,u.Z)(z).on("dragstart.drag",a,o),"onselectstart"in j?V.on("selectstart.drag",a,o):(j.__noselect=j.style.MozUserSelect,j.style.MozUserSelect="none")}d.call(M),I.start(e,Z.name)}function tt(t){for(let n of t.changedTouches||[t])for(let t of B)t.identifier===n.identifier&&(t.cur=(0,s.Z)(n,M));if(H&&!b&&!x&&1===B.length){let t=B[0];G(t.cur[0]-t[0])>G(t.cur[1]-t[1])?x=!0:b=!0}for(let t of B)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);w=!0,X(t),tl(t)}function tl(t){var n;let e=B[0],r=e.point0;switch(P=e[0]-r[0],F=e[1]-r[1],Z){case q:case J:C&&(P=K(N-i,Q(E-p,P)),l=i+P,v=p+P),A&&(F=K(Y-c,Q(k-y,F)),h=c+F,m=y+F);break;case W:B[1]?(C&&(l=K(N,Q(E,B[0][0])),v=K(N,Q(E,B[1][0])),C=1),A&&(h=K(Y,Q(k,B[0][1])),m=K(Y,Q(k,B[1][1])),A=1)):(C<0?(P=K(N-i,Q(E-i,P)),l=i+P,v=p):C>0&&(P=K(N-p,Q(E-p,P)),l=i,v=p+P),A<0?(F=K(Y-c,Q(k-c,F)),h=c+F,m=y):A>0&&(F=K(Y-y,Q(k-y,F)),h=c,m=y+F));break;case R:C&&(l=K(N,Q(E,i-P*C)),v=K(N,Q(E,p+P*C))),A&&(h=K(Y,Q(k,c-F*A)),m=K(Y,Q(k,y+F*A)))}v<l&&(C*=-1,n=i,i=p,p=n,n=l,l=v,v=n,T in ti&&O.attr("cursor",tr[T=ti[T]])),m<h&&(A*=-1,n=c,c=y,y=n,n=h,h=m,m=n,T in tu&&O.attr("cursor",tr[T=tu[T]])),U.selection&&(S=U.selection),b&&(l=S[0][0],v=S[1][0]),x&&(h=S[0][1],m=S[1][1]),(S[0][0]!==l||S[0][1]!==h||S[1][0]!==v||S[1][1]!==m)&&(U.selection=[[l,h],[v,m]],d.call(M),I.brush(t,Z.name))}function ts(t){var e,r,i,l,s;if(!function(t){t.stopImmediatePropagation()}(t),t.touches){if(t.touches.length)return;n&&clearTimeout(n),n=setTimeout(function(){n=null},500)}else e=t.view,r=w,i=e.document.documentElement,l=(0,u.Z)(e).on("dragstart.drag",null),r&&(l.on("click.drag",a,o),setTimeout(function(){l.on("click.drag",null)},0)),"onselectstart"in i?l.on("selectstart.drag",null):(i.style.MozUserSelect=i.__noselect,delete i.__noselect),$.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);L.attr("pointer-events","all"),O.attr("cursor",tr.overlay),U.selection&&(S=U.selection),((s=S)[0][0]===s[1][0]||s[0][1]===s[1][1])&&(U.selection=null,d.call(M)),I.end(t,Z.name)}}function w(t){g(this,arguments).moved(t)}function b(t){g(this,arguments).ended(t)}function x(){var n=this.__brush||{selection:null};return n.extent=tt(e.apply(this,arguments)),n.dim=t,n}return v.move=function(n,e,r){n.tween?n.on("start.brush",function(t){g(this,arguments).beforestart().start(t)}).on("interrupt.brush end.brush",function(t){g(this,arguments).end(t)}).tween("brush",function(){var n=this,r=n.__brush,i=g(n,arguments),u=r.selection,o=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),a=(0,l.Z)(u,o);function s(t){r.selection=1===t&&null===o?null:a(t),d.call(n),i.brush()}return null!==u&&null!==o?s:s(1)}):n.each(function(){var n=arguments,i=this.__brush,u=t.input("function"==typeof e?e.apply(this,n):e,i.extent),o=g(this,n).beforestart();_(this),i.selection=null===u?null:u,d.call(this),o.start(r).brush(r).end(r)})},v.clear=function(t,n){v.move(t,null,n)},y.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=(0,u.Z)(this.that).datum();h.call(n,this.that,new V(n,{sourceEvent:e,target:v,selection:t.output(this.state.selection),mode:r,dispatch:h}),i)}},v.extent=function(t){return arguments.length?(e="function"==typeof t?t:j(tt(t)),v):e},v.filter=function(t){return arguments.length?(r="function"==typeof t?t:j(!!t),v):r},v.touchable=function(t){return arguments.length?(c="function"==typeof t?t:j(!!t),v):c},v.handleSize=function(t){return arguments.length?(p=+t,v):p},v.keyModifiers=function(t){return arguments.length?(f=!!t,v):f},v.on=function(){var t=h.on.apply(h,arguments);return t===h?v:t},v}(tn)}},96057:function(t,n){var e={value:()=>{}};function r(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new i(r)}function i(t){this._=t}function u(t,n,r){for(var i=0,u=t.length;i<u;++i)if(t[i].name===n){t[i]=e,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=r&&t.push({name:n,value:r}),t}i.prototype=r.prototype={constructor:i,on:function(t,n){var e,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:n}}),o=-1,a=i.length;if(arguments.length<2){for(;++o<a;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e;return}if(null!=n&&"function"!=typeof n)throw Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=u(r[e],t.name,n);else if(null==n)for(e in r)r[e]=u(r[e],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new i(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=Array(e),u=0;u<e;++u)i[u]=arguments[u+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],u=0,e=r.length;u<e;++u)r[u].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,u=r.length;i<u;++i)r[i].value.apply(n,e)}},n.Z=r},68063:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}},16773:function(t,n,e){e.d(n,{Z:function(){return o}});var r=e(68063),i=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,u=RegExp(i.source,"g");function o(t,n){var e,o,a,l,s,c=i.lastIndex=u.lastIndex=0,f=-1,h=[],p=[];for(t+="",n+="";(a=i.exec(t))&&(l=u.exec(n));)(s=l.index)>c&&(s=n.slice(c,s),h[f]?h[f]+=s:h[++f]=s),(a=a[0])===(l=l[0])?h[f]?h[f]+=l:h[++f]=l:(h[++f]=null,p.push({i:f,x:(0,r.Z)(a,l)})),c=u.lastIndex;return c<n.length&&(s=n.slice(c),h[f]?h[f]+=s:h[++f]=s),h.length<2?p[0]?(e=p[0].x,function(t){return e(t)+""}):(o=n,function(){return o}):(n=p.length,function(t){for(var e,r=0;r<n;++r)h[(e=p[r]).i]=e.x(t);return h.join("")})}},62218:function(t,n,e){e.d(n,{Z:function(){return function t(n,e){var l,s,c=typeof e;return null==e||"boolean"===c?(0,a.Z)(e):("number"===c?u.Z:"string"===c?(s=(0,r.ZP)(e))?(e=s,i.ZP):o.Z:e instanceof r.ZP?i.ZP:e instanceof Date?function(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}:!ArrayBuffer.isView(l=e)||l instanceof DataView?Array.isArray(e)?function(n,e){var r,i=e?e.length:0,u=n?Math.min(i,n.length):0,o=Array(u),a=Array(i);for(r=0;r<u;++r)o[r]=t(n[r],e[r]);for(;r<i;++r)a[r]=e[r];return function(t){for(r=0;r<u;++r)a[r]=o[r](t);return a}}:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?function(n,e){var r,i={},u={};for(r in(null===n||"object"!=typeof n)&&(n={}),(null===e||"object"!=typeof e)&&(e={}),e)r in n?i[r]=t(n[r],e[r]):u[r]=e[r];return function(t){for(r in i)u[r]=i[r](t);return u}}:u.Z:function(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(u){for(e=0;e<r;++e)i[e]=t[e]*(1-u)+n[e]*u;return i}})(n,e)}}});var r=e(4447),i=e(79591),u=e(68063),o=e(16773),a=e(22954)},8202:function(t,n,e){e.d(n,{Z:function(){return function t(){var n,e=(function(){var t,n,e,r,i,u,o=p,a=p,l=s.Z,d=v;function m(){var t,n,e,l=Math.min(o.length,a.length);return d!==v&&(t=o[0],n=o[l-1],t>n&&(e=t,t=n,n=e),d=function(e){return Math.max(t,Math.min(n,e))}),r=l>2?y:g,i=u=null,_}function _(n){return null==n||isNaN(n=+n)?e:(i||(i=r(o.map(t),a,l)))(t(d(n)))}return _.invert=function(e){return d(n((u||(u=r(a,o.map(t),c.Z)))(e)))},_.domain=function(t){return arguments.length?(o=Array.from(t,h),m()):o.slice()},_.range=function(t){return arguments.length?(a=Array.from(t),m()):a.slice()},_.rangeRound=function(t){return a=Array.from(t),l=f,m()},_.clamp=function(t){return arguments.length?(d=!!t||v,m()):d!==v},_.interpolate=function(t){return arguments.length?(l=t,m()):l},_.unknown=function(t){return arguments.length?(e=t,_):e},function(e,r){return t=e,n=r,m()}})()(v,v);return e.copy=function(){return t().domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())},m.apply(e,arguments),n=e.domain,e.ticks=function(t){var e=n();return function(t,n,e){if(n=+n,t=+t,!((e=+e)>0))return[];if(t===n)return[t];let r=n<t,[i,u,a]=r?o(n,t,e):o(t,n,e);if(!(u>=i))return[];let l=u-i+1,s=Array(l);if(r){if(a<0)for(let t=0;t<l;++t)s[t]=-((u-t)/a);else for(let t=0;t<l;++t)s[t]=(u-t)*a}else if(a<0)for(let t=0;t<l;++t)s[t]=-((i+t)/a);else for(let t=0;t<l;++t)s[t]=(i+t)*a;return s}(e[0],e[e.length-1],null==t?10:t)},e.tickFormat=function(t,e){var r=n();return function(t,n,e,r){var i,u,o,l=function(t,n,e){n=+n,t=+t,e=+e;let r=n<t,i=r?a(n,t,e):a(t,n,e);return(r?-1:1)*(i<0?-(1/i):i)}(t,n,e);switch((r=(0,_.Z)(null==r?",f":r)).type){case"s":var s=Math.max(Math.abs(t),Math.abs(n));return null!=r.precision||isNaN(o=Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,w.Z)(s)/3)))-(0,w.Z)(Math.abs(l))))||(r.precision=o),(0,b.jH)(r,s);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN((i=l,u=Math.abs(u=Math.max(Math.abs(t),Math.abs(n)))-(i=Math.abs(i)),o=Math.max(0,(0,w.Z)(u)-(0,w.Z)(i))+1))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=Math.max(0,-(0,w.Z)(Math.abs(l))))||(r.precision=o-("%"===r.type)*2)}return(0,b.WU)(r)}(r[0],r[r.length-1],null==t?10:t,e)},e.nice=function(t){null==t&&(t=10);var r,i,u=n(),o=0,l=u.length-1,s=u[o],c=u[l],f=10;for(c<s&&(i=s,s=c,c=i,i=o,o=l,l=i);f-- >0;){if((i=a(s,c,t))===r)return u[o]=s,u[l]=c,n(u);if(i>0)s=Math.floor(s/i)*i,c=Math.ceil(c/i)*i;else if(i<0)s=Math.ceil(s*i)/i,c=Math.floor(c*i)/i;else break;r=i}return e},e}}});let r=Math.sqrt(50),i=Math.sqrt(10),u=Math.sqrt(2);function o(t,n,e){let a,l,s;let c=(n-t)/Math.max(0,e),f=Math.floor(Math.log10(c)),h=c/Math.pow(10,f),p=h>=r?10:h>=i?5:h>=u?2:1;return(f<0?(a=Math.round(t*(s=Math.pow(10,-f)/p)),l=Math.round(n*s),a/s<t&&++a,l/s>n&&--l,s=-s):(a=Math.round(t/(s=Math.pow(10,f)*p)),l=Math.round(n/s),a*s<t&&++a,l*s>n&&--l),l<a&&.5<=e&&e<2)?o(t,n,2*e):[a,l,s]}function a(t,n,e){return o(t=+t,n=+n,e=+e)[2]}var l=e(94587),s=e(62218),c=e(68063);function f(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}function h(t){return+t}var p=[0,1];function v(t){return t}function d(t,n){var e;return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNaN(n)?NaN:.5,function(){return e})}function g(t,n,e){var r=t[0],i=t[1],u=n[0],o=n[1];return i<r?(r=d(i,r),u=e(o,u)):(r=d(r,i),u=e(u,o)),function(t){return u(r(t))}}function y(t,n,e){var r=Math.min(t.length,n.length)-1,i=Array(r),u=Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++o<r;)i[o]=d(t[o],t[o+1]),u[o]=e(n[o],n[o+1]);return function(n){var e=(0,l.ZP)(t,n,1,r)-1;return u[e](i[e](n))}}function m(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}var _=e(42035),w=e(65368),b=e(19799)},24421:function(t,n,e){function r(t){return function(){return this.matches(t)}}function i(t){return function(n){return n.matches(t)}}e.d(n,{P:function(){return i},Z:function(){return r}})},31663:function(t,n,e){e.d(n,{Z:function(){return i}});var r=e(91226);function i(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),r.Z.hasOwnProperty(n)?{space:r.Z[n],local:t}:t}},91226:function(t,n,e){e.d(n,{P:function(){return r}});var r="http://www.w3.org/1999/xhtml";n.Z={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},73109:function(t,n,e){e.d(n,{Z:function(){return i}});var r=e(39439);function i(t,n){if(t=(0,r.Z)(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var i=e.createSVGPoint();return i.x=t.clientX,i.y=t.clientY,[(i=i.matrixTransform(n.getScreenCTM().inverse())).x,i.y]}if(n.getBoundingClientRect){var u=n.getBoundingClientRect();return[t.clientX-u.left-n.clientLeft,t.clientY-u.top-n.clientTop]}}return[t.pageX,t.pageY]}},23838:function(t,n,e){e.d(n,{Z:function(){return i}});var r=e(21680);function i(t){return"string"==typeof t?new r.Y1([[document.querySelector(t)]],[document.documentElement]):new r.Y1([[t]],r.Jz)}},21680:function(t,n,e){e.d(n,{Y1:function(){return B},ZP:function(){return L},Jz:function(){return H}});var r=e(83010),i=e(19701),u=e(24421),o=Array.prototype.find;function a(){return this.firstElementChild}var l=Array.prototype.filter;function s(){return Array.from(this.children)}function c(t){return Array(t.length)}function f(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function h(t,n,e,r,i,u){for(var o,a=0,l=n.length,s=u.length;a<s;++a)(o=n[a])?(o.__data__=u[a],r[a]=o):e[a]=new f(t,u[a]);for(;a<l;++a)(o=n[a])&&(i[a]=o)}function p(t,n,e,r,i,u,o){var a,l,s,c=new Map,h=n.length,p=u.length,v=Array(h);for(a=0;a<h;++a)(l=n[a])&&(v[a]=s=o.call(l,l.__data__,a,n)+"",c.has(s)?i[a]=l:c.set(s,l));for(a=0;a<p;++a)s=o.call(t,u[a],a,u)+"",(l=c.get(s))?(r[a]=l,l.__data__=u[a],c.delete(s)):e[a]=new f(t,u[a]);for(a=0;a<h;++a)(l=n[a])&&c.get(v[a])===l&&(i[a]=l)}function v(t){return t.__data__}function d(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}f.prototype={constructor:f,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var g=e(31663),y=e(52627);function m(t){return t.trim().split(/^|\s+/)}function _(t){return t.classList||new w(t)}function w(t){this._node=t,this._names=m(t.getAttribute("class")||"")}function b(t,n){for(var e=_(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function x(t,n){for(var e=_(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function M(){this.textContent=""}function T(){this.innerHTML=""}function Z(){this.nextSibling&&this.parentNode.appendChild(this)}function C(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}w.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var A=e(91226);function U(t){var n=(0,g.Z)(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===A.P&&n.documentElement.namespaceURI===A.P?n.createElement(t):n.createElementNS(e,t)}})(n)}function D(){return null}function S(){var t=this.parentNode;t&&t.removeChild(this)}function N(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Y(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function E(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,u=n.length;r<u;++r)(e=n[r],t.type&&e.type!==t.type||e.name!==t.name)?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function k(t,n,e){return function(){var r,i=this.__on,u=function(t){n.call(this,t,this.__data__)};if(i){for(var o=0,a=i.length;o<a;++o)if((r=i[o]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=u,r.options=e),r.value=n;return}}this.addEventListener(t.type,u,e),r={type:t.type,name:t.name,value:n,listener:u,options:e},i?i.push(r):this.__on=[r]}}var P=e(89920);function F(t,n,e){var r=(0,P.Z)(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}var H=[null];function B(t,n){this._groups=t,this._parents=n}function I(){return new B([[document.documentElement]],H)}B.prototype=I.prototype={constructor:B,select:function(t){"function"!=typeof t&&(t=(0,r.Z)(t));for(var n=this._groups,e=n.length,i=Array(e),u=0;u<e;++u)for(var o,a,l=n[u],s=l.length,c=i[u]=Array(s),f=0;f<s;++f)(o=l[f])&&(a=t.call(o,o.__data__,f,l))&&("__data__"in o&&(a.__data__=o.__data__),c[f]=a);return new B(i,this._parents)},selectAll:function(t){if("function"==typeof t){var n;n=t,t=function(){var t;return t=n.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=(0,i.Z)(t);for(var e=this._groups,r=e.length,u=[],o=[],a=0;a<r;++a)for(var l,s=e[a],c=s.length,f=0;f<c;++f)(l=s[f])&&(u.push(t.call(l,l.__data__,f,s)),o.push(l));return new B(u,o)},selectChild:function(t){var n;return this.select(null==t?a:(n="function"==typeof t?t:(0,u.P)(t),function(){return o.call(this.children,n)}))},selectChildren:function(t){var n;return this.selectAll(null==t?s:(n="function"==typeof t?t:(0,u.P)(t),function(){return l.call(this.children,n)}))},filter:function(t){"function"!=typeof t&&(t=(0,u.Z)(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,s=r[i]=[],c=0;c<l;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&s.push(o);return new B(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,v);var e=n?p:h,r=this._parents,i=this._groups;"function"!=typeof t&&(b=t,t=function(){return b});for(var u=i.length,o=Array(u),a=Array(u),l=Array(u),s=0;s<u;++s){var c=r[s],f=i[s],d=f.length,g="object"==typeof(w=t.call(c,c&&c.__data__,s,r))&&"length"in w?w:Array.from(w),y=g.length,m=a[s]=Array(y),_=o[s]=Array(y);e(c,f,m,_,l[s]=Array(d),g,n);for(var w,b,x,M,T=0,Z=0;T<y;++T)if(x=m[T]){for(T>=Z&&(Z=T+1);!(M=_[Z])&&++Z<y;);x._next=M||null}}return(o=new B(o,r))._enter=a,o._exit=l,o},enter:function(){return new B(this._enter||this._groups.map(c),this._parents)},exit:function(){return new B(this._exit||this._groups.map(c),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,u=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?u.remove():e(u),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,u=r.length,o=Math.min(i,u),a=Array(i),l=0;l<o;++l)for(var s,c=e[l],f=r[l],h=c.length,p=a[l]=Array(h),v=0;v<h;++v)(s=c[v]||f[v])&&(p[v]=s);for(;l<i;++l)a[l]=e[l];return new B(a,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],u=i.length-1,o=i[u];--u>=0;)(r=i[u])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=d);for(var e=this._groups,r=e.length,i=Array(r),u=0;u<r;++u){for(var o,a=e[u],l=a.length,s=i[u]=Array(l),c=0;c<l;++c)(o=a[c])&&(s[c]=o);s.sort(n)}return new B(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,u=r.length;i<u;++i){var o=r[i];if(o)return o}return null},size:function(){let t=0;for(let n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,u=n[e],o=0,a=u.length;o<a;++o)(i=u[o])&&t.call(i,i.__data__,o,u);return this},attr:function(t,n){var e=(0,g.Z)(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:y.Z,property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=m(t+"");if(arguments.length<2){for(var r=_(this.node()),i=-1,u=e.length;++i<u;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?b:x)(this,t)}}:n?function(t){return function(){b(this,t)}}:function(t){return function(){x(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?M:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?T:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(Z)},lower:function(){return this.each(C)},append:function(t){var n="function"==typeof t?t:U(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:U(t),i=null==n?D:"function"==typeof n?n:(0,r.Z)(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),i.apply(this,arguments)||null)})},remove:function(){return this.each(S)},clone:function(t){return this.select(t?Y:N)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,u=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),o=u.length;if(arguments.length<2){var a=this.node().__on;if(a){for(var l,s=0,c=a.length;s<c;++s)for(r=0,l=a[s];r<o;++r)if((i=u[r]).type===l.type&&i.name===l.name)return l.value}return}for(r=0,a=n?k:E;r<o;++r)this.each(a(u[r],n,e));return this},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return F(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return F(this,t,n)}})(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],u=0,o=i.length;u<o;++u)(r=i[u])&&(yield r)}};var L=I},52627:function(t,n,e){e.d(n,{S:function(){return u},Z:function(){return i}});var r=e(89920);function i(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):u(this.node(),t)}function u(t,n){return t.style.getPropertyValue(n)||(0,r.Z)(t).getComputedStyle(t,null).getPropertyValue(n)}},83010:function(t,n,e){function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}e.d(n,{Z:function(){return i}})},19701:function(t,n,e){function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}e.d(n,{Z:function(){return i}})},39439:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t){let n;for(;n=t.sourceEvent;)t=n;return t}},89920:function(t,n,e){e.d(n,{Z:function(){return r}});function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}},62841:function(t,n,e){e.d(n,{g0:function(){return i}});var r,i,u=e(85235),o=e(96199),a=e(38887);function l(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function s(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function c(t,n,e){return{y:t,m:n,d:e,H:0,M:0,S:0,L:0}}var f={"-":"",_:" ",0:"0"},h=/^\s*\d+/,p=/^%/,v=/[\\^$*+?|[\]().{}]/g;function d(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",u=i.length;return r+(u<e?Array(e-u+1).join(n)+i:i)}function g(t){return t.replace(v,"\\$&")}function y(t){return RegExp("^(?:"+t.map(g).join("|")+")","i")}function m(t){return new Map(t.map((t,n)=>[t.toLowerCase(),n]))}function _(t,n,e){var r=h.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function w(t,n,e){var r=h.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function b(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function x(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function M(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function T(t,n,e){var r=h.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function Z(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function C(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function A(t,n,e){var r=h.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function U(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function D(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function S(t,n,e){var r=h.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function N(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Y(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function E(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function k(t,n,e){var r=h.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function P(t,n,e){var r=h.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function F(t,n,e){var r=p.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function H(t,n,e){var r=h.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function B(t,n,e){var r=h.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function I(t,n){return d(t.getDate(),n,2)}function L(t,n){return d(t.getHours(),n,2)}function O(t,n){return d(t.getHours()%12||12,n,2)}function z(t,n){return d(1+o.rr.count((0,a.jB)(t),t),n,3)}function j(t,n){return d(t.getMilliseconds(),n,3)}function V(t,n){return j(t,n)+"000"}function X(t,n){return d(t.getMonth()+1,n,2)}function J(t,n){return d(t.getMinutes(),n,2)}function q(t,n){return d(t.getSeconds(),n,2)}function W(t){var n=t.getDay();return 0===n?7:n}function R(t,n){return d(u.Zy.count((0,a.jB)(t)-1,t),n,2)}function G(t){var n=t.getDay();return n>=4||0===n?(0,u.Ig)(t):u.Ig.ceil(t)}function K(t,n){return t=G(t),d(u.Ig.count((0,a.jB)(t),t)+(4===(0,a.jB)(t).getDay()),n,2)}function Q(t){return t.getDay()}function $(t,n){return d(u.Ox.count((0,a.jB)(t)-1,t),n,2)}function tt(t,n){return d(t.getFullYear()%100,n,2)}function tn(t,n){return d((t=G(t)).getFullYear()%100,n,2)}function te(t,n){return d(t.getFullYear()%1e4,n,4)}function tr(t,n){var e=t.getDay();return d((t=e>=4||0===e?(0,u.Ig)(t):u.Ig.ceil(t)).getFullYear()%1e4,n,4)}function ti(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+d(n/60|0,"0",2)+d(n%60,"0",2)}function tu(t,n){return d(t.getUTCDate(),n,2)}function to(t,n){return d(t.getUTCHours(),n,2)}function ta(t,n){return d(t.getUTCHours()%12||12,n,2)}function tl(t,n){return d(1+o.AN.count((0,a.ol)(t),t),n,3)}function ts(t,n){return d(t.getUTCMilliseconds(),n,3)}function tc(t,n){return ts(t,n)+"000"}function tf(t,n){return d(t.getUTCMonth()+1,n,2)}function th(t,n){return d(t.getUTCMinutes(),n,2)}function tp(t,n){return d(t.getUTCSeconds(),n,2)}function tv(t){var n=t.getUTCDay();return 0===n?7:n}function td(t,n){return d(u.pI.count((0,a.ol)(t)-1,t),n,2)}function tg(t){var n=t.getUTCDay();return n>=4||0===n?(0,u.hB)(t):u.hB.ceil(t)}function ty(t,n){return t=tg(t),d(u.hB.count((0,a.ol)(t),t)+(4===(0,a.ol)(t).getUTCDay()),n,2)}function tm(t){return t.getUTCDay()}function t_(t,n){return d(u.l6.count((0,a.ol)(t)-1,t),n,2)}function tw(t,n){return d(t.getUTCFullYear()%100,n,2)}function tb(t,n){return d((t=tg(t)).getUTCFullYear()%100,n,2)}function tx(t,n){return d(t.getUTCFullYear()%1e4,n,4)}function tM(t,n){var e=t.getUTCDay();return d((t=e>=4||0===e?(0,u.hB)(t):u.hB.ceil(t)).getUTCFullYear()%1e4,n,4)}function tT(){return"+0000"}function tZ(){return"%"}function tC(t){return+t}function tA(t){return Math.floor(+t/1e3)}(r=function(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,a=t.days,h=t.shortDays,p=t.months,v=t.shortMonths,d=y(i),g=m(i),G=y(a),tg=m(a),tU=y(h),tD=m(h),tS=y(p),tN=m(p),tY=y(v),tE=m(v),tk={a:function(t){return h[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return v[t.getMonth()]},B:function(t){return p[t.getMonth()]},c:null,d:I,e:I,f:V,g:tn,G:tr,H:L,I:O,j:z,L:j,m:X,M:J,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:tC,s:tA,S:q,u:W,U:R,V:K,w:Q,W:$,x:null,X:null,y:tt,Y:te,Z:ti,"%":tZ},tP={a:function(t){return h[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return v[t.getUTCMonth()]},B:function(t){return p[t.getUTCMonth()]},c:null,d:tu,e:tu,f:tc,g:tb,G:tM,H:to,I:ta,j:tl,L:ts,m:tf,M:th,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:tC,s:tA,S:tp,u:tv,U:td,V:ty,w:tm,W:t_,x:null,X:null,y:tw,Y:tx,Z:tT,"%":tZ},tF={a:function(t,n,e){var r=tU.exec(n.slice(e));return r?(t.w=tD.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=G.exec(n.slice(e));return r?(t.w=tg.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=tY.exec(n.slice(e));return r?(t.m=tE.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=tS.exec(n.slice(e));return r?(t.m=tN.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return tI(t,n,e,r)},d:D,e:D,f:P,g:Z,G:T,H:N,I:N,j:S,L:k,m:U,M:Y,p:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.p=g.get(r[0].toLowerCase()),e+r[0].length):-1},q:A,Q:H,s:B,S:E,u:w,U:b,V:x,w:_,W:M,x:function(t,n,r){return tI(t,e,n,r)},X:function(t,n,e){return tI(t,r,n,e)},y:Z,Y:T,Z:C,"%":F};function tH(t,n){return function(e){var r,i,u,o=[],a=-1,l=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(o.push(t.slice(l,a)),null!=(i=f[r=t.charAt(++a)])?r=t.charAt(++a):i="e"===r?" ":"0",(u=n[r])&&(r=u(e,i)),o.push(r),l=a+1);return o.push(t.slice(l,a)),o.join("")}}function tB(t,n){return function(e){var r,i,a=c(1900,void 0,1);if(tI(a,t,e+="",0)!=e.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(!n||"Z"in a||(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(r=(i=(r=s(c(a.y,0,1))).getUTCDay())>4||0===i?u.l6.ceil(r):(0,u.l6)(r),r=o.AN.offset(r,(a.V-1)*7),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(r=(i=(r=l(c(a.y,0,1))).getDay())>4||0===i?u.Ox.ceil(r):(0,u.Ox)(r),r=o.rr.offset(r,(a.V-1)*7),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?s(c(a.y,0,1)).getUTCDay():l(c(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,s(a)):l(a)}}function tI(t,n,e,r){for(var i,u,o=0,a=n.length,l=e.length;o<a;){if(r>=l)return -1;if(37===(i=n.charCodeAt(o++))){if(!(u=tF[(i=n.charAt(o++))in f?n.charAt(o++):i])||(r=u(t,e,r))<0)return -1}else if(i!=e.charCodeAt(r++))return -1}return r}return tk.x=tH(e,tk),tk.X=tH(r,tk),tk.c=tH(n,tk),tP.x=tH(e,tP),tP.X=tH(r,tP),tP.c=tH(n,tP),{format:function(t){var n=tH(t+="",tk);return n.toString=function(){return t},n},parse:function(t){var n=tB(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=tH(t+="",tP);return n.toString=function(){return t},n},utcParse:function(t){var n=tB(t+="",!0);return n.toString=function(){return t},n}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})).format,r.parse,i=r.utcFormat,r.utcParse},96199:function(t,n,e){e.d(n,{AN:function(){return o},rr:function(){return u}});var r=e(52576),i=e(11262);let u=(0,r.J)(t=>t.setHours(0,0,0,0),(t,n)=>t.setDate(t.getDate()+n),(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.UD,t=>t.getDate()-1);u.range;let o=(0,r.J)(t=>{t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n)},(t,n)=>(n-t)/i.UD,t=>t.getUTCDate()-1);o.range,(0,r.J)(t=>{t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n)},(t,n)=>(n-t)/i.UD,t=>Math.floor(t/i.UD)).range},84839:function(t,n,e){e.d(n,{A:function(){return i}});var r=e(52576);let i=(0,r.J)(()=>{},(t,n)=>{t.setTime(+t+n)},(t,n)=>n-t);i.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?(0,r.J)(n=>{n.setTime(Math.floor(n/t)*t)},(n,e)=>{n.setTime(+n+e*t)},(n,e)=>(e-n)/t):i:null,i.range},36978:function(t,n,e){e.d(n,{me:function(){return i}});var r=e(52576);(0,r.J)(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,n)=>{t.setMonth(t.getMonth()+n)},(t,n)=>n.getMonth()-t.getMonth()+(n.getFullYear()-t.getFullYear())*12,t=>t.getMonth()).range;let i=(0,r.J)(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCMonth(t.getUTCMonth()+n)},(t,n)=>n.getUTCMonth()-t.getUTCMonth()+(n.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());i.range},26599:function(t,n,e){e.d(n,{E:function(){return u}});var r=e(52576),i=e(11262);let u=(0,r.J)(t=>{t.setTime(t-t.getMilliseconds())},(t,n)=>{t.setTime(+t+n*i.Ym)},(t,n)=>(n-t)/i.Ym,t=>t.getUTCSeconds());u.range},85235:function(t,n,e){e.d(n,{Ig:function(){return c},Ox:function(){return a},Zy:function(){return o},hB:function(){return m},l6:function(){return d},pI:function(){return v}});var r=e(52576),i=e(11262);function u(t){return(0,r.J)(n=>{n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+7*n)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.iM)}let o=u(0),a=u(1),l=u(2),s=u(3),c=u(4),f=u(5),h=u(6);function p(t){return(0,r.J)(n=>{n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+7*n)},(t,n)=>(n-t)/i.iM)}o.range,a.range,l.range,s.range,c.range,f.range,h.range;let v=p(0),d=p(1),g=p(2),y=p(3),m=p(4),_=p(5),w=p(6);v.range,d.range,g.range,y.range,m.range,_.range,w.range},38887:function(t,n,e){e.d(n,{jB:function(){return i},ol:function(){return u}});var r=e(52576);let i=(0,r.J)(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n)},(t,n)=>n.getFullYear()-t.getFullYear(),t=>t.getFullYear());i.every=t=>isFinite(t=Math.floor(t))&&t>0?(0,r.J)(n=>{n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},(n,e)=>{n.setFullYear(n.getFullYear()+e*t)}):null,i.range;let u=(0,r.J)(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n)},(t,n)=>n.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());u.every=t=>isFinite(t=Math.floor(t))&&t>0?(0,r.J)(n=>{n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},(n,e)=>{n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null,u.range},91739:function(t,n,e){e.d(n,{B7:function(){return d},HT:function(){return g},zO:function(){return p}});var r,i,u=0,o=0,a=0,l=0,s=0,c=0,f="object"==typeof performance&&performance.now?performance:Date,h="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function p(){return s||(h(v),s=f.now()+c)}function v(){s=0}function d(){this._call=this._time=this._next=null}function g(t,n,e){var r=new d;return r.restart(t,n,e),r}function y(){s=(l=f.now())+c,u=o=0;try{!function(){p(),++u;for(var t,n=r;n;)(t=s-n._time)>=0&&n._call.call(void 0,t),n=n._next;--u}()}finally{u=0,function(){for(var t,n,e=r,u=1/0;e;)e._call?(u>e._time&&(u=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:r=n);i=t,_(u)}(),s=0}}function m(){var t=f.now(),n=t-l;n>1e3&&(c-=n,l=t)}function _(t){!u&&(o&&(o=clearTimeout(o)),t-s>24?(t<1/0&&(o=setTimeout(y,t-f.now()-c)),a&&(a=clearInterval(a))):(a||(l=f.now(),a=setInterval(m,1e3)),u=1,h(y)))}d.prototype=g.prototype={constructor:d,restart:function(t,n,e){if("function"!=typeof t)throw TypeError("callback is not a function");e=(null==e?p():+e)+(null==n?0:+n),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=t,this._time=e,_()},stop:function(){this._call&&(this._call=null,this._time=1/0,_())}}}}]);
================================================
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/2549-d685c5a8b5e44383.js
================================================
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5854b35f-168c-452f-90f9-f26317e1cdb6",e._sentryDebugIdIdentifier="sentry-dbid-5854b35f-168c-452f-90f9-f26317e1cdb6")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2549],{61187:function(e,t,n){var o={".":7138,"./":7138,"./arquero":29391,"./arquero.js":29391,"./arrow":57938,"./arrow.js":57938,"./dependencies":67363,"./dependencies.js":67363,"./dependency":10170,"./dependency.js":10170,"./dom":81820,"./dom/":81820,"./dom/canvas":76342,"./dom/canvas.js":76342,"./dom/context2d":99733,"./dom/context2d.js":99733,"./dom/download":32938,"./dom/download.js":32938,"./dom/element":63380,"./dom/element.js":63380,"./dom/index":81820,"./dom/index.js":81820,"./dom/input":37585,"./dom/input.js":37585,"./dom/range":57170,"./dom/range.js":57170,"./dom/select":31106,"./dom/select.js":31106,"./dom/svg":55895,"./dom/svg.js":55895,"./dom/text":30281,"./dom/text.js":30281,"./dom/uid":81831,"./dom/uid.js":81831,"./duckdb":93874,"./duckdb.js":93874,"./fileAttachment":12149,"./fileAttachment.js":12149,"./files":46155,"./files/":46155,"./files/buffer":43825,"./files/buffer.js":43825,"./files/index":46155,"./files/index.js":46155,"./files/text":9974,"./files/text.js":9974,"./files/url":12174,"./files/url.js":12174,"./generators":26785,"./generators/":26785,"./generators/disposable":12238,"./generators/disposable.js":12238,"./generators/filter":7254,"./generators/filter.js":7254,"./generators/index":26785,"./generators/index.js":26785,"./generators/input":28044,"./generators/input.js":28044,"./generators/map":33921,"./generators/map.js":33921,"./generators/observe":61367,"./generators/observe.js":61367,"./generators/queue":49042,"./generators/queue.js":49042,"./generators/range":52707,"./generators/range.js":52707,"./generators/valueAt":15890,"./generators/valueAt.js":15890,"./generators/worker":8179,"./generators/worker.js":8179,"./html":46566,"./html.js":46566,"./index":7138,"./index.js":7138,"./leaflet":53861,"./leaflet.js":53861,"./library":64739,"./library.js":64739,"./md":21715,"./md.js":21715,"./mermaid":98843,"./mermaid.js":98843,"./mutable":30221,"./mutable.js":30221,"./now":3666,"./now.js":3666,"./promises":15898,"./promises/":15898,"./promises/delay":52984,"./promises/delay.js":52984,"./promises/index":15898,"./promises/index.js":15898,"./promises/tick":22989,"./promises/tick.js":22989,"./promises/when":37782,"./promises/when.js":37782,"./require":19204,"./require.js":19204,"./resolve":95545,"./resolve.js":95545,"./sqlite":64054,"./sqlite.js":64054,"./svg":54745,"./svg.js":54745,"./table":78406,"./table.js":78406,"./template":19225,"./template.js":19225,"./tex":40667,"./tex.js":40667,"./that":5243,"./that.js":5243,"./vegalite":70423,"./vegalite.js":70423,"./width":10282,"./width.js":10282,"./xlsx":40538,"./xlsx.js":40538};function r(e){return Promise.resolve().then(function(){if(!n.o(o,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n(o[e])})}r.keys=function(){return Object.keys(o)},r.id=61187,e.exports=r},64413:function(e,t,n){"use strict";n.d(t,{D:function(){return l},G:function(){return s}});var o=n(59119);let r=new Set(["LineComment","BlockComment"]),i=new Set(["NamedBlockCell","NamedExpressionCell","NamedClassCell","NamedFunctionCell"]);function s(e,t){let n=(0,o.qz)(e);if("Cell"!==n.topNode.type.name)return null;let{firstChild:s}=n.topNode;for(;s&&r.has(s.type.name);)s=s.nextSibling;if(s&&i.has(s.type.name)){let e=s.getChild("VariableDefinition");if(e)return e;let n=s.getChild("QualifiedVariableDefinition");if(n)return t?n:n.getChild("VariableDefinition")}return null}function l(e){let t=(0,o.qz)(e);if("Cell"===t.topNode.type.name&&t.topNode.firstChild&&["NamedBlockCell","NamedExpressionCell"].includes(t.topNode.firstChild.type.name)){let e=t.topNode.firstChild.getChild("Equals");if(null==e?void 0:e.nextSibling)return e.nextSibling}return null}},9231:function(e,t,n){"use strict";var o=n(85893);t.Z=e=>(0,o.jsx)("svg",{width:"8",height:"16",viewBox:"0 0 8 16",fill:"none",...e,children:(0,o.jsx)("path",{d:"M4.74329 10.1741C4.34605 10.6155 3.65395 10.6155 3.25671 10.1741L1.00207 7.66897C0.4229 7.02544 0.879592 6 1.74536 6L6.25464 6C7.12041 6 7.5771 7.02544 6.99793 7.66897L4.74329 10.1741Z",fill:"currentColor"})})},94878:function(e,t,n){"use strict";n.d(t,{FJ:function(){return u},Y2:function(){return i},YG:function(){return a},n4:function(){return s},zL:function(){return l}});var o=n(9337),r=n(57035);class i extends o.i{async process(e){return(await e({type:"request_database_tables",source:this._source,schema:this._schema})).map(e=>({database:null!=e.database?String(e.database):void 0,schema:null!=e.schema?String(e.schema):void 0,table:String(e.name)}))}constructor(e,t){super(),this._source=e,this._schema=t}}class s extends o.i{async process(e){return new Map((await e({type:"request_table_schema",source:this._source,table:(0,r.me)(this._table),mode:this._mode,node_id:this._id,derive:this._derive})).map(e=>{var t,n,o,r;let i=null===(t=this._names)||void 0===t?void 0:t.find(t=>{let{name:n}=t;return n===e.name}),s=null===(n=this._types)||void 0===n?void 0:n.find(t=>{let{name:n}=t;return n===e.name});return[null!==(o=null==i?void 0:i.column)&&void 0!==o?o:e.name,{type:null!==(r=null==s?void 0:s.type)&&void 0!==r?r:e.type,databaseType:e.databaseType,nullable:!1!==e.nullable,name:e.name}]}))}constructor(e,t,n,o,r,i,s){super(),this._source=e,this._table=t,this._mode=n,this._names=o,this._types=r,this._id=i,this._derive=s}}class l extends o.i{async process(e){return await e({type:"request_database_query",source:this._source,operations:this._operations})}constructor(e,t){super(),this._source=e,this._operations=t}}class a extends o.i{async process(e){return await e({type:"request_database_info",source:this._source})}constructor(e){super(),this._source=e}}class u extends o.i{async process(e){return await e({type:"request_data_source_info",source:this._source})}constructor(e){super(),this._source=e}}},89604:function(e,t,n){"use strict";n.d(t,{Nq:function(){return u},pN:function(){return c},vM:function(){return a}});var o=n(27522),r=n(80583),i=n(67294),s=n(94878),l=n(88577);function a(e,t,n){let{isExpanded:o}=(0,r.uF)();return c(t,n,"table",o,e)}function u(e,t){let{isExpanded:n}=(0,o.kR)();return c(e,t,"chart",n)}function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"table",o=!(arguments.length>3)||void 0===arguments[3]||arguments[3],r=arguments.length>4?arguments[4]:void 0,[a,u]=(0,i.useState)(),c=(0,i.useRef)(),d=(0,l.VQ)(e),f="operations"in e?e.operations.from.table:"",p="operations"in e?e.operations.names:void 0,m="operations"in e?e.operations.types:void 0,g="operations"in e?e.operations.derive:void 0;return(0,i.useEffect)(()=>u(void 0),[d,f]),(0,i.useEffect)(()=>{if(!o)return;if(!d||"sql"===n)return u(new Map);let e=new s.n4(d,f,n,p,m,r,g);return c.current=e,e.run(t).then(t=>{e===c.current&&u(t)},t=>{e===c.current&&(console.error("Error fetching table schema: ",t),u(new Map))}),()=>{c.current=void 0}},[d,f,t,n,o,p,m,r,g]),a}},88577:function(e,t,n){"use strict";n.d(t,{M7:function(){return i},Ov:function(){return u},U_:function(){return l},VQ:function(){return r},VS:function(){return p},h8:function(){return c},hS:function(){return f},w4:function(){return s},x2:function(){return d},zO:function(){return a}});var o=n(6032);function r(e){if(!("source"in e))throw Error("missing source");let{source:t}=e;return null===t.name?null:t}function i(e){let t=r(e);if(null===t)throw Error("empty source");return t}function s(e){switch(e){case"sql":return"SQL";case"postgres":return"PostgreSQL";case"sqlite":return"SQLite";case"bigquery":return"BigQuery";case"snowflake":return"Snowflake";case"oracle":return"Oracle";case"mysql":return"MySQL";case"mssql":return"SQL Server";case"duckdb":return"DuckDB";case"
gitextract_35rvr7io/
├── .gitignore
├── .replit
├── __init__.py
├── backend/
│ ├── .gitignore
│ ├── .python-version
│ ├── README.md
│ ├── hi.py
│ └── marketing_source_sync.py
├── blog/
│ ├── .gitignore
│ ├── README.md
│ ├── bun.lockb
│ ├── index.ts
│ ├── observablehq.config.js
│ ├── package.json
│ └── src/
│ ├── .gitignore
│ ├── .observablehq/
│ │ └── deploy.json
│ ├── algorithms/
│ │ └── map-reduce.md
│ ├── components/
│ │ ├── editor.js
│ │ └── timeline.js
│ ├── connectivity/
│ │ ├── livekit-webrtc.md
│ │ └── tailscale-caddy-dns-porkbun.md
│ ├── cpp/
│ │ ├── concurrency-parallelism.md
│ │ └── memory-management.md
│ ├── data/
│ │ ├── events.json
│ │ └── launches.csv.js
│ ├── data-analysis/
│ │ ├── events.json
│ │ ├── launches.csv.js
│ │ └── olap.md
│ ├── data-vis/
│ │ ├── anomaly-detection.md
│ │ ├── capacity-planning.md
│ │ ├── crisis-diagnosis.md
│ │ └── systems-design.md
│ ├── devops/
│ │ ├── docker.md
│ │ └── terraform.md
│ ├── dynamicland/
│ │ └── dynamicland.md
│ ├── embedded/
│ │ ├── hardware-in-the-loop-simulation.md
│ │ └── zig.md
│ ├── hardware/
│ │ └── soldering-pcb-3d-printing.md
│ ├── index.md
│ ├── llms/
│ │ └── ollama-claude-o1-pro.md
│ ├── maps/
│ │ ├── hd-mapping.md
│ │ └── open-street-maps.md
│ ├── math/
│ │ ├── linear-algebra.md
│ │ ├── probability.md
│ │ └── real-analysis.md
│ ├── neuroscience/
│ │ ├── constructionism.md
│ │ ├── free-will.md
│ │ └── single-cell-analysis.md
│ ├── perception/
│ │ ├── object-detection.md
│ │ ├── scene-understanding.md
│ │ ├── semantic-segmentation.md
│ │ ├── sensor-calibration.md
│ │ └── vision-transformers.md
│ ├── python/
│ │ └── uv_jupyter_testing.md
│ ├── robotics/
│ │ └── motion-planning.md
│ └── simulation/
│ ├── Unity.md
│ ├── Unreal-Engine.md
│ └── reinforcement-learning.md
├── data/
│ ├── 150_algo_vis.json
│ ├── 150_games.json
│ ├── citations.txt
│ ├── cognitive_biases.json
│ ├── cognitive_biases.md
│ ├── data.json
│ ├── dynamicland/
│ │ └── everything.json
│ ├── educational robotics for 141 dollars _ Robotics Odyssey.html
│ ├── educational robotics for 141 dollars _ Robotics Odyssey_files/
│ │ ├── 1683-90852ff38d0f48c3.js
│ │ ├── 22305925
│ │ ├── 2549-d685c5a8b5e44383.js
│ │ ├── 3999-eb7c9b525e00cb6c.js
│ │ ├── 4169-a2f83540e7ed7bf5.js
│ │ ├── 7297-514aacfbea18160d.js
│ │ ├── 8234-563c4d907b8a6e14.js
│ │ ├── 8764-fb7153f259170265.js
│ │ ├── 9273-d14a7c3909b5f026.js
│ │ ├── 93497294
│ │ ├── 9430-e1d1710730c7a2db.js
│ │ ├── BTd3N5Oj2jk.html
│ │ ├── Main.js
│ │ ├── [...specifiers]-6a923aab3931db26.js
│ │ ├── _app-4ca44e0e0c4aea04.js
│ │ ├── _buildManifest.js
│ │ ├── _ssgManifest.js
│ │ ├── ad_status.js
│ │ ├── bTS-krGMW8fDflzgOBqs4RfQ289v88xjeZzvxqf94UM.js
│ │ ├── base.js
│ │ ├── cast_sender(1).js
│ │ ├── cast_sender.js
│ │ ├── clarity.js
│ │ ├── client.js
│ │ ├── d01c1a66254bf331.css
│ │ ├── dynamical-systems-xerox-parc-dynamicland.html
│ │ ├── embed.js
│ │ ├── framework-a17bb443126b4122.js
│ │ ├── htmx.org@1.9.3
│ │ ├── hyperscript.org@0.9.9
│ │ ├── js
│ │ ├── main-481a3b56229fbdcf.js
│ │ ├── mootools.js
│ │ ├── ok8h7h9e0q
│ │ ├── output.css
│ │ ├── perception.html
│ │ ├── polyfills-42372ed130431b0a.js
│ │ ├── prediction@124.html
│ │ ├── remote.js
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource.html
│ │ ├── simulation.html
│ │ ├── style.css
│ │ ├── webpack-165ff3e7383b672c.js
│ │ ├── worker-BxqpBb1S.css
│ │ ├── worker-DfKuigH-.js
│ │ ├── worker-lLzrCfCS(1).html
│ │ ├── worker-lLzrCfCS(2).html
│ │ ├── worker-lLzrCfCS(3).html
│ │ ├── worker-lLzrCfCS.html
│ │ ├── www-embed-player.js
│ │ └── www-player.css
│ ├── first_flyio/
│ │ ├── Dockerfile
│ │ ├── connect_to_livekit.py
│ │ ├── fly.toml
│ │ ├── main.py
│ │ └── start.sh
│ ├── games_collection.json
│ ├── machines.json
│ ├── magic_iframe.js
│ ├── mental_models.json
│ ├── misc_vis.json
│ └── parsed_links.json
├── go-libo-demo/
│ ├── go.mod
│ ├── go.sum
│ └── main.go
├── hello.py
├── notebooks/
│ ├── Rtings_for_robotics.ipynb
│ ├── Untitled.ipynb
│ ├── browser_base_research_agent.py
│ ├── dist/
│ │ ├── _file/
│ │ │ └── data/
│ │ │ ├── events.46a3a628.json
│ │ │ └── launches.5c43450e.csv
│ │ ├── _import/
│ │ │ └── components/
│ │ │ └── timeline.3a99cfed.js
│ │ ├── _npm/
│ │ │ ├── @observablehq/
│ │ │ │ ├── plot@0.6.16/
│ │ │ │ │ └── d3b1d894.js
│ │ │ │ └── sample-datasets@1.0.1/
│ │ │ │ ├── aapl.csv
│ │ │ │ └── penguins.csv
│ │ │ ├── binary-search-bounds@2.0.5/
│ │ │ │ └── 1ee6c50d.js
│ │ │ ├── d3-array@3.2.4/
│ │ │ │ └── 37839b6a.js
│ │ │ ├── d3-axis@3.0.0/
│ │ │ │ └── bd0afa17.js
│ │ │ ├── d3-brush@3.0.0/
│ │ │ │ └── 6495590f.js
│ │ │ ├── d3-chord@3.0.1/
│ │ │ │ └── 84d7b8e9.js
│ │ │ ├── d3-color@3.1.0/
│ │ │ │ └── 2c0cdfa2.js
│ │ │ ├── d3-contour@4.0.2/
│ │ │ │ └── d496a3b3.js
│ │ │ ├── d3-delaunay@6.0.4/
│ │ │ │ └── 00c41b5d.js
│ │ │ ├── d3-dispatch@3.0.1/
│ │ │ │ └── b5f7cdc6.js
│ │ │ ├── d3-drag@3.0.0/
│ │ │ │ └── ef06b1ff.js
│ │ │ ├── d3-dsv@3.0.1/
│ │ │ │ └── 407f7a1f.js
│ │ │ ├── d3-ease@3.0.1/
│ │ │ │ └── 6f15f633.js
│ │ │ ├── d3-fetch@3.0.1/
│ │ │ │ └── 35880c2a.js
│ │ │ ├── d3-force@3.0.0/
│ │ │ │ └── 5e1ff060.js
│ │ │ ├── d3-format@3.1.0/
│ │ │ │ └── 33fb7288.js
│ │ │ ├── d3-geo@3.1.1/
│ │ │ │ └── 5e427f4b.js
│ │ │ ├── d3-hierarchy@3.1.2/
│ │ │ │ └── f1db2593.js
│ │ │ ├── d3-interpolate@3.0.1/
│ │ │ │ └── 034b7bcb.js
│ │ │ ├── d3-path@3.1.0/
│ │ │ │ └── 4bb53638.js
│ │ │ ├── d3-polygon@3.0.1/
│ │ │ │ └── bbafde58.js
│ │ │ ├── d3-quadtree@3.0.1/
│ │ │ │ └── aa5b35a8.js
│ │ │ ├── d3-random@3.0.1/
│ │ │ │ └── 32c7fec2.js
│ │ │ ├── d3-scale-chromatic@3.1.0/
│ │ │ │ └── cf9b720b.js
│ │ │ ├── d3-scale@4.0.2/
│ │ │ │ └── 4143aac9.js
│ │ │ ├── d3-selection@3.0.0/
│ │ │ │ └── a4e530fb.js
│ │ │ ├── d3-shape@3.2.0/
│ │ │ │ └── be692bd9.js
│ │ │ ├── d3-time-format@4.1.0/
│ │ │ │ └── 28d1ef76.js
│ │ │ ├── d3-time@3.1.0/
│ │ │ │ └── 3a9ac1c1.js
│ │ │ ├── d3-timer@3.0.1/
│ │ │ │ └── f31b5398.js
│ │ │ ├── d3-transition@3.0.1/
│ │ │ │ └── 0c259fbf.js
│ │ │ ├── d3-zoom@3.0.0/
│ │ │ │ └── da4a6ccc.js
│ │ │ ├── d3@7.9.0/
│ │ │ │ └── fcf2830e.js
│ │ │ ├── delaunator@5.0.1/
│ │ │ │ └── e67acb27.js
│ │ │ ├── internmap@2.0.3/
│ │ │ │ └── 5eed35fd.js
│ │ │ ├── interval-tree-1d@1.0.4/
│ │ │ │ └── a62ae5ce.js
│ │ │ ├── isoformat@0.2.1/
│ │ │ │ └── c68fbd73.js
│ │ │ └── robust-predicates@3.0.2/
│ │ │ └── 8ac9039b.js
│ │ ├── _observablehq/
│ │ │ ├── client.966d4ea1.js
│ │ │ ├── runtime.f168f711.js
│ │ │ ├── stdlib.1d18d6f6.js
│ │ │ ├── theme-air,near-midnight,alt,wide.db1cdf55.css
│ │ │ └── theme-air,near-midnight.dcdbf18e.css
│ │ ├── example-dashboard.html
│ │ ├── example-report.html
│ │ └── index.html
│ ├── dynamicland.ipynb
│ ├── geospatial.ipynb
│ ├── learning_from_driving.ipynb
│ ├── polars_geospatial.ipynb
│ ├── prediction/
│ │ └── prediction.ipynb
│ ├── simulation/
│ │ └── simulation.ipynb
│ ├── simulation_editor/
│ │ ├── .gitignore
│ │ ├── bun.lockb
│ │ ├── netlify.toml
│ │ ├── package.json
│ │ ├── readme.md
│ │ ├── src/
│ │ │ ├── addToScene.js
│ │ │ ├── createBox.js
│ │ │ ├── createFloor.js
│ │ │ ├── createMeshForShape.js
│ │ │ ├── dist/
│ │ │ │ ├── .gitkeep
│ │ │ │ ├── assets/
│ │ │ │ │ └── index-CC6HPAIA.js
│ │ │ │ ├── draco/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── draco_decoder.js
│ │ │ │ │ ├── draco_decoder.wasm
│ │ │ │ │ ├── draco_encoder.js
│ │ │ │ │ ├── draco_wasm_wrapper.js
│ │ │ │ │ └── gltf/
│ │ │ │ │ ├── draco_decoder.js
│ │ │ │ │ ├── draco_decoder.wasm
│ │ │ │ │ ├── draco_encoder.js
│ │ │ │ │ └── draco_wasm_wrapper.js
│ │ │ │ ├── index.html
│ │ │ │ ├── js/
│ │ │ │ │ ├── debug-renderer.js
│ │ │ │ │ ├── example.js
│ │ │ │ │ ├── jolt-physics.multithread.wasm-compat.js
│ │ │ │ │ ├── jolt-physics.wasm-compat.js
│ │ │ │ │ ├── object_stream.js
│ │ │ │ │ ├── ragdoll_loader.js
│ │ │ │ │ ├── soft-body-creator.js
│ │ │ │ │ └── three/
│ │ │ │ │ ├── CSS3DRenderer.js
│ │ │ │ │ ├── OrbitControls.js
│ │ │ │ │ └── WebGL.js
│ │ │ │ ├── mini_home.gltf
│ │ │ │ ├── models/
│ │ │ │ │ ├── .gitkeep
│ │ │ │ │ └── DamagedHelmet/
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── glTF/
│ │ │ │ │ └── DamagedHelmet.gltf
│ │ │ │ └── textures/
│ │ │ │ └── Park2/
│ │ │ │ └── readme.txt
│ │ │ ├── getSoftBodyMesh.js
│ │ │ ├── getThreeObjectForBody.js
│ │ │ ├── index.css
│ │ │ ├── index.html
│ │ │ ├── initGraphics.js
│ │ │ ├── initPhysics.js
│ │ │ ├── lighting.js
│ │ │ ├── main.js
│ │ │ ├── onWindowResize.js
│ │ │ ├── postprocessing.js
│ │ │ ├── renderLoop.js
│ │ │ ├── renderhelmet.js
│ │ │ ├── setupCollisionFiltering.js
│ │ │ ├── setupExample.js
│ │ │ ├── updatePhysics.js
│ │ │ └── utils/
│ │ │ ├── cool_lighting.js
│ │ │ ├── edit_scene.js
│ │ │ ├── games_list_view.js
│ │ │ ├── gltf-loader.js
│ │ │ ├── handleUserInput.js
│ │ │ ├── jolt-physics.wasm-compat.js
│ │ │ ├── lyricDetector.js
│ │ │ ├── play_karaoke.js
│ │ │ └── wiki-game.ts
│ │ ├── static/
│ │ │ ├── .gitkeep
│ │ │ ├── draco/
│ │ │ │ ├── README.md
│ │ │ │ ├── draco_decoder.js
│ │ │ │ ├── draco_decoder.wasm
│ │ │ │ ├── draco_encoder.js
│ │ │ │ ├── draco_wasm_wrapper.js
│ │ │ │ └── gltf/
│ │ │ │ ├── draco_decoder.js
│ │ │ │ ├── draco_decoder.wasm
│ │ │ │ ├── draco_encoder.js
│ │ │ │ └── draco_wasm_wrapper.js
│ │ │ ├── js/
│ │ │ │ ├── debug-renderer.js
│ │ │ │ ├── example.js
│ │ │ │ ├── jolt-physics.multithread.wasm-compat.js
│ │ │ │ ├── jolt-physics.wasm-compat.js
│ │ │ │ ├── object_stream.js
│ │ │ │ ├── ragdoll_loader.js
│ │ │ │ ├── soft-body-creator.js
│ │ │ │ └── three/
│ │ │ │ ├── CSS3DRenderer.js
│ │ │ │ ├── OrbitControls.js
│ │ │ │ └── WebGL.js
│ │ │ ├── mini_home.gltf
│ │ │ ├── models/
│ │ │ │ ├── .gitkeep
│ │ │ │ └── DamagedHelmet/
│ │ │ │ ├── README.md
│ │ │ │ └── glTF/
│ │ │ │ └── DamagedHelmet.gltf
│ │ │ └── textures/
│ │ │ └── Park2/
│ │ │ └── readme.txt
│ │ └── vite.config.js
│ ├── src/
│ │ └── .observablehq/
│ │ └── cache/
│ │ ├── _build.json
│ │ ├── _npm/
│ │ │ ├── @observablehq/
│ │ │ │ ├── plot@0.6.16/
│ │ │ │ │ ├── _esm.js
│ │ │ │ │ └── package.json
│ │ │ │ └── sample-datasets@1.0.1/
│ │ │ │ ├── aapl.csv
│ │ │ │ └── penguins.csv
│ │ │ ├── binary-search-bounds@2.0.5/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-array@3.2.4/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── d3-axis@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-brush@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-chord@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-color@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-contour@4.0.2/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-delaunay@6.0.4/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── d3-dispatch@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-drag@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-dsv@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-ease@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-fetch@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-force@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-format@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-geo@3.1.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-hierarchy@3.1.2/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-interpolate@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-path@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-polygon@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-quadtree@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-random@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-scale-chromatic@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-scale@4.0.2/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-selection@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-shape@3.2.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-time-format@4.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-time@3.1.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-timer@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-transition@3.0.1/
│ │ │ │ └── _esm.js
│ │ │ ├── d3-zoom@3.0.0/
│ │ │ │ └── _esm.js
│ │ │ ├── d3@7.9.0/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── delaunator@5.0.1/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── internmap@2.0.3/
│ │ │ │ └── _esm.js
│ │ │ ├── interval-tree-1d@1.0.4/
│ │ │ │ ├── _esm.js
│ │ │ │ └── package.json
│ │ │ ├── isoformat@0.2.1/
│ │ │ │ └── _esm.js
│ │ │ └── robust-predicates@3.0.2/
│ │ │ └── _esm.js
│ │ ├── _observablehq/
│ │ │ ├── client.js
│ │ │ ├── runtime.js
│ │ │ └── stdlib.js
│ │ └── data/
│ │ └── launches.csv
│ └── whisper-transcribe.py
├── pyproject.toml
├── readme.md
├── replit.nix
├── scripts/
│ ├── archive/
│ │ ├── add_domain_to_resend.ts
│ │ ├── auto_organize_desktop.sh
│ │ ├── automate_observablehq.ts
│ │ ├── file-rewriter.ts
│ │ ├── find_all_markdowns.sh
│ │ ├── flirtflow.ts
│ │ ├── fly_bun_proxy/
│ │ │ ├── http.ts
│ │ │ └── package.json
│ │ ├── gifmaker.ts
│ │ ├── livekit_webhook.ts
│ │ ├── llama-in-the-loop.ts
│ │ ├── playwright.ts
│ │ ├── readme
│ │ ├── src/
│ │ │ ├── agents/
│ │ │ │ └── playwright-optimizely.ts
│ │ │ ├── archive/
│ │ │ │ └── web/
│ │ │ │ └── web.ts
│ │ │ └── caddy/
│ │ │ └── hashirama.html
│ │ └── walk_social_graph.ts
│ ├── bun.lockb
│ ├── click_house_mock.ts
│ ├── index.ts
│ ├── infra/
│ │ ├── gpu/
│ │ │ ├── Caddyfile
│ │ │ ├── _jupyterconfig/
│ │ │ │ ├── jupyter_lab_config.py
│ │ │ │ ├── jupyter_server_config.py
│ │ │ │ ├── lab/
│ │ │ │ │ └── workspaces/
│ │ │ │ │ └── default-37a8.jupyterlab-workspace
│ │ │ │ └── migrated
│ │ │ ├── debug_caddy.sh
│ │ │ └── simple-setup.sh
│ │ └── gpu2/
│ │ └── Caddyfile
│ ├── install.sh
│ ├── octokit.ts
│ ├── osm-parse.ts
│ ├── package.json
│ ├── process_311.ts
│ ├── process_311_into_bins.ts
│ ├── sqlite_db.ts
│ ├── supabase_browser.ts
│ ├── tigris.ts
│ └── tools/
│ ├── livekit.ts
│ ├── playlist.ts
│ └── playwright/
│ ├── dynamicland_book_shelf.ts
│ ├── dynamicland_bookshelf.json
│ ├── linkedin-parse-companies.ts
│ ├── parse_dynamicland.ts
│ ├── waymo.json
│ └── zoox.json
├── server.py
└── web/
├── .gitignore
├── README.md
├── bun.lockb
├── homelab/
│ └── data/
│ └── errors.json
├── next.config.ts
├── package.json
├── postcss.config.mjs
├── prettier.config.js
├── public/
│ └── bootstrap.sh
├── src/
│ ├── .next/
│ │ ├── app-build-manifest.json
│ │ ├── build-manifest.json
│ │ ├── cache/
│ │ │ └── .rscinfo
│ │ ├── fallback-build-manifest.json
│ │ ├── package.json
│ │ ├── react-loadable-manifest.json
│ │ ├── server/
│ │ │ ├── app-paths-manifest.json
│ │ │ ├── interception-route-rewrite-manifest.js
│ │ │ ├── middleware-build-manifest.js
│ │ │ ├── middleware-manifest.json
│ │ │ ├── middleware-react-loadable-manifest.js
│ │ │ ├── next-font-manifest.js
│ │ │ ├── next-font-manifest.json
│ │ │ ├── pages-manifest.json
│ │ │ ├── server-reference-manifest.js
│ │ │ └── server-reference-manifest.json
│ │ ├── static/
│ │ │ └── development/
│ │ │ ├── _buildManifest.js
│ │ │ ├── _clientMiddlewareManifest.json
│ │ │ └── _ssgManifest.js
│ │ └── trace
│ ├── app/
│ │ ├── api/
│ │ │ ├── group_chat/
│ │ │ │ └── route.ts
│ │ │ ├── livekit/
│ │ │ │ └── get_token/
│ │ │ │ └── route.ts
│ │ │ ├── object_state_change/
│ │ │ │ └── route.ts
│ │ │ ├── resend/
│ │ │ │ └── route.ts
│ │ │ ├── supabase/
│ │ │ │ └── route.ts
│ │ │ ├── vehicle_data/
│ │ │ │ └── route.ts
│ │ │ └── vis/
│ │ │ └── route.ts
│ │ ├── blog/
│ │ │ ├── dynamicland_2025/
│ │ │ │ ├── content.md
│ │ │ │ ├── markdown-styles.module.css
│ │ │ │ └── page.tsx
│ │ │ ├── events.json
│ │ │ ├── health_tensor_hospital_of_the_future/
│ │ │ │ ├── content.md
│ │ │ │ ├── markdown-styles.module.css
│ │ │ │ └── page.tsx
│ │ │ └── page.tsx
│ │ ├── demos/
│ │ │ ├── 0/
│ │ │ │ └── page.jsx
│ │ │ ├── 1/
│ │ │ │ └── page.jsx
│ │ │ ├── 2/
│ │ │ │ └── page.tsx
│ │ │ ├── 4/
│ │ │ │ └── page.tsx
│ │ │ ├── 51/
│ │ │ │ └── page.tsx
│ │ │ ├── 79/
│ │ │ │ └── page.tsx
│ │ │ ├── 83/
│ │ │ │ └── page.jsx
│ │ │ ├── karaoke/
│ │ │ │ └── page.tsx
│ │ │ └── map/
│ │ │ └── page.jsx
│ │ ├── error.tsx
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ ├── loading.tsx
│ │ ├── not-found.tsx
│ │ ├── page.tsx
│ │ ├── providers.tsx
│ │ ├── robotics-odyssey/
│ │ │ └── page.tsx
│ │ ├── simulation_game/
│ │ │ └── page.tsx
│ │ └── tools/
│ │ ├── git_visualizer/
│ │ │ └── page.tsx
│ │ ├── group_chat/
│ │ │ └── page.jsx
│ │ ├── livekit/
│ │ │ └── page.tsx
│ │ ├── page.tsx
│ │ ├── resume/
│ │ │ └── page.tsx
│ │ └── tailscale/
│ │ └── page.tsx
│ ├── components/
│ │ ├── ArticleLayout.tsx
│ │ ├── Card.tsx
│ │ ├── Container.tsx
│ │ ├── Dialog.tsx
│ │ ├── Footer.tsx
│ │ ├── Header.tsx
│ │ ├── HomePageHeader.jsx
│ │ ├── ImageGallery.tsx
│ │ ├── Layout.tsx
│ │ ├── MagicIframe.jsx
│ │ ├── PortfolioGrid.tsx
│ │ ├── Prose.tsx
│ │ ├── Section.tsx
│ │ ├── SimpleLayout.tsx
│ │ ├── Sliders.jsx
│ │ ├── SocialIcons.tsx
│ │ ├── cover-image.tsx
│ │ ├── pageflip.jsx
│ │ └── texteditor.jsx
│ ├── interfaces/
│ │ ├── author.ts
│ │ └── post.ts
│ ├── lib/
│ │ ├── AudioAPI.js
│ │ ├── articles.ts
│ │ ├── constants.ts
│ │ ├── formatDate.ts
│ │ ├── markdownToHtml.ts
│ │ └── supabaseClient.ts
│ └── tsconfig.json
├── tailwind.config.ts
└── tsconfig.json
Showing preview only (4,493K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (21284 symbols across 246 files)
FILE: backend/hi.py
function main (line 2) | def main():
FILE: blog/src/components/timeline.js
function timeline (line 3) | function timeline(events, {width, height} = {}) {
FILE: blog/src/data-analysis/launches.csv.js
function text (line 4) | async function text(url) {
constant TOP_LAUNCH_VEHICLES (line 11) | const TOP_LAUNCH_VEHICLES = new Set([
constant TOP_STATES_MAP (line 25) | const TOP_STATES_MAP = new Map([
function normalizeState (line 39) | function normalizeState(d) {
function normalizeFamily (line 44) | function normalizeFamily(d) {
FILE: blog/src/data/launches.csv.js
function text (line 4) | async function text(url) {
constant TOP_LAUNCH_VEHICLES (line 11) | const TOP_LAUNCH_VEHICLES = new Set([
constant TOP_STATES_MAP (line 25) | const TOP_STATES_MAP = new Map([
function normalizeState (line 39) | function normalizeState(d) {
function normalizeFamily (line 44) | function normalizeFamily(d) {
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/1683-90852ff38d0f48c3.js
function u (line 1) | function u(t){let n,e,u;function a(t,r,i=0,u=t.length){if(i<u){if(0!==n(...
function o (line 1) | function o(){return 0}
function r (line 1) | function r(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}
function r (line 1) | function r(t,n){let e;if(void 0===n)for(let n of t)null!=n&&(e<n||void 0...
function r (line 1) | function r(t,n){let e;if(void 0===n)for(let n of t)null!=n&&(e>n||void 0...
function r (line 1) | function r(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else...
function a (line 1) | function a(t){t.preventDefault(),t.stopImmediatePropagation()}
function h (line 1) | function h(t,n,e){var r=new f.B7;return n=null==n?0:+n,r.restart(e=>{r.s...
function d (line 1) | function d(t,n,e,r,i,u){var o=t.__transition;if(o){if(e in o)return}else...
function g (line 1) | function g(t,n){var e=m(t,n);if(e.state>0)throw Error("too late; already...
function y (line 1) | function y(t,n){var e=m(t,n);if(e.state>3)throw Error("too late; already...
function m (line 1) | function m(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw Error("trans...
function _ (line 1) | function _(t,n){var e,r,i,u=t.__transition,o=!0;if(u){for(i in n=null==n...
function M (line 1) | function M(t,n,e,r,i,u){var o,a,l;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/...
function T (line 1) | function T(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return ...
function U (line 1) | function U(t,n,e){var r=t._id;return t.each(function(){var t=y(this,r);(...
function Y (line 1) | function Y(t,n){var e;return("number"==typeof n?w.Z:n instanceof D.ZP?S....
function B (line 1) | function B(t){return function(){this.style.removeProperty(t)}}
function L (line 1) | function L(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}
function i (line 1) | function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&funct...
function i (line 1) | function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&funct...
function u (line 1) | function u(){var u=n.apply(this,arguments);return u!==i&&(r=(i=u)&&funct...
function r (line 1) | function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&funct...
function V (line 1) | function V(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:u}){Obj...
function X (line 1) | function X(t){t.preventDefault(),t.stopImmediatePropagation()}
function $ (line 1) | function $(t){return[+t[0],+t[1]]}
function tt (line 1) | function tt(t){return[$(t[0]),$(t[1])]}
function tl (line 1) | function tl(t){return{type:t}}
function ts (line 1) | function ts(t){return!t.ctrlKey&&!t.button}
function tc (line 1) | function tc(){var t=this.ownerSVGElement||this;return t.hasAttribute("vi...
function tf (line 1) | function tf(){return navigator.maxTouchPoints||"ontouchstart"in this}
function th (line 1) | function th(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__b...
function tp (line 1) | function tp(){return function(t){var n,e=tc,r=ts,c=tf,f=!0,h=(0,i.Z)("st...
function r (line 1) | function r(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=argum...
function i (line 1) | function i(t){this._=t}
function u (line 1) | function u(t,n,r){for(var i=0,u=t.length;i<u;++i)if(t[i].name===n){t[i]=...
function r (line 1) | function r(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}
function o (line 1) | function o(t,n){var e,o,a,l,s,c=i.lastIndex=u.lastIndex=0,f=-1,h=[],p=[]...
function m (line 1) | function m(){var t,n,e,l=Math.min(o.length,a.length);return d!==v&&(t=o[...
function _ (line 1) | function _(n){return null==n||isNaN(n=+n)?e:(i||(i=r(o.map(t),a,l)))(t(d...
function o (line 1) | function o(t,n,e){let a,l,s;let c=(n-t)/Math.max(0,e),f=Math.floor(Math....
function a (line 1) | function a(t,n,e){return o(t=+t,n=+n,e=+e)[2]}
function f (line 1) | function f(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n...
function h (line 1) | function h(t){return+t}
function v (line 1) | function v(t){return t}
function d (line 1) | function d(t,n){var e;return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNa...
function g (line 1) | function g(t,n,e){var r=t[0],i=t[1],u=n[0],o=n[1];return i<r?(r=d(i,r),u...
function y (line 1) | function y(t,n,e){var r=Math.min(t.length,n.length)-1,i=Array(r),u=Array...
function m (line 1) | function m(t,n){switch(arguments.length){case 0:break;case 1:this.range(...
function r (line 1) | function r(t){return function(){return this.matches(t)}}
function i (line 1) | function i(t){return function(n){return n.matches(t)}}
function i (line 1) | function i(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.s...
function i (line 1) | function i(t,n){if(t=(0,r.Z)(t),void 0===n&&(n=t.currentTarget),n){var e...
function i (line 1) | function i(t){return"string"==typeof t?new r.Y1([[document.querySelector...
function a (line 1) | function a(){return this.firstElementChild}
function s (line 1) | function s(){return Array.from(this.children)}
function c (line 1) | function c(t){return Array(t.length)}
function f (line 1) | function f(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.n...
function h (line 1) | function h(t,n,e,r,i,u){for(var o,a=0,l=n.length,s=u.length;a<s;++a)(o=n...
function p (line 1) | function p(t,n,e,r,i,u,o){var a,l,s,c=new Map,h=n.length,p=u.length,v=Ar...
function v (line 1) | function v(t){return t.__data__}
function d (line 1) | function d(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}
function m (line 1) | function m(t){return t.trim().split(/^|\s+/)}
function _ (line 1) | function _(t){return t.classList||new w(t)}
function w (line 1) | function w(t){this._node=t,this._names=m(t.getAttribute("class")||"")}
function b (line 1) | function b(t,n){for(var e=_(t),r=-1,i=n.length;++r<i;)e.add(n[r])}
function x (line 1) | function x(t,n){for(var e=_(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}
function M (line 1) | function M(){this.textContent=""}
function T (line 1) | function T(){this.innerHTML=""}
function Z (line 1) | function Z(){this.nextSibling&&this.parentNode.appendChild(this)}
function C (line 1) | function C(){this.previousSibling&&this.parentNode.insertBefore(this,thi...
function U (line 1) | function U(t){var n=(0,g.Z)(t);return(n.local?function(t){return functio...
function D (line 1) | function D(){return null}
function S (line 1) | function S(){var t=this.parentNode;t&&t.removeChild(this)}
function N (line 1) | function N(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.inser...
function Y (line 1) | function Y(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.inser...
function E (line 1) | function E(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1...
function k (line 1) | function k(t,n,e){return function(){var r,i=this.__on,u=function(t){n.ca...
function F (line 1) | function F(t,n,e){var r=(0,P.Z)(t),i=r.CustomEvent;"function"==typeof i?...
function B (line 1) | function B(t,n){this._groups=t,this._parents=n}
function I (line 1) | function I(){return new B([[document.documentElement]],H)}
function n (line 1) | function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}
function i (line 1) | function i(t,n,e){return arguments.length>1?this.each((null==n?function(...
function u (line 1) | function u(t,n){return t.style.getPropertyValue(n)||(0,r.Z)(t).getComput...
function r (line 1) | function r(){}
function i (line 1) | function i(t){return null==t?r:function(){return this.querySelector(t)}}
function r (line 1) | function r(){return[]}
function i (line 1) | function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}
function r (line 1) | function r(t){let n;for(;n=t.sourceEvent;)t=n;return t}
function r (line 1) | function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.doc...
function l (line 1) | function l(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,...
function s (line 1) | function s(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H...
function c (line 1) | function c(t,n,e){return{y:t,m:n,d:e,H:0,M:0,S:0,L:0}}
function d (line 1) | function d(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",u=i.length;return r+(u<...
function g (line 1) | function g(t){return t.replace(v,"\\$&")}
function y (line 1) | function y(t){return RegExp("^(?:"+t.map(g).join("|")+")","i")}
function m (line 1) | function m(t){return new Map(t.map((t,n)=>[t.toLowerCase(),n]))}
function _ (line 1) | function _(t,n,e){var r=h.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0...
function w (line 1) | function w(t,n,e){var r=h.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0...
function b (line 1) | function b(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0...
function x (line 1) | function x(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0...
function M (line 1) | function M(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0...
function T (line 1) | function T(t,n,e){var r=h.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0...
function Z (line 1) | function Z(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0...
function C (line 1) | function C(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+...
function A (line 1) | function A(t,n,e){var r=h.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+...
function U (line 1) | function U(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[...
function D (line 1) | function D(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0...
function S (line 1) | function S(t,n,e){var r=h.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0]...
function N (line 1) | function N(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0...
function Y (line 1) | function Y(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0...
function E (line 1) | function E(t,n,e){var r=h.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0...
function k (line 1) | function k(t,n,e){var r=h.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0...
function P (line 1) | function P(t,n,e){var r=h.exec(n.slice(e,e+6));return r?(t.L=Math.floor(...
function F (line 1) | function F(t,n,e){var r=p.exec(n.slice(e,e+1));return r?e+r[0].length:-1}
function H (line 1) | function H(t,n,e){var r=h.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].le...
function B (line 1) | function B(t,n,e){var r=h.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].le...
function I (line 1) | function I(t,n){return d(t.getDate(),n,2)}
function L (line 1) | function L(t,n){return d(t.getHours(),n,2)}
function O (line 1) | function O(t,n){return d(t.getHours()%12||12,n,2)}
function z (line 1) | function z(t,n){return d(1+o.rr.count((0,a.jB)(t),t),n,3)}
function j (line 1) | function j(t,n){return d(t.getMilliseconds(),n,3)}
function V (line 1) | function V(t,n){return j(t,n)+"000"}
function X (line 1) | function X(t,n){return d(t.getMonth()+1,n,2)}
function J (line 1) | function J(t,n){return d(t.getMinutes(),n,2)}
function q (line 1) | function q(t,n){return d(t.getSeconds(),n,2)}
function W (line 1) | function W(t){var n=t.getDay();return 0===n?7:n}
function R (line 1) | function R(t,n){return d(u.Zy.count((0,a.jB)(t)-1,t),n,2)}
function G (line 1) | function G(t){var n=t.getDay();return n>=4||0===n?(0,u.Ig)(t):u.Ig.ceil(t)}
function K (line 1) | function K(t,n){return t=G(t),d(u.Ig.count((0,a.jB)(t),t)+(4===(0,a.jB)(...
function Q (line 1) | function Q(t){return t.getDay()}
function $ (line 1) | function $(t,n){return d(u.Ox.count((0,a.jB)(t)-1,t),n,2)}
function tt (line 1) | function tt(t,n){return d(t.getFullYear()%100,n,2)}
function tn (line 1) | function tn(t,n){return d((t=G(t)).getFullYear()%100,n,2)}
function te (line 1) | function te(t,n){return d(t.getFullYear()%1e4,n,4)}
function tr (line 1) | function tr(t,n){var e=t.getDay();return d((t=e>=4||0===e?(0,u.Ig)(t):u....
function ti (line 1) | function ti(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+d...
function tu (line 1) | function tu(t,n){return d(t.getUTCDate(),n,2)}
function to (line 1) | function to(t,n){return d(t.getUTCHours(),n,2)}
function ta (line 1) | function ta(t,n){return d(t.getUTCHours()%12||12,n,2)}
function tl (line 1) | function tl(t,n){return d(1+o.AN.count((0,a.ol)(t),t),n,3)}
function ts (line 1) | function ts(t,n){return d(t.getUTCMilliseconds(),n,3)}
function tc (line 1) | function tc(t,n){return ts(t,n)+"000"}
function tf (line 1) | function tf(t,n){return d(t.getUTCMonth()+1,n,2)}
function th (line 1) | function th(t,n){return d(t.getUTCMinutes(),n,2)}
function tp (line 1) | function tp(t,n){return d(t.getUTCSeconds(),n,2)}
function tv (line 1) | function tv(t){var n=t.getUTCDay();return 0===n?7:n}
function td (line 1) | function td(t,n){return d(u.pI.count((0,a.ol)(t)-1,t),n,2)}
function tg (line 1) | function tg(t){var n=t.getUTCDay();return n>=4||0===n?(0,u.hB)(t):u.hB.c...
function ty (line 1) | function ty(t,n){return t=tg(t),d(u.hB.count((0,a.ol)(t),t)+(4===(0,a.ol...
function tm (line 1) | function tm(t){return t.getUTCDay()}
function t_ (line 1) | function t_(t,n){return d(u.l6.count((0,a.ol)(t)-1,t),n,2)}
function tw (line 1) | function tw(t,n){return d(t.getUTCFullYear()%100,n,2)}
function tb (line 1) | function tb(t,n){return d((t=tg(t)).getUTCFullYear()%100,n,2)}
function tx (line 1) | function tx(t,n){return d(t.getUTCFullYear()%1e4,n,4)}
function tM (line 1) | function tM(t,n){var e=t.getUTCDay();return d((t=e>=4||0===e?(0,u.hB)(t)...
function tT (line 1) | function tT(){return"+0000"}
function tZ (line 1) | function tZ(){return"%"}
function tC (line 1) | function tC(t){return+t}
function tA (line 1) | function tA(t){return Math.floor(+t/1e3)}
function tH (line 1) | function tH(t,n){return function(e){var r,i,u,o=[],a=-1,l=0,s=t.length;f...
function tB (line 1) | function tB(t,n){return function(e){var r,i,a=c(1900,void 0,1);if(tI(a,t...
function tI (line 1) | function tI(t,n,e,r){for(var i,u,o=0,a=n.length,l=e.length;o<a;){if(r>=l...
function u (line 1) | function u(t){return(0,r.J)(n=>{n.setDate(n.getDate()-(n.getDay()+7-t)%7...
function p (line 1) | function p(t){return(0,r.J)(n=>{n.setUTCDate(n.getUTCDate()-(n.getUTCDay...
function p (line 1) | function p(){return s||(h(v),s=f.now()+c)}
function v (line 1) | function v(){s=0}
function d (line 1) | function d(){this._call=this._time=this._next=null}
function g (line 1) | function g(t,n,e){var r=new d;return r.restart(t,n,e),r}
function y (line 1) | function y(){s=(l=f.now())+c,u=o=0;try{!function(){p(),++u;for(var t,n=r...
function m (line 1) | function m(){var t=f.now(),n=t-l;n>1e3&&(c-=n,l=t)}
function _ (line 1) | function _(t){!u&&(o&&(o=clearTimeout(o)),t-s>24?(t<1/0&&(o=setTimeout(y...
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/2549-d685c5a8b5e44383.js
function r (line 1) | function r(e){return Promise.resolve().then(function(){if(!n.o(o,e)){var...
function s (line 1) | function s(e,t){let n=(0,o.qz)(e);if("Cell"!==n.topNode.type.name)return...
method process (line 1) | async process(e){return new Map((await e({type:"request_table_schema",...
method constructor (line 1) | constructor(e,t,n,o,r,i,s){super(),this._source=e,this._table=t,this._...
function l (line 1) | function l(e){let t=(0,o.qz)(e);if("Cell"===t.topNode.type.name&&t.topNo...
method process (line 1) | async process(e){return await e({type:"request_database_query",source:...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._operations=t}
class i (line 1) | class i extends o.i{async process(e){return(await e({type:"request_datab...
method process (line 1) | async process(e){return(await e({type:"request_database_tables",source...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._schema=t}
class s (line 1) | class s extends o.i{async process(e){return new Map((await e({type:"requ...
method process (line 1) | async process(e){return new Map((await e({type:"request_table_schema",...
method constructor (line 1) | constructor(e,t,n,o,r,i,s){super(),this._source=e,this._table=t,this._...
class l (line 1) | class l extends o.i{async process(e){return await e({type:"request_datab...
method process (line 1) | async process(e){return await e({type:"request_database_query",source:...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._operations=t}
class a (line 1) | class a extends o.i{async process(e){return await e({type:"request_datab...
method process (line 1) | async process(e){return await e({type:"request_database_info",source:t...
method constructor (line 1) | constructor(e){super(),this._source=e}
class u (line 1) | class u extends o.i{async process(e){return await e({type:"request_data_...
method process (line 1) | async process(e){return await e({type:"request_data_source_info",sourc...
method constructor (line 1) | constructor(e){super(),this._source=e}
function a (line 1) | function a(e,t,n){let{isExpanded:o}=(0,r.uF)();return c(t,n,"table",o,e)}
method process (line 1) | async process(e){return await e({type:"request_database_info",source:t...
method constructor (line 1) | constructor(e){super(),this._source=e}
function u (line 1) | function u(e,t){let{isExpanded:n}=(0,o.kR)();return c(e,t,"chart",n)}
method process (line 1) | async process(e){return await e({type:"request_data_source_info",sourc...
method constructor (line 1) | constructor(e){super(),this._source=e}
function c (line 1) | function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]?argument...
function r (line 1) | function r(e){if(!("source"in e))throw Error("missing source");let{sourc...
function i (line 1) | function i(e){let t=r(e);if(null===t)throw Error("empty source");return t}
method process (line 1) | async process(e){return(await e({type:"request_database_tables",source...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._schema=t}
function s (line 1) | function s(e){switch(e){case"sql":return"SQL";case"postgres":return"Post...
method process (line 1) | async process(e){return new Map((await e({type:"request_table_schema",...
method constructor (line 1) | constructor(e,t,n,o,r,i,s){super(),this._source=e,this._table=t,this._...
function l (line 1) | function l(e,t){return e.name===t.name&&e.type===t.type}
method process (line 1) | async process(e){return await e({type:"request_database_query",source:...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._operations=t}
function a (line 1) | function a(e,t){var n,o;return(n=e.name)<(o=t.name)?-1:n>o?1:0}
method process (line 1) | async process(e){return await e({type:"request_database_info",source:t...
method constructor (line 1) | constructor(e){super(),this._source=e}
function u (line 1) | function u(e){return(0,o.yD)(e)?e:c(e)}
method process (line 1) | async process(e){return await e({type:"request_data_source_info",sourc...
method constructor (line 1) | constructor(e){super(),this._source=e}
function c (line 1) | function c(e){return o.RN.includes(e)?e:"sql"}
function d (line 1) | function d(e){return"".concat(e.type,":").concat(e.name)}
function f (line 1) | function f(e,t){return JSON.stringify([d(e),p(t)])}
function p (line 1) | function p(e){let{database:t,schema:n,table:o}=e;return t?"".concat(t,"....
function u (line 1) | function u(e,t){let n=t?l:a,o=n.get(e);if(o)return o;let i=new Map;for(l...
method process (line 1) | async process(e){return await e({type:"request_data_source_info",sourc...
method constructor (line 1) | constructor(e){super(),this._source=e}
function c (line 1) | function c(e,t){let n=new Set().add(e);for(let e of n)for(let o of t.get...
function d (line 1) | function d(e){let t=s(e),n=i(e);return new Map(e.map(e=>{let r=n.get(e)|...
function f (line 1) | function f(e,t){return e.node===t.node?"same":t.indirectDown.has(e.node)...
function o (line 1) | function o(e){if(!e)return 0;let t=0;for(let[,n]of e)t+=n.length;return t}
function r (line 1) | function r(e,t){if(!e||!t)return;let{nodeId:n,nodeResultIndex:o}=t,r=o;f...
function a (line 1) | function a(e,t){var n;let o=null==t?void 0:null===(n=t.filter)||void 0==...
method process (line 1) | async process(e){return await e({type:"request_database_info",source:t...
method constructor (line 1) | constructor(e){super(),this._source=e}
function u (line 1) | function u(e){switch(e){case"number":case"integer":case"bigint":return d...
method process (line 1) | async process(e){return await e({type:"request_data_source_info",sourc...
method constructor (line 1) | constructor(e){super(),this._source=e}
function c (line 1) | function c(e){return"number"==typeof e?d(e):e instanceof Date?f(e):""===...
function d (line 1) | function d(e){return 0===e?"0":e.toLocaleString("en-US")}
function f (line 1) | function f(e){return(0,i.Z)(e,"Invalid Date")}
function p (line 1) | function p(e){return JSON.stringify(e)}
function m (line 1) | function m(e){return e?"TRUE":"FALSE"}
function g (line 1) | function g(e){return"0x..."}
function y (line 1) | function y(e){return h.includes(e)}
function _ (line 1) | function _(e){return v.includes(e)}
function w (line 1) | function w(e,t){if(void 0!==e&&void 0!==t)switch(e){case"eq":if("string"...
function S (line 1) | function S(e){let t;if(!e)return[];let{type:n,nullable:o}=e;switch(n){ca...
function b (line 1) | function b(e,t){if(!(0,o.getTypeValidator)(e)(t))return["v","nv"];switch...
function k (line 1) | function k(e,t){return(0,r.Bj)(e)[0].map(e=>e.trim()).map(e=>({type:"pri...
function D (line 1) | function D(e){return"string"==typeof e?{table:e}:e}
function x (line 1) | function x(e,t){let n=D(e),o=D(t);return(null==n?void 0:n.database)===(n...
function T (line 1) | function T(e){return"object"==typeof e?(0,s.VS)(e):e}
function C (line 1) | function C(e,t){return F(e.database,t.database)||F(e.schema,t.schema)||F...
function F (line 1) | function F(e,t){let n=void 0===e,o=void 0===t;return n||o?+o-+n:e<t?-1:e...
function N (line 1) | function N(e){let[t,...n]=e,o="";for(let e of t)o+=e,n.length>0&&(o+="${...
function s (line 1) | function s(e){let t;try{t=(0,i.Hj)(e)}catch(n){if(!(n instanceof SyntaxE...
method process (line 1) | async process(e){return new Map((await e({type:"request_table_schema",...
method constructor (line 1) | constructor(e,t,n,o,r,i,s){super(),this._source=e,this._table=t,this._...
function l (line 1) | function l(e){return{imported:e.imported.name,local:e.local.name,mutable...
method process (line 1) | async process(e){return await e({type:"request_database_query",source:...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._operations=t}
function l (line 1) | function l(e){let t=new Map;for(let n of D(e)){if(b(n))continue;let e=t....
method process (line 1) | async process(e){return await e({type:"request_database_query",source:...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._operations=t}
function a (line 1) | function a(e,t,n){let o=(0,s.Hw)(e),r=n&&(0,s.Hw)(n),l=t&&e.forkOf&&t.id...
method process (line 1) | async process(e){return await e({type:"request_database_info",source:t...
method constructor (line 1) | constructor(e){super(),this._source=e}
function S (line 1) | function S(e,t){return+e.create_time-+t.create_time}
function b (line 1) | function b(e){return e.deleted}
function k (line 1) | function k(e){return!!e.update_time&&!e.resolved}
function D (line 1) | function D(e){return e.map(e=>b(e)?e:k(e)?{...e,status:"unresolved"}:{.....
function c (line 1) | function c(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]?argume...
function f (line 1) | function f(e){let{searchTerm:t,content:n,caseInsensitive:o=!1,wholeWord:...
function p (line 1) | function p(e,t){for(let o=0;o<t.length;o++){var n;e=e.replaceAll("$".con...
function m (line 1) | function m(e){let{searchTerm:t,regexSearch:n}=e;return n?RegExp(t,"gu"):t}
function g (line 1) | function g(e){let{searchTerm:t,editorState:n,caseSensitiveSearch:o,whole...
function h (line 1) | function h(e){let t;let{searchAnchor:n,searchResultsVisible:o,searchResu...
function v (line 1) | function v(e,t){let n;if(!e.searchTerm)return e;let{editorStates:o,searc...
function w (line 1) | function w(e,t){var n;if(!t)return;let{searchResults:o}=e,{nodeId:r,node...
function b (line 1) | function b(e,t){let n,o;let r=0;for(let[i,s]of e){if(t<r+s.length){n=i,o...
function _ (line 1) | function _(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments...
function k (line 1) | function k(e,t,n){if(e.selectionFocusId===t)return;let o={...null!==e.as...
function O (line 1) | function O(e,t){let n=[],o=U(e),i=e.model.nodes;for(let e=i.length-1;e>=...
function U (line 1) | function U(e){let{selection:t,selectionFocusId:n}=e;return t.size||null=...
function a (line 1) | function a(e){var t,n;return!!e&&(null===(n=e.data)||void 0===n?void 0:n...
method process (line 1) | async process(e){return await e({type:"request_database_info",source:t...
method constructor (line 1) | constructor(e){super(),this._source=e}
function c (line 1) | function c(e){var t,n;let o=null===(t=e.data)||void 0===t?void 0:t.displ...
function d (line 1) | function d(e){return f(e,c(e))}
function f (line 1) | function f(e,t){let{id:n,data:o}=e;return r()(null==o?void 0:o.display,t...
function i (line 1) | function i(e,t){let{body:n,editUnpublished:i,currentUser:s}=t,l=o.Z.of({...
method process (line 1) | async process(e){return(await e({type:"request_database_tables",source...
method constructor (line 1) | constructor(e,t){super(),this._source=e,this._schema=t}
function f (line 1) | function f(e,t){let n=new Map;for(let o=0;o<t.length;o++){let{node_ids:r...
function j (line 1) | function j(e,t,n,o){let r={editor:0,worker:0,comments:0,display:0,total:...
function Q (line 1) | function Q(e,t){if(t.some(e=>"revert"===e.type))throw Error("Revert coul...
function J (line 1) | function J(e,t){return!(0,d.ws)(e)&&!1===e.editUnpublished&&t.some(e=>"n...
function es (line 1) | function es(e,t){let{id:n,before:o}=t,{selection:{ranges:r},doc:i}=e.edi...
function ef (line 1) | function ef(e,t){let{id:n,line:o,column:r}=t,{model:i}=e,s=(0,O.DY)(i,n)...
function ep (line 1) | function ep(e,t){let{id:n,line:o,column:r}=t,{editorStates:i}=e,s=i.get(...
function em (line 1) | function em(e,t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)}
function ev (line 1) | function ev(e){let{initialNotebook:t,initialCurrentUser:n,initialCollect...
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/3999-eb7c9b525e00cb6c.js
function t (line 1) | function t(e){return new o(e)}
class o (line 1) | class o extends Error{}
function d (line 1) | function d({id:e,value:n="",pinned:i=!1,mode:o="js",data:d=null,name:a=n...
function l (line 1) | function l(e,n,i,t,o,d,l,a){Object.defineProperties(this,{id:{value:e,en...
function _ (line 1) | function _(e){let n=new Set;return Array.from(e,e=>{let[i,o]=function({s...
function r (line 1) | function r({specifier:e,specifier_type:n,new_resolution:i}){if(null==e)t...
function s (line 1) | function s(e,n,i){return[u({type:e,specifier:n}),{type:e,specifier:n,val...
function u (line 1) | function u({type:e,specifier:n}){return`${e}:${n}`}
function p (line 1) | function p(e){let n=w.get(e);return void 0===n&&(n=new Map(e.map(e=>[u(e...
function S (line 1) | function S(){}
function E (line 1) | function E(e,n,i,t){if(null==i)return n;let o=n.findIndex(e=>e.id===i),d...
function D (line 1) | function D(e){let n=new Map;for(let[i,t]of e)n.set(t,i);return n}
function $ (line 1) | function $(e,n){return Array.from({length:Math.min(e.version,n.version)+...
function N (line 1) | function N(e){Object.defineProperties(this,{_node:{value:e,writable:!0}})}
function C (line 1) | function C({version:e=0,title:n="",license:i=null,copyright:o="",nodes:l...
function R (line 1) | function R(e){if(void 0===e)throw t("insufficient history");let{version:...
function W (line 1) | function W({version:e,title:n,license:i,copyright:t,nodes:o,events:d,res...
function k (line 1) | function k(e,n,i){let o=n?n.previous:w;switch(n?(e.next=n,n.previous=e):...
function S (line 1) | function S(e){let n=e.next,i=e.previous;!e.combinePrevious&&n&&n.combine...
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/4169-a2f83540e7ed7bf5.js
function r (line 1) | function r(e){return e&&"function"==typeof e.toArrowBuffer}
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function i (line 1) | function i(e){return e&&"function"==typeof e.getChild&&"function"==typeo...
function o (line 1) | function o(e){return e.schema.fields.map(u)}
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function u (line 1) | function u(e){return{name:e.name,type:function(e){switch(e.typeId){case ...
function c (line 1) | async function c(){return await n(61187)(`${a.cdn}${r.arrow11.resolve()}`)}
function r (line 1) | function r(e,t,n){return{resolve:(r=n)=>`${e}@${t}/${r}`}}
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e,t){var n=document.createElement("canvas");return n.width=e,...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e,t,n){null==n&&(n=devicePixelRatio);var r=document.createEle...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e,t="untitled",n="Save"){let r=document.createElement("a"),a=...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 1) | function a(e,t){var n,a=e+="",i=a.indexOf(":");i>=0&&"xmlns"!==(a=e.slic...
function r (line 1) | function r(e){var t=document.createElement("input");return null!=e&&(t.t...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e,t,n){1==arguments.length&&(t=e,e=null);var r=document.creat...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e){var t=document.createElement("select");return Array.protot...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e,t){var n=document.createElementNS("http://www.w3.org/2000/s...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e){return document.createTextNode(e)}
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 1) | function a(e){return new i("O-"+(null==e?"":e+"-")+ ++r)}
function i (line 1) | function i(e){this.id=e,this.href=new URL(`#${e}`,location)+""}
class l (line 1) | class l{constructor(e){Object.defineProperties(this,{_db:{value:e}})}asy...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method queryStream (line 1) | async queryStream(e,t){let n,r;let a=await this._db.connect();try{if(t...
method query (line 1) | async query(e,t){let n=await this.queryStream(e,t),r=[];for await(let ...
method queryRow (line 1) | async queryRow(e,t){let n=(await this.queryStream(e,t)).readRows();try...
method sql (line 1) | async sql(e,...t){return await this.query(e.join("?"),t)}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
method escape (line 1) | escape(e){return`"${e}"`}
method describeTables (line 1) | async describeTables(){return(await this.query("SHOW TABLES")).map(({n...
method describeColumns (line 1) | async describeColumns({table:e}={}){return(await this.query(`DESCRIBE ...
method of (line 1) | static async of(e={},t={}){let n=await h();return t.query?.castTimesta...
function s (line 1) | async function s(e,t,n,r){let a=await n.url();if(a.startsWith("blob:")){...
function f (line 1) | async function f(e,t,n){let r=await e.prepare(`CREATE TABLE '${n}' AS SE...
method constructor (line 9) | constructor(e){super(e)}
function d (line 1) | async function d(e,t,n,r){let a=await e.connect();try{await a.insertArro...
function m (line 1) | async function m(e,t,n){let r=(await (0,i.loadArrow)()).tableFromIPC(n.t...
function p (line 1) | async function p(e,t,n,r){let a=(await (0,i.loadArrow)()).tableFromJSON(...
function b (line 1) | async function b(){let e=await n(61187)(`${c.cdn}${o.duckdb.resolve()}`)...
function h (line 1) | async function h(){void 0===r&&(r=b());let{module:e,bundle:t,logger:n}=a...
function u (line 1) | function u(e){for(var t in e){var n,r,a=e[t].trim();if(a){if("true"===a)...
function p (line 1) | async function p(e){let t=await fetch(await e.url());if(!t.ok)throw Erro...
function b (line 1) | function b(e,t){let n=new Map(t.map(({name:e,type:t})=>[e,t]));return Ob...
function h (line 1) | async function h(e,t,{array:n=!1,typed:r=!1}={}){let c=await e.text(),l=...
class y (line 1) | class y{constructor(e,t){Object.defineProperty(this,"name",{value:e,enum...
method constructor (line 1) | constructor(e,t){Object.defineProperty(this,"name",{value:e,enumerable...
method blob (line 1) | async blob(){return(await p(this)).blob()}
method arrayBuffer (line 1) | async arrayBuffer(){return(await p(this)).arrayBuffer()}
method text (line 1) | async text(){return(await p(this)).text()}
method json (line 1) | async json(){return(await p(this)).json()}
method stream (line 1) | async stream(){return(await p(this)).body}
method csv (line 1) | async csv(e){return h(this,",",e)}
method tsv (line 1) | async tsv(e){return h(this," ",e)}
method image (line 1) | async image(e){let t=await this.url();return new Promise((n,r)=>{let a...
method arrow (line 1) | async arrow({version:e=4}={}){switch(e){case 4:{let[e,t]=await Promise...
method sqlite (line 1) | async sqlite(){return f.SQLiteDatabaseClient.open(p(this))}
method zip (line 1) | async zip(){let[e,t]=await Promise.all([(0,s.requireDefault)(l.jszip.r...
method xml (line 1) | async xml(e="application/xml"){return(new DOMParser).parseFromString(a...
method html (line 1) | async html(){return this.xml("text/html")}
method xlsx (line 1) | async xlsx(){let[e,t]=await Promise.all([(0,s.requireDefault)(l.excelj...
class v (line 1) | class v extends y{constructor(e,t,n){super(t,n),Object.defineProperty(th...
method constructor (line 1) | constructor(e,t,n){super(t,n),Object.defineProperty(this,"_url",{value...
method url (line 1) | async url(){return await this._url+""}
function E (line 1) | function E(e){throw Error(`File not found: ${e}`)}
function g (line 1) | function g(e){return Object.assign(t=>{let n=e(t+="");if(null==n)throw E...
class w (line 1) | class w{constructor(e){Object.defineProperty(this,"_",{value:e}),this.fi...
method constructor (line 1) | constructor(e){Object.defineProperty(this,"_",{value:e}),this.filename...
method file (line 1) | file(e){let t=this._.file(e+="");if(!t||t.dir)throw Error(`file not fo...
class A (line 1) | class A extends y{constructor(e){super(e.name),Object.defineProperty(thi...
method constructor (line 1) | constructor(e){super(e.name),Object.defineProperty(this,"_",{value:e})...
method url (line 1) | async url(){return this._url||(this._url=this.blob().then(URL.createOb...
method blob (line 1) | async blob(){return this._.async("blob")}
method arrayBuffer (line 1) | async arrayBuffer(){return this._.async("arraybuffer")}
method text (line 1) | async text(){return this._.async("text")}
method json (line 1) | async json(){return JSON.parse(await this.text())}
function r (line 1) | function r(e){return new Promise(function(t,n){var r=new FileReader;r.on...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e){return new Promise(function(t,n){var r=new FileReader;r.on...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function r (line 1) | function r(e){return new Promise(function(t,n){var r=new FileReader;r.on...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 1) | function a(e,t){let n=!1;if("function"!=typeof t)throw Error("dispose is...
function a (line 1) | function a(e){return(0,r.observe)(function(t){var n=function(e){switch(e...
function i (line 1) | function i(e){switch(e.type){case"range":case"number":return e.valueAsNu...
function a (line 1) | function a(e){let t,n,a=!1,i=e(function(e){return n?(n(e),n=null):a=!0,t...
function a (line 1) | function a(e){let t;let n=[],a=e(function(e){return n.push(e),t&&(t(n.sh...
function r (line 1) | function r(e,t){if(isFinite(t=+t)&&!(t<0)&&!(t!=t|0)){for(var n,r=-1;!(n...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 1) | function a(e){let t=URL.createObjectURL(new Blob([e],{type:"text/javascr...
function a (line 1) | async function a(e){let t=await e(r.leaflet.resolve());if(!t._style){let...
function O (line 1) | function O([e,t]){return[e,{value:t,writable:!0,enumerable:!0}]}
function i (line 1) | function i(e){return e(r.marked.resolve()).then(function(t){return(0,a.t...
function i (line 1) | async function i(e){let t=await e(r.mermaid.resolve());return t.initiali...
function a (line 1) | function a(e){let t;Object.defineProperties(this,{generator:{value:(0,r....
function r (line 1) | function r(e,t){return new Promise(function(n){setTimeout(function(){n(t...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 1) | function a(e,t){return(0,r.when)(Math.ceil((Date.now()+1)/e)*e,t)}
function a (line 1) | function a(e,t){var n,a,i,o;return(n=r.get(e=+e))?n.then(()=>t):(n=Date....
function o (line 1) | function o(e){i=e}
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function u (line 1) | function u(e){return null==e?i:(0,r.ZW)(e)}
function r (line 1) | function r(e,t){if(/^(\w+:)|\/\//i.test(e))return e;if(/^[.]{0,2}\//i.te...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function i (line 1) | async function i(e){let[t,n]=await Promise.all([e(r.sql.resolve()),e.res...
class o (line 1) | class o{constructor(e){Object.defineProperties(this,{_db:{value:e}})}sta...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function u (line 1) | function u(e){return"string"==typeof e?fetch(e).then(u):e instanceof Res...
function c (line 1) | async function c(e,t,n){let[r]=await e.exec(t,n);if(!r)return[];let{colu...
function l (line 1) | function l(e,t,n){2==arguments.length&&(n=t,t=void 0);let r=document.cre...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method queryStream (line 1) | async queryStream(e,t){let n,r;let a=await this._db.connect();try{if(t...
method query (line 1) | async query(e,t){let n=await this.queryStream(e,t),r=[];for await(let ...
method queryRow (line 1) | async queryRow(e,t){let n=(await this.queryStream(e,t)).readRows();try...
method sql (line 1) | async sql(e,...t){return await this.query(e.join("?"),t)}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
method escape (line 1) | escape(e){return`"${e}"`}
method describeTables (line 1) | async describeTables(){return(await this.query("SHOW TABLES")).map(({n...
method describeColumns (line 1) | async describeColumns({table:e}={}){return(await this.query(`DESCRIBE ...
method of (line 1) | static async of(e={},t={}){let n=await h();return t.query?.castTimesta...
function s (line 1) | function s(e){return document.createTextNode(e)}
function c (line 1) | function c(e,t){return e&&("function"==typeof e.sql||"function"==typeof ...
function l (line 1) | function l(e){return Array.isArray(e)&&(s(e.schema)||f(e.columns)||funct...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method queryStream (line 1) | async queryStream(e,t){let n,r;let a=await this._db.connect();try{if(t...
method query (line 1) | async query(e,t){let n=await this.queryStream(e,t),r=[];for await(let ...
method queryRow (line 1) | async queryRow(e,t){let n=(await this.queryStream(e,t)).readRows();try...
method sql (line 1) | async sql(e,...t){return await this.query(e.join("?"),t)}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
method escape (line 1) | escape(e){return`"${e}"`}
method describeTables (line 1) | async describeTables(){return(await this.query("SHOW TABLES")).map(({n...
method describeColumns (line 1) | async describeColumns({table:e}={}){return(await this.query(`DESCRIBE ...
method of (line 1) | static async of(e={},t={}){let n=await h();return t.query?.castTimesta...
function s (line 1) | function s(e){return Array.isArray(e)&&e.every(d)}
function f (line 1) | function f(e){return Array.isArray(e)&&e.every(e=>"string"==typeof e)}
method constructor (line 9) | constructor(e){super(e)}
function d (line 1) | function d(e){return e&&"string"==typeof e.name&&"string"==typeof e.type}
function m (line 1) | function m(e){return h(e)||p(e)||b(e)}
function p (line 1) | function p(e){let t;let n=Math.min(20,e.length);if(!(n>0))return!1;let r...
function b (line 1) | function b(e){let t=Math.min(20,e.length);if(!(t>0))return!1;let n=!1;fo...
function h (line 1) | function h(e){return e instanceof Int8Array||e instanceof Int16Array||e ...
function v (line 1) | async function v(e,t,n){switch(t){case"chart":return g(e);case"table":re...
method constructor (line 1) | constructor(e,t,n){super(t,n),Object.defineProperty(this,"_url",{value...
method url (line 1) | async url(){return await this._url+""}
function E (line 1) | function E(e){let t=new WeakMap;return(n,r)=>{if(!n||"object"!=typeof n)...
function N (line 1) | async function N(e,t){let n=await (0,o.loadArrow)();return m(e)?n.tableF...
function T (line 1) | function T(e,t=e instanceof a.FileAttachment?function(e){return e.name.r...
function I (line 1) | async function I(e,t,n){if(!e)throw Error("missing data source");if("fun...
function _ (line 1) | function _(e,t){let n="function"==typeof t.escape?t.escape:e=>e,{select:...
function D (line 8) | function D(e,t){let n=t[0];n[n.length-1]+=e}
function S (line 8) | function S({column:e,direction:t},n,r){D(`${r(e)} ${t.toUpperCase()}`,n)}
function R (line 8) | function R(e,t,n){"column"===e.type?D(n(e.value),t):(t.push(e.value),t[0...
function x (line 8) | function x(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))}
function C (line 8) | function C(e,t){return x(e,t)||(e<t?-1:e>t?1:0)}
function L (line 8) | function L(e,t){return x(e,t)||(e>t?-1:e<t?1:0)}
function W (line 8) | function W(e){switch(e){case"string":return G;case"bigint":return k;case...
function Y (line 8) | function Y(e,t){switch(t){case"string":return"string"==typeof e||null==e...
function H (line 8) | function H(e){let{columns:t}=e,{schema:n}=e;return s(n)?{schema:n,inferr...
function K (line 8) | function K(e,t){let n=e,{schema:r,inferred:a}=H(e),i=new Map(r.map(({nam...
function Z (line 8) | function Z(e,t){if(!t.names)return e;let n=new Map(t.names.map(e=>[e.col...
function z (line 8) | function z(e,t){let n=new Map,r=e,a=K(e,t);e=a.source;let i=a.schema;if(...
function Q (line 8) | function Q(e,t,n){let r={};for(let a of n){let n=t.get(a.name),i=e[a.nam...
function X (line 8) | function X(e,t=function(e){let t=new Set;for(let n of e)if(n)for(let e i...
function r (line 8) | function r(e,t){return function(n){var r,a,i,o,u,c,l,s,f=n[0],d=[],m=nul...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function i (line 8) | function i(e){return new Promise(function(t,n){var r=document.createElem...
function o (line 8) | function o(e){return Promise.all([e(r.katex.resolve()),e.resolve(r.katex...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function r (line 8) | function r(){return this}
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 8) | async function a(e){let[t,n,a]=await Promise.all([r.vega,r.vegalite,r.ve...
function a (line 8) | function a(){return(0,r.observe)(function(e){var t=e(document.body.clien...
class r (line 8) | class r{constructor(e){Object.defineProperties(this,{_:{value:e},sheetNa...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 8) | function a(e){if(!e)return;let{value:t}=e;if(t&&"object"==typeof t&&!(t ...
function i (line 8) | function i(e){return e.richText.map(e=>e.text).join("")}
function o (line 8) | function o(e){let[,t,n]=e.match(/^([A-Z]*)(\d*)$/),r=0;if(t)for(let e=0;...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function l (line 8) | function l(){return!!("undefined"!=typeof window&&window.document&&windo...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method queryStream (line 1) | async queryStream(e,t){let n,r;let a=await this._db.connect();try{if(t...
method query (line 1) | async query(e,t){let n=await this.queryStream(e,t),r=[];for await(let ...
method queryRow (line 1) | async queryRow(e,t){let n=(await this.queryStream(e,t)).readRows();try...
method sql (line 1) | async sql(e,...t){return await this.query(e.join("?"),t)}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
method escape (line 1) | escape(e){return`"${e}"`}
method describeTables (line 1) | async describeTables(){return(await this.query("SHOW TABLES")).map(({n...
method describeColumns (line 1) | async describeColumns({table:e}={}){return(await this.query(`DESCRIBE ...
method of (line 1) | static async of(e={},t={}){let n=await h();return t.query?.castTimesta...
function s (line 8) | function s(e,t){return n=>{if(e&&e(n),!n.defaultPrevented)return t(n)}}
function f (line 8) | function f(e){return!!(e&&"[object Function]"==({}).toString.call(e))}
method constructor (line 9) | constructor(e){super(e)}
function d (line 8) | function d(...e){return(0,i.useCallback)(t=>{for(let n of e)!function(e,...
function m (line 8) | function m(e,t){let n=i.createContext(t);return n.displayName=e,n}
function p (line 8) | function p(e){return"which"in e?3===e.which:"button"in e&&2===e.button}
function b (line 8) | function b(...e){return e.filter(e=>null!=e).join("--")}
function v (line 8) | function v(e){return void 0===e?[]:[].concat(e)}
method constructor (line 1) | constructor(e,t,n){super(t,n),Object.defineProperty(this,"_url",{value...
method url (line 1) | async url(){return await this._url+""}
function E (line 8) | function E(e){return{type:"xstate.assign",assignment:e}}
function g (line 8) | function g(e,t){return"string"==typeof(e="string"==typeof e&&t&&t[e]?t[e...
function w (line 8) | function w(e){return function(t){return e===t}}
method constructor (line 1) | constructor(e){Object.defineProperty(this,"_",{value:e}),this.filename...
method file (line 1) | file(e){let t=this._.file(e+="");if(!t||t.dir)throw Error(`file not fo...
function A (line 8) | function A(e){return"string"==typeof e?{type:e}:e}
method constructor (line 1) | constructor(e){super(e.name),Object.defineProperty(this,"_",{value:e})...
method url (line 1) | async url(){return this._url||(this._url=this.blob().then(URL.createOb...
method blob (line 1) | async blob(){return this._.async("blob")}
method arrayBuffer (line 1) | async arrayBuffer(){return this._.async("arraybuffer")}
method text (line 1) | async text(){return this._.async("text")}
method json (line 1) | async json(){return JSON.parse(await this.text())}
function N (line 8) | function N(e,t){return{value:e,context:t,actions:[],changed:!1,matches:w...
function I (line 8) | function I(e){let t=(0,i.useRef)();return t.current||(t.current={v:e()})...
function L (line 8) | function L(e,t){if("BLUR"===t.type){let{list:e,popover:n}=t.refs,{relate...
function U (line 8) | function U(e,t){if("OUTSIDE_MOUSE_DOWN"===t.type||"OUTSIDE_MOUSE_UP"===t...
function P (line 8) | function P(e,t){return!!e.options.find(t=>t.value===e.navigationValue)}
function G (line 8) | function G(e,t){let{popover:n,list:r}=t.refs,{relatedTarget:a}=t;return(...
function M (line 8) | function M(e,t){requestAnimationFrame(()=>{t.refs.list&&t.refs.list.focu...
function k (line 8) | function k(e,t){t.refs.button&&t.refs.button.focus()}
function j (line 8) | function j(e,t){return!t.disabled}
function q (line 8) | function q(e,t){return"isControlled"in t&&!t.isControlled}
function $ (line 8) | function $(e,t){return"OPTION_TOUCH_START"!==t.type||!t||!t.disabled}
function F (line 8) | function F(e,t){return(!("disabled"in t)||!t.disabled)&&("value"in t?nul...
function V (line 8) | function V(e,t){t.callback&&t.callback(t.value)}
function W (line 8) | function W(e,t){if("KEY_DOWN_ENTER"!==t.type)return;let{hiddenInput:n}=t...
function z (line 8) | function z(e,t=""){return t&&e.find(e=>!e.disabled&&e.label&&e.label.toL...
method state (line 8) | get state(){return t}
method status (line 8) | get status(){return n}
function e (line 9) | function e(e){let{target:t,relatedTarget:n}=e;em(q.current,t)||V({type:"...
function e (line 9) | function e(e){let{target:t,relatedTarget:n}=e;em(q.current,t)||V({type:"...
function t (line 9) | function t(e){V({type:"RESET_VALUE",isControlled:C.current})}
function es (line 9) | function es(){let{highlightedOptionRef:e,selectedOptionRef:t,listboxId:n...
function ef (line 9) | function ef(){var e;let t,{send:n,disabled:r,onValueChange:a,stateData:{...
function ed (line 9) | function ed(e){let{listboxId:t}=i.useContext(J);return e?b(`option-${e}`...
function em (line 9) | function em(e,t){return!!(e&&e.contains(t))}
function r (line 9) | function r(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function i (line 9) | function i(e){return Function("d","return {"+e.map(function(e,t){return ...
function o (line 9) | function o(e){var t=Object.create(null),n=[];return e.forEach(function(e...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function u (line 9) | function u(e,t){var n=e+"",r=n.length;return r<t?Array(t-r+1).join(0)+n:n}
function c (line 9) | function c(e){var t=RegExp('["'+e+"\n\r]"),n=e.charCodeAt(0);function c(...
function a (line 9) | function a(e,t){return function(n){return e+n*t}}
function i (line 9) | function i(e,t){var n=t-e;return n?a(e,n>180||n<-180?n-360*Math.round(n/...
function o (line 9) | function o(e){return 1==(e=+e)?u:function(t,n){var a,i,o;return n-t?(a=t...
method constructor (line 1) | constructor(e){Object.defineProperties(this,{_db:{value:e}})}
method open (line 1) | static async open(e){let[t,n]=await Promise.all([i(a.requireDefault),P...
method query (line 1) | async query(e,t){return await c(this._db,e,t)}
method queryRow (line 1) | async queryRow(e,t){return(await this.query(e,t))[0]||null}
method explain (line 1) | async explain(e,t){return l("pre",{className:"observablehq--inspect"},...
method describeTables (line 1) | async describeTables({schema:e}={}){return this.query(`SELECT NULLIF(s...
method describeColumns (line 1) | async describeColumns({schema:e,table:t}={}){if(null==t)throw Error("m...
method describe (line 1) | async describe(e){let t=await (void 0===e?this.query("SELECT name FROM...
method sql (line 1) | async sql(){return this.query(...this.queryTag.apply(this,arguments))}
method queryTag (line 1) | queryTag(e,...t){return[e.join("?"),t]}
function u (line 9) | function u(e,t){var n=t-e;return n?a(e,n):(0,r.Z)(isNaN(e)?t:e)}
function a (line 9) | function a(e,t,n,r,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)...
function a (line 9) | function a(e,t){var a=n((e=(0,r.B8)(e)).r,(t=(0,r.B8)(t)).r),o=n(e.g,t.g...
function u (line 9) | function u(e){return function(t){var n,a,i=t.length,o=Array(i),u=Array(i...
class f (line 9) | class f extends Error{constructor(e){super(e)}}
method constructor (line 9) | constructor(e){super(e)}
function d (line 9) | function d(e){let t=c.exec(e);return t&&{name:t[1],version:t[2],path:t[3]}}
function m (line 9) | function m(e="https://cdn.jsdelivr.net/npm/",t=["unpkg","jsdelivr","brow...
function b (line 9) | function b(e){let t=new Map,n=o(null);function r(e){if("string"!=typeof ...
function h (line 9) | function h(e){let t={};for(let n of e)for(let e in n)u.call(n,e)&&(null=...
function y (line 9) | function y(e){return"exports"==(e+="")||"module"===e}
method constructor (line 1) | constructor(e,t){Object.defineProperty(this,"name",{value:e,enumerable...
method blob (line 1) | async blob(){return(await p(this)).blob()}
method arrayBuffer (line 1) | async arrayBuffer(){return(await p(this)).arrayBuffer()}
method text (line 1) | async text(){return(await p(this)).text()}
method json (line 1) | async json(){return(await p(this)).json()}
method stream (line 1) | async stream(){return(await p(this)).body}
method csv (line 1) | async csv(e){return h(this,",",e)}
method tsv (line 1) | async tsv(e){return h(this," ",e)}
method image (line 1) | async image(e){let t=await this.url();return new Promise((n,r)=>{let a...
method arrow (line 1) | async arrow({version:e=4}={}){switch(e){case 4:{let[e,t]=await Promise...
method sqlite (line 1) | async sqlite(){return f.SQLiteDatabaseClient.open(p(this))}
method zip (line 1) | async zip(){let[e,t]=await Promise.all([(0,s.requireDefault)(l.jszip.r...
method xml (line 1) | async xml(e="application/xml"){return(new DOMParser).parseFromString(a...
method html (line 1) | async html(){return this.xml("text/html")}
method xlsx (line 1) | async xlsx(){let[e,t]=await Promise.all([(0,s.requireDefault)(l.excelj...
function v (line 9) | function v(e,t,n){let r=arguments.length;r<2?(n=e,t=[]):r<3&&(n=t,t="str...
method constructor (line 1) | constructor(e,t,n){super(t,n),Object.defineProperty(this,"_url",{value...
method url (line 1) | async url(){return await this._url+""}
function r (line 9) | function r(e,t){var n;if(e instanceof Date||(e=new Date(+e)),isNaN(e))re...
method constructor (line 8) | constructor(e){Object.defineProperties(this,{_:{value:e},sheetNames:{v...
method sheet (line 8) | sheet(e,t){let n="number"==typeof e?this.sheetNames[e]:this.sheetNames...
function a (line 9) | function a(e,t){return`${e}`.padStart(t,"0")}
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/7297-514aacfbea18160d.js
function c (line 1) | function c(e,t,n,o){let{trigger:i,source:r}=n;return new Promise(n=>{fun...
function u (line 1) | function u(e,t){e({type:"showErrorToast",message:t,key:"publish"}),e({ty...
function s (line 1) | function s(e){let t=new Set(e.map(e=>e.login));return e=>!t.has(e.login)}
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/8234-563c4d907b8a6e14.js
function y (line 1) | function y(e){var t,r;if(0===e.length){p(i);return}let a=null!==(t=l.ope...
function ep (line 1) | function ep(e){return(0,et.WU)(",")(e)}
function ev (line 1) | function ev(e,t){return"".concat(ep(e)," ").concat(1===e?"row":"rows"," ...
function S (line 1) | function S(e){let{x:t}=e;return(0,r.jsx)("rect",{x:t,width:F,height:2,fi...
function W (line 1) | function W(e,t,n){return(0,r.jsxs)("g",{children:[t>0&&(0,r.jsx)("rect",...
function k (line 1) | function k(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0...
function V (line 1) | function V(){var e;R.current=requestAnimationFrame(V),null===(e=y.curren...
class eA (line 1) | class eA extends eV.i{async process(e){return await e({type:"request_tab...
method process (line 1) | async process(e){return await e({type:"request_table_summary",node_id:...
method constructor (line 1) | constructor(e,t){super(),this._id=e,this._filters=t}
class eF (line 1) | class eF extends eV.i{async process(e){let t=await e({type:"request_tabl...
method process (line 1) | async process(e){let t=await e({type:"request_table_rows",node_id:this...
method constructor (line 1) | constructor(e,t,n,r,o){super(),this._id=e,this._start=t,this._end=n,th...
function E (line 1) | function E(e){return void 0===e||"string"==typeof e}
function L (line 1) | function L(e){let{state:t,currentUser:n,dispatch:a,hiddenNodes:i,allowIn...
function i (line 1) | function i(e){let t=/^([a-zA-Z]+):\/\/(.*)$/.exec(e.specifier);if(!t)ret...
function s (line 1) | async function s(e,t){let n=i(t);if(!n)throw(0,r.uT)("Invalid cloud file...
function c (line 1) | async function c(e,t){let n;try{let r="team"===e.type?"/team/".concat(e....
function r (line 1) | function r(e,t){let n=URL.createObjectURL(e);o(n,t),URL.revokeObjectURL(n)}
function o (line 1) | function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[...
method test (line 1) | test(e){if(!e)return!1;let t=0;for(let n of this.terms){if(n.lastIndex...
method matches (line 1) | matches(e){let t=this.fallback.matches(e);if(!e)return t;let n=0;for(l...
method constructor (line 1) | constructor({terms:e=[],strict:t=!1,fallback:n=r}){this.terms=e,this.s...
function r (line 1) | function r(e){let t=e.lastIndexOf(".");if(-1===t)return"application/octe...
class o (line 1) | class o{test(e){if(!e)return!1;let t=0;for(let n of this.terms){if(n.las...
method test (line 1) | test(e){if(!e)return!1;let t=0;for(let n of this.terms){if(n.lastIndex...
method matches (line 1) | matches(e){let t=this.fallback.matches(e);if(!e)return t;let n=0;for(l...
method constructor (line 1) | constructor({terms:e=[],strict:t=!1,fallback:n=r}){this.terms=e,this.s...
function a (line 1) | function a(e,t){return new RegExp("(^|[^\\p{L}])(".concat(e.replace(/[\\...
function l (line 1) | function l(e){let{allowAcronyms:t=!1}=arguments.length>1&&void 0!==argum...
function r (line 1) | function r(e){return e?e.worker+e.display:0}
function o (line 1) | function o(e){let t=0;for(let{total:n}of e.values())t+=n;return t}
method test (line 1) | test(e){if(!e)return!1;let t=0;for(let n of this.terms){if(n.lastIndex...
method matches (line 1) | matches(e){let t=this.fallback.matches(e);if(!e)return t;let n=0;for(l...
method constructor (line 1) | constructor({terms:e=[],strict:t=!1,fallback:n=r}){this.terms=e,this.s...
function a (line 1) | function a(e,t,n,r){let o=0,a=new ResizeObserver(e=>{let[a]=e,i=a.conten...
function a (line 1) | function a(e){let t=o.get(e);return void 0===t&&o.set(e,t=r++),t}
function c (line 1) | function c(e,t){return e.length>t?"".concat(e.slice(0,t-1),"…"):e}
function v (line 1) | function v(e,t,n,r){switch(e){case"aiassist":(0,o.MR)((0,o.ym)({type:"no...
function o (line 1) | async function o(){let e=[],n=new h.S(async(t,n)=>{t({type:"request_data...
method test (line 1) | test(e){if(!e)return!1;let t=0;for(let n of this.terms){if(n.lastIndex...
method matches (line 1) | matches(e){let t=this.fallback.matches(e);if(!e)return t;let n=0;for(l...
method constructor (line 1) | constructor({terms:e=[],strict:t=!1,fallback:n=r}){this.terms=e,this.s...
function l (line 1) | function l(){let{initialCollection:e}=arguments.length>0&&void 0!==argum...
function a (line 1) | async function a(e,t){let{allow_guests:n,credentials:o,local:a,name:l,ty...
function i (line 1) | function i(e){if(!("password"in e.credentials))return e;let{credentials:...
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/8764-fb7153f259170265.js
function s (line 1) | function s(t){var e=t.length;if(e%4>0)throw Error("Invalid string. Lengt...
function f (line 1) | function f(t){if(t>2147483647)throw RangeError('The value "'+t+'" is inv...
function u (line 1) | function u(t,e,r){if("number"==typeof t){if("string"==typeof e)throw Typ...
function s (line 1) | function s(t,e,r){if("string"==typeof t)return function(t,e){if(("string...
function h (line 1) | function h(t){if("number"!=typeof t)throw TypeError('"size" argument mus...
function a (line 1) | function a(t){return h(t),f(t<0?0:0|c(t))}
function l (line 1) | function l(t){let e=t.length<0?0:0|c(t.length),r=f(e);for(let n=0;n<e;n+...
function p (line 1) | function p(t,e,r){let n;if(e<0||t.byteLength<e)throw RangeError('"offset...
function c (line 1) | function c(t){if(t>=2147483647)throw RangeError("Attempt to allocate Buf...
function y (line 1) | function y(t,e){if(u.isBuffer(t))return t.length;if(ArrayBuffer.isView(t...
function g (line 1) | function g(t,e,r){let i=!1;if((void 0===e||e<0)&&(e=0),e>this.length||((...
function d (line 1) | function d(t,e,r){let n=t[e];t[e]=t[r],t[r]=n}
function b (line 1) | function b(t,e,r,n,i){var o;if(0===t.length)return -1;if("string"==typeo...
function w (line 1) | function w(t,e,r,n,i){let o,f=1,u=t.length,s=e.length;if(void 0!==n&&("u...
function B (line 1) | function B(t,e,r){r=Math.min(t.length,r);let n=[],i=e;for(;i<r;){let e=t...
function E (line 1) | function E(t,e,r){if(t%1!=0||t<0)throw RangeError("offset is not uint");...
function m (line 1) | function m(t,e,r,n,i,o){if(!u.isBuffer(t))throw TypeError('"buffer" argu...
function I (line 1) | function I(t,e,r,n,i){L(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));...
function A (line 1) | function A(t,e,r,n,i){L(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));...
function U (line 1) | function U(t,e,r,n,i,o){if(r+n>t.length||r<0)throw RangeError("Index out...
function v (line 1) | function v(t,e,r,n,o){return e=+e,r>>>=0,o||U(t,e,r,4,34028234663852886e...
function R (line 1) | function R(t,e,r,n,o){return e=+e,r>>>=0,o||U(t,e,r,8,17976931348623157e...
function O (line 1) | function O(t,e,r){T[t]=class extends r{constructor(){super(),Object.defi...
function _ (line 1) | function _(t){let e="",r=t.length,n="-"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_...
function L (line 1) | function L(t,e,r,n,i,o){if(t>r||t<e){let n;let i="bigint"==typeof e?"n":...
function S (line 1) | function S(t,e){if("number"!=typeof t)throw new T.ERR_INVALID_ARG_TYPE(e...
function C (line 1) | function C(t,e,r){if(Math.floor(t)!==t)throw S(t,r),new T.ERR_OUT_OF_RAN...
function x (line 1) | function x(t,e){let r;e=e||1/0;let n=t.length,i=null,o=[];for(let f=0;f<...
function N (line 1) | function N(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0])...
function M (line 1) | function M(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length)&&!(i>=t.length);...
function k (line 1) | function k(t,e){return t instanceof e||null!=t&&null!=t.constructor&&nul...
function j (line 1) | function j(t){return"undefined"==typeof BigInt?F:t}
function F (line 1) | function F(){throw Error("BigInt not supported")}
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/9273-d14a7c3909b5f026.js
function t (line 1) | function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){...
class i (line 1) | class i{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,thi...
method constructor (line 1) | constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMa...
method ignoreMatch (line 1) | ignoreMatch(){this.isMatchIgnored=!0}
function a (line 1) | function a(e){return e.replace(/&/g,"&").replace(/</g,"<").replac...
function r (line 1) | function r(e,...n){let t=Object.create(null);for(let n in e)t[n]=e[n];re...
class l (line 1) | class l{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e...
method constructor (line 1) | constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(...
method addText (line 1) | addText(e){this.buffer+=a(e)}
method openNode (line 1) | openNode(e){if(!s(e))return;let n="";n=e.sublanguage?`language-${e.lan...
method closeNode (line 1) | closeNode(e){s(e)&&(this.buffer+="</span>")}
method value (line 1) | value(){return this.buffer}
method span (line 1) | span(e){this.buffer+=`<span class="${e}">`}
class u (line 1) | class u{constructor(){this.rootNode=c(),this.stack=[this.rootNode]}get t...
method constructor (line 1) | constructor(){this.rootNode=c(),this.stack=[this.rootNode]}
method top (line 1) | get top(){return this.stack[this.stack.length-1]}
method root (line 1) | get root(){return this.rootNode}
method add (line 1) | add(e){this.top.children.push(e)}
method openNode (line 1) | openNode(e){let n=c({scope:e});this.add(n),this.stack.push(n)}
method closeNode (line 1) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
method closeAllNodes (line 1) | closeAllNodes(){for(;this.closeNode(););}
method toJSON (line 1) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
method walk (line 1) | walk(e){return this.constructor._walk(e,this.rootNode)}
method _walk (line 1) | static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e...
method _collapse (line 1) | static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(...
class d (line 1) | class d extends u{constructor(e){super(),this.options=e}addKeyword(e,n){...
method constructor (line 1) | constructor(e){super(),this.options=e}
method addKeyword (line 1) | addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNo...
method addText (line 1) | addText(e){""!==e&&this.add(e)}
method addSublanguage (line 1) | addSublanguage(e,n){let t=e.root;t.sublanguage=!0,t.language=n,this.ad...
method toHTML (line 1) | toHTML(){return new l(this,this.options).value()}
method finalize (line 1) | finalize(){return!0}
function g (line 1) | function g(e){return e?"string"==typeof e?e:e.source:null}
function h (line 1) | function h(e){return p("(?=",e,")")}
function f (line 1) | function f(e){return p("(?:",e,")*")}
function b (line 1) | function b(e){return p("(?:",e,")?")}
function p (line 1) | function p(...e){return e.map(e=>g(e)).join("")}
function m (line 1) | function m(...e){return"("+(function(e){let n=e[e.length-1];return"objec...
function E (line 1) | function E(e){return RegExp(e.toString()+"|").exec("").length-1}
function w (line 1) | function w(e,{joinWith:n}){let t=0;return e.map(e=>{let n=t+=1,i=g(e),a=...
function T (line 1) | function T(e,n){"."===e.input[e.index-1]&&n.ignoreMatch()}
function j (line 1) | function j(e,n){void 0!==e.className&&(e.scope=e.className,delete e.clas...
function B (line 1) | function B(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.spli...
function L (line 1) | function L(e,n){Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}
function D (line 1) | function D(e,n){if(e.match){if(e.begin||e.end)throw Error("begin & end a...
function C (line 1) | function C(e,n){void 0===e.relevance&&(e.relevance=1)}
function G (line 1) | function G(e,n,{key:t}){let i=0,a=e[t],r={},s={};for(let e=1;e<=n.length...
function F (line 1) | function F(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.begi...
class W (line 1) | class W extends Error{constructor(e,n){super(e),this.name="HTMLInjection...
method constructor (line 1) | constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}
function _ (line 1) | function _(e){return y.noHighlightRe.test(e)}
function x (line 1) | function x(e,n,t){let i="",a="";"object"==typeof n?(i=e,t=n.ignoreIllega...
function N (line 1) | function N(e,n,s,o){let u=Object.create(null);function d(){if(!k.keyword...
function v (line 1) | function v(e,n){n=n||y.languages||Object.keys(t);let i=function(e){let n...
function A (line 1) | function A(e){let n=function(e){let n=e.className+" ";n+=e.parentNode?e....
function S (line 1) | function S(){if("loading"===document.readyState){k=!0;return}document.qu...
function O (line 1) | function O(e){return t[e=(e||"").toLowerCase()]||t[s[e]]}
function R (line 1) | function R(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>...
function M (line 1) | function M(e){let n=O(e);return n&&!n.disableAutodetect}
function T (line 1) | function T(e,n){o.forEach(function(t){t[e]&&t[e](n)})}
function d (line 1) | function d(e){var n;let t=e.regex,d=(e,{after:n})=>{let t="</"+e[0].slic...
method constructor (line 1) | constructor(e){super(),this.options=e}
method addKeyword (line 1) | addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNo...
method addText (line 1) | addText(e){""!==e&&this.add(e)}
method addSublanguage (line 1) | addSublanguage(e,n){let t=e.root;t.sublanguage=!0,t.language=n,this.ad...
method toHTML (line 1) | toHTML(){return new l(this,this.options).value()}
method finalize (line 1) | finalize(){return!0}
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/9430-e1d1710730c7a2db.js
class S (line 1) | class S extends M.i{async process(e){var t;return(t=Array.from(await e({...
method process (line 1) | async process(e){var t;return(t=Array.from(await e({type:"autocomplete...
method constructor (line 1) | constructor(e,t,r){super(),this._context=e,this._variable=t,this._path...
function $ (line 1) | function $(e){return(t,r,n,i)=>{let o=t.state.field(y.rr);(0,d.DB)(e(e=>...
function P (line 1) | function P(e){if(!/^[a-z0-9.`[\]_\- ]+$/i.test(e))throw Error("invalid l...
function I (line 1) | function I(e){return(t,r,n,i)=>{e(t,r,n,i),t instanceof h.tk&&(0,d.WA)(t)}}
function U (line 1) | function U(e){let t=(0,d.s1)(e.state),r=(0,d.dk)(e),n=e.state.field(f.l)...
function z (line 1) | function z(e){let t=e.state.field(f.l),r=(0,u.qz)(e.state).cursorAt(e.po...
function Y (line 1) | function Y(){return[(0,d.ys)({defaultKeymap:!1,override:[J(e=>ec(e)&&ep(...
function J (line 1) | function J(e,t){return r=>e(r)?t(r):null}
function Q (line 1) | function Q(e){return t=>{var r,n;let i=(0,u.qz)(t.state).resolve(t.pos,-...
function et (line 1) | function et(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments...
function er (line 1) | function er(e){let t,r,n=arguments.length>1&&void 0!==arguments[1]?argum...
function ea (line 1) | function ea(e){return t=>t.state.field(g.C)===e}
function eu (line 1) | function eu(e){return ec(e)||el(e)}
function eh (line 1) | function eh(e){return t=>{var r,n;let i=(0,u.qz)(t.state).resolve(t.pos,...
function eC (line 1) | function eC(e){return(t,r,n,i)=>{t instanceof h.tk&&i!==t.state.doc.line...
function ey (line 1) | function ey(e){let t=e.state.doc.lineAt(e.pos);return!e.state.sliceDoc(t...
function ev (line 1) | async function ev(e){let t=e.state.field(C.Z);return t?(await (0,V.a8)("...
function eb (line 1) | async function eb(e){let t=e.state.field(C.Z);return t?(await (0,V.a8)("...
function n (line 1) | function n(e){return 0===e.doc.length}
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function I (line 1) | function I(e){return e.replace(/\/$/,"").trim()}
function A (line 1) | function A(e){try{let t=new URL(e);return I(t.href)===I(e)}catch(e){retu...
function e (line 1) | function e(e,t,r){let n=r.state.field(p.l);if(!n||!t)return!1;let i=Arra...
function h (line 1) | function h(e){let t=e.field(l.C),r=a.qz[t],n="tex"===t||"html"===t?"":" ...
method update (line 1) | update(e,t){for(let r of((0,o.Z)(t.state)&&(e=h(t.state)),t.effects))r.i...
class f (line 1) | class f extends i.l9{toDOM(){let e=document.createElement("div");return ...
method toDOM (line 1) | toDOM(){let e=document.createElement("div");return e.className="cm-pla...
method constructor (line 1) | constructor(e){super(),this.value=e}
method update (line 1) | update(e){((0,o.Z)(e.startState)!==(0,o.Z)(e.state)||e.startState.field(...
method updateDeco (line 1) | updateDeco(e){this.placeholder=(0,o.Z)(e)?i.p.set(i.p.widget({widget:new...
method decorations (line 1) | get decorations(){return this.placeholder}
method constructor (line 1) | constructor(e){this.placeholder=i.p.none,this.updateDeco(e.state)}
function g (line 1) | function g(e){return{".cm-placeholder":{color:e,position:"absolute",font...
function m (line 1) | function m(){return[p,x]}
function p (line 1) | function p(){return[l,s,c,u,g]}
method update (line 1) | update(e){let t=e.state.field(s),r=e.state.field(c),n=e.state.field(u);(...
method searchResultsDeco (line 1) | searchResultsDeco(e,t,r,o){if(!t||!o)return n.p.set([]);let l=e.state.fi...
method constructor (line 1) | constructor(e){this.view=e,this._previousSearchResults=null,this._previo...
function l (line 1) | function l(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments...
function s (line 1) | function s(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments...
function a (line 1) | function a(){return[d,f]}
method update (line 1) | update(e,t){let{effects:r}=t;return 0===(r=r.filter(e=>e.is(c))).length?...
class u (line 1) | class u extends i.l9{toDOM(){var e;let t=document.createElement("span");...
method toDOM (line 1) | toDOM(){var e;let t=document.createElement("span");return t.className=...
method constructor (line 1) | constructor(e,t,r){super(),this.name=e,this.avatar=t,this.order=r}
method update (line 1) | update(e){this.selectionsChanged(e)?this.decorations=this.decorationSet(...
method selectionsChanged (line 1) | selectionsChanged(e){return e.state.field(d)!==e.startState.field(d)}
method decorationSet (line 1) | decorationSet(e){let t=e.field(d);return i.p.set(Array.from(this.getDeco...
method getDecorations (line 1) | *getDecorations(e){for(let{selection:t,name:r,avatar:n,order:i}of e)for(...
method constructor (line 1) | constructor(e){this.view=e,this.decorations=this.decorationSet(e.state)}
function d (line 1) | function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[...
method update (line 1) | update(e,t){let{state:r,docChanged:n,selection:i,startState:o}=t;return ...
function C (line 1) | function C(e,t){let r=e.field(c.c);if(!r||"js"!==(0,o.yq)(e))return[];le...
function y (line 1) | function y(){return[m]}
function o (line 1) | function o(e){return r.e(1972).then(r.bind(r,1226)).then(t=>{function r(...
function h (line 1) | function h(e){return 1===e.selection.ranges.length&&e.selection.ranges[0...
function p (line 1) | function p(e){return 1===e.selection.ranges.length&&e.selection.ranges[0...
function w (line 1) | function w(e){return t=>{if(t.state.readOnly)return!1;let r=t.state.fiel...
function v (line 1) | function v(e,t){if((0,f.t2)(e,"Escape")||(0,i.g3)(e)||g.R.loaded&&g.R.ge...
function b (line 1) | function b(){return o.$f.of([{key:"Shift-Enter",run:k("keypress","nodeEd...
function k (line 1) | function k(e,t){return r=>((0,n.Rn)(r),(0,n._B)(r),(0,f.t2)(r),r.state.f...
function j (line 1) | function j(e,t,r){let n=e.state.field(l.l);return!!n&&(n({type:"commit",...
function L (line 1) | function L(e,t){let r=Object.entries(C.qz).filter(e=>{let[,{convertible:...
function f (line 1) | function f(e,t){h.has(e)?p.push(t):t()}
method toDOM (line 1) | toDOM(){let e=document.createElement("div");return e.className="cm-pla...
method constructor (line 1) | constructor(e){super(),this.value=e}
class x (line 1) | class x{setState(e){let t=arguments.length>1&&void 0!==arguments[1]?argu...
method setState (line 1) | setState(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[...
method attach (line 1) | attach(e,t,r){if(this._views.has(e))throw Error("Duplicate EditorView"...
method detach (line 1) | detach(e){var t;let r=this._views.get(e),n=null==r?void 0:r.state.fiel...
method _disable (line 1) | _disable(e){e.dispatch({effects:[i.a.of(null)]})}
method refocus (line 1) | refocus(){if(null===this._focusId)return!1;let e=g(this._states,this._...
method scrollIntoView (line 1) | scrollIntoView(e){let t=g(this._states,this._views,e);return!!t&&(t.di...
method repositionTooltips (line 1) | repositionTooltips(e){let t=g(this._states,this._views,e);t&&(0,n.E2)(t)}
method _spotlight (line 1) | _spotlight(e){if(!e.spotlightParticipant){this._spotlightPos&&(this._s...
method applyCommand (line 1) | applyCommand(e,t){let r=this._views.get(e);if(!r)throw Error("EditorVi...
method constructor (line 1) | constructor(e,t){this.dispatch=e,this.getTsClient=t,this._views=new Ma...
function g (line 1) | function g(e,t,r){let n=e.get(r);return n&&t.get(n.field(o.A))}
class n (line 1) | class n{run(e){return this._promise||(this._promise=new Promise((e,t)=>{...
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
class i (line 1) | class i extends n{process(e){let t;let r=[];function n(e){r.push({messag...
method process (line 1) | process(e){let t;let r=[];function n(e){r.push({message:e}),t&&(t(),t=...
method constructor (line 1) | constructor(e){super(),this.open=e}
function n (line 1) | function n(e){if(!e)return!1;for(let t in e)if("display"!==t)return!0;re...
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function i (line 1) | function i(e,t){return e.nodes[o(e,t)]}
method process (line 1) | process(e){let t;let r=[];function n(e){r.push({message:e}),t&&(t(),t=...
method constructor (line 1) | constructor(e){super(),this.open=e}
function o (line 1) | function o(e,t){let r=n.get(e.nodes);void 0===r&&(r=new Map(e.nodes.map(...
function l (line 1) | function l(e,t){let r=o(e,t);return r<e.nodes.length-1?e.nodes[r+1].id:n...
function s (line 1) | function s(e,t){let r=o(e,t);return r>0?e.nodes[r-1].id:null}
function n (line 1) | function n(){if("undefined"==typeof navigator)return!1;if("maxTouchPoint...
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function s (line 1) | function s(e){let t=[],r=function e(t,r){let n;if(Array.isArray(t))n=t.e...
function a (line 1) | async function a(e){let t=!(arguments.length>1)||void 0===arguments[1]||...
function c (line 1) | async function c(e){try{let t=await r.e(3502).then(r.t.bind(r,98645,23))...
function n (line 1) | function n(e){return e.length>0}
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function i (line 1) | function i(e){let{maxLength:t=50,fallback:r="untitled"}=arguments.length...
method process (line 1) | process(e){let t;let r=[];function n(e){r.push({message:e}),t&&(t(),t=...
method constructor (line 1) | constructor(e){super(),this.open=e}
function n (line 1) | function n(e,t){let r=e,n=0;for(;t.has(r);)r=e+String(++n);return r}
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function n (line 1) | function n(e){let t=new Map;return(r,n)=>{let i=t.get(r);i||(i=e(),t.set...
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function w (line 1) | function w(e){return{changes:n.as.of(e.changes,e.length)}}
function v (line 1) | function v(e,t,r,o,l){let{id:s,value:x,mode:m,data:C}=e,w=g.qz[m];return...
function b (line 1) | function b(e,t){let r=arguments.length>2&&void 0!==arguments[2]?argument...
function k (line 1) | function k(e,t){let{editorStates:r,transactions:n}=e;for(let e=0;e<t.len...
function j (line 1) | function j(e,t){let r;let{model:{nodes:n},owner:i,files:o}=e,s=(0,y.cE)(...
function L (line 1) | function L(e){let t=new Map;for(let{node_id:r,...n}of e)t.has(r)?t.get(r...
function M (line 1) | function M(e,t,r){return null===r?t:{...t,...(0,o.N)(e,{scrollIntoView:!...
function S (line 1) | function S(e,t){let r={effects:[a.Hk.readOnly.reconfigure(n.yy.readOnly....
method process (line 1) | async process(e){var t;return(t=Array.from(await e({type:"autocomplete...
method constructor (line 1) | constructor(e,t,r){super(),this._context=e,this._variable=t,this._path...
function g (line 1) | function g(e,t){if(t){let t=e.split(".");e=t.slice(0,t.length-1).join("-...
function v (line 1) | function v(e){let{status:t,name:r,create_time:n,url:i,download_url:o,siz...
function b (line 1) | function b(e){return new Map(e.map(e=>[e.name,v(e)]))}
function j (line 1) | function j(e,t,r){let n=e,i=(0,w.Pu)(r).map(e=>e.name);for(let[r]of e)({...
function S (line 1) | async function S(e){return e.type||"SQLite format 3\0"!==await new Promi...
method process (line 1) | async process(e){var t;return(t=Array.from(await e({type:"autocomplete...
method constructor (line 1) | constructor(e,t,r){super(),this._context=e,this._variable=t,this._path...
function B (line 1) | function B(e,t){for(;e.has(t);)t=t.replace(/(?:@(\d+))?(?=\.|$)/,functio...
function I (line 1) | function I(e){return e.replace(/[\\"'`${}@\x00-\x09\x0b-\x19]+/g,"-")}
function A (line 1) | function A(e,t,r){switch(t){case"application/vnd.openxmlformats-officedo...
function O (line 1) | function O(e,t,r){return"".concat((0,f.Q)(g(e,!0),(0,l.e)(r))," = ").con...
function R (line 1) | function R(e,t){let r=arguments.length>2&&void 0!==arguments[2]?argument...
function T (line 1) | function T(e){return null==e?void 0:e.startsWith("image/")}
function E (line 1) | function E(e){if(T(e))return".image()";switch(e){case"application/json":...
function u (line 1) | function u(e){let{focusId:t,model:r,participants:n,editorStates:i}=e;if(...
method toDOM (line 1) | toDOM(){var e;let t=document.createElement("span");return t.className=...
method constructor (line 1) | constructor(e,t,r){super(),this.name=e,this.avatar=t,this.order=r}
function h (line 1) | function h(e,t){if(null!==t){let r=e.length;e[r-1]!==t&&(e=(r<100?e:e.sl...
function p (line 1) | function p(e,t,r){if(e.focusId!==t)return f(e,t,r)}
function f (line 1) | function f(e,t,r){let n=(0,o.N)(e,{scrollIntoView:!0,selection:r},t),i=(...
method toDOM (line 1) | toDOM(){let e=document.createElement("div");return e.className="cm-pla...
method constructor (line 1) | constructor(e){super(),this.value=e}
function x (line 1) | function x(e,t,r){if(e.focusId===t)return;let n=u(e),o=n&&(0,i.v)(e,[n])...
method setState (line 1) | setState(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[...
method attach (line 1) | attach(e,t,r){if(this._views.has(e))throw Error("Duplicate EditorView"...
method detach (line 1) | detach(e){var t;let r=this._views.get(e),n=null==r?void 0:r.state.fiel...
method _disable (line 1) | _disable(e){e.dispatch({effects:[i.a.of(null)]})}
method refocus (line 1) | refocus(){if(null===this._focusId)return!1;let e=g(this._states,this._...
method scrollIntoView (line 1) | scrollIntoView(e){let t=g(this._states,this._views,e);return!!t&&(t.di...
method repositionTooltips (line 1) | repositionTooltips(e){let t=g(this._states,this._views,e);t&&(0,n.E2)(t)}
method _spotlight (line 1) | _spotlight(e){if(!e.spotlightParticipant){this._spotlightPos&&(this._s...
method applyCommand (line 1) | applyCommand(e,t){let r=this._views.get(e);if(!r)throw Error("EditorVi...
method constructor (line 1) | constructor(e,t){this.dispatch=e,this.getTsClient=t,this._views=new Ma...
function g (line 1) | function g(e){return null!==e.focusId?(0,o.N)(e,{scrollIntoView:!0},e.fo...
function y (line 1) | function y(e){if(null===e.focusId)return;let t=u(e),r=(0,l.Hr)(e,e.focus...
function u (line 1) | function u(e){let t=i.Z.of(e);return t.history=[],t}
method toDOM (line 1) | toDOM(){var e;let t=document.createElement("span");return t.className=...
method constructor (line 1) | constructor(e,t,r){super(),this.name=e,this.avatar=t,this.order=r}
function d (line 1) | function d(e){if(!(0,n.yD)(e.dialect))return null;switch(e.type){case"ce...
function a (line 1) | function a(e,t){var r;let{editorStates:o,signatureHelpData:l,transaction...
function p (line 1) | function p(e,t){if(t.some(e=>"revert"===e.type))throw Error("Revert coul...
function i (line 1) | function i(e,t,r){let{editorStates:i,transactions:o}=e,l=arguments.lengt...
method process (line 1) | process(e){let t;let r=[];function n(e){r.push({message:e}),t&&(t(),t=...
method constructor (line 1) | constructor(e){super(),this.open=e}
function n (line 1) | function n(e,t){"noop"!==e.type&&t.push(e)}
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function i (line 1) | function i(e,t){let{inserts:r,removes:n,modes:i}=t;switch(e.type){case"i...
method process (line 1) | process(e){let t;let r=[];function n(e){r.push({message:e}),t&&(t(),t=...
method constructor (line 1) | constructor(e){super(),this.open=e}
function l (line 1) | function l(e,t){let{editorStates:r,transactions:o}=e,l=s(t);for(let[e]of...
function s (line 1) | function s(e){return new Set(e.flatMap(o.WN))}
function n (line 1) | function n(e,t){let{hoverId:r,focusStack:n,focusId:i,dragId:o,dropId:l,s...
method run (line 1) | run(e){return this._promise||(this._promise=new Promise((e,t)=>{this.r...
function s (line 1) | function s(e,t){a({prettierOn:(0,o.wW)(t,e.owner),closeBracketsOn:(0,o.C...
function a (line 1) | function a(e){l={...l,...e}}
function c (line 1) | function c(){return l}
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/Main.js
function prepareVideos (line 23) | function prepareVideos () {
function prepareVideo (line 33) | function prepareVideo (video, div) {
function updateCanvasWithProgress (line 186) | function updateCanvasWithProgress (canvas, progress) {
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/[...specifiers]-6a923aab3931db26.js
function d (line 1) | function d(e,t){var r=(0,c.V)(e,t);if(!r)return e+"";var n=r[0],i=r[1];r...
function f (line 1) | function f(e){return e}
function b (line 1) | function b(e){var t=(e=(0,l.Z)(e)).fill,r=e.align,i=e.sign,a=e.symbol,f=...
function i (line 1) | function i(e){return(e=(0,n.V)(Math.abs(e)))?e[1]:NaN}
function n (line 1) | function n(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("e...
function i (line 1) | function i(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).index...
function i (line 1) | function i(e){var t;if(!(t=n.exec(e)))throw Error("invalid format: "+e);...
function o (line 1) | function o(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0=...
FILE: data/educational robotics for 141 dollars _ Robotics Odyssey_files/_app-4ca44e0e0c4aea04.js
function i (line 1) | function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(...
method parse (line 6) | static parse(e,t){let n,s,o,a,l,c,u;if(n=/^([0-9a-f]{16})(?:@(\d+)|~(\...
method parseCompare (line 6) | static parseCompare(e){let t=e.split("...");if(2!==t.length)return nul...
method toNotebookURL (line 6) | toNotebookURL(){return"".concat("https://observablehq.com","/").concat...
method toModuleURL (line 6) | toModuleURL(e){return"".concat("https://api.observablehq.com","/").con...
method toString (line 6) | toString(){return"".concat(void 0!==this.slug?"@".concat(this.login,"/...
method constructor (line 6) | constructor({id:e,login:t,slug:n,version:r,tilde:i,versionAlias:s}){vo...
method constructor (line 10) | constructor(){}
method lineAt (line 10) | lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e...
method line (line 10) | line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e...
method replace (line 10) | replace(e,t,n){let r=[];return this.decompose(0,e,r,2),n.length&&n.dec...
method append (line 10) | append(e){return this.replace(this.length,this.length,e)}
method slice (line 10) | slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),o.from(...
method eq (line 10) | eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.line...
method iter (line 10) | iter(e=1){return new l(this,e)}
method iterRange (line 10) | iterRange(e,t=this.length){return new c(this,e,t)}
method iterLines (line 10) | iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.li...
method toString (line 10) | toString(){return this.sliceString(0)}
method toJSON (line 10) | toJSON(){let e=[];return this.flatten(e),e}
method of (line 10) | static of(e){if(0==e.length)throw RangeError("A document must have at ...
function s (line 1) | function s(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=argu...
method constructor (line 10) | constructor(e,t=function(e){let t=-1;for(let n of e)t+=n.length+1;retu...
method lines (line 10) | get lines(){return this.text.length}
method children (line 10) | get children(){return null}
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.text[i],o=r+s.length;i...
method decompose (line 10) | decompose(e,t,n,r){let i=e<=0&&t>=this.length?this:new s(a(this.text,[...
method replace (line 10) | replace(e,t,n){if(!(n instanceof s))return super.replace(e,t,n);let r=...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<=t&&s<t...
method flatten (line 10) | flatten(e){for(let t of this.text)e.push(t)}
method scanIdentical (line 10) | scanIdentical(){return 0}
method split (line 10) | static split(e,t){let n=[],r=-1;for(let i of e)n.push(i),r+=i.length+1...
method constructor (line 10) | constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=i++}
method define (line 10) | static define(e){if(null==e?void 0:e.base)throw Error("Can not derive ...
method defineModifier (line 10) | static defineModifier(){let e=new a;return t=>t.modified.indexOf(e)>-1...
function r (line 1) | function r(e){}
method toJSON (line 6) | toJSON(){return{status:this.status,url:this.url,errors:this.errors||nu...
method constructor (line 6) | constructor(e,t,n){super("HTTP status ".concat(e).concat(t?" for ".con...
method constructor (line 28) | constructor(e,t=s){if(super(),Object.defineProperties(this,{_intern:{v...
method get (line 28) | get(e){return super.get(i(this,e))}
method has (line 28) | has(e){return super.has(i(this,e))}
method set (line 28) | set(e,t){return super.set(function({_intern:e,_key:t},n){let r=t(n);re...
method delete (line 28) | delete(e){return super.delete(function({_intern:e,_key:t},n){let r=t(n...
function s (line 1) | function s(e){var t=(0,r.useRef)(null);return(0,r.useEffect)(function(){...
method constructor (line 10) | constructor(e,t=function(e){let t=-1;for(let n of e)t+=n.length+1;retu...
method lines (line 10) | get lines(){return this.text.length}
method children (line 10) | get children(){return null}
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.text[i],o=r+s.length;i...
method decompose (line 10) | decompose(e,t,n,r){let i=e<=0&&t>=this.length?this:new s(a(this.text,[...
method replace (line 10) | replace(e,t,n){if(!(n instanceof s))return super.replace(e,t,n);let r=...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<=t&&s<t...
method flatten (line 10) | flatten(e){for(let t of this.text)e.push(t)}
method scanIdentical (line 10) | scanIdentical(){return 0}
method split (line 10) | static split(e,t){let n=[],r=-1;for(let i of e)n.push(i),r+=i.length+1...
method constructor (line 10) | constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=i++}
method define (line 10) | static define(e){if(null==e?void 0:e.base)throw Error("Can not derive ...
method defineModifier (line 10) | static defineModifier(){let e=new a;return t=>t.modified.indexOf(e)>-1...
function i (line 1) | function i(e){var t,n,i=(0,r.r)(e),s=i.defaultView||window;return i?{wid...
method parse (line 6) | static parse(e,t){let n,s,o,a,l,c,u;if(n=/^([0-9a-f]{16})(?:@(\d+)|~(\...
method parseCompare (line 6) | static parseCompare(e){let t=e.split("...");if(2!==t.length)return nul...
method toNotebookURL (line 6) | toNotebookURL(){return"".concat("https://observablehq.com","/").concat...
method toModuleURL (line 6) | toModuleURL(e){return"".concat("https://api.observablehq.com","/").con...
method toString (line 6) | toString(){return"".concat(void 0!==this.slug?"@".concat(this.login,"/...
method constructor (line 6) | constructor({id:e,login:t,slug:n,version:r,tilde:i,versionAlias:s}){vo...
method constructor (line 10) | constructor(){}
method lineAt (line 10) | lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e...
method line (line 10) | line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e...
method replace (line 10) | replace(e,t,n){let r=[];return this.decompose(0,e,r,2),n.length&&n.dec...
method append (line 10) | append(e){return this.replace(this.length,this.length,e)}
method slice (line 10) | slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),o.from(...
method eq (line 10) | eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.line...
method iter (line 10) | iter(e=1){return new l(this,e)}
method iterRange (line 10) | iterRange(e,t=this.length){return new c(this,e,t)}
method iterLines (line 10) | iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.li...
method toString (line 10) | toString(){return this.sliceString(0)}
method toJSON (line 10) | toJSON(){let e=[];return this.flatten(e),e}
method of (line 10) | static of(e){if(0==e.length)throw RangeError("A document must have at ...
function r (line 1) | function r(e){return"undefined"!=typeof window&&window.document&&window....
method toJSON (line 6) | toJSON(){return{status:this.status,url:this.url,errors:this.errors||nu...
method constructor (line 6) | constructor(e,t,n){super("HTTP status ".concat(e).concat(t?" for ".con...
method constructor (line 28) | constructor(e,t=s){if(super(),Object.defineProperties(this,{_intern:{v...
method get (line 28) | get(e){return super.get(i(this,e))}
method has (line 28) | has(e){return super.has(i(this,e))}
method set (line 28) | set(e,t){return super.set(function({_intern:e,_key:t},n){let r=t(n);re...
method delete (line 28) | delete(e){return super.delete(function({_intern:e,_key:t},n){let r=t(n...
function n (line 1) | function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbo...
function i (line 1) | function i(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t]...
method parse (line 6) | static parse(e,t){let n,s,o,a,l,c,u;if(n=/^([0-9a-f]{16})(?:@(\d+)|~(\...
method parseCompare (line 6) | static parseCompare(e){let t=e.split("...");if(2!==t.length)return nul...
method toNotebookURL (line 6) | toNotebookURL(){return"".concat("https://observablehq.com","/").concat...
method toModuleURL (line 6) | toModuleURL(e){return"".concat("https://api.observablehq.com","/").con...
method toString (line 6) | toString(){return"".concat(void 0!==this.slug?"@".concat(this.login,"/...
method constructor (line 6) | constructor({id:e,login:t,slug:n,version:r,tilde:i,versionAlias:s}){vo...
method constructor (line 10) | constructor(){}
method lineAt (line 10) | lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e...
method line (line 10) | line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e...
method replace (line 10) | replace(e,t,n){let r=[];return this.decompose(0,e,r,2),n.length&&n.dec...
method append (line 10) | append(e){return this.replace(this.length,this.length,e)}
method slice (line 10) | slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),o.from(...
method eq (line 10) | eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.line...
method iter (line 10) | iter(e=1){return new l(this,e)}
method iterRange (line 10) | iterRange(e,t=this.length){return new c(this,e,t)}
method iterLines (line 10) | iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.li...
method toString (line 10) | toString(){return this.sliceString(0)}
method toJSON (line 10) | toJSON(){let e=[];return this.flatten(e),e}
method of (line 10) | static of(e){if(0==e.length)throw RangeError("A document must have at ...
function l (line 1) | function l(e){return r.isMemo(e)?o:a[e.$$typeof]||i}
method constructor (line 5) | constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}
method init (line 5) | static init(e,t,n){let r=e,s=n.facet(x).markerFilter;s&&(r=s(r));let o...
method constructor (line 10) | constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.valu...
method nextInner (line 10) | nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.len...
method next (line 10) | next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.lengt...
method constructor (line 10) | constructor(e={}){this.id=o++,this.perNode=!!e.perNode,this.deserializ...
method add (line 10) | add(e){if(this.perNode)throw RangeError("Can't add per-node props to n...
method constructor (line 10) | constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parser...
method constructor (line 14) | constructor(e,...t){super(Object.assign({ecmaVersion:13},e),...t)}
method enterScope (line 14) | enterScope(e){return 2&e&&++this.O_function,super.enterScope(e)}
method exitScope (line 14) | exitScope(){return 2&this.currentScope().flags&&--this.O_function,supe...
method parseForIn (line 14) | parseForIn(e,t){return 1===this.O_function&&e.await&&(this.O_async=!0)...
method parseAwait (line 14) | parseAwait(){return 1===this.O_function&&(this.O_async=!0),super.parse...
method parseYield (line 14) | parseYield(e){return 1===this.O_function&&(this.O_generator=!0),super....
method parseImport (line 14) | parseImport(e){return this.next(),e.specifiers=this.parseImportSpecifi...
method parseImportSpecifiers (line 14) | parseImportSpecifiers(){let e=[],t=new Set,n=!0;for(this.expect(r.cz.b...
method parseExprAtom (line 14) | parseExprAtom(e){return this.parseMaybeKeywordExpression("viewof","Vie...
method startCell (line 14) | startCell(){this.O_function=0,this.O_async=!1,this.O_generator=!1,this...
method finishCell (line 14) | finishCell(e,t,n){return n&&this.checkLocal(n),e.id=n,e.body=t,e.async...
method parseCell (line 14) | parseCell(e,t){let n=new l({},this.input,this.start),i=n.getToken(),s=...
method parseTopLevel (line 14) | parseTopLevel(e){return this.parseCell(e,!0)}
method toAssignable (line 14) | toAssignable(e,t,n){return"MutableExpression"===e.type?e:super.toAssig...
method checkLocal (line 14) | checkLocal(e){let t=e.id||e;(i.Z.has(t.name)||"arguments"===t.name)&&t...
method checkUnreserved (line 14) | checkUnreserved(e){return("viewof"===e.name||"mutable"===e.name)&&this...
method checkLValSimple (line 14) | checkLValSimple(e,t,n){return super.checkLValSimple("MutableExpression...
method unexpected (line 14) | unexpected(e){this.raise(null!=e?e:this.start,this.type===r.cz.eof?"Un...
method parseMaybeKeywordExpression (line 14) | parseMaybeKeywordExpression(e,t){if(this.isContextual(e)){let e=this.s...
method constructor (line 28) | constructor(e){l.prototype.__init.call(this),l.prototype.__init2.call(...
method then (line 28) | then(e,t){return new l((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(...
method catch (line 28) | catch(e){return this.then(e=>e,e)}
method finally (line 28) | finally(e){return new l((t,n)=>{let r,i;return this.then(t=>{i=!1,r=t,...
method __init (line 28) | __init(){this._resolve=e=>{this._setResult(i.RESOLVED,e)}}
method __init2 (line 28) | __init2(){this._reject=e=>{this._setResult(i.REJECTED,e)}}
method __init3 (line 28) | __init3(){this._setResult=(e,t)=>{if(this._state===i.PENDING){if((0,s....
method __init4 (line 28) | __init4(){this._executeHandlers=()=>{if(this._state===i.PENDING)return...
method constructor (line 28) | constructor(e){if(!e.head&&e.adoptedStyleSheets&&"undefined"!=typeof C...
method mount (line 28) | mount(e){let t=this.sheet,n=0,r=0;for(let i=0;i<e.length;i++){let s=e[...
function y (line 1) | function y(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t...
method constructor (line 10) | constructor(e,t,n,r,i){this.options=e,this.attrs=t,this.tooltip=n,this...
method setSelected (line 10) | setSelected(e,t){return e==this.selected||e>=this.options.length?this:...
method build (line 10) | static build(e,t,n,r,i){let s=function(e,t){let n=[],r=0;for(let i of ...
method map (line 10) | map(e){return new y(this.options,this.attrs,Object.assign(Object.assig...
method constructor (line 10) | constructor(e,t,n,r){this._tree=e,this.from=t,this.index=n,this._paren...
method type (line 10) | get type(){return this._tree.type}
method name (line 10) | get name(){return this._tree.type.name}
method to (line 10) | get to(){return this.from+this._tree.length}
method nextChild (line 10) | nextChild(e,t,n,i,s=0){for(let o=this;;){for(let{children:a,positions:...
method firstChild (line 10) | get firstChild(){return this.nextChild(0,1,0,4)}
method lastChild (line 10) | get lastChild(){return this.nextChild(this._tree.children.length-1,-1,...
method childAfter (line 10) | childAfter(e){return this.nextChild(0,1,e,2)}
method childBefore (line 10) | childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e...
method enter (line 10) | enter(e,t,n=0){let i;if(!(n&r.IgnoreOverlays)&&(i=this._tree.prop(l.mo...
method nextSignificantParent (line 10) | nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;...
method parent (line 10) | get parent(){return this._parent?this._parent.nextSignificantParent():...
method nextSibling (line 10) | get nextSibling(){return this._parent&&this.index>=0?this._parent.next...
method prevSibling (line 10) | get prevSibling(){return this._parent&&this.index>=0?this._parent.next...
method cursor (line 10) | cursor(e=0){return new _(this,e)}
method tree (line 10) | get tree(){return this._tree}
method toTree (line 10) | toTree(){return this._tree}
method resolve (line 10) | resolve(e,t=0){return x(this,e,t,!1)}
method resolveInner (line 10) | resolveInner(e,t=0){return x(this,e,t,!0)}
method enterUnfinishedNodesBefore (line 10) | enterUnfinishedNodesBefore(e){return b(this,e)}
method getChild (line 10) | getChild(e,t=null,n=null){let r=w(this,e,t,n);return r.length?r[0]:null}
method getChildren (line 10) | getChildren(e,t=null,n=null){return w(this,e,t,n)}
method toString (line 10) | toString(){return this._tree.toString()}
method node (line 10) | get node(){return this}
method matchContext (line 10) | matchContext(e){return k(this,e)}
function w (line 1) | function w(e){return y(e)===d}
method constructor (line 10) | constructor(e,t,n){this.active=e,this.id=t,this.open=n}
method start (line 10) | static start(){return new w(C,"cm-ac-"+Math.floor(2e6*Math.random()).t...
method update (line 10) | update(e){let{state:t}=e,n=t.facet(O),r=(n.override||t.languageDataAt(...
method tooltip (line 10) | get tooltip(){return this.open?this.open.tooltip:null}
method attrs (line 10) | get attrs(){return this.open?this.open.attrs:k}
class T (line 1) | class T{constructor(e={}){this._traceId=e.traceId||(0,j.DM)(),this._span...
method constructor (line 1) | constructor(e={}){this._traceId=e.traceId||(0,j.DM)(),this._spanId=e.s...
method spanContext (line 1) | spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFl...
method end (line 1) | end(e){}
method setAttribute (line 1) | setAttribute(e,t){return this}
method setAttributes (line 1) | setAttributes(e){return this}
method setStatus (line 1) | setStatus(e){return this}
method updateName (line 1) | updateName(e){return this}
method isRecording (line 1) | isRecording(){return!1}
method addEvent (line 1) | addEvent(e,t,n){return this}
method addLink (line 1) | addLink(e){return this}
method addLinks (line 1) | addLinks(e){return this}
method recordException (line 1) | recordException(e,t){}
method constructor (line 5) | constructor(e){super(),this.diagnostics=e,this.severity=e.reduce((e,t)...
method toDOM (line 5) | toDOM(e){let t=document.createElement("div");t.className="cm-lint-mark...
method constructor (line 10) | constructor(e,t,n,r,i){super(e,2,t),this.result=n,this.from=r,this.to=i}
method hasResult (line 10) | hasResult(){return!0}
method handleUserEvent (line 10) | handleUserEvent(e,t,n){var r;let i=e.changes.mapPos(this.from),s=e.cha...
method handleChange (line 10) | handleChange(e){return e.changes.touchesRange(this.from,this.to)?new j...
method map (line 10) | map(e){return e.empty?this:new T(this.source,this.explicitPos<0?-1:e.m...
method constructor (line 10) | constructor(e){super(e)}
method nextMatch (line 10) | nextMatch(e,t,n){let r=j(this.spec,e,n,e.doc.length).nextOverlapping()...
method prevMatchInRange (line 10) | prevMatchInRange(e,t,n){for(let r=n;;){let n=Math.max(t,r-1e4-this.spe...
method prevMatch (line 10) | prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchIn...
method getReplacement (line 10) | getReplacement(e){return this.spec.unquote(this.spec.replace)}
method matchAll (line 10) | matchAll(e,t){let n=j(this.spec,e,0,e.doc.length),r=[];for(;!n.next()....
method highlight (line 10) | highlight(e,t,n,r){let i=j(this.spec,e,Math.max(0,t-this.spec.unquoted...
method constructor (line 10) | constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=...
method eq (line 10) | eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.ancho...
method setRange (line 10) | setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOf...
method set (line 10) | set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,th...
function N (line 1) | function N(e){if(!e||0===e.length)return;let t={};return e.forEach(e=>{l...
method constructor (line 10) | constructor(e,t){this.ranges=e,this.mainIndex=t}
method map (line 10) | map(e,t=-1){return e.empty?this:N.create(this.ranges.map(n=>n.map(e,t)...
method eq (line 10) | eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIn...
method main (line 10) | get main(){return this.ranges[this.mainIndex]}
method asSingle (line 10) | asSingle(){return 1==this.ranges.length?this:new N([this.main],0)}
method addRange (line 10) | addRange(e,t=!0){return N.create([e].concat(this.ranges),t?0:this.main...
method replaceRange (line 10) | replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]...
method toJSON (line 10) | toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIn...
method fromJSON (line 10) | static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e...
method single (line 10) | static single(e,t=e){return new N([N.range(e,t)],0)}
method create (line 10) | static create(e,t=0){if(0==e.length)throw RangeError("A selection need...
method cursor (line 10) | static cursor(e,t=0,n,r){return R.create(e,e,(0==t?0:t<0?4:8)|(null==n...
method range (line 10) | static range(e,t,n){let r=(null!=n?n:33554431)<<5;return t<e?R.create(...
method normalized (line 10) | static normalized(e,t=0){let n=e[t];e.sort((e,t)=>e.from-t.from),t=e.i...
method constructor (line 10) | constructor(e){this.string=e}
method length (line 10) | get length(){return this.string.length}
method chunk (line 10) | chunk(e){return this.string.slice(e)}
method lineChunks (line 10) | get lineChunks(){return!1}
method read (line 10) | read(e,t){return this.string.slice(e,t)}
function I (line 1) | function I(e){return{scope:e[A],isolationScope:e[L]}}
method constructor (line 10) | constructor(e,t){this.query=e,this.panel=t}
method constructor (line 10) | constructor(e,t,n,r,i){this.combine=e,this.compareInput=t,this.compare...
method define (line 10) | static define(e={}){return new I(e.combine||(e=>e),e.compareInput||((e...
method of (line 10) | of(e){return new W([],this,0,e)}
method compute (line 10) | compute(e,t){if(this.isStatic)throw Error("Can't compute a static face...
method computeN (line 10) | computeN(e,t){if(this.isStatic)throw Error("Can't compute a static fac...
method from (line 10) | from(e,t){return t||(t=e=>e),this.compute([e],n=>t(n.field(e)))}
method constructor (line 10) | constructor(){this.parent=null,this.dom=null,this.dirty=2}
method editorView (line 10) | get editorView(){if(!this.parent)throw Error("Accessing view in orphan...
method overrideDOMText (line 10) | get overrideDOMText(){return null}
method posAtStart (line 10) | get posAtStart(){return this.parent?this.parent.posBefore(this):0}
method posAtEnd (line 10) | get posAtEnd(){return this.posAtStart+this.length}
method posBefore (line 10) | posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e...
method posAfter (line 10) | posAfter(e){return this.posBefore(e)+e.length}
method coordsAt (line 10) | coordsAt(e,t){return null}
method sync (line 10) | sync(e){if(2&this.dirty){let t=this.dom,n=null,r;for(let i of this.chi...
method reuseDOM (line 10) | reuseDOM(e){}
method localPosFromDOM (line 10) | localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];els...
method domBoundsAround (line 10) | domBoundsAround(e,t,n=0){let r=-1,i=-1,s=-1,o=-1;for(let a=0,l=n,c=n;a...
method markDirty (line 10) | markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}
method markParentsDirty (line 10) | markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty...
method setParent (line 10) | setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParen...
method setDOM (line 10) | setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}
method rootView (line 10) | get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}
method replaceChildren (line 10) | replaceChildren(e,t,n=L){this.markDirty();for(let n=e;n<t;n++){let e=t...
method ignoreMutation (line 10) | ignoreMutation(e){return!1}
method ignoreEvent (line 10) | ignoreEvent(e){return!1}
method childCursor (line 10) | childCursor(e=this.length){return new W(this.children,e,this.children....
method childPos (line 10) | childPos(e,t=1){return this.childCursor().findPos(e,t)}
method toString (line 10) | toString(){let e=this.constructor.name.replace("View","");return e+(th...
method get (line 10) | static get(e){return e.cmView}
method isEditable (line 10) | get isEditable(){return!0}
method merge (line 10) | merge(e,t,n,r,i,s){return!1}
method become (line 10) | become(e){return!1}
method getSide (line 10) | getSide(){return 0}
method destroy (line 10) | destroy(){this.parent=null}
method constructor (line 10) | constructor(e,t,n,r,i,s,o){this.parser=e,this.predicate=t,this.mounts=...
method constructor (line 10) | constructor(e,t,n,r,i,s,o,a,l){for(let c of(super(),this.nodeSet=e,thi...
method createParse (line 10) | createParse(e,t,n){let r=new L(this,e,t,n);for(let i of this.wrappers)...
method configure (line 10) | configure(e){let t=function e(t){if(!Array.isArray(t))return t;if(0==t...
method getNodeType (line 10) | getNodeType(e){let t=this.nodeTypes[e];if(null==t)throw RangeError(`Un...
method parseInline (line 10) | parseInline(e,t){let n=new er(this,e,t);r:for(let e=t;e<n.end;){let t=...
class M (line 1) | class M{constructor(e={}){this._traceId=e.traceId||(0,j.DM)(),this._span...
method constructor (line 1) | constructor(e={}){this._traceId=e.traceId||(0,j.DM)(),this._spanId=e.s...
method addLink (line 1) | addLink(e){return this}
method addLinks (line 1) | addLinks(e){return this}
method recordException (line 1) | recordException(e,t){}
method spanContext (line 1) | spanContext(){let{_spanId:e,_traceId:t,_sampled:n}=this;return{spanId:...
method setAttribute (line 1) | setAttribute(e,t){return void 0===t?delete this._attributes[e]:this._a...
method setAttributes (line 1) | setAttributes(e){return Object.keys(e).forEach(t=>this.setAttribute(t,...
method updateStartTime (line 1) | updateStartTime(e){this._startTime=(0,O.$k)(e)}
method setStatus (line 1) | setStatus(e){return this._status=e,this}
method updateName (line 1) | updateName(e){return this._name=e,this}
method end (line 1) | end(e){this._endTime||(this._endTime=(0,O.$k)(e),function(e){if(!_.X)r...
method getSpanJSON (line 1) | getSpanJSON(){return(0,E.Jr)({data:this._attributes,description:this._...
method isRecording (line 1) | isRecording(){return!this._endTime&&!!this._sampled}
method addEvent (line 1) | addEvent(e,t,n){_.X&&C.kg.log("[Tracing] Adding an event to span:",e);...
method isStandaloneSpan (line 1) | isStandaloneSpan(){return!!this._isStandaloneSpan}
method _onSpanEnded (line 1) | _onSpanEnded(){let e=(0,b.s3)();if(e&&e.emit("spanEnd",this),!(this._i...
method _convertSpanToTransaction (line 1) | _convertSpanToTransaction(){if(!D((0,O.XU)(this)))return;this._name||(...
function W (line 1) | function W(e){return e&&"number"==typeof e||e instanceof Date||Array.isA...
method constructor (line 10) | constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),thi...
method constructor (line 10) | constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this...
method dynamicSlot (line 10) | dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,i=this...
method constructor (line 10) | constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}
method findPos (line 10) | findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||0==this.i||th...
method constructor (line 10) | constructor(e,t,n,r,i){this.nest=t,this.input=n,this.fragments=r,this....
method advance (line 10) | advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)retu...
method parsedPos (line 10) | get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for...
method stopAt (line 10) | stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);...
method startInner (line 10) | startInner(){let e=new q(this.fragments),t=null,n=null,i=new _(new y(t...
function D (line 1) | function D(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e...
method constructor (line 22) | constructor(e){if(this._options=e,this._integrations={},this._numProce...
method captureException (line 22) | captureException(e,t,n){let r=(0,l.DM)();if((0,l.YO)(e))return u.X&&a....
method captureMessage (line 22) | captureMessage(e,t,n,r){let i={event_id:(0,l.DM)(),...n},s=(0,T.Le)(e)...
method captureEvent (line 22) | captureEvent(e,t,n){let r=(0,l.DM)();if(t&&t.originalException&&(0,l.Y...
method captureSession (line 22) | captureSession(e){"string"!=typeof e.release?u.X&&a.kg.warn("Discarded...
method getDsn (line 22) | getDsn(){return this._dsn}
method getOptions (line 22) | getOptions(){return this._options}
method getSdkMetadata (line 22) | getSdkMetadata(){return this._options._metadata}
method getTransport (line 22) | getTransport(){return this._transport}
method flush (line 22) | flush(e){let t=this._transport;return t?(this.emit("flush"),this._isCl...
method close (line 22) | close(e){return this.flush(e).then(e=>(this.getOptions().enabled=!1,th...
method getEventProcessors (line 22) | getEventProcessors(){return this._eventProcessors}
method addEventProcessor (line 22) | addEventProcessor(e){this._eventProcessors.push(e)}
method init (line 22) | init(){(this._isEnabled()||this._options.integrations.some(({name:e})=...
method getIntegrationByName (line 22) | getIntegrationByName(e){return this._integrations[e]}
method addIntegration (line 22) | addIntegration(e){let t=this._integrations[e.name];(0,d.m7)(this,e,thi...
method sendEvent (line 22) | sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let n=(0,N.Mq)(e,th...
method sendSession (line 22) | sendSession(e){let t=(0,N.Q3)(e,this._dsn,this._options._metadata,this...
method recordDroppedEvent (line 22) | recordDroppedEvent(e,t,n){if(this._options.sendClientReports){let r="n...
method on (line 22) | on(e,t){let n=this._hooks[e]=this._hooks[e]||[];return n.push(t),()=>{...
method emit (line 22) | emit(e,...t){let n=this._hooks[e];n&&n.forEach(e=>e(...t))}
method sendEnvelope (line 22) | sendEnvelope(e){return(this.emit("beforeEnvelope",e),this._isEnabled()...
method _setupIntegrations (line 22) | _setupIntegrations(){let{integrations:e}=this._options;this._integrati...
method _updateSessionFromEvent (line 22) | _updateSessionFromEvent(e,t){let n=!1,r=!1,i=t.exception&&t.exception....
method _isClientDoneProcessing (line 22) | _isClientDoneProcessing(e){return new P.cW(t=>{let n=0,r=setInterval((...
method _isEnabled (line 22) | _isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._tran...
method _prepareEvent (line 22) | _prepareEvent(e,t,n,r=(0,g.aF)()){let i=this.getOptions(),s=Object.key...
method _captureEvent (line 22) | _captureEvent(e,t={},n){return this._processEvent(e,t,n).then(e=>e.eve...
method _processEvent (line 22) | _processEvent(e,t,n){let r=this.getOptions(),{sampleRate:i}=r,s=q(e),o...
method _process (line 23) | _process(e){this._numProcessing++,e.then(e=>(this._numProcessing--,e),...
method _clearOutcomes (line 23) | _clearOutcomes(){let e=this._outcomes;return this._outcomes={},Object....
method _flushOutcomes (line 23) | _flushOutcomes(){u.X&&a.kg.log("Flushing outcomes...");let e=this._cle...
function q (line 1) | function q(e){let t=z();if(t.startInactiveSpan)return t.startInactiveSpa...
method constructor (line 10) | constructor(e,t,n,r){this.field=e,this.line=t,this.from=n,this.to=r}
method constructor (line 10) | constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.l...
method hasNode (line 10) | hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();retu...
method nextFrag (line 10) | nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)thi...
method findMounts (line 10) | findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo...
method constructor (line 10) | constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}
method write (line 10) | write(e,t,n,r=0){return this.content.push(e,t,n,4+4*r),this}
method writeElements (line 10) | writeElements(e,t=0){for(let n of e)n.writeTo(this,t);return this}
method finish (line 10) | finish(e,t){return s.mp.build({buffer:this.content,nodeSet:this.nodeSe...
function Z (line 2) | function Z(e,t){let n=z();return n.withActiveSpan?n.withActiveSpan(e,t):...
method constructor (line 10) | constructor(e,t,n){this.field=e,this.from=t,this.to=n}
method map (line 10) | map(e){let t=e.mapPos(this.from,-1,r.gc.TrackDel),n=e.mapPos(this.to,1...
method constructor (line 10) | constructor(e,t,n,r,i){this.id=e,this.createF=t,this.updateF=n,this.co...
method define (line 10) | static define(e){let t=new Z(L++,e.create,e.update,e.compare||((e,t)=>...
method create (line 10) | create(e){let t=e.facet(q).find(e=>e.field==this);return((null==t?void...
method slot (line 10) | slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(...
method init (line 10) | init(e){return[this,q.of({field:this,create:e})]}
method extension (line 10) | get extension(){return this}
method constructor (line 10) | constructor(e,t,n,r=V){this.type=e,this.from=t,this.to=n,this.children=r}
method writeTo (line 10) | writeTo(e,t){let n=e.content.length;e.writeElements(this.children,t),e...
method toTree (line 10) | toTree(e){return new q(e).writeElements(this.children,-this.from).fini...
function z (line 2) | function z(){let e=(0,v.c)();return(0,x.G)(e)}
method constructor (line 10) | constructor(e,t){this.lines=e,this.fieldPositions=t}
method instantiate (line 10) | instantiate(e,t){let n=[],r=[t],i=e.doc.lineAt(t),o=/^\s*/.exec(i.text...
method parse (line 10) | static parse(e){let t=[],n=[],r=[],i;for(let s of e.split(/\r\n?|\n/))...
method constructor (line 10) | constructor(e,t){this.tree=e,this.from=t}
method to (line 10) | get to(){return this.from+this.tree.length}
method type (line 10) | get type(){return this.tree.type.id}
method children (line 10) | get children(){return V}
method writeTo (line 10) | writeTo(e,t){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,t...
method toTree (line 10) | toTree(){return this.tree}
function X (line 2) | function X(e,t,n){let r=(0,b.s3)(),i=r&&r.getOptions()||{},{name:s="",at...
function G (line 2) | function G(e){let t;let n=e[0],r=1;for(;r<e.length;){let i=e[r],s=e[r+1]...
method constructor (line 10) | constructor(e,t,n,r){this.type=e,this.from=t,this.to=n,this.side=r}
method firstHiddenTime (line 2) | get firstHiddenTime(){return ea}
function eD (line 2) | function eD(e,t=!1){return eB("cls",e,eZ,i,t)}
function eV (line 2) | function eV(e,t){return eY(e,t),eW[e]||(function(e){let t={};"event"===e...
function eq (line 2) | function eq(e,t){let n=eM[e];if(n&&n.length)for(let r of n)try{r(t)}catc...
function eZ (line 5) | function eZ(){return eg(e=>{eq("cls",{metric:e}),i=e},{reportAllChanges:...
function ez (line 5) | function ez(){return ev(e=>{eq("fid",{metric:e}),s=e})}
function eX (line 5) | function eX(){return eN(e=>{eq("lcp",{metric:e}),o=e},{reportAllChanges:...
function eU (line 5) | function eU(){return eI(e=>{eq("ttfb",{metric:e}),a=e})}
method constructor (line 10) | constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}
method join (line 10) | join(e){return new eU(Math.min(this.fromA,e.fromA),Math.max(this.toA,e...
method addToSet (line 10) | addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fr...
method extendWithRanges (line 10) | static extendWithRanges(e,t){if(0==t.length)return e;let n=[];for(let ...
function eF (line 5) | function eF(){return eE(e=>{eq("inp",{metric:e}),l=e})}
method constructor (line 10) | constructor(e,t,n){for(let r of(this.view=e,this.state=t,this.transact...
method create (line 10) | static create(e,t,n){return new eF(e,t,n)}
method viewportChanged (line 10) | get viewportChanged(){return(4&this.flags)>0}
method heightChanged (line 10) | get heightChanged(){return(2&this.flags)>0}
method geometryChanged (line 10) | get geometryChanged(){return this.docChanged||(10&this.flags)>0}
method focusChanged (line 10) | get focusChanged(){return(1&this.flags)>0}
method docChanged (line 10) | get docChanged(){return!this.changes.empty}
method selectionSet (line 10) | get selectionSet(){return this.transactions.some(e=>e.selection)}
method empty (line 10) | get empty(){return 0==this.flags&&0==this.transactions.length}
function eB (line 5) | function eB(e,t,n,r,i=!1){let s;return eY(e,t),eW[e]||(s=n(),eW[e]=!0),r...
function eY (line 5) | function eY(e,t){eM[e]=eM[e]||[],eM[e].push(t)}
function eG (line 5) | function eG(e,t,n){return()=>{n&&n();let r=eM[e];if(!r)return;let i=r.in...
function eH (line 5) | function eH(e){return"number"==typeof e&&isFinite(e)}
function eJ (line 5) | function eJ(e,t,n,{...r}){let i=(0,O.XU)(e).start_timestamp;return i&&i>...
function eK (line 5) | function eK(e){let t;let n=(0,b.s3)();if(!n)return;let{name:r,transactio...
function e0 (line 5) | function e0(){return Y.m&&Y.m.addEventListener&&Y.m.performance}
function e1 (line 5) | function e1(e){return e/1e3}
function e3 (line 5) | function e3(e,t,n,r,i,s){let o=s?t[s]:t[`${n}End`],a=t[`${n}Start`];a&&o...
function e4 (line 5) | function e4(e,t,n,r){let i=t[n];null!=i&&i<2147483647&&(e[r]=i)}
function tn (line 5) | function tn(e,t={}){let n;let r=new Map,i=!1,s="externalFinish",o=!t.dis...
function to (line 5) | function to(){let e=(0,O.HN)(),t=e&&(0,O.Gx)(e);if(t){let e="internal_er...
function tb (line 5) | function tb(e){let{url:t}=(0,O.XU)(e).data||{};if(!t||"string"!=typeof t...
function tx (line 5) | function tx(e=0){return((P.Z1||performance.timeOrigin)+e)/1e3}
function ty (line 5) | function ty(e){try{return new URL(e,tu.m9.location.origin).href}catch(e)...
function i (line 5) | function i(){r||(r=!0,t&&function(e,t,n){B.X&&C.kg.log(`Sending CLS span...
method parse (line 6) | static parse(e,t){let n,s,o,a,l,c,u;if(n=/^([0-9a-f]{16})(?:@(\d+)|~(\...
method parseCompare (line 6) | static parseCompare(e){let t=e.split("...");if(2!==t.length)return nul...
method toNotebookURL (line 6) | toNotebookURL(){return"".concat("https://observablehq.com","/").concat...
method toModuleURL (line 6) | toModuleURL(e){return"".concat("https://api.observablehq.com","/").con...
method toString (line 6) | toString(){return"".concat(void 0!==this.slug?"@".concat(this.login,"/...
method constructor (line 6) | constructor({id:e,login:t,slug:n,version:r,tilde:i,versionAlias:s}){vo...
method constructor (line 10) | constructor(){}
method lineAt (line 10) | lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e...
method line (line 10) | line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e...
method replace (line 10) | replace(e,t,n){let r=[];return this.decompose(0,e,r,2),n.length&&n.dec...
method append (line 10) | append(e){return this.replace(this.length,this.length,e)}
method slice (line 10) | slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),o.from(...
method eq (line 10) | eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.line...
method iter (line 10) | iter(e=1){return new l(this,e)}
method iterRange (line 10) | iterRange(e,t=this.length){return new c(this,e,t)}
method iterLines (line 10) | iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.li...
method toString (line 10) | toString(){return this.sliceString(0)}
method toJSON (line 10) | toJSON(){let e=[];return this.flatten(e),e}
method of (line 10) | static of(e){if(0==e.length)throw RangeError("A document must have at ...
function A (line 5) | function A(e,t){let n="pageload"===t.op,r=h?h(t):t,i=r.attributes||{};t....
method constructor (line 10) | constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}
method before (line 10) | static before(e,t){return new A(e.parentNode,S(e),t)}
method after (line 10) | static after(e,t){return new A(e.parentNode,S(e)+1,t)}
method afterAllSetup (line 5) | afterAllSetup(e){let n,r;let s=tu.m9.location&&tu.m9.location.href;e.on(...
function tS (line 5) | function tS(e,t,n){e.emit("startPageLoadSpan",t,n),(0,b.nZ)().setTransac...
function tC (line 5) | function tC(e,t){(0,b.aF)().setPropagationContext((0,tl.Q)()),(0,b.nZ)()...
function t_ (line 5) | function t_(e){let t=(0,U.qT)(`meta[name=${e}]`);return t?t.getAttribute...
function tT (line 5) | function tT(e){try{return new URL(e,"http://some-random-base.com/").path...
function tA (line 5) | function tA(...e){let t="",n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let ...
function tL (line 5) | function tL(e){let t=0;for(;t<e.length&&""===e[t];t++);let n=e.length-1;...
method processEvent (line 5) | processEvent(e){let t=e;return e.exception&&Array.isArray(e.exception.va...
method afterAllSetup (line 5) | afterAllSetup(e){var i;r&&(i=e,tu.m9.document.getElementById("__NEXT_DAT...
function f (line 5) | function f(e){return e&&("object"==typeof e||"function"==typeof e)&&"fun...
method update (line 5) | update(e){let{state:t,startState:n,docChanged:r,changes:i}=e,s=t.field...
method buildDeco (line 5) | buildDeco(e,t,n){return r.p.set(e.filter(e=>e.end>e.start&&e.end<=n).m...
method constructor (line 5) | constructor(){this.decorations=r.p.none}
method constructor (line 10) | constructor(e,t){super(e,t),this.parser=t}
method define (line 10) | static define(e){let t=u(e.languageData);return new f(t,e.parser.confi...
method configure (line 10) | configure(e){return new f(this.data,this.parser.configure(e))}
method allowsNesting (line 10) | get allowsNesting(){return this.parser.hasWrappers()}
method constructor (line 10) | constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=l...
method chunkEnd (line 10) | chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}
method next (line 10) | next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=...
method constructor (line 10) | constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.clas...
method startSpan (line 10) | startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),th...
method flush (line 10) | flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}
method highlightRange (line 10) | highlightRange(e,t,n,i,s){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)retu...
method constructor (line 10) | constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this...
method reduce (line 10) | reduce(e){let t=e>>19;0==t?(this.stack==this.start.stack&&(this.stack=...
function r (line 5) | function r(e,t,n,r){return!1}
method toJSON (line 6) | toJSON(){return{status:this.status,url:this.url,errors:this.errors||nu...
method constructor (line 6) | constructor(e,t,n){super("HTTP status ".concat(e).concat(t?" for ".con...
method constructor (line 28) | constructor(e,t=s){if(super(),Object.defineProperties(this,{_intern:{v...
method get (line 28) | get(e){return super.get(i(this,e))}
method has (line 28) | has(e){return super.has(i(this,e))}
method set (line 28) | set(e,t){return super.set(function({_intern:e,_key:t},n){let r=t(n);re...
method delete (line 28) | delete(e){return super.delete(function({_intern:e,_key:t},n){let r=t(n...
function m (line 5) | function m(e,t,n,r,i,s,o){let a=null==e?void 0:e.src;e&&e["data-loaded-s...
method constructor (line 10) | constructor(e,t,n,r,i){if(this.type=e,this.children=t,this.positions=n...
method toString (line 10) | toString(){let e=this.prop(l.mounted);if(e&&!e.overlay)return e.tree.t...
method cursor (line 10) | cursor(e=0){return new _(this.topNode,e)}
method cursorAt (line 10) | cursorAt(e,t=0,n=0){let r=new _(f.get(this)||this.topNode);return r.mo...
method topNode (line 10) | get topNode(){return new y(this,0,0,null)}
method resolve (line 10) | resolve(e,t=0){let n=x(f.get(this)||this.topNode,e,t,!1);return f.set(...
method resolveInner (line 10) | resolveInner(e,t=0){let n=x(p.get(this)||this.topNode,e,t,!0);return p...
method iterate (line 10) | iterate(e){let{enter:t,leave:n,from:i=0,to:s=this.length}=e;for(let o=...
method prop (line 10) | prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type....
method propValues (line 10) | get propValues(){let e=[];if(this.props)for(let t in this.props)e.push...
method balance (line 10) | balance(e={}){return this.children.length<=8?this:P(d.none,this.childr...
method build (line 10) | static build(e){return function(e){var t;let{buffer:n,nodeSet:r,maxBuf...
method constructor (line 10) | constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1...
method constructor (line 12) | constructor(e=""){this._input=e,this._edits=[]}
method _bisectLeft (line 12) | _bisectLeft(e){let t=0,n=this._edits.length;for(;t<n;){let r=t+n>>>1;t...
method _bisectRight (line 12) | _bisectRight(e){let t=0,n=this._edits.length;for(;t<n;){let r=t+n>>>1;...
method insertLeft (line 12) | insertLeft(e,t){this.replaceLeft(e,e,t)}
method insertRight (line 12) | insertRight(e,t){this.replaceRight(e,e,t)}
method delete (line 12) | delete(e,t){this.replaceRight(e,t,"")}
method replaceLeft (line 12) | replaceLeft(e,t,n){this._edits.splice(this._bisectLeft(e),0,{start:e,e...
method replaceRight (line 12) | replaceRight(e,t,n){this._edits.splice(this._bisectRight(e),0,{start:e...
method translate (line 12) | translate(e){var t;let n=0,r={line:1,column:0},i={line:1,column:0};for...
method toString (line 12) | toString(){let e="",t=0;for(let{start:n,end:r,value:i}of this._edits)n...
function g (line 5) | function g(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}
method setState (line 6) | setState(e,t){if(this._isSettingState)throw this._isSettingState=!1,Er...
method _cleanup (line 6) | _cleanup(){b("client ?",{in:"_cleanup"}),this._saveFocusId=null,this._...
method close (line 6) | close(){"closed"!==this._state&&"aborted"!==this._state&&(this._cleanu...
method abort (line 6) | abort(e){e&&console.error(e),"aborted"!==this._state&&(this._cleanup()...
method _send (line 6) | _send(e){if(b("client ↑",e),!this._socket)throw Error("No socket at th...
method _handleReverts (line 6) | _handleReverts(e){let t=e.filter(e=>"revert"===e.type);return t.length...
method _save (line 6) | _save(){if("live"===this.clientRole)return;if("edit"!==this.clientRole...
method _saveChanges (line 6) | _saveChanges(){let{model:e,editorStates:t}=this._notebookState,n=e.eve...
method _saveFiles (line 6) | _saveFiles(){var e,t;let{files:n}=this._notebookState;if(n!==this._las...
method _saveChats (line 6) | _saveChats(){let{chatMessages:e}=this._notebookState;if(e===this._last...
method _saveComments (line 6) | _saveComments(){let{comments:e}=this._notebookState;if(e===this._lastS...
method _saveNewFocus (line 6) | _saveNewFocus(){let{saveVersion:e,saveSubversion:t,editorStates:n,focu...
method _getStash (line 6) | _getStash(){let e=h.X.getItem("notebook-next-".concat(this.id));if(!e)...
method _clearStash (line 6) | _clearStash(){h.X.removeItem("notebook-next-".concat(this.id))}
method constructor (line 6) | constructor(e,t,n){this._dispatch=e,this.clientRole=t,this.id=n,this._...
method constructor (line 10) | constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[]...
method match (line 10) | match(e){if(0==this.pattern.length)return[0];if(e.length<this.pattern....
method result (line 10) | result(e,t,n){let i=[e-n.length],s=1;for(let e of t){let t=e+(this.ast...
method constructor (line 10) | constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,th...
method syncTo (line 10) | syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,...
method chunk (line 10) | chunk(e){return this.syncTo(e),this.string}
method lineChunks (line 10) | get lineChunks(){return!0}
method read (line 10) | read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this....
method constructor (line 10) | constructor(e,t){this.buffer=e,this.index=t}
method id (line 10) | get id(){return this.buffer[this.index-4]}
method start (line 10) | get start(){return this.buffer[this.index-3]}
method end (line 10) | get end(){return this.buffer[this.index-2]}
method size (line 10) | get size(){return this.buffer[this.index-1]}
method pos (line 10) | get pos(){return this.index}
method next (line 10) | next(){this.index-=4}
method fork (line 10) | fork(){return new g(this.buffer,this.index)}
function v (line 5) | function v(e){let{isAppRouter:t,imgAttributes:n}=e,r={as:"image",imageSr...
method constructor (line 10) | constructor(e,t,n=[],r,i,s,o,a){this.parser=e,this.state=t,this.fragme...
method create (line 10) | static create(e,t,n){return new v(e,t,[],i.mp.empty,0,n,[],null)}
method startParse (line 10) | startParse(){return this.parser.startParse(new g(this.state.doc),this....
method work (line 10) | work(e,t){return(null!=t&&t>=this.state.doc.length&&(t=void 0),this.tr...
method takeTree (line 10) | takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&...
method withContext (line 10) | withContext(e){let t=O;O=this;try{return e()}finally{O=t}}
method withoutTempSkipped (line 10) | withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=b(e,t.from...
method changes (line 10) | changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:a}=th...
method updateViewport (line 10) | updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.t...
method reset (line 10) | reset(){this.parse&&(this.takeTree(),this.parse=null)}
method skipUntilInView (line 10) | skipUntilInView(e,t){this.skipped.push({from:e,to:t})}
method getSkippingParser (line 10) | static getSkippingParser(e){return new class extends i._b{createParse(...
method isDone (line 10) | isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;ret...
method get (line 10) | static get(){return O}
method constructor (line 10) | constructor(e,t){this.data=e,this.id=t}
method token (line 10) | token(e,t){(function(e,t,n,r){let i=0,s=1<<r,{parser:o}=n.p,{dialect:a...
function v (line 5) | function v(e,t,n,r,i,s){if(s||(0,a.isLocalURL)(t)){if(!r.bypassPrefetche...
method constructor (line 10) | constructor(e,t,n=[],r,i,s,o,a){this.parser=e,this.state=t,this.fragme...
method create (line 10) | static create(e,t,n){return new v(e,t,[],i.mp.empty,0,n,[],null)}
method startParse (line 10) | startParse(){return this.parser.startParse(new g(this.state.doc),this....
method work (line 10) | work(e,t){return(null!=t&&t>=this.state.doc.length&&(t=void 0),this.tr...
method takeTree (line 10) | takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&...
method withContext (line 10) | withContext(e){let t=O;O=this;try{return e()}finally{O=t}}
method withoutTempSkipped (line 10) | withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=b(e,t.from...
method changes (line 10) | changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:a}=th...
method updateViewport (line 10) | updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.t...
method reset (line 10) | reset(){this.parse&&(this.takeTree(),this.parse=null)}
method skipUntilInView (line 10) | skipUntilInView(e,t){this.skipped.push({from:e,to:t})}
method getSkippingParser (line 10) | static getSkippingParser(e){return new class extends i._b{createParse(...
method isDone (line 10) | isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;ret...
method get (line 10) | static get(){return O}
method constructor (line 10) | constructor(e,t){this.data=e,this.id=t}
method token (line 10) | token(e,t){(function(e,t,n,r){let i=0,s=1<<r,{parser:o}=n.p,{dialect:a...
function b (line 5) | function b(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}
method constructor (line 10) | constructor(e,t){let n;this.view=e,this.stateField=t,this.info=null,th...
method mount (line 10) | mount(){this.updateSel()}
method update (line 10) | update(e){e.state.field(this.stateField)!=e.startState.field(this.stat...
method positioned (line 10) | positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}
method updateSel (line 10) | updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((...
method addInfoPane (line 10) | addInfoPane(e){let t=this.info=document.createElement("div");t.classNa...
method updateSelectedOption (line 10) | updateSelectedOption(e){var t,n;let r,i,s=null;for(let t=this.list.fir...
method measureInfo (line 10) | measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!...
method positionInfo (line 10) | positionInfo(e){this.info&&(this.info.style.top=(e?e.top:-1e6)+"px",e&...
method createListBox (line 10) | createListBox(e,t,n){let r=document.createElement("ul");r.id=t,r.setAt...
method constructor (line 10) | constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.f...
method onClick (line 5) | onClick(e){P||"function"!=typeof Q||Q(e),P&&r.props&&"function"==typeof ...
method onMouseEnter (line 5) | onMouseEnter(e){P||"function"!=typeof j||j(e),P&&r.props&&"function"==ty...
function l (line 5) | function l(e){let{rootRef:t,rootMargin:n,disabled:l}=e,c=l||!s,[u,d]=(0,...
method constructor (line 5) | constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}
method init (line 5) | static init(e,t,n){let r=e,s=n.facet(x).markerFilter;s&&(r=s(r));let o...
method constructor (line 10) | constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.valu...
method nextInner (line 10) | nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.len...
method next (line 10) | next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.lengt...
method constructor (line 10) | constructor(e={}){this.id=o++,this.perNode=!!e.perNode,this.deserializ...
method add (line 10) | add(e){if(this.perNode)throw RangeError("Can't add per-node props to n...
method constructor (line 10) | constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parser...
method constructor (line 14) | constructor(e,...t){super(Object.assign({ecmaVersion:13},e),...t)}
method enterScope (line 14) | enterScope(e){return 2&e&&++this.O_function,super.enterScope(e)}
method exitScope (line 14) | exitScope(){return 2&this.currentScope().flags&&--this.O_function,supe...
method parseForIn (line 14) | parseForIn(e,t){return 1===this.O_function&&e.await&&(this.O_async=!0)...
method parseAwait (line 14) | parseAwait(){return 1===this.O_function&&(this.O_async=!0),super.parse...
method parseYield (line 14) | parseYield(e){return 1===this.O_function&&(this.O_generator=!0),super....
method parseImport (line 14) | parseImport(e){return this.next(),e.specifiers=this.parseImportSpecifi...
method parseImportSpecifiers (line 14) | parseImportSpecifiers(){let e=[],t=new Set,n=!0;for(this.expect(r.cz.b...
method parseExprAtom (line 14) | parseExprAtom(e){return this.parseMaybeKeywordExpression("viewof","Vie...
method startCell (line 14) | startCell(){this.O_function=0,this.O_async=!1,this.O_generator=!1,this...
method finishCell (line 14) | finishCell(e,t,n){return n&&this.checkLocal(n),e.id=n,e.body=t,e.async...
method parseCell (line 14) | parseCell(e,t){let n=new l({},this.input,this.start),i=n.getToken(),s=...
method parseTopLevel (line 14) | parseTopLevel(e){return this.parseCell(e,!0)}
method toAssignable (line 14) | toAssignable(e,t,n){return"MutableExpression"===e.type?e:super.toAssig...
method checkLocal (line 14) | checkLocal(e){let t=e.id||e;(i.Z.has(t.name)||"arguments"===t.name)&&t...
method checkUnreserved (line 14) | checkUnreserved(e){return("viewof"===e.name||"mutable"===e.name)&&this...
method checkLValSimple (line 14) | checkLValSimple(e,t,n){return super.checkLValSimple("MutableExpression...
method unexpected (line 14) | unexpected(e){this.raise(null!=e?e:this.start,this.type===r.cz.eof?"Un...
method parseMaybeKeywordExpression (line 14) | parseMaybeKeywordExpression(e,t){if(this.isContextual(e)){let e=this.s...
method constructor (line 28) | constructor(e){l.prototype.__init.call(this),l.prototype.__init2.call(...
method then (line 28) | then(e,t){return new l((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(...
method catch (line 28) | catch(e){return this.then(e=>e,e)}
method finally (line 28) | finally(e){return new l((t,n)=>{let r,i;return this.then(t=>{i=!1,r=t,...
method __init (line 28) | __init(){this._resolve=e=>{this._setResult(i.RESOLVED,e)}}
method __init2 (line 28) | __init2(){this._reject=e=>{this._setResult(i.REJECTED,e)}}
method __init3 (line 28) | __init3(){this._setResult=(e,t)=>{if(this._state===i.PENDING){if((0,s....
method __init4 (line 28) | __init4(){this._executeHandlers=()=>{if(this._state===i.PENDING)return...
method constructor (line 28) | constructor(e){if(!e.head&&e.adoptedStyleSheets&&"undefined"!=typeof C...
method mount (line 28) | mount(e){let t=this.sheet,n=0,r=0;for(let i=0;i<e.length;i++){let s=e[...
function s (line 5) | function s(e){return void 0!==e.default}
method constructor (line 10) | constructor(e,t=function(e){let t=-1;for(let n of e)t+=n.length+1;retu...
method lines (line 10) | get lines(){return this.text.length}
method children (line 10) | get children(){return null}
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.text[i],o=r+s.length;i...
method decompose (line 10) | decompose(e,t,n,r){let i=e<=0&&t>=this.length?this:new s(a(this.text,[...
method replace (line 10) | replace(e,t,n){if(!(n instanceof s))return super.replace(e,t,n);let r=...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<=t&&s<t...
method flatten (line 10) | flatten(e){for(let t of this.text)e.push(t)}
method scanIdentical (line 10) | scanIdentical(){return 0}
method split (line 10) | static split(e,t){let n=[],r=-1;for(let i of e)n.push(i),r+=i.length+1...
method constructor (line 10) | constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=i++}
method define (line 10) | static define(e){if(null==e?void 0:e.base)throw Error("Can not derive ...
method defineModifier (line 10) | static defineModifier(){let e=new a;return t=>t.modified.indexOf(e)>-1...
function o (line 5) | function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?...
method constructor (line 5) | constructor(e,t,n){this.origin=e,this.changes=t,this.effects=n}
method fetch (line 6) | fetch(e,t){return t||(t={}),fetch(new URL("?".concat(new URLSearchPara...
method uploadFile (line 6) | async uploadFile(e){let{file:t,name:n="file"}=e,r=new FormData;return ...
method postMessage (line 6) | async postMessage(e){return(await this.fetch("chat.postMessage",{metho...
method send (line 6) | async send(e){let t=[],n=[];for(let r of e)if("text"===r.type){let{tex...
method constructor (line 6) | constructor({address:e,token:t,userName:n,notebookTitle:r,scheduled:i}...
method constructor (line 10) | constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortL...
method tokenBefore (line 10) | tokenBefore(e){let t=(0,s.qz)(this.state).resolveInner(this.pos,-1);fo...
method matchBefore (line 10) | matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from...
method aborted (line 10) | get aborted(){return null==this.abortListeners}
method addEventListener (line 10) | addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListe...
method constructor (line 10) | constructor(e,t){for(let n of(super(),this.children=e,this.length=t,th...
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.children[i],o=r+s.leng...
method decompose (line 10) | decompose(e,t,n,r){for(let i=0,s=0;s<=t&&i<this.children.length;i++){l...
method replace (line 10) | replace(e,t,n){if(n.lines<this.lines)for(let r=0,i=0;r<this.children.l...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<this.ch...
method flatten (line 10) | flatten(e){for(let t of this.children)t.flatten(e)}
method scanIdentical (line 10) | scanIdentical(e,t){if(!(e instanceof o))return 0;let n=0,[r,i,s,a]=t>0...
method from (line 10) | static from(e,t=e.reduce((e,t)=>e+t.length+1,-1)){let n=0;for(let t of...
method constructor (line 28) | constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(e){retur...
method getRules (line 28) | getRules(){return this.rules.join("\n")}
method newName (line 28) | static newName(){let e=s[r]||1;return s[r]=e+1,"ͼ"+e.toString(36)}
method mount (line 28) | static mount(e,t){(e[i]||new l(e)).mount(Array.isArray(t)?t:[t])}
function a (line 5) | function a(e,t){var n;let a,l,c,{src:u,sizes:d,unoptimized:h=!1,priority...
method constructor (line 5) | constructor(e,t,n,r,i){this.version=e,this.unconfirmedUpdates=t,this.u...
method constructor (line 5) | constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}
method constructor (line 10) | constructor(e,t,n=0,r=e.length,i,s){this.test=s,this.value={from:0,to:...
method peek (line 10) | peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=thi...
method next (line 10) | next(){for(;this.matches.length;)this.matches.pop();return this.nextOv...
method nextOverlapping (line 10) | nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0...
method match (line 10) | match(e,t){let n=null;for(let r=0;r<this.matches.length;r+=2){let i=th...
method constructor (line 10) | constructor(e,t){this.from=e,this.to=t}
method constructor (line 10) | constructor(){this.instances=[],this.id=o++}
method get (line 10) | static get(e,t){if(!t.length)return e;let n=t[0].instances.find(n=>{va...
method constructor (line 10) | constructor(e,t,n,r,i,o,a){this.type=e,this.value=t,this.from=n,this.h...
method create (line 10) | static create(e,t,n,r,i){return new a(e,t,n,r+(r<<8)+e+(t<<4)|0,i,[],[])}
method addChild (line 10) | addChild(e,t){e.prop(s.md.contextHash)!=this.hash&&(e=new s.mp(e.type,...
method toTree (line 10) | toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math...
method constructor (line 23) | constructor(e,t){let n,r;n=e||new o.s,r=t||new o.s,this._stack=[{scope...
method withScope (line 23) | withScope(e){let t;let n=this._pushScope();try{t=e(n)}catch(e){throw t...
method getClient (line 23) | getClient(){return this.getStackTop().client}
method getScope (line 23) | getScope(){return this.getStackTop().scope}
method getIsolationScope (line 23) | getIsolationScope(){return this._isolationScope}
method getStackTop (line 23) | getStackTop(){return this._stack[this._stack.length-1]}
method _pushScope (line 23) | _pushScope(){let e=this.getScope().clone();return this._stack.push({cl...
method _popScope (line 23) | _popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}
function n (line 5) | function n(e){let{widthInt:t,heightInt:n,blurWidth:r,blurHeight:i,blurDa...
function a (line 5) | function a(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:o.default,...
method constructor (line 5) | constructor(e,t,n,r,i){this.version=e,this.unconfirmedUpdates=t,this.u...
method constructor (line 5) | constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}
method constructor (line 10) | constructor(e,t,n=0,r=e.length,i,s){this.test=s,this.value={from:0,to:...
method peek (line 10) | peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=thi...
method next (line 10) | next(){for(;this.matches.length;)this.matches.pop();return this.nextOv...
method nextOverlapping (line 10) | nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0...
method match (line 10) | match(e,t){let n=null;for(let r=0;r<this.matches.length;r+=2){let i=th...
method constructor (line 10) | constructor(e,t){this.from=e,this.to=t}
method constructor (line 10) | constructor(){this.instances=[],this.id=o++}
method get (line 10) | static get(e,t){if(!t.length)return e;let n=t[0].instances.find(n=>{va...
method constructor (line 10) | constructor(e,t,n,r,i,o,a){this.type=e,this.value=t,this.from=n,this.h...
method create (line 10) | static create(e,t,n,r,i){return new a(e,t,n,r+(r<<8)+e+(t<<4)|0,i,[],[])}
method addChild (line 10) | addChild(e,t){e.prop(s.md.contextHash)!=this.hash&&(e=new s.mp(e.type,...
method toTree (line 10) | toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math...
method constructor (line 23) | constructor(e,t){let n,r;n=e||new o.s,r=t||new o.s,this._stack=[{scope...
method withScope (line 23) | withScope(e){let t;let n=this._pushScope();try{t=e(n)}catch(e){throw t...
method getClient (line 23) | getClient(){return this.getStackTop().client}
method getScope (line 23) | getScope(){return this.getStackTop().scope}
method getIsolationScope (line 23) | getIsolationScope(){return this._isolationScope}
method getStackTop (line 23) | getStackTop(){return this._stack[this._stack.length-1]}
method _pushScope (line 23) | _pushScope(){let e=this.getScope().clone();return this._stack.push({cl...
method _popScope (line 23) | _popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}
function n (line 5) | function n(e){let{config:t,src:n,width:r,quality:i}=e;return t.path+"?ur...
function e (line 5) | function e(e){var t=void 0===e?{}:e,n=t.name,r=void 0===n?"stylesheet":n...
function c (line 5) | function c(e,t){if(!e)throw Error("StyleSheet: "+t+".")}
method constructor (line 6) | constructor(e){super(e)}
method constructor (line 10) | constructor(e,t,n){this.value="",this.done=!1,this.cursor=new l(e,t>n?...
method nextInner (line 10) | nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return thi...
method next (line 10) | next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min...
method lineBreak (line 10) | get lineBreak(){return this.cursor.lineBreak&&""!=this.value}
method constructor (line 10) | constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}
method constructor (line 10) | constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth...
method forward (line 10) | forward(){this.basePos>this.pos&&this.forwardInner()}
method forwardInner (line 10) | forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.cou...
method skipSpace (line 10) | skipSpace(e){return f(this.text,e)}
method reset (line 10) | reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.in...
method moveBase (line 10) | moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos...
method moveBaseColumn (line 10) | moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}
method addMarker (line 10) | addMarker(e){this.markers.push(e)}
method countIndent (line 10) | countIndent(e,t=0,n=0){for(let r=t;r<e;r++)n+=9==this.text.charCodeAt(...
method findColumn (line 10) | findColumn(e){let t=0;for(let n=0;t<this.text.length&&n<e;t++)n+=9==th...
method scrub (line 10) | scrub(){if(!this.baseIndent)return this.text;let e="";for(let t=0;t<th...
function h (line 5) | function h(e,t){if(!t)return"jsx-"+e;var n=String(t),r=e+n;return d[r]||...
method constructor (line 6) | constructor(e){super(e),h.prototype.__init.call(this),this.state=d,thi...
method componentDidCatch (line 6) | componentDidCatch(e,t){let{componentStack:n}=t,r=null==n?void 0:n,{bef...
method componentDidMount (line 6) | componentDidMount(){let{onMount:e}=this.props;e&&e()}
method componentWillUnmount (line 6) | componentWillUnmount(){let{error:e,componentStack:t,eventId:n}=this.st...
method __init (line 6) | __init(){this.resetErrorBoundary=()=>{let{onReset:e}=this.props,{error...
method render (line 6) | render(){let{fallback:e,children:t}=this.props,n=this.state;if(n.error...
method constructor (line 10) | constructor(e,t){this.from=e,this.text=t}
method to (line 10) | get to(){return this.from+this.text.length}
method get (line 10) | static get(e,t,n){let r=d.get(e);if(!r||r.from>=n||r.to<=t){let r=new ...
method constructor (line 10) | constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)t...
method extend (line 10) | extend(...e){let t=[];for(let n of this.types){let r=null;for(let t of...
method constructor (line 10) | constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.ha...
method constructor (line 14) | constructor(e,...t){super(Object.assign({ecmaVersion:12},e),...t)}
method enterScope (line 14) | enterScope(e){return 2&e&&++this.O_function,super.enterScope(e)}
method exitScope (line 14) | exitScope(){return 2&this.currentScope().flags&&--this.O_function,supe...
method parseForIn (line 14) | parseForIn(e,t){return 1===this.O_function&&e.await&&(this.O_async=!0)...
method parseAwait (line 14) | parseAwait(){return 1===this.O_function&&(this.O_async=!0),super.parse...
method parseYield (line 14) | parseYield(e){return 1===this.O_function&&(this.O_generator=!0),super....
method parseTopLevel (line 14) | parseTopLevel(e){return this.O_function=0,this.O_async=!1,this.O_gener...
function f (line 5) | function f(e,t){var n=e+t;return d[n]||(d[n]=t.replace(/__jsx-style-dyna...
method update (line 5) | update(e){let{state:t,startState:n,docChanged:r,changes:i}=e,s=t.field...
method buildDeco (line 5) | buildDeco(e,t,n){return r.p.set(e.filter(e=>e.end>e.start&&e.end<=n).m...
method constructor (line 5) | constructor(){this.decorations=r.p.none}
method constructor (line 10) | constructor(e,t){super(e,t),this.parser=t}
method define (line 10) | static define(e){let t=u(e.languageData);return new f(t,e.parser.confi...
method configure (line 10) | configure(e){return new f(this.data,this.parser.configure(e))}
method allowsNesting (line 10) | get allowsNesting(){return this.parser.hasWrappers()}
method constructor (line 10) | constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=l...
method chunkEnd (line 10) | chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}
method next (line 10) | next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=...
method constructor (line 10) | constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.clas...
method startSpan (line 10) | startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),th...
method flush (line 10) | flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}
method highlightRange (line 10) | highlightRange(e,t,n,i,s){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)retu...
method constructor (line 10) | constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this...
method reduce (line 10) | reduce(e){let t=e>>19;0==t?(this.stack==this.start.stack&&(this.stack=...
function e (line 5) | function e(e){var t=void 0===e?{}:e,n=t.styleSheet,r=void 0===n?null:n,i...
function v (line 5) | function v(e){var t=O||i.useContext(m);return t&&g(function(){return t.a...
method constructor (line 10) | constructor(e,t,n=[],r,i,s,o,a){this.parser=e,this.state=t,this.fragme...
method create (line 10) | static create(e,t,n){return new v(e,t,[],i.mp.empty,0,n,[],null)}
method startParse (line 10) | startParse(){return this.parser.startParse(new g(this.state.doc),this....
method work (line 10) | work(e,t){return(null!=t&&t>=this.state.doc.length&&(t=void 0),this.tr...
method takeTree (line 10) | takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&...
method withContext (line 10) | withContext(e){let t=O;O=this;try{return e()}finally{O=t}}
method withoutTempSkipped (line 10) | withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=b(e,t.from...
method changes (line 10) | changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:a}=th...
method updateViewport (line 10) | updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.t...
method reset (line 10) | reset(){this.parse&&(this.takeTree(),this.parse=null)}
method skipUntilInView (line 10) | skipUntilInView(e,t){this.skipped.push({from:e,to:t})}
method getSkippingParser (line 10) | static getSkippingParser(e){return new class extends i._b{createParse(...
method isDone (line 10) | isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;ret...
method get (line 10) | static get(){return O}
method constructor (line 10) | constructor(e,t){this.data=e,this.id=t}
method token (line 10) | token(e,t){(function(e,t,n,r){let i=0,s=1<<r,{parser:o}=n.p,{dialect:a...
function o (line 5) | function o(e){return"array"===e||"csv"===e||"tsv"===e||"json"===e||"arro...
method constructor (line 5) | constructor(e,t,n){this.origin=e,this.changes=t,this.effects=n}
method fetch (line 6) | fetch(e,t){return t||(t={}),fetch(new URL("?".concat(new URLSearchPara...
method uploadFile (line 6) | async uploadFile(e){let{file:t,name:n="file"}=e,r=new FormData;return ...
method postMessage (line 6) | async postMessage(e){return(await this.fetch("chat.postMessage",{metho...
method send (line 6) | async send(e){let t=[],n=[];for(let r of e)if("text"===r.type){let{tex...
method constructor (line 6) | constructor({address:e,token:t,userName:n,notebookTitle:r,scheduled:i}...
method constructor (line 10) | constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortL...
method tokenBefore (line 10) | tokenBefore(e){let t=(0,s.qz)(this.state).resolveInner(this.pos,-1);fo...
method matchBefore (line 10) | matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from...
method aborted (line 10) | get aborted(){return null==this.abortListeners}
method addEventListener (line 10) | addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListe...
method constructor (line 10) | constructor(e,t){for(let n of(super(),this.children=e,this.length=t,th...
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.children[i],o=r+s.leng...
method decompose (line 10) | decompose(e,t,n,r){for(let i=0,s=0;s<=t&&i<this.children.length;i++){l...
method replace (line 10) | replace(e,t,n){if(n.lines<this.lines)for(let r=0,i=0;r<this.children.l...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<this.ch...
method flatten (line 10) | flatten(e){for(let t of this.children)t.flatten(e)}
method scanIdentical (line 10) | scanIdentical(e,t){if(!(e instanceof o))return 0;let n=0,[r,i,s,a]=t>0...
method from (line 10) | static from(e,t=e.reduce((e,t)=>e+t.length+1,-1)){let n=0;for(let t of...
method constructor (line 28) | constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(e){retur...
method getRules (line 28) | getRules(){return this.rules.join("\n")}
method newName (line 28) | static newName(){let e=s[r]||1;return s[r]=e+1,"ͼ"+e.toString(36)}
method mount (line 28) | static mount(e,t){(e[i]||new l(e)).mount(Array.isArray(t)?t:[t])}
function a (line 5) | function a(e){return"array"===e||"csv"===e||"tsv"===e||"json"===e}
method constructor (line 5) | constructor(e,t,n,r,i){this.version=e,this.unconfirmedUpdates=t,this.u...
method constructor (line 5) | constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}
method constructor (line 10) | constructor(e,t,n=0,r=e.length,i,s){this.test=s,this.value={from:0,to:...
method peek (line 10) | peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=thi...
method next (line 10) | next(){for(;this.matches.length;)this.matches.pop();return this.nextOv...
method nextOverlapping (line 10) | nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0...
method match (line 10) | match(e,t){let n=null;for(let r=0;r<this.matches.length;r+=2){let i=th...
method constructor (line 10) | constructor(e,t){this.from=e,this.to=t}
method constructor (line 10) | constructor(){this.instances=[],this.id=o++}
method get (line 10) | static get(e,t){if(!t.length)return e;let n=t[0].instances.find(n=>{va...
method constructor (line 10) | constructor(e,t,n,r,i,o,a){this.type=e,this.value=t,this.from=n,this.h...
method create (line 10) | static create(e,t,n,r,i){return new a(e,t,n,r+(r<<8)+e+(t<<4)|0,i,[],[])}
method addChild (line 10) | addChild(e,t){e.prop(s.md.contextHash)!=this.hash&&(e=new s.mp(e.type,...
method toTree (line 10) | toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math...
method constructor (line 23) | constructor(e,t){let n,r;n=e||new o.s,r=t||new o.s,this._stack=[{scope...
method withScope (line 23) | withScope(e){let t;let n=this._pushScope();try{t=e(n)}catch(e){throw t...
method getClient (line 23) | getClient(){return this.getStackTop().client}
method getScope (line 23) | getScope(){return this.getStackTop().scope}
method getIsolationScope (line 23) | getIsolationScope(){return this._isolationScope}
method getStackTop (line 23) | getStackTop(){return this._stack[this._stack.length-1]}
method _pushScope (line 23) | _pushScope(){let e=this.getScope().clone();return this._stack.push({cl...
method _popScope (line 23) | _popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}
function i (line 5) | function i(e){return e.reduce((e,t)=>e+t,0)}
method parse (line 6) | static parse(e,t){let n,s,o,a,l,c,u;if(n=/^([0-9a-f]{16})(?:@(\d+)|~(\...
method parseCompare (line 6) | static parseCompare(e){let t=e.split("...");if(2!==t.length)return nul...
method toNotebookURL (line 6) | toNotebookURL(){return"".concat("https://observablehq.com","/").concat...
method toModuleURL (line 6) | toModuleURL(e){return"".concat("https://api.observablehq.com","/").con...
method toString (line 6) | toString(){return"".concat(void 0!==this.slug?"@".concat(this.login,"/...
method constructor (line 6) | constructor({id:e,login:t,slug:n,version:r,tilde:i,versionAlias:s}){vo...
method constructor (line 10) | constructor(){}
method lineAt (line 10) | lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e...
method line (line 10) | line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e...
method replace (line 10) | replace(e,t,n){let r=[];return this.decompose(0,e,r,2),n.length&&n.dec...
method append (line 10) | append(e){return this.replace(this.length,this.length,e)}
method slice (line 10) | slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),o.from(...
method eq (line 10) | eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.line...
method iter (line 10) | iter(e=1){return new l(this,e)}
method iterRange (line 10) | iterRange(e,t=this.length){return new c(this,e,t)}
method iterLines (line 10) | iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.li...
method toString (line 10) | toString(){return this.sliceString(0)}
method toJSON (line 10) | toJSON(){let e=[];return this.flatten(e),e}
method of (line 10) | static of(e){if(0==e.length)throw RangeError("A document must have at ...
function s (line 5) | function s(e){let{sharedEffects:t}=e.startState.facet(l);return new o(e,...
method constructor (line 10) | constructor(e,t=function(e){let t=-1;for(let n of e)t+=n.length+1;retu...
method lines (line 10) | get lines(){return this.text.length}
method children (line 10) | get children(){return null}
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.text[i],o=r+s.length;i...
method decompose (line 10) | decompose(e,t,n,r){let i=e<=0&&t>=this.length?this:new s(a(this.text,[...
method replace (line 10) | replace(e,t,n){if(!(n instanceof s))return super.replace(e,t,n);let r=...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<=t&&s<t...
method flatten (line 10) | flatten(e){for(let t of this.text)e.push(t)}
method scanIdentical (line 10) | scanIdentical(){return 0}
method split (line 10) | static split(e,t){let n=[],r=-1;for(let i of e)n.push(i),r+=i.length+1...
method constructor (line 10) | constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=i++}
method define (line 10) | static define(e){if(null==e?void 0:e.base)throw Error("Can not derive ...
method defineModifier (line 10) | static defineModifier(){let e=new a;return t=>t.modified.indexOf(e)>-1...
class o (line 5) | class o{constructor(e,t,n){this.origin=e,this.changes=t,this.effects=n}}
method constructor (line 5) | constructor(e,t,n){this.origin=e,this.changes=t,this.effects=n}
method fetch (line 6) | fetch(e,t){return t||(t={}),fetch(new URL("?".concat(new URLSearchPara...
method uploadFile (line 6) | async uploadFile(e){let{file:t,name:n="file"}=e,r=new FormData;return ...
method postMessage (line 6) | async postMessage(e){return(await this.fetch("chat.postMessage",{metho...
method send (line 6) | async send(e){let t=[],n=[];for(let r of e)if("text"===r.type){let{tex...
method constructor (line 6) | constructor({address:e,token:t,userName:n,notebookTitle:r,scheduled:i}...
method constructor (line 10) | constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortL...
method tokenBefore (line 10) | tokenBefore(e){let t=(0,s.qz)(this.state).resolveInner(this.pos,-1);fo...
method matchBefore (line 10) | matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from...
method aborted (line 10) | get aborted(){return null==this.abortListeners}
method addEventListener (line 10) | addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListe...
method constructor (line 10) | constructor(e,t){for(let n of(super(),this.children=e,this.length=t,th...
method lineInner (line 10) | lineInner(e,t,n,r){for(let i=0;;i++){let s=this.children[i],o=r+s.leng...
method decompose (line 10) | decompose(e,t,n,r){for(let i=0,s=0;s<=t&&i<this.children.length;i++){l...
method replace (line 10) | replace(e,t,n){if(n.lines<this.lines)for(let r=0,i=0;r<this.children.l...
method sliceString (line 10) | sliceString(e,t=this.length,n="\n"){let r="";for(let i=0,s=0;i<this.ch...
method flatten (line 10) | flatten(e){for(let t of this.children)t.flatten(e)}
method scanIdentical (line 10) | scanIdentical(e,t){if(!(e instanceof o))return 0;let n=0,[r,i,s,a]=t>0...
method from (line 10) | static from(e,t=e.reduce((e,t)=>e+t.length+1,-1)){let n=0;for(let t of...
method constructor (line 28) | constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(e){retur...
method getRules (line 28) | getRules(){return this.rules.join("\n")}
method newName (line 28) | static newName(){let e=s[r]||1;return s[r]=e+1,"ͼ"+e.toString(36)}
method mount (line 28) | static mount(e,t){(e[i]||new l(e)).mount(Array.isArray(t)?t:[t])}
class a (line 5) | class a{constructor(e,t,n,r,i){this.version=e,this.unconfirmedUpdates=t,...
method constructor (line 5) | constructor(e,t,n,r,i){this.version=e,this.unconfirmedUpdates=t,this.u...
method constructor (line 5) | constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}
method constructor (line 10) | constructor(e,t,n=0,r=e.length,i,s){this.test=s,this.value={from:0,to:...
method peek (line 10) | peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=thi...
method next (line 10) | next(){for(;this.matches.length;)this.matches.pop();return this.nextOv...
method nextOverlapping (line 10) | nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0...
method match (line 10) | match(e,t){let n=null;for(let r=0;r<this.matches.length;r+=2){let i=th...
method constructor (line 10) | constructor(e,t){this.from=e,this.to=t}
method constructor (line 10) | constructor(){this.instances=[],this.id=o++}
method get (line 10) | static get(e,t){if(!t.length)return e;let n=t[0].instances.find(n=>{va...
method constructor (line 10) | constructor(e,t,n,r,i,o,a){this.type=e,this.value=t,this.from=n,this.h...
method create (line 10) | static create(e,t,n,r,i){return new a(e,t,n,r+(r<<8)+e+(t<<4)|0,i,[],[])}
method addChild (line 10) | addChild(e,t){e.prop(s.md.contextHash)!=this.hash&&(e=new s.mp(e.type,...
method toTree (line 10) | toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math...
method constructor (line 23) | constructor(e,t){let n,r;n=e||new o.s,r=t||new o.s,this._stack=[{scope...
method withScope (line 23) | withScope(e){let t;let n=this._pushScope();try{t=e(n)}catch(e){throw t...
method getClient (line 23) | getClient(){return this.getStackTop().client}
method getScope (line 23) | getScope(){return this.getStackTop().scope}
method getIsolationScope (line 23) | getIsolationScope(){return this._isolationScope}
method getStackTop (line 23) | getStackTop(){return this._stack[this._stack.length-1]}
method _pushScope (line 23) | _pushScope(){let e=this.getScope().clone();return this._stack.push({cl...
method _popScope (line 23) | _popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}
method combine (line 5) | combine(e){let t=(0,r.BO)(e,{startVersion:0,clientID:"",sharedEffects:nu...
method update (line 5) | update(e,t){let n=t.annotation(c);if(n)return n;let r=s(t);return r.effe...
function d (line 5) | function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0...
method constructor (line 10) | constructor(e,t,n=[]){this.data=e,s.yy.prototype.hasOwnProperty("tree"...
method isActiveAt (line 10) | isActiveAt(e,t,n=-1){return h(e,t,n)==this.data}
method findRegions (line 10) | findRegions(e){let t=e.facet(S);if((null==t?void 0:t.data)==this.data)...
method allowsNesting (line 10) | get allowsNesting(){return!0}
method constructor (line 10) | constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}
method length (line 10) | get length(){return this.to-this.from}
method constructor (line 10) | constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}
method define (line 10) | static define(e){let t=e.props&&e.props.length?Object.create(null):u,n...
method prop (line 10) | prop(e){return this.props[e.id]}
method isTop (line 10) | get isTop(){return(1&this.flags)>0}
method isSkipped (line 10) | get isSkipped(){return(2&this.flags)>0}
method isError (line 10) | get isError(){return(4&this.flags)>0}
method isAnonymous (line 10) | get isAnonymous(){return(8&this.flags)>0}
method is (line 10) | is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(...
method match (line 10) | static match(e){let t=Object.create(null);for(let n in e)for(let r of ...
method constructor (line 10) | constructor(e,t,n,r,i,s,o,a,l,c=0,u){this.p=e,this.stack=t,this.state=...
method toString (line 10) | toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.stat...
method start (line 10) | static start(e,t,n=0){let r=e.parser.context;return new d(e,[],t,n,n,0...
method context (line 10) | get context(){return this.curContext?this.curContext.context:null}
method pushState (line 10) | pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffe...
method reduce (line 10) | reduce(e){let t=e>>19,n=65535&e,{parser:r}=this.p,i=r.dynamicPrecedenc...
method storeNode (line 10) | storeNode(e,t,n,r=4,i=!1){if(0==e&&(!this.stack.length||this.stack[thi...
method shift (line 10) | shift(e,t,n){let r=this.pos;if(131072&e)this.pushState(65535&e,this.po...
method apply (line 10) | apply(e,t,n){65536&e?this.reduce(e):this.shift(e,t,n)}
method useNode (line 10) | useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&...
method split (line 10) | split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reduceP...
method recoverByDelete (line 10) | recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(...
method canShift (line 10) | canShift(e){for(let t=new f(this);;){let n=this.p.parser.stateSlot(t.s...
method recoverByInsert (line 10) | recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.par...
method forceReduce (line 10) | forceReduce(){let e=this.p.parser.stateSlot(this.state,5);if((65536&e)...
method forceAll (line 10) | forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.force...
method deadEnd (line 10) | get deadEnd(){if(3!=this.stack.length)return!1;let{parser:e}=this.p;re...
method restart (line 10) | restart(){this.state=this.stack[0],this.stack.length=0}
method sameState (line 10) | sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length...
method parser (line 10) | get parser(){return this.p.parser}
method dialectEnabled (line 10) | dialectEnabled(e){return this.p.parser.dialect.flags[e]}
method shiftContext (line 10) | shiftContext(e,t){this.curContext&&this.updateContext(this.curContext....
method reduceContext (line 10) | reduceContext(e,t){this.curContext&&this.updateContext(this.curContext...
method emitContext (line 10) | emitContext(){let e=this.buffer.length-1;(e<0||-3!=this.buffer[e])&&th...
method emitLookAhead (line 10) | emitLookAhead(){let e=this.buffer.length-1;(e<0||-4!=this.buffer[e])&&...
method updateContext (line 10) | updateContext(e){if(e!=this.curContext.context){let t=new h(this.curCo...
method setLookAhead (line 10) | setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead...
method close (line 10) | close(){this.curContext&&this.curContext.tracker.strict&&this.emitCont...
function h (line 5) | function h(e,t,n){let i=e.field(u);if(n>i.unconfirmedUpdates.length)thro...
method constructor (line 6) | constructor(e){super(e),h.prototype.__init.call(this),this.state=d,thi...
method componentDidCatch (line 6) | componentDidCatch(e,t){let{componentStack:n}=t,r=null==n?void 0:n,{bef...
method componentDidMount (line 6) | componentDidMount(){let{onMount:e}=this.props;e&&e()}
method componentWillUnmount (line 6) | componentWillUnmount(){let{error:e,componentStack:t,eventId:n}=this.st...
method __init (line 6) | __init(){this.resetErrorBoundary=()=>{let{onReset:e}=this.props,{error...
method render (line 6) | render(){let{fallback:e,children:t}=this.props,n=this.state;if(n.error...
method constructor (line 10) | constructor(e,t){this.from=e,this.text=t}
method to (line 10) | get to(){return this.from+this.text.length}
method get (line 10) | static get(e,t,n){let r=d.get(e);if(!r||r.from>=n||r.to<=t){let r=new ...
method constructor (line 10) | constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)t...
method extend (line 10) | extend(...e){let t=[];for(let n of this.types){let r=null;for(let t of...
method constructor (line 10) | constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.ha...
method constructor (line 14) | constructor(e,...t){super(Object.assign({ecmaVersion:12},e),...t)}
method enterScope (line 14) | enterScope(e){return 2&e&&++this.O_function,super.enterScope(e)}
method exitScope (line 14) | exitScope(){return 2&this.currentScope().flags&&--this.O_function,supe...
method parseForIn (line 14) | parseForIn(e,t){return 1===this.O_function&&e.await&&(this.O_async=!0)...
method parseAwait (line 14) | parseAwait(){return 1===this.O_function&&(this.O_async=!0),super.parse...
method parseYield (line 14) | parseYield(e){return 1===this.O_function&&(this.O_generator=!0),super....
method parseTopLevel (line 14) | parseTopLevel(e){return this.O_function=0,this.O_async=!1,this.O_gener...
function f (line 5) | function f(e,t){let n=e.field(u);if(!t.length)return e.update({annotatio...
method update (line 5) | update(e){let{state:t,startState:n,docChanged:r,changes:i}=e,s=t.field...
method buildDeco (line 5) | buildDeco(e,t,n){return r.p.set(e.filter(e=>e.end>e.start&&e.end<=n).m...
method constructor (line 5) | constructor(){this.decorations=r.p.none}
method constructor (line 10) | constructor(e,t){super(e,t),this.parser=t}
method define (line 10) | static define(e){let t=u(e.languageData);return new f(t,e.parser.confi...
method configure (line 10) | configure(e){return new f(this.data,this.parser.configure(e))}
method allowsNesting (line 10) | get allowsNesting(){return this.parser.hasWrappers()}
method constructor (line 10) | constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=l...
method chunkEnd (line 10) | chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}
method next (line 10) | next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=...
method constructor (line 10) | constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.clas...
method startSpan (line 10) | startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),th...
method flush (line 10) | flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}
method highlightRange (line 10) | highlightRange(e,t,n,i,s){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)retu...
method constructor (line 10) | constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this...
method reduce (line 10) | reduce(e){let t=e>>19;0==t?(this.stack==this.start.stack&&(this.stack=...
function p (line 5) | function p(e,t){let n=e.field(u);if(t!==e.doc.toString())throw Error("Co...
method constructor (line 10) | constructor(e,t,n,r,i,s,o){this.node=e,this.from=t,this.to=n,this.spac...
method blank (line 10) | blank(e=!0){let t=this.spaceBefore;if("Blockquote"==this.node.name)t+=...
method marker (line 10) | marker(e,t){let n="OrderedList"==this.node.name?String(+g(this.item,e)...
method constructor (line 10) | constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e....
method create (line 10) | static create(e,t=e.bufferBase+e.buffer.length){return new p(e,t,t-e.b...
method maybeNext (line 10) | maybeNext(){let e=this.stack.parent;null!=e&&(this.index=this.stack.bu...
method id (line 10) | get id(){return this.buffer[this.index-4]}
method start (line 10) | get start(){return this.buffer[this.index-3]}
method end (line 10) | get end(){return this.buffer[this.index-2]}
method size (line 10) | get size(){return this.buffer[this.index-1]}
method next (line 10) | next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}
method fork (line 10) | fork(){return new p(this.stack,this.pos,this.index)}
function m (line 5) | function m(e,t){let n=e.field(u),i=t.length;if(i>n.unconfirmedCommits.le...
method constructor (line 10) | constructor(e,t,n,r,i){if(this.type=e,this.children=t,this.positions=n...
method toString (line 10) | toString(){let e=this.prop(l.mounted);if(e&&!e.overlay)return e.tree.t...
method cursor (line 10) | cursor(e=0){return new _(this.topNode,e)}
method cursorAt (line 10) | cursorAt(e,t=0,n=0){let r=new _(f.get(this)||this.topNode);return r.mo...
method topNode (line 10) | get topNode(){return new y(this,0,0,null)}
method resolve (line 10) | resolve(e,t=0){let n=x(f.get(this)||this.topNode,e,t,!1);return f.set(...
method resolveInner (line 10) | resolveInner(e,t=0){let n=x(p.get(this)||this.topNode,e,t,!0);return p...
method iterate (line 10) | iterate(e){let{enter:t,leave:n,from:i=0,to:s=this.length}=e;for(let o=...
method prop (line 10) | prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type....
method propValues (line 10) | get propValues(){let e=[];if(this.props)for(let t in this.props)e.push...
method balance (line 10) | balance(e={}){return this.children.length<=8?this:P(d.none,this.childr...
method build (line 10) | static build(e){return function(e){var t;let{buffer:n,nodeSet:r,maxBuf...
method constructor (line 10) | constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1...
method constructor (line 12) | constructor(e=""){this._input=e,this._edits=[]}
method _bisectLeft (line 12) | _bisectLeft(e){let t=0,n=this._edits.length;for(;t<n;){let r=t+n>>>1;t...
method _bisectRight (line 12) | _bisectRight(e){let t=0,n=this._edits.length;for(;t<n;){let r=t+n>>>1;...
method insertLeft (line 12) | insertLeft(e,t){this.replaceLeft(e,e,t)}
method insertRight (line 12) | insertRight(e,t){this.replaceRight(e,e,t)}
method delete (line 12) | delete(e,t){this.replaceRight(e,t,"")}
method replaceLeft (line 12) | replaceLeft(e,t,n){this._edits.splice(this._bisectLeft(e),0,{start:e,e...
method replaceRight (line 12) | replaceRight(e,t,n){this._edits.splice(this._bisectRight(e),0,{start:e...
method translate (line 12) | translate(e){var t;let n=0,r={line:1,column:0},i={line:1,column:0};for...
method toString (line 12) | toString(){let e="",t=0;for(let{start:n,end:r,value:i}of this._edits)n...
function g (line 5) | function g(e){let t=e.field(u),n=i(t.unconfirmedCommits);return t.unconf...
method setState (line 6) | setState(e,t){if(this._isSettingState)throw this._isSettingState=!1,Er...
method _cleanup (line 6) | _cleanup(){b("client ?",{in:"_cleanup"}),this._saveFocusId=null,this._...
method close (line 6) | close(){"closed"!==this._state&&"aborted"!==this._state&&(this._cleanu...
method abort (line 6) | abort(e){e&&console.error(e),"aborted"!==this._state&&(this._cleanup()...
method _send (line 6) | _send(e){if(b("client ↑",e),!this._socket)throw Error("No socket at th...
method _handleReverts (line 6) | _handleReverts(e){let t=e.filter(e=>"revert"===e.type);return t.length...
method _save (line 6) | _save(){if("live"===this.clientRole)return;if("edit"!==this.clientRole...
method _saveChanges (line 6) | _saveChanges(){let{model:e,editorStates:t}=this._notebookState,n=e.eve...
method _saveFiles (line 6) | _saveFiles(){var e,t;let{files:n}=this._notebookState;if(n!==this._las...
method _saveChats (line 6) | _saveChats(){let{chatMessages:e}=this._notebookState;if(e===this._last...
method _saveComments (line 6) | _saveComments(){let{comments:e}=this._notebookState;if(e===this._lastS...
method _saveNewFocus (line 6) | _saveNewFocus(){let{saveVersion:e,saveSubversion:t,editorStates:n,focu...
method _getStash (line 6) | _getStash(){let e=h.X.getItem("notebook-next-".concat(this.id));if(!e)...
method _clearStash (line 6) | _clearStash(){h.X.removeItem("notebook-next-".concat(this.id))}
method constructor (line 6) | constructor(e,t,n){this._dispatch=e,this.clientRole=t,this.id=n,this._...
method constructor (line 10) | constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[]...
method match (line 10) | match(e){if(0==this.pattern.length)return[0];if(e.length<this.pattern....
method result (line 10) | result(e,t,n){let i=[e-n.length],s=1;for(let e of t){let t=e+(this.ast...
method constructor (line 10) | constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,th...
method syncTo (line 10) | syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,...
method chunk (line 10) | chunk(e){return this.syncTo(e),this.string}
method lineChunks (line 10) | get lineChunks(){return!0}
method read (line 10) | read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this....
method constructor (line 10) | constructor(e,t){this.buffer=e,this.index=t}
method id (line 10) | get id(){return this.buffer[this.index-4]}
method start (line 10) | get start(){return this.buffer[this.index-3]}
method end (line 10) | get end(){return this.buffer[this.index-2]}
method size (line 10) | get size(){return this.buffer[this.index-1]}
method pos (line 10) | get pos(){return this.index}
method next (line 10) | next(){this.index-=4}
method fork (line 10) | fork(){return new g(this.buffer,this.index)}
function O (line 5) | function O(e){let t=e.field(u),n=[];if(!t.unconfirmedCommits.length)retu...
method constructor (line 10) | constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}
method type (line 10) | get type(){return d.none}
method toString (line 10) | toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.chil...
method childString (line 10) | childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.type...
method findChild (line 10) | findChild(e,t,n,r,i){let{buffer:s}=this,o=-1;for(let a=e;a!=t&&(!v(i,r...
method slice (line 10) | slice(e,t,n,r){let i=this.buffer,s=new Uint16Array(t-e);for(let r=e,o=...
method constructor (line 10) | constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOf...
method resolveOffset (line 10) | resolveOffset(e,t){let n=this.range,r=this.rangeIndex,i=this.pos+e;for...
method peek (line 10) | peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this....
method acceptToken (line 10) | acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(null==...
method getChunk (line 10) | getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.c...
method readNext (line 10) | readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),t...
method advance (line 10) | advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this....
method setDone (line 10) | setDone(){return this.pos=this.chunkPos=this.end,this.range=this.range...
method reset (line 10) | reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.exte...
method read (line 10) | read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)retu...
function o (line 5) | function o(e,t,n){let{from:r,to:i}=t,s=arguments.length>3&&void 0!==argu...
method constructor (line 5) | constructor(e,t,n){this.origin=e,this.changes=t,this.effects=n}
method fetch (line 6) | fetch(e,t){return t||(t={}),fetch(new URL("?".concat(new URLSearchPara...
method uploadFile (line 6) | async uploadFile(e){let{file:t,name
Copy disabled (too large)
Download .json
Condensed preview — 478 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (63,989K chars).
[
{
"path": ".gitignore",
"chars": 445,
"preview": ".DS_Store\n/dist/\nnode_modules/\nyarn-error.log\n\n.ropeproject/\n.bunlockb\n.ipynb_checkpoints\n# Build directory\nbuild/\nout/\n"
},
{
"path": ".replit",
"chars": 150,
"preview": "entrypoint = \"scripts/index.ts\"\n\n[nix]\nchannel = \"stable-24_05\"\n\n\n[deployment]\nrun = [\"bun\", \"run\", \"scripts/index.ts\"]\n"
},
{
"path": "__init__.py",
"chars": 12,
"preview": "\nprint(123)\n"
},
{
"path": "backend/.gitignore",
"chars": 3139,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": "backend/.python-version",
"chars": 5,
"preview": "3.10\n"
},
{
"path": "backend/README.md",
"chars": 215,
"preview": "\n```bash\n# lint\nuvx ruff format marketing_source_sync.py\n\n# type check\nuvx mypy --strict marketing_source_sync.py\n\n# run"
},
{
"path": "backend/hi.py",
"chars": 82,
"preview": "\ndef main():\n print(\"Hello from anus!\")\n\nif __name__ == \"__main__\":\n main()\n"
},
{
"path": "backend/marketing_source_sync.py",
"chars": 7390,
"preview": "# from dataclasses import dataclass\n# from datetime import date, timedelta\n# import sqlite3\n# from typing import Iterato"
},
{
"path": "blog/.gitignore",
"chars": 46,
"preview": ".DS_Store\n/dist/\nnode_modules/\nyarn-error.log\n"
},
{
"path": "blog/README.md",
"chars": 2967,
"preview": "# robotics-odyssey = a living document - edited by 8 billion scientist artist wizards 2026\nhttps://roboticsuniversity.ob"
},
{
"path": "blog/index.ts",
"chars": 1108,
"preview": "import fs from \"fs\";\n\n// fs.readdirSync(\"src\").forEach((folder) => {\n// if (fs.statSync(`src/${folder}`).isDirectory()"
},
{
"path": "blog/observablehq.config.js",
"chars": 6577,
"preview": "export default {\n title: \"robotics-odyssey\",\n\n pages: [\n {\n name: \"Geospatial HD Mapping\",\n pages: [\n "
},
{
"path": "blog/package.json",
"chars": 488,
"preview": "{\n \"type\": \"module\",\n \"private\": true,\n \"scripts\": {\n \"clean\": \"rimraf src/.observablehq/cache\",\n \"build\": \"obs"
},
{
"path": "blog/src/.gitignore",
"chars": 22,
"preview": "/.observablehq/cache/\n"
},
{
"path": "blog/src/.observablehq/deploy.json",
"chars": 119,
"preview": "{\n \"projectId\": \"3da0c33bb85ca725\",\n \"projectSlug\": \"dynamicbotnotebook\",\n \"workspaceLogin\": \"roboticsuniversity\"\n}\n"
},
{
"path": "blog/src/algorithms/map-reduce.md",
"chars": 279,
"preview": "/algorithms/map-reduce<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/algorithms/map-reduce\">click he"
},
{
"path": "blog/src/components/editor.js",
"chars": 10690,
"preview": "// import { javascript } from \"npm:@codemirror/lang-javascript\";\n// import { EditorView, keymap } from \"npm:@codemirror/"
},
{
"path": "blog/src/components/timeline.js",
"chars": 492,
"preview": "import * as Plot from \"npm:@observablehq/plot\";\n\nexport function timeline(events, {width, height} = {}) {\n return Plot."
},
{
"path": "blog/src/connectivity/livekit-webrtc.md",
"chars": 566,
"preview": "/connectivity/livekit-webrtc<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/connectivity/livekit-webr"
},
{
"path": "blog/src/connectivity/tailscale-caddy-dns-porkbun.md",
"chars": 631,
"preview": "/connectivity/tailscale-caddy-dns-porkbun<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/connectivity"
},
{
"path": "blog/src/cpp/concurrency-parallelism.md",
"chars": 429,
"preview": "/cpp/concurrency-parallelism<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/cpp/concurrency-paralleli"
},
{
"path": "blog/src/cpp/memory-management.md",
"chars": 405,
"preview": "/cpp/memory-management<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/cpp/memory-management\">click he"
},
{
"path": "blog/src/data/events.json",
"chars": 329,
"preview": "[\n {\"name\": \"Sputnik 1\", \"year\": 1957, \"y\": 10},\n {\"name\": \"Apollo 11\", \"year\": 1969, \"y\": 20},\n {\"name\": \"Viking 1 a"
},
{
"path": "blog/src/data/launches.csv.js",
"chars": 1706,
"preview": "import {csvFormat, tsvParse} from \"d3-dsv\";\nimport {utcParse} from \"d3-time-format\";\n\nasync function text(url) {\n const"
},
{
"path": "blog/src/data-analysis/events.json",
"chars": 329,
"preview": "[\n {\"name\": \"Sputnik 1\", \"year\": 1957, \"y\": 10},\n {\"name\": \"Apollo 11\", \"year\": 1969, \"y\": 20},\n {\"name\": \"Viking 1 a"
},
{
"path": "blog/src/data-analysis/launches.csv.js",
"chars": 1706,
"preview": "import {csvFormat, tsvParse} from \"d3-dsv\";\nimport {utcParse} from \"d3-time-format\";\n\nasync function text(url) {\n const"
},
{
"path": "blog/src/data-analysis/olap.md",
"chars": 521,
"preview": "/data-analysis/olap<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/data-analysis/olap\">click here to "
},
{
"path": "blog/src/data-vis/anomaly-detection.md",
"chars": 561,
"preview": "/data-vis/anomaly-detection<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/data-vis/anomaly-detection"
},
{
"path": "blog/src/data-vis/capacity-planning.md",
"chars": 561,
"preview": "/data-vis/capacity-planning<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/data-vis/capacity-planning"
},
{
"path": "blog/src/data-vis/crisis-diagnosis.md",
"chars": 556,
"preview": "/data-vis/crisis-diagnosis<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/data-vis/crisis-diagnosis\">"
},
{
"path": "blog/src/data-vis/systems-design.md",
"chars": 546,
"preview": "/data-vis/systems-design<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/data-vis/systems-design\">clic"
},
{
"path": "blog/src/devops/docker.md",
"chars": 496,
"preview": "/devops/docker<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/devops/docker\">click here to edit this "
},
{
"path": "blog/src/devops/terraform.md",
"chars": 511,
"preview": "/devops/terraform<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/devops/terraform\">click here to edit"
},
{
"path": "blog/src/dynamicland/dynamicland.md",
"chars": 546,
"preview": "/dynamicland/dynamicland<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/dynamicland/dynamicland\">clic"
},
{
"path": "blog/src/embedded/hardware-in-the-loop-simulation.md",
"chars": 776,
"preview": "/embedded/hardware-in-the-loop-simulation<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/embedded/har"
},
{
"path": "blog/src/embedded/zig.md",
"chars": 608,
"preview": "/embedded/zig<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/embedded/zig\">click here to edit this do"
},
{
"path": "blog/src/hardware/soldering-pcb-3d-printing.md",
"chars": 601,
"preview": "/hardware/soldering-pcb-3d-printing<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/hardware/soldering"
},
{
"path": "blog/src/index.md",
"chars": 21,
"preview": "---\ntheme: slate\n---\n"
},
{
"path": "blog/src/llms/ollama-claude-o1-pro.md",
"chars": 556,
"preview": "/llms/ollama-claude-o1-pro<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/llms/ollama-claude-o1-pro\">"
},
{
"path": "blog/src/maps/hd-mapping.md",
"chars": 4619,
"preview": "deck.gl is a “GPU-powered framework for visual exploratory data analysis of large datasets.” You can import deck.gl’s st"
},
{
"path": "blog/src/maps/open-street-maps.md",
"chars": 932,
"preview": "/maps/open-street-maps<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/[maps/open-street-maps.md](maps"
},
{
"path": "blog/src/math/linear-algebra.md",
"chars": 273,
"preview": "/math/linear-algebra<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/math/linear-algebra\">click here t"
},
{
"path": "blog/src/math/probability.md",
"chars": 264,
"preview": "/math/probability<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/math/probability\">click here to edit"
},
{
"path": "blog/src/math/real-analysis.md",
"chars": 270,
"preview": "/math/real-analysis<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/math/real-analysis\">click here to "
},
{
"path": "blog/src/neuroscience/constructionism.md",
"chars": 148,
"preview": "\nJean Piaget studied object constancy.\n\nwithout that theory, there would be no user interface.\n\nso only .1% of the popul"
},
{
"path": "blog/src/neuroscience/free-will.md",
"chars": 1004,
"preview": "\n\n\n# Saposlky Determined \n\n\n# Seugn Lab Connectome\n34 trillion neurons\n\n# NEurips \n\n\n# lead study - crime rate went up\n\n"
},
{
"path": "blog/src/neuroscience/single-cell-analysis.md",
"chars": 596,
"preview": "/neuroscience/single-cell-analysis<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/neuroscience/single"
},
{
"path": "blog/src/perception/object-detection.md",
"chars": 566,
"preview": "/perception/object-detection<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/perception/object-detecti"
},
{
"path": "blog/src/perception/scene-understanding.md",
"chars": 581,
"preview": "/perception/scene-understanding<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/perception/scene-under"
},
{
"path": "blog/src/perception/semantic-segmentation.md",
"chars": 591,
"preview": "/perception/semantic-segmentation<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/perception/semantic-"
},
{
"path": "blog/src/perception/sensor-calibration.md",
"chars": 576,
"preview": "/perception/sensor-calibration<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/perception/sensor-calib"
},
{
"path": "blog/src/perception/vision-transformers.md",
"chars": 306,
"preview": "/perception/vision-transformers<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/perception/vision-tran"
},
{
"path": "blog/src/python/uv_jupyter_testing.md",
"chars": 556,
"preview": "/python/uv_jupyter_testing<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/python/uv_jupyter_testing\">"
},
{
"path": "blog/src/robotics/motion-planning.md",
"chars": 551,
"preview": "/robotics/motion-planning<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/robotics/motion-planning\">cl"
},
{
"path": "blog/src/simulation/Unity.md",
"chars": 264,
"preview": "/simulation/Unity<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/simulation/Unity\">click here to edit"
},
{
"path": "blog/src/simulation/Unreal-Engine.md",
"chars": 288,
"preview": "/simulation/Unreal-Engine<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/simulation/Unreal-Engine\">cl"
},
{
"path": "blog/src/simulation/reinforcement-learning.md",
"chars": 877,
"preview": "/simulation/reinforcement-learning<a href=\"https://github.com/BotParty/homelab_status_page/blob/main/simulation/reinforc"
},
{
"path": "data/150_algo_vis.json",
"chars": 10617,
"preview": "{\n \"topics\": [\n {\n \"id\": 1,\n \"title\": \"3D Simulation with Gazebo\",\n \"description\": \"Learn h"
},
{
"path": "data/150_games.json",
"chars": 1961,
"preview": "{\n \"games\": [\n {\n \"title\": \"Baldur's Gate 3\",\n \"tags\": [\n \"RPG\",\n \"Character Customization\","
},
{
"path": "data/citations.txt",
"chars": 1,
"preview": "\n"
},
{
"path": "data/cognitive_biases.json",
"chars": 24608,
"preview": "{\n \"title\": \"List of cognitive biases (Wikipedia article)\",\n \"introSummary\": \"Cognitive biases are systematic patterns"
},
{
"path": "data/cognitive_biases.md",
"chars": 24960,
"preview": "1–10: Attention, Perception & Memory Distortions\nAnchoring Bias\nRelying too heavily on the first piece of information (t"
},
{
"path": "data/data.json",
"chars": 365,
"preview": "[\n \"1. 150 cognitive biases\",\n \"2. 150 mental models\",\n \"3. 150 books - bookshelf dynamicland.org -\",\n \"4. simulatio"
},
{
"path": "data/dynamicland/everything.json",
"chars": 2446,
"preview": "[\n \"https://bookshop.org/book/9781477325766\",\n \"https://bookshop.org/book/9780521292429\",\n \"https://archive.org"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey.html",
"chars": 0,
"preview": ""
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/1683-90852ff38d0f48c3.js",
"chars": 57272,
"preview": "!function(){try{var t=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/2549-d685c5a8b5e44383.js",
"chars": 82133,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/3999-eb7c9b525e00cb6c.js",
"chars": 26003,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/4169-a2f83540e7ed7bf5.js",
"chars": 76510,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/7297-514aacfbea18160d.js",
"chars": 18185,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/8234-563c4d907b8a6e14.js",
"chars": 104140,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/8764-fb7153f259170265.js",
"chars": 27180,
"preview": "!function(){try{var t=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/9273-d14a7c3909b5f026.js",
"chars": 26373,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/9430-e1d1710730c7a2db.js",
"chars": 128912,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/BTd3N5Oj2jk.html",
"chars": 144046,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0052)https://www.youtube.com/embed/BTd3N5Oj2jk?rel=0#t=37 -->\n<html lang=\"en\" dir=\""
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/Main.js",
"chars": 6247,
"preview": "//\n// Main.js\n// LearnableProgramming\n//\n// Created by Bret Victor on 9/6/12.\n// (c) 2012 Bret Victor. MIT open-sou"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/[...specifiers]-6a923aab3931db26.js",
"chars": 10143,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/_app-4ca44e0e0c4aea04.js",
"chars": 1585587,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/_buildManifest.js",
"chars": 12978,
"preview": "self.__BUILD_MANIFEST=function(s,e,t,a,c,i,n,r,p,u,f,g,o,d,b,j,k,h,l,m,w,v,y,_,x,I,B,F,A,D,E,L,M,N,S,T,U,C,P,q,z,G,H,J,K"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/_ssgManifest.js",
"chars": 496,
"preview": "self.__SSG_MANIFEST=new Set([\"\\u002Fblog\",\"\\u002Fblog\\u002F[specifier]\",\"\\u002Fblog\\u002Fcategory\\u002F[specifier]\",\"\\u0"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/ad_status.js",
"chars": 29,
"preview": "window.google_ad_status = 1;\n"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/bTS-krGMW8fDflzgOBqs4RfQ289v88xjeZzvxqf94UM.js",
"chars": 55336,
"preview": "//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjogMywic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRl"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/base.js",
"chars": 2508425,
"preview": "var _yt_player={};(function(g){var window=this;/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apa"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/cast_sender(1).js",
"chars": 49352,
"preview": "(function(){'use strict';var f,aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/cast_sender.js",
"chars": 4272,
"preview": "(function(){/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\n'use strict';var l=funct"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/clarity.js",
"chars": 68528,
"preview": "/* clarity-js v0.7.59: https://github.com/microsoft/clarity (License: MIT) */\r\n!function(){\"use strict\";var t=Object.fre"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/client.js",
"chars": 3522,
"preview": " // client.js\n\n\n\n\n// function _Livekit() {\n// const videoRef = useRef<HTMLDivElement>(null);\n// const [ro"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/d01c1a66254bf331.css",
"chars": 167548,
"preview": "@import url(\"https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&dis"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/dynamical-systems-xerox-parc-dynamicland.html",
"chars": 41668,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0111)https://observablehq.com/embed/@roboticsuniversity/dynamical-systems-xerox-par"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/embed.js",
"chars": 33712,
"preview": "(function(g){var window=this;'use strict';var D7c=function(p){p.mutedAutoplay=!1;p.endSeconds=NaN;p.limitedPlaybackDurat"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/framework-a17bb443126b4122.js",
"chars": 140343,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/htmx.org@1.9.3",
"chars": 43743,
"preview": "(function(e,t){if(typeof define===\"function\"&&define.amd){define([],t)}else if(typeof module===\"object\"&&module.exports)"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/hyperscript.org@0.9.9",
"chars": 99653,
"preview": "(function(e,t){const r=t(e);if(typeof exports===\"object\"&&typeof exports[\"nodeName\"]!==\"string\"){module.exports=r}else{e"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/js",
"chars": 414413,
"preview": "\n// Copyright 2012 Google Inc. All rights reserved.\n \n(function(){\n\nvar data = {\n\"resource\": {\n \"version\":\"1\",\n \n \"ma"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/main-481a3b56229fbdcf.js",
"chars": 111660,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/mootools.js",
"chars": 90109,
"preview": "/*\n---\nMooTools: the javascript framework\n\nweb build:\n - http://mootools.net/core/76bf47062d6c1983d66ce47ad66aa0e0\n\npack"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/ok8h7h9e0q",
"chars": 602,
"preview": "!function(c,l,a,r,i,t,y){if(a[c].v||a[c].t)return a[c](\"event\",c,\"dup.\"+i.projectId);a[c].t=!0,(t=l.createElement(r)).as"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/output.css",
"chars": 33510,
"preview": "\n <!DOCTYPE html>\n <html>\n <head>\n <title>educational robotics for 141 dollars | Robotics Odyssey</title>\n <s"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/perception.html",
"chars": 26581,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0081)https://observablehq.com/embed/@roboticsuniversity/perception?cell=*&banner=fa"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/polyfills-42372ed130431b0a.js",
"chars": 112541,
"preview": "!function(){var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/prediction@124.html",
"chars": 43208,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0072)https://observablehq.com/embed/@roboticsuniversity/prediction@124?cell=* -->\n<"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/remote.js",
"chars": 121443,
"preview": "(function(g){var window=this;'use strict';var pl=function(p){g.yh(p,\"zx\",Math.floor(Math.random()*2147483648).toString(3"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/saved_resource(1).html",
"chars": 7476,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0024)https://dynamicland.org/ -->\n<html lang=\"en-US\"><head><meta http-equiv=\"Conten"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/saved_resource.html",
"chars": 97015,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0044)https://worrydream.com/LearnableProgramming/ -->\n<html lang=\"en-US\" slick-uniq"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/simulation.html",
"chars": 38542,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0081)https://observablehq.com/embed/@roboticsuniversity/simulation?cell=*&banner=fa"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/style.css",
"chars": 8697,
"preview": "@font-face {\n font-family: 'borisblackbloxxregular';\n src: url('Fonts/borisblackbloxx-webfont.woff') format('woff'"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/webpack-165ff3e7383b672c.js",
"chars": 5239,
"preview": "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/worker-BxqpBb1S.css",
"chars": 7456,
"preview": "/* Copyright 2024 Observable, Inc. */\n@import url(\"https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/worker-DfKuigH-.js",
"chars": 127425,
"preview": "/* Copyright 2024 Observable, Inc. */\nfunction e(e,t,n){n=n||{};var r=e.ownerDocument,a=r.defaultView.CustomEvent;\"funct"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/worker-lLzrCfCS(1).html",
"chars": 13089,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0085)https://roboticsuniversity.static.observableusercontent.com/next/worker-lLzrCf"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/worker-lLzrCfCS(2).html",
"chars": 13061,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0098)https://roboticsuniversity.static.observableusercontent.com/next/worker-lLzrCf"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/worker-lLzrCfCS(3).html",
"chars": 18575,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0098)https://roboticsuniversity.static.observableusercontent.com/next/worker-lLzrCf"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/worker-lLzrCfCS.html",
"chars": 14661,
"preview": "<!DOCTYPE html>\n<!-- saved from url=(0098)https://roboticsuniversity.static.observableusercontent.com/next/worker-lLzrCf"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/www-embed-player.js",
"chars": 340182,
"preview": "(function(){'use strict';var r;function ba(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!"
},
{
"path": "data/educational robotics for 141 dollars _ Robotics Odyssey_files/www-player.css",
"chars": 405806,
"preview": "@charset \"UTF-8\";.html5-video-player{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;outline:0;font-f"
},
{
"path": "data/first_flyio/Dockerfile",
"chars": 171,
"preview": "FROM python:3.10-slim\nRUN pip install fastapi uvicorn\nCOPY main.py /app/main.py\nWORKDIR /app\nEXPOSE 8080\nCMD [\"uvicorn\","
},
{
"path": "data/first_flyio/connect_to_livekit.py",
"chars": 0,
"preview": ""
},
{
"path": "data/first_flyio/fly.toml",
"chars": 481,
"preview": "# fly.toml app configuration file generated for first-flyio-fastapi on 2024-12-09T17:39:19-07:00\n#\n# See https://fly.io/"
},
{
"path": "data/first_flyio/main.py",
"chars": 828,
"preview": "from fastapi import FastAPI\nfrom fastapi.responses import HTMLResponse\n\napp = FastAPI()\n\n@app.get(\"/\")\ndef read_root():\n"
},
{
"path": "data/first_flyio/start.sh",
"chars": 453,
"preview": "#!/usr/bin/env bash\nset -e\n\n# Start tailscaled in the background\n/usr/local/bin/tailscaled --state=mem: --socket=/tmp/ta"
},
{
"path": "data/games_collection.json",
"chars": 20723,
"preview": "[\n {\n \"title\": \"Stardew Valley\",\n \"genre\": \"Farming Simulation / RPG\",\n \"publisher\": \"ConcernedApe\",\n \"date"
},
{
"path": "data/machines.json",
"chars": 398,
"preview": "\n\n\n[\n {\n \"id\": \"learn-math.app\",\n \"name\": \"gpu\",\n \"ts_dns\": \"https://gpu.jerboa-kokanue.ts.net\"\n"
},
{
"path": "data/magic_iframe.js",
"chars": 69763,
"preview": "// 4 iframes = 4 levels of zoom for robotics - 4 canvas\n\n// TODO: make this work in observalbehq\n// https://underscorejs"
},
{
"path": "data/mental_models.json",
"chars": 23833,
"preview": "[\n {\n \"id\": 1,\n \"title\": \"The Map is Not the Territory\",\n \"summary\": \"Our mental representations of reality (m"
},
{
"path": "data/misc_vis.json",
"chars": 10617,
"preview": "{\n \"topics\": [\n {\n \"id\": 1,\n \"title\": \"3D Simulation with Gazebo\",\n \"description\": \"Learn h"
},
{
"path": "data/parsed_links.json",
"chars": 4303,
"preview": "[\n {\n \"title\": \"Terence Tao: One of my papers got declined today\",\n \"url\": \"https://mathstodon.xyz/@tao/113721192"
},
{
"path": "go-libo-demo/go.mod",
"chars": 2799,
"preview": "module github.com/your-username/go-libo-demo\n\ngo 1.23.0\n\nrequire (\n\tgithub.com/apache/arrow/go/v14 v14.0.2\n\tgithub.com/q"
},
{
"path": "go-libo-demo/go.sum",
"chars": 14321,
"preview": "github.com/BurntSushi/freetype-go v0.0.0-20160129220410-b763ddbfe298/go.mod h1:D+QujdIlUNfa0igpNMk6UIvlb6C252URs4yupRUV4"
},
{
"path": "go-libo-demo/main.go",
"chars": 446,
"preview": "package main\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/go-vgo/robotgo\"\n\t\"github.com/vcaesar/imgo\"\n)\n\nfunc main() {\n\tsx, sy "
},
{
"path": "hello.py",
"chars": 84,
"preview": "def main():\n print(\"Hello from homelab!\")\n\nif __name__ == \"__main__\":\n main()\n"
},
{
"path": "notebooks/Rtings_for_robotics.ipynb",
"chars": 893,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"id\": \"826c9350-9176-4a86-ba0c-a4ed76b30741\",\n "
},
{
"path": "notebooks/Untitled.ipynb",
"chars": 617,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"id\": \"1fb18565-ac57-4534-952d-92044c13ca00\",\n "
},
{
"path": "notebooks/browser_base_research_agent.py",
"chars": 363,
"preview": "from langchain_openai import ChatOpenAI\nfrom browser_use import Agent\nimport asyncio\n\nasync def main():\n agent = Agen"
},
{
"path": "notebooks/dist/_file/data/events.46a3a628.json",
"chars": 329,
"preview": "[\n {\"name\": \"Sputnik 1\", \"year\": 1957, \"y\": 10},\n {\"name\": \"Apollo 11\", \"year\": 1969, \"y\": 20},\n {\"name\": \"Viking 1 a"
},
{
"path": "notebooks/dist/_file/data/launches.5c43450e.csv",
"chars": 760557,
"preview": "date,state,stateId,family\n1957-10-04,Soviet Union,SU,R-7\n1957-11-03,Soviet Union,SU,R-7\n1957-12-06,United States,US,Othe"
},
{
"path": "notebooks/dist/_import/components/timeline.3a99cfed.js",
"chars": 518,
"preview": "import * as Plot from \"../../_npm/@observablehq/plot@0.6.16/d3b1d894.js\";\n\nexport function timeline(events, {width, heig"
},
{
"path": "notebooks/dist/_npm/@observablehq/plot@0.6.16/d3b1d894.js",
"chars": 201589,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/@observablehq/plot@0.6.16/src"
},
{
"path": "notebooks/dist/_npm/@observablehq/sample-datasets@1.0.1/aapl.csv",
"chars": 92399,
"preview": "Date,Open,High,Low,Close,Adj Close,Volume\n2013-05-13,64.501427,65.414284,64.500000,64.962860,50.961628,79237200\n2013-05-"
},
{
"path": "notebooks/dist/_npm/@observablehq/sample-datasets@1.0.1/penguins.csv",
"chars": 13506,
"preview": "species,island,culmen_length_mm,culmen_depth_mm,flipper_length_mm,body_mass_g,sex\nAdelie,Torgersen,39.1,18.7,181,3750,MA"
},
{
"path": "notebooks/dist/_npm/binary-search-bounds@2.0.5/1ee6c50d.js",
"chars": 1354,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/binary-search-bounds@2.0.5/se"
},
{
"path": "notebooks/dist/_npm/d3-array@3.2.4/37839b6a.js",
"chars": 16550,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3-array@3.2.4/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-axis@3.0.0/bd0afa17.js",
"chars": 3050,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3-axis@3.0.0/src/index.js\n *"
},
{
"path": "notebooks/dist/_npm/d3-brush@3.0.0/6495590f.js",
"chars": 9734,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-brush@3.0.0/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-chord@3.0.1/84d7b8e9.js",
"chars": 4338,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-chord@3.0.1/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-color@3.1.0/2c0cdfa2.js",
"chars": 10512,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-color@3.1.0/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-contour@4.0.2/d496a3b3.js",
"chars": 5724,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-contour@4.0.2/src/index.js"
},
{
"path": "notebooks/dist/_npm/d3-delaunay@6.0.4/00c41b5d.js",
"chars": 11476,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-delaunay@6.0.4/src/index.j"
},
{
"path": "notebooks/dist/_npm/d3-dispatch@3.0.1/b5f7cdc6.js",
"chars": 1798,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-dispatch@3.0.1/src/index.j"
},
{
"path": "notebooks/dist/_npm/d3-drag@3.0.0/ef06b1ff.js",
"chars": 4097,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-drag@3.0.0/src/index.js\n *"
},
{
"path": "notebooks/dist/_npm/d3-dsv@3.0.1/407f7a1f.js",
"chars": 3336,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-dsv@3.0.1/src/index.js\n *\n"
},
{
"path": "notebooks/dist/_npm/d3-ease@3.0.1/6f15f633.js",
"chars": 3118,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-ease@3.0.1/src/index.js\n *"
},
{
"path": "notebooks/dist/_npm/d3-fetch@3.0.1/35880c2a.js",
"chars": 1604,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3-fetch@3.0.1/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-force@3.0.0/5e1ff060.js",
"chars": 8271,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-force@3.0.0/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-format@3.1.0/33fb7288.js",
"chars": 5123,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3-format@3.1.0/src/index.js\n"
},
{
"path": "notebooks/dist/_npm/d3-geo@3.1.1/5e427f4b.js",
"chars": 36333,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-geo@3.1.1/src/index.js\n *\n"
},
{
"path": "notebooks/dist/_npm/d3-hierarchy@3.1.2/f1db2593.js",
"chars": 14812,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-hierarchy@3.1.2/src/index."
},
{
"path": "notebooks/dist/_npm/d3-interpolate@3.0.1/034b7bcb.js",
"chars": 7826,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-interpolate@3.0.1/src/inde"
},
{
"path": "notebooks/dist/_npm/d3-path@3.1.0/4bb53638.js",
"chars": 2404,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-path@3.1.0/src/index.js\n *"
},
{
"path": "notebooks/dist/_npm/d3-polygon@3.0.1/bbafde58.js",
"chars": 1549,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-polygon@3.0.1/src/index.js"
},
{
"path": "notebooks/dist/_npm/d3-quadtree@3.0.1/aa5b35a8.js",
"chars": 5196,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-quadtree@3.0.1/src/index.j"
},
{
"path": "notebooks/dist/_npm/d3-random@3.0.1/32c7fec2.js",
"chars": 4020,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-random@3.0.1/src/index.js\n"
},
{
"path": "notebooks/dist/_npm/d3-scale-chromatic@3.1.0/cf9b720b.js",
"chars": 19882,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-scale-chromatic@3.1.0/src/"
},
{
"path": "notebooks/dist/_npm/d3-scale@4.0.2/4143aac9.js",
"chars": 15899,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-scale@4.0.2/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-selection@3.0.0/a4e530fb.js",
"chars": 13435,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3-selection@3.0.0/src/index."
},
{
"path": "notebooks/dist/_npm/d3-shape@3.2.0/be692bd9.js",
"chars": 31039,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3-shape@3.2.0/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-time-format@4.1.0/28d1ef76.js",
"chars": 9605,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-time-format@4.1.0/src/inde"
},
{
"path": "notebooks/dist/_npm/d3-time@3.1.0/3a9ac1c1.js",
"chars": 6032,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-time@3.1.0/src/index.js\n *"
},
{
"path": "notebooks/dist/_npm/d3-timer@3.0.1/f31b5398.js",
"chars": 1876,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-timer@3.0.1/src/index.js\n "
},
{
"path": "notebooks/dist/_npm/d3-transition@3.0.1/0c259fbf.js",
"chars": 11652,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-transition@3.0.1/src/index"
},
{
"path": "notebooks/dist/_npm/d3-zoom@3.0.0/da4a6ccc.js",
"chars": 9845,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/d3-zoom@3.0.0/src/index.js\n *"
},
{
"path": "notebooks/dist/_npm/d3@7.9.0/fcf2830e.js",
"chars": 1595,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.\n * Original file: /npm/d3@7.9.0/src/index.js\n *\n * D"
},
{
"path": "notebooks/dist/_npm/delaunator@5.0.1/e67acb27.js",
"chars": 5458,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/delaunator@5.0.1/index.js\n *\n"
},
{
"path": "notebooks/dist/_npm/internmap@2.0.3/5eed35fd.js",
"chars": 1206,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/internmap@2.0.3/src/index.js\n"
},
{
"path": "notebooks/dist/_npm/interval-tree-1d@1.0.4/a62ae5ce.js",
"chars": 4561,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/interval-tree-1d@1.0.4/interv"
},
{
"path": "notebooks/dist/_npm/isoformat@0.2.1/c68fbd73.js",
"chars": 944,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/isoformat@0.2.1/src/index.js\n"
},
{
"path": "notebooks/dist/_npm/robust-predicates@3.0.2/8ac9039b.js",
"chars": 24887,
"preview": "/**\n * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.\n * Original file: /npm/robust-predicates@3.0.2/index"
},
{
"path": "notebooks/dist/_observablehq/client.966d4ea1.js",
"chars": 12207,
"preview": "var ie=Object.defineProperty;var n=(e,t)=>ie(e,\"name\",{value:t,configurable:!0});import{Inspector as j,Runtime as le}fro"
},
{
"path": "notebooks/dist/_observablehq/runtime.f168f711.js",
"chars": 30887,
"preview": "var Ft=Object.defineProperty;var r=(e,t)=>Ft(e,\"name\",{value:t,configurable:!0});var B,H,Ut=Object.defineProperty,Rt=r(("
},
{
"path": "notebooks/dist/_observablehq/stdlib.1d18d6f6.js",
"chars": 7593,
"preview": "var T=Object.defineProperty;var o=(t,e)=>T(t,\"name\",{value:e,configurable:!0});var d,m,D=Object.defineProperty,f=o((t,e)"
},
{
"path": "notebooks/dist/_observablehq/theme-air,near-midnight,alt,wide.db1cdf55.css",
"chars": 25937,
"preview": ":root{--monospace: Menlo, Consolas, monospace;--monospace-font: 14px/1.5 var(--monospace);--serif: \"Source Serif 4\", \"Io"
},
{
"path": "notebooks/dist/_observablehq/theme-air,near-midnight.dcdbf18e.css",
"chars": 25797,
"preview": ":root{--monospace: Menlo, Consolas, monospace;--monospace-font: 14px/1.5 var(--monospace);--serif: \"Source Serif 4\", \"Io"
},
{
"path": "notebooks/dist/example-dashboard.html",
"chars": 10774,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1,"
},
{
"path": "notebooks/dist/example-report.html",
"chars": 12762,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1,"
},
{
"path": "notebooks/dist/index.html",
"chars": 10605,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1,"
},
{
"path": "notebooks/dynamicland.ipynb",
"chars": 11954,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 2,\n \"id\": \"829be1cd\",\n \"metadata\": {},\n \"outputs\":"
},
{
"path": "notebooks/geospatial.ipynb",
"chars": 1269,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"id\": \"32245cd3-f738-4c78-b6b8-22b5246c67ec\",\n \""
},
{
"path": "notebooks/learning_from_driving.ipynb",
"chars": 48791,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"id\": \"844a6d19-acd9-484b-b33c-af6f175a2882\",\n "
},
{
"path": "notebooks/polars_geospatial.ipynb",
"chars": 21278,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 10,\n \"id\": \"2738b411-baff-4b65-9142-8a740dd24995\",\n "
},
{
"path": "notebooks/prediction/prediction.ipynb",
"chars": 434,
"preview": "{\"cells\":[{\"id\":\"0\",\"cell_type\":\"code\",\"execution_count\":3,\"outputs\":[{\"output_type\":\"stream\",\"name\":\"stdout\",\"text\":[\"s"
},
{
"path": "notebooks/simulation/simulation.ipynb",
"chars": 434,
"preview": "{\"cells\":[{\"id\":\"0\",\"cell_type\":\"code\",\"execution_count\":3,\"outputs\":[{\"output_type\":\"stream\",\"name\":\"stdout\",\"text\":[\"s"
},
{
"path": "notebooks/simulation_editor/.gitignore",
"chars": 8,
"preview": ".vercel\n"
},
{
"path": "notebooks/simulation_editor/netlify.toml",
"chars": 143,
"preview": "[build]\nbase = \"/simulation_editor/src\"\npublish = \"dist\"\ncommand = \"npm run build\"\n\n[dev]\ncommand = \"npm run dev\"\nport ="
},
{
"path": "notebooks/simulation_editor/package.json",
"chars": 981,
"preview": "{\n \"name\": \"threejs-journey-exercise\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n "
},
{
"path": "notebooks/simulation_editor/readme.md",
"chars": 170,
"preview": "# GameKit for Dynabot - learn robotics by playing and editing games english-language diagram generation\n\n### 183 mini ga"
},
{
"path": "notebooks/simulation_editor/src/addToScene.js",
"chars": 914,
"preview": "/**\n * Adds a Jolt body to the physics system (activates it) and\n * then creates and adds the corresponding Three.js mes"
},
{
"path": "notebooks/simulation_editor/src/createBox.js",
"chars": 1343,
"preview": "/**\n * Creates a box-shaped body and adds it to the scene.\n * @param {Object} Jolt - The Jolt object from jolt-physics.w"
},
{
"path": "notebooks/simulation_editor/src/createFloor.js",
"chars": 1304,
"preview": "import * as THREE from 'three';\n/**\n * Creates a static floor BoxShape body and adds it to the scene (with color).\n * @p"
},
{
"path": "notebooks/simulation_editor/src/createMeshForShape.js",
"chars": 823,
"preview": "import { BufferGeometry, BufferAttribute } from 'three';\n\n/**\n * Returns a Three.js geometry from a Jolt shape’s triangl"
},
{
"path": "notebooks/simulation_editor/src/dist/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "notebooks/simulation_editor/src/dist/assets/index-CC6HPAIA.js",
"chars": 4662046,
"preview": "(function(){const Q=document.createElement(\"link\").relList;if(Q&&Q.supports&&Q.supports(\"modulepreload\"))return;for(cons"
}
]
// ... and 278 more files (download for full content)
About this extraction
This page contains the full source code of the adnanwahab/Simple-WebGPU GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 478 files (60.3 MB), approximately 15.8M tokens, and a symbol index with 21284 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.