From 44598066a30f1b78f326e328026a6ea64b2214c0 Mon Sep 17 00:00:00 2001 From: Erik Onarheim Date: Fri, 5 Jan 2024 21:21:38 -0600 Subject: [PATCH] feat: Upgrade Tiled plugin & replace flawed XML parser (#477) This PR will remove the old xml parser/logic and replace it with a hand crafted parser developed here https://github.com/eonarheim/tiled-xml-parser Features in this update * Parser supports parsing _all_ tiled properties, however the plugin doesn't support rendering all of them in Excalibur * New file mapping to work with various bundlers * Tiled Template Support * External Separate Tileset loading Closes #455 * Infinite Tile Maps!!! * Actor Factory to provide your own implementations based on Tiled class - Get props passed to objects https://github.com/excaliburjs/Excalibur/discussions/2847 - Global class identification Closes https://github.com/excaliburjs/excalibur-tiled/issues/451 Fixes * New Parser - Closes https://github.com/excaliburjs/excalibur-tiled/issues/391 * New Loader - Closes https://github.com/excaliburjs/excalibur-tiled/issues/387 In addition to replacing the parser this PR also updates the API to be more supportable and friendlier to use. The old `TiledMapResource` type will be marked deprecated * [x] Headless mode - Closes https://github.com/excaliburjs/excalibur-tiled/issues/478 * [x] Optional file loader implementation - Closes https://github.com/excaliburjs/excalibur-tiled/issues/478 * [x] Isometric * [x] Integration tests * [x] Unit tests * [x] New Documentation * [ ] Update Samples --- .github/workflows/build.yml | 1 + .github/workflows/playwright.yml | 27 + .gitignore | 7 +- .npmignore | 3 + .nvmrc | 2 +- README.md | 298 +- .../Isometric_MedievalFantasy_Tiles.png | Bin 0 -> 14545 bytes .../assets/isometric-blocks/License.txt | 0 .../PNG/Abstract tiles/Thumbs.db | Bin .../PNG/Abstract tiles/abstractTile_01.png | Bin .../PNG/Abstract tiles/abstractTile_02.png | Bin .../PNG/Abstract tiles/abstractTile_03.png | Bin .../PNG/Abstract tiles/abstractTile_04.png | Bin .../PNG/Abstract tiles/abstractTile_05.png | Bin .../PNG/Abstract tiles/abstractTile_06.png | Bin .../PNG/Abstract tiles/abstractTile_07.png | Bin .../PNG/Abstract tiles/abstractTile_08.png | Bin .../PNG/Abstract tiles/abstractTile_09.png | Bin .../PNG/Abstract tiles/abstractTile_10.png | Bin .../PNG/Abstract tiles/abstractTile_11.png | Bin .../PNG/Abstract tiles/abstractTile_12.png | Bin .../PNG/Abstract tiles/abstractTile_13.png | Bin .../PNG/Abstract tiles/abstractTile_14.png | Bin .../PNG/Abstract tiles/abstractTile_15.png | Bin .../PNG/Abstract tiles/abstractTile_16.png | Bin .../PNG/Abstract tiles/abstractTile_17.png | Bin .../PNG/Abstract tiles/abstractTile_18.png | Bin .../PNG/Abstract tiles/abstractTile_19.png | Bin .../PNG/Abstract tiles/abstractTile_20.png | Bin .../PNG/Abstract tiles/abstractTile_21.png | Bin .../PNG/Abstract tiles/abstractTile_22.png | Bin .../PNG/Abstract tiles/abstractTile_23.png | Bin .../PNG/Abstract tiles/abstractTile_24.png | Bin .../PNG/Abstract tiles/abstractTile_25.png | Bin .../PNG/Abstract tiles/abstractTile_26.png | Bin .../PNG/Abstract tiles/abstractTile_27.png | Bin .../PNG/Abstract tiles/abstractTile_28.png | Bin .../PNG/Abstract tiles/abstractTile_29.png | Bin .../PNG/Abstract tiles/abstractTile_30.png | Bin .../PNG/Abstract tiles/abstractTile_31.png | Bin .../PNG/Abstract tiles/abstractTile_32.png | Bin .../PNG/Platformer tiles/Thumbs.db | Bin .../Platformer tiles/platformerTile_01.png | Bin .../Platformer tiles/platformerTile_02.png | Bin .../Platformer tiles/platformerTile_03.png | Bin .../Platformer tiles/platformerTile_04.png | Bin .../Platformer tiles/platformerTile_05.png | Bin .../Platformer tiles/platformerTile_06.png | Bin .../Platformer tiles/platformerTile_07.png | Bin .../Platformer tiles/platformerTile_08.png | Bin .../Platformer tiles/platformerTile_09.png | Bin .../Platformer tiles/platformerTile_10.png | Bin .../Platformer tiles/platformerTile_11.png | Bin .../Platformer tiles/platformerTile_12.png | Bin .../Platformer tiles/platformerTile_13.png | Bin .../Platformer tiles/platformerTile_14.png | Bin .../Platformer tiles/platformerTile_15.png | Bin .../Platformer tiles/platformerTile_16.png | Bin .../Platformer tiles/platformerTile_17.png | Bin .../Platformer tiles/platformerTile_18.png | Bin .../Platformer tiles/platformerTile_19.png | Bin .../Platformer tiles/platformerTile_20.png | Bin .../Platformer tiles/platformerTile_21.png | Bin .../Platformer tiles/platformerTile_22.png | Bin .../Platformer tiles/platformerTile_23.png | Bin .../Platformer tiles/platformerTile_24.png | Bin .../Platformer tiles/platformerTile_25.png | Bin .../Platformer tiles/platformerTile_26.png | Bin .../Platformer tiles/platformerTile_27.png | Bin .../Platformer tiles/platformerTile_28.png | Bin .../Platformer tiles/platformerTile_29.png | Bin .../Platformer tiles/platformerTile_30.png | Bin .../Platformer tiles/platformerTile_31.png | Bin .../Platformer tiles/platformerTile_32.png | Bin .../Platformer tiles/platformerTile_33.png | Bin .../Platformer tiles/platformerTile_34.png | Bin .../Platformer tiles/platformerTile_35.png | Bin .../Platformer tiles/platformerTile_36.png | Bin .../Platformer tiles/platformerTile_37.png | Bin .../Platformer tiles/platformerTile_38.png | Bin .../Platformer tiles/platformerTile_39.png | Bin .../Platformer tiles/platformerTile_40.png | Bin .../Platformer tiles/platformerTile_41.png | Bin .../Platformer tiles/platformerTile_42.png | Bin .../Platformer tiles/platformerTile_43.png | Bin .../Platformer tiles/platformerTile_44.png | Bin .../Platformer tiles/platformerTile_45.png | Bin .../Platformer tiles/platformerTile_46.png | Bin .../Platformer tiles/platformerTile_47.png | Bin .../Platformer tiles/platformerTile_48.png | Bin .../assets/isometric-blocks/PNG/Thumbs.db | Bin .../PNG/Voxel tiles/Thumbs.db | Bin .../PNG/Voxel tiles/voxelTile_01.png | Bin .../PNG/Voxel tiles/voxelTile_02.png | Bin .../PNG/Voxel tiles/voxelTile_03.png | Bin .../PNG/Voxel tiles/voxelTile_04.png | Bin .../PNG/Voxel tiles/voxelTile_05.png | Bin .../PNG/Voxel tiles/voxelTile_06.png | Bin .../PNG/Voxel tiles/voxelTile_07.png | Bin .../PNG/Voxel tiles/voxelTile_08.png | Bin .../PNG/Voxel tiles/voxelTile_09.png | Bin .../PNG/Voxel tiles/voxelTile_10.png | Bin .../PNG/Voxel tiles/voxelTile_11.png | Bin .../PNG/Voxel tiles/voxelTile_12.png | Bin .../PNG/Voxel tiles/voxelTile_13.png | Bin .../PNG/Voxel tiles/voxelTile_14.png | Bin .../PNG/Voxel tiles/voxelTile_15.png | Bin .../PNG/Voxel tiles/voxelTile_16.png | Bin .../PNG/Voxel tiles/voxelTile_17.png | Bin .../PNG/Voxel tiles/voxelTile_18.png | Bin .../PNG/Voxel tiles/voxelTile_19.png | Bin .../PNG/Voxel tiles/voxelTile_20.png | Bin .../PNG/Voxel tiles/voxelTile_21.png | Bin .../PNG/Voxel tiles/voxelTile_22.png | Bin .../PNG/Voxel tiles/voxelTile_23.png | Bin .../PNG/Voxel tiles/voxelTile_24.png | Bin .../PNG/Voxel tiles/voxelTile_25.png | Bin .../PNG/Voxel tiles/voxelTile_26.png | Bin .../PNG/Voxel tiles/voxelTile_27.png | Bin .../PNG/Voxel tiles/voxelTile_28.png | Bin .../PNG/Voxel tiles/voxelTile_29.png | Bin .../PNG/Voxel tiles/voxelTile_30.png | Bin .../PNG/Voxel tiles/voxelTile_31.png | Bin .../PNG/Voxel tiles/voxelTile_32.png | Bin .../PNG/Voxel tiles/voxelTile_33.png | Bin .../PNG/Voxel tiles/voxelTile_34.png | Bin .../PNG/Voxel tiles/voxelTile_35.png | Bin .../PNG/Voxel tiles/voxelTile_36.png | Bin .../PNG/Voxel tiles/voxelTile_37.png | Bin .../PNG/Voxel tiles/voxelTile_38.png | Bin .../PNG/Voxel tiles/voxelTile_39.png | Bin .../PNG/Voxel tiles/voxelTile_40.png | Bin .../PNG/Voxel tiles/voxelTile_41.png | Bin .../PNG/Voxel tiles/voxelTile_42.png | Bin .../PNG/Voxel tiles/voxelTile_43.png | Bin .../PNG/Voxel tiles/voxelTile_44.png | Bin .../PNG/Voxel tiles/voxelTile_45.png | Bin .../PNG/Voxel tiles/voxelTile_46.png | Bin .../PNG/Voxel tiles/voxelTile_47.png | Bin .../PNG/Voxel tiles/voxelTile_48.png | Bin .../PNG/Voxel tiles/voxelTile_49.png | Bin .../PNG/Voxel tiles/voxelTile_50.png | Bin .../PNG/Voxel tiles/voxelTile_51.png | Bin .../PNG/Voxel tiles/voxelTile_52.png | Bin .../PNG/Voxel tiles/voxelTile_53.png | Bin .../PNG/Voxel tiles/voxelTile_54.png | Bin .../PNG/Voxel tiles/voxelTile_55.png | Bin .../assets/isometric-blocks/Preview.png | Bin .../isometric-blocks/Preview_KenneyNL.png | Bin .../assets/isometric-blocks/Sample.png | Bin .../Spritesheet/abstractTiles_sheet.png | Bin .../Spritesheet/abstractTiles_sheet.xml | 0 .../Spritesheet/allTiles_sheet.png | Bin .../Spritesheet/allTiles_sheet.xml | 0 .../Spritesheet/platformerTiles_sheet.png | Bin .../Spritesheet/platformerTiles_sheet.xml | 0 .../Spritesheet/voxelTiles_sheet.png | Bin .../Spritesheet/voxelTiles_sheet.xml | 0 .../isometric-blocks/Tilesheet/Thumbs.db | Bin .../Tilesheet/tilesheet_complete.png | Bin .../Tilesheet/tilesheet_complete_2X.png | Bin .../Vector/vector_complete.svg | 0 .../Vector/vector_complete.swf | Bin .../formats/assets/isometric/Spritesheet.png | Bin 0 -> 788330 bytes .../kenny-rpg-urban-pack/Instructions.url | 0 .../assets/kenny-rpg-urban-pack/Kenney.url | 0 .../Kenny RPG Urban Pack.tsx | 0 .../assets/kenny-rpg-urban-pack/License.txt | 0 .../assets/kenny-rpg-urban-pack/Patreon.url | 0 .../kenny-rpg-urban-pack/tilemap_packed.png | Bin example/{ => formats}/assets/margin.png | Bin .../Donate on Itch.io.url | 0 .../Donate on Steam.url | 0 .../roguelike-modern-city-pack/Facebook.url | 0 .../roguelike-modern-city-pack/License.txt | 0 .../roguelike-modern-city-pack/Preview.png | Bin .../roguelike-modern-city-pack/Sample.png | Bin .../roguelikeCity_transparent.png | Bin .../spritesheetInfo.txt | 0 example/{ => formats}/collider.tmx | 2 +- example/{ => formats}/cubes.tsx | 2 +- example/{ => formats}/example-city-base64.tmx | 0 .../example-city-external-tsx.tmx | 0 example/{ => formats}/example-city-gzip.tmx | 0 example/{ => formats}/example-city-zlib.tmx | 0 example/{ => formats}/example-city-zstd.tmx | 10 +- example/{ => formats}/example-city.json | 0 example/formats/example-city.tmj | 3051 +++ example/{ => formats}/example-city.tmx | 2 +- example/{ => formats}/example-isometric.tmx | 2 +- example/{ => formats}/external-collection.tsx | 0 .../{ => formats}/external-collsion-json.tsj | 0 example/formats/external-kenny.tsx | 11 + example/formats/external-tsj.tsj | 74 + example/formats/external.tsj | 220 + example/{game.ts => formats/formats.ts} | 123 +- example/formats/greencube.tx | 5 + example/formats/heart.tj | 18 + example/{ => formats}/index.html | 4 +- example/{ => formats}/margin.tmx | 2 +- example/{ => formats}/player-cube.png | Bin example/{ => formats}/test-gzip.json | 0 example/{ => formats}/test-spacing.json | 4 +- example/{ => formats}/test-v1-external.json | 0 example/{ => formats}/test-v1.json | 0 example/{ => formats}/test-zlib.json | 0 example/{ => formats}/test.json | 0 example/formats/test.tmx | 110 + example/{ => formats}/tilemap-collider.png | Bin example/{ => formats}/tilemap-v1.tmx | 0 example/{ => formats}/tilemap.json | 0 example/{ => formats}/tilemap.png | Bin .../Isometric_MedievalFantasy_Tiles.png | Bin 0 -> 14545 bytes .../external-iso-fantasy.tsx | 10 + example/isometric-infinite/index.html | 15 + .../isometric-infinite/isometric-infinite.tmj | 752 + .../isometric-infinite/isometric-infinite.tmx | 263 + .../isometric-infinite/isometric-infinite.ts | 67 + .../isometric-infinite/isometric-template.tx | 5 + .../Isometric_MedievalFantasy_Tiles.png | Bin 0 -> 14545 bytes example/isometric/external-fantasy.tsx | 26 + example/isometric/external-iso-fantasy.tsx | 10 + example/isometric/index.html | 15 + example/isometric/isometric-template.tx | 5 + example/isometric/isometric.tmx | 198 + example/isometric/isometric.ts | 128 + example/orthogonal-infinite/coin.tx | 9 + .../orthogonal-infinite/external-fantasy.tsx | 30 + example/orthogonal-infinite/index.html | 15 + .../orthogonal-infinite.tmx | 445 + .../orthogonal-infinite.ts | 92 + .../orthogonal-infinite/tilemap_packed.png | Bin 0 -> 5049 bytes example/orthogonal/coin.tx | 9 + example/orthogonal/external-fantasy.tsx | 30 + example/orthogonal/index.html | 15 + example/orthogonal/orthogonal.tmx | 79 + example/orthogonal/orthogonal.ts | 92 + example/orthogonal/tilemap_packed.png | Bin 0 -> 5049 bytes example/tilemap-collider.aseprite | Bin 609 -> 0 bytes example/tilemap.tmx | 62 - files.d.ts | 33 +- karma.conf.js | 16 +- package-lock.json | 20238 +++++++++------- package.json | 149 +- playwright.config.ts | 86 + src/deprecated.ts | 1 + src/deprecated/index.ts | 17 + src/{ => deprecated}/raw-tiled-layer.ts | 4 +- src/{ => deprecated}/raw-tiled-map.ts | 1 + src/{ => deprecated}/raw-tiled-object.ts | 4 +- src/{ => deprecated}/raw-tiled-text.ts | 4 +- src/{ => deprecated}/raw-tiled-tileset.ts | 3 + src/{ => deprecated}/raw-tileset-tile.ts | 4 +- src/{ => deprecated}/tiled-entity.ts | 4 + src/{ => deprecated}/tiled-layer-component.ts | 3 + src/{ => deprecated}/tiled-layer.ts | 8 +- src/{ => deprecated}/tiled-map-parser.ts | 5 + src/{ => deprecated}/tiled-map-resource.ts | 14 +- .../tiled-object-component.ts | 3 + src/{ => deprecated}/tiled-object.ts | 19 + src/{ => deprecated}/tiled-tileset.ts | 15 +- src/{ => deprecated}/tiled-types.ts | 48 +- src/index.ts | 39 +- src/parser/tiled-parser.ts | 1003 + src/resource/decoder.ts | 129 + src/resource/excalibur-properties.ts | 42 + src/resource/file-loader.ts | 12 + src/resource/filter-util.ts | 47 + src/resource/gid-util.ts | 41 + src/resource/image-layer.ts | 50 + src/resource/iso-tile-layer.ts | 233 + src/resource/layer.ts | 25 + src/resource/loader-cache.ts | 50 + src/resource/object-layer.ts | 321 + src/resource/objects.ts | 295 + src/resource/path-util.ts | 70 + src/resource/properties.ts | 31 + src/resource/template-resource.ts | 99 + src/resource/template.ts | 30 + src/resource/tile-layer.ts | 252 + src/resource/tiled-data-component.ts | 15 + src/resource/tiled-layer-component.ts | 16 + src/resource/tiled-resource.ts | 733 + src/resource/tileset-resource.ts | 114 + src/resource/tileset.ts | 369 + .../ex-tests.ts | 0 .../images/expected-loaded.png | Bin .../images/expected-play-isometric.png | Bin .../images/expected-play-margin.tmx.png | Bin .../images/expected-play-test-spacing.png | Bin .../images/expected-play-v0-gzip.png | Bin .../images/expected-play-v0-zlib.png | Bin .../images/expected-play-v0.png | Bin .../expected-play-v1-external-tileset.png | Bin .../images/expected-play-v1-external.png | Bin .../images/expected-play-v1.png | Bin .../images/expected-play.png | Bin test/integration/formats.spec.ts | 93 + .../collider-tmx-1-chromium-linux.png | Bin 0 -> 3600 bytes .../collider-tmx-1-chromium-win32.png | Bin 0 -> 3600 bytes .../collider-tmx-1-firefox-linux.png | Bin 0 -> 13715 bytes .../collider-tmx-1-firefox-win32.png | Bin 0 -> 13715 bytes .../collider-tmx-1-webkit-linux.png | Bin 0 -> 3135 bytes .../collider-tmx-1-webkit-win32.png | Bin 0 -> 3122 bytes ...ample-city-base64-tmx-1-chromium-linux.png | Bin 0 -> 12674 bytes ...ample-city-base64-tmx-1-chromium-win32.png | Bin 0 -> 12674 bytes ...xample-city-base64-tmx-1-firefox-linux.png | Bin 0 -> 31092 bytes ...xample-city-base64-tmx-1-firefox-win32.png | Bin 0 -> 31092 bytes ...example-city-base64-tmx-1-webkit-linux.png | Bin 0 -> 11584 bytes ...example-city-base64-tmx-1-webkit-win32.png | Bin 0 -> 11128 bytes ...city-external-tsx-tmx-1-chromium-linux.png | Bin 0 -> 12674 bytes ...city-external-tsx-tmx-1-chromium-win32.png | Bin 0 -> 12674 bytes ...-city-external-tsx-tmx-1-firefox-linux.png | Bin 0 -> 31092 bytes ...-city-external-tsx-tmx-1-firefox-win32.png | Bin 0 -> 31092 bytes ...e-city-external-tsx-tmx-1-webkit-linux.png | Bin 0 -> 11584 bytes ...e-city-external-tsx-tmx-1-webkit-win32.png | Bin 0 -> 11128 bytes ...example-city-gzip-tmx-1-chromium-linux.png | Bin 0 -> 12674 bytes ...example-city-gzip-tmx-1-chromium-win32.png | Bin 0 -> 12674 bytes .../example-city-gzip-tmx-1-firefox-linux.png | Bin 0 -> 31092 bytes .../example-city-gzip-tmx-1-firefox-win32.png | Bin 0 -> 31092 bytes .../example-city-gzip-tmx-1-webkit-linux.png | Bin 0 -> 11584 bytes .../example-city-gzip-tmx-1-webkit-win32.png | Bin 0 -> 11128 bytes .../example-city-json-1-chromium-linux.png | Bin 0 -> 12674 bytes .../example-city-json-1-chromium-win32.png | Bin 0 -> 12674 bytes .../example-city-json-1-firefox-linux.png | Bin 0 -> 31092 bytes .../example-city-json-1-firefox-win32.png | Bin 0 -> 31092 bytes .../example-city-json-1-webkit-linux.png | Bin 0 -> 11584 bytes .../example-city-json-1-webkit-win32.png | Bin 0 -> 11128 bytes .../example-city-tmx-1-chromium-linux.png | Bin 0 -> 12674 bytes .../example-city-tmx-1-chromium-win32.png | Bin 0 -> 12674 bytes .../example-city-tmx-1-firefox-linux.png | Bin 0 -> 31092 bytes .../example-city-tmx-1-firefox-win32.png | Bin 0 -> 31092 bytes .../example-city-tmx-1-webkit-linux.png | Bin 0 -> 11584 bytes .../example-city-tmx-1-webkit-win32.png | Bin 0 -> 11128 bytes ...example-city-zlib-tmx-1-chromium-linux.png | Bin 0 -> 12674 bytes ...example-city-zlib-tmx-1-chromium-win32.png | Bin 0 -> 12674 bytes .../example-city-zlib-tmx-1-firefox-linux.png | Bin 0 -> 31092 bytes .../example-city-zlib-tmx-1-firefox-win32.png | Bin 0 -> 31092 bytes .../example-city-zlib-tmx-1-webkit-linux.png | Bin 0 -> 11584 bytes .../example-city-zlib-tmx-1-webkit-win32.png | Bin 0 -> 11128 bytes ...example-city-zstd-tmx-1-chromium-win32.png | Bin 0 -> 16293 bytes .../example-city-zstd-tmx-1-firefox-win32.png | Bin 0 -> 45105 bytes .../margin-tmx-1-chromium-linux.png | Bin 0 -> 4143 bytes .../margin-tmx-1-chromium-win32.png | Bin 0 -> 4143 bytes .../margin-tmx-1-firefox-linux.png | Bin 0 -> 14179 bytes .../margin-tmx-1-firefox-win32.png | Bin 0 -> 14179 bytes .../margin-tmx-1-webkit-linux.png | Bin 0 -> 3561 bytes .../margin-tmx-1-webkit-win32.png | Bin 0 -> 3567 bytes .../test-gzip-json-1-chromium-linux.png | Bin 0 -> 7494 bytes .../test-gzip-json-1-chromium-win32.png | Bin 0 -> 7494 bytes .../test-gzip-json-1-firefox-linux.png | Bin 0 -> 25457 bytes .../test-gzip-json-1-firefox-win32.png | Bin 0 -> 25457 bytes .../test-gzip-json-1-webkit-linux.png | Bin 0 -> 6845 bytes .../test-gzip-json-1-webkit-win32.png | Bin 0 -> 6563 bytes .../test-spacing-json-1-chromium-linux.png | Bin 0 -> 7696 bytes .../test-spacing-json-1-chromium-win32.png | Bin 0 -> 7696 bytes .../test-spacing-json-1-firefox-linux.png | Bin 0 -> 25582 bytes .../test-spacing-json-1-firefox-win32.png | Bin 0 -> 25582 bytes .../test-spacing-json-1-webkit-linux.png | Bin 0 -> 6863 bytes .../test-spacing-json-1-webkit-win32.png | Bin 0 -> 6619 bytes ...test-v1-external-json-1-chromium-linux.png | Bin 0 -> 7184 bytes ...test-v1-external-json-1-chromium-win32.png | Bin 0 -> 7184 bytes .../test-v1-external-json-1-firefox-linux.png | Bin 0 -> 25187 bytes .../test-v1-external-json-1-firefox-win32.png | Bin 0 -> 25187 bytes .../test-v1-external-json-1-webkit-linux.png | Bin 0 -> 6622 bytes .../test-v1-external-json-1-webkit-win32.png | Bin 0 -> 6344 bytes .../test-v1-json-1-chromium-linux.png | Bin 0 -> 6263 bytes .../test-v1-json-1-chromium-win32.png | Bin 0 -> 6263 bytes .../test-v1-json-1-firefox-linux.png | Bin 0 -> 20740 bytes .../test-v1-json-1-firefox-win32.png | Bin 0 -> 20740 bytes .../test-v1-json-1-webkit-linux.png | Bin 0 -> 5639 bytes .../test-v1-json-1-webkit-win32.png | Bin 0 -> 5456 bytes .../test-zlib-json-1-chromium-linux.png | Bin 0 -> 7494 bytes .../test-zlib-json-1-chromium-win32.png | Bin 0 -> 7494 bytes .../test-zlib-json-1-firefox-linux.png | Bin 0 -> 25457 bytes .../test-zlib-json-1-firefox-win32.png | Bin 0 -> 25457 bytes .../test-zlib-json-1-webkit-linux.png | Bin 0 -> 6845 bytes .../test-zlib-json-1-webkit-win32.png | Bin 0 -> 6563 bytes test/integration/isometric-infinite.spec.ts | 9 + ...tric-infinite-matches-1-chromium-linux.png | Bin 0 -> 31178 bytes ...tric-infinite-matches-1-chromium-win32.png | Bin 0 -> 31178 bytes ...etric-infinite-matches-1-firefox-linux.png | Bin 0 -> 83473 bytes ...etric-infinite-matches-1-firefox-win32.png | Bin 0 -> 64548 bytes ...metric-infinite-matches-1-webkit-linux.png | Bin 0 -> 27089 bytes ...metric-infinite-matches-1-webkit-win32.png | Bin 0 -> 26109 bytes test/integration/isometric.spec.ts | 9 + .../isometric-matches-1-chromium-linux.png | Bin 0 -> 52337 bytes .../isometric-matches-1-chromium-win32.png | Bin 0 -> 52337 bytes .../isometric-matches-1-firefox-linux.png | Bin 0 -> 116728 bytes .../isometric-matches-1-firefox-win32.png | Bin 0 -> 77718 bytes .../isometric-matches-1-webkit-linux.png | Bin 0 -> 45730 bytes .../isometric-matches-1-webkit-win32.png | Bin 0 -> 44078 bytes test/integration/orthogonal-infinite.spec.ts | 9 + ...onal-infinite-matches-1-chromium-linux.png | Bin 0 -> 15421 bytes ...onal-infinite-matches-1-chromium-win32.png | Bin 0 -> 15421 bytes ...gonal-infinite-matches-1-firefox-linux.png | Bin 0 -> 50073 bytes ...gonal-infinite-matches-1-firefox-win32.png | Bin 0 -> 36264 bytes ...ogonal-infinite-matches-1-webkit-linux.png | Bin 0 -> 13314 bytes ...ogonal-infinite-matches-1-webkit-win32.png | Bin 0 -> 13022 bytes test/integration/orthogonal.spec.ts | 9 + .../orthogonal-matches-1-chromium-linux.png | Bin 0 -> 12908 bytes .../orthogonal-matches-1-chromium-win32.png | Bin 0 -> 12908 bytes .../orthogonal-matches-1-firefox-linux.png | Bin 0 -> 43895 bytes .../orthogonal-matches-1-firefox-win32.png | Bin 0 -> 40061 bytes .../orthogonal-matches-1-webkit-linux.png | Bin 0 -> 11521 bytes .../orthogonal-matches-1-webkit-win32.png | Bin 0 -> 11154 bytes test/unit-old/_boot.ts | 3 + test/{unit => unit-old}/animation.tmx | 0 .../kenny-rpg-urban-pack/Instructions.url | 0 .../assets/kenny-rpg-urban-pack/Kenney.url | 0 .../Kenny RPG Urban Pack.tsx | 0 .../assets/kenny-rpg-urban-pack/License.txt | 0 .../assets/kenny-rpg-urban-pack/Patreon.url | 0 .../kenny-rpg-urban-pack/tilemap_packed.png | Bin .../assets/platformerTile_40.png | Bin .../assets/platformerTile_48.png | Bin test/{unit => unit-old}/basic.json | 0 test/{unit => unit-old}/basic.tmx | 0 test/{unit => unit-old}/camera.tmx | 0 .../collection-external.tsj | 0 .../collection-external.tsx | 0 test/{unit => unit-old}/gzip.tmx | 0 test/{unit => unit-old}/layer-zindex.tmx | 0 test/{unit => unit-old}/objects.json | 0 test/{unit => unit-old}/objects.tmx | 0 test/{unit => unit-old}/parallax.tmx | 0 test/{unit => unit-old}/solid.tmx | 0 test/{unit => unit-old}/test.tmx | 0 test/{unit => unit-old}/tiled-entity.spec.ts | 2 +- .../tiled-layer-component.spec.ts | 2 +- test/{unit => unit-old}/tiled-layer.spec.ts | 2 +- .../tiled-map-resource.spec.ts | 2 +- test/{unit => unit-old}/tiled-map.spec.ts | 2 +- .../tiled-object-component.spec.ts | 2 +- test/{unit => unit-old}/tiled-tileset.spec.ts | 2 +- .../tileset-with-collection.tmj | 0 .../tileset-with-collection.tmx | 0 test/{unit => unit-old}/tileset.tsx | 0 .../tilesetWithAnimation.tsj | 0 .../tilesetWithAnimation.tsx | 0 test/{unit => unit-old}/zlib.tmx | 0 test/{unit => unit-old}/zstd.tmx | 0 test/unit/parser.spec.ts | 110 + test/unit/pathMap.spec.ts | 31 + test/unit/template-resource.spec.ts | 62 + test/unit/tiled-resource.spec.ts | 413 + test/unit/tiled/parser-spec/Cloud.png | Bin 0 -> 951 bytes test/unit/tiled/parser-spec/collection.tsj | 66 + test/unit/tiled/parser-spec/collection.tsx | 28 + test/unit/tiled/parser-spec/external.tsj | 147 + test/unit/tiled/parser-spec/external.tsx | 39 + .../unit/tiled/parser-spec/iso-collection.tsj | 89 + .../unit/tiled/parser-spec/iso-collection.tsx | 34 + test/unit/tiled/parser-spec/isometric.png | Bin 0 -> 788330 bytes test/unit/tiled/parser-spec/isometric.tsj | 47 + test/unit/tiled/parser-spec/isometric.tsx | 13 + test/unit/tiled/parser-spec/isometric2.png | Bin 0 -> 14545 bytes .../tiled/parser-spec/orthogonal-complex.tmj | 501 + .../tiled/parser-spec/orthogonal-complex.tmx | 173 + .../tiled/parser-spec/orthogonal-infinite.tmj | 350 + .../tiled/parser-spec/orthogonal-infinite.tmx | 146 + .../tiled/parser-spec/orthogonal-simple.tmj | 156 + .../tiled/parser-spec/orthogonal-simple.tmx | 74 + test/unit/tiled/parser-spec/readme.md | 2 + .../unit/tiled/parser-spec/simple-tileset.tsx | 4 + .../tile-images/abstractTile_12.png | Bin 0 -> 2881 bytes .../tile-images/abstractTile_13.png | Bin 0 -> 1811 bytes .../tile-images/abstractTile_14.png | Bin 0 -> 2411 bytes .../tile-images/abstractTile_15.png | Bin 0 -> 2498 bytes .../tile-images/abstractTile_27.png | Bin 0 -> 2754 bytes .../tile-images/abstractTile_28.png | Bin 0 -> 3603 bytes .../tile-images/abstractTile_29.png | Bin 0 -> 3567 bytes .../tile-images/abstractTile_30.png | Bin 0 -> 2717 bytes .../unit/tiled/parser-spec/tilemap_packed.png | Bin 0 -> 5049 bytes .../unit/tiled/template-resource-spec/coin.tx | 9 + .../external-fantasy.tsx | 30 + .../tiled/template-resource-spec/template.tx | 9 + .../template-resource-spec/tilemap_packed.png | Bin 0 -> 5049 bytes .../tiled/tiled-resource-spec/badversion.tmx | 108 + test/unit/tiled/tiled-resource-spec/coin.tx | 9 + .../tiled-resource-spec/external-fantasy.tsj | 171 + .../tiled-resource-spec/external-fantasy.tsx | 30 + .../unit/tiled/tiled-resource-spec/index.html | 15 + .../tiled/tiled-resource-spec/invalid.tmx | 108 + .../tiled/tiled-resource-spec/newversion.tmx | 108 + .../tiled/tiled-resource-spec/orthogonal.tmx | 108 + .../tiled-resource-spec/tilemap_packed.png | Bin 0 -> 5049 bytes .../external-fantasy.tsj | 171 + .../external-fantasy.tsx | 30 + .../tileset-resource-spec/tilemap_packed.png | Bin 0 -> 5049 bytes test/unit/tileset-resource.spec.ts | 41 + tsconfig.json | 7 +- webpack.config.test.js | 73 +- 493 files changed, 24894 insertions(+), 9809 deletions(-) create mode 100644 .github/workflows/playwright.yml create mode 100644 example/formats/assets/Isometric_MedievalFantasy_Tiles.png rename example/{ => formats}/assets/isometric-blocks/License.txt (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/Thumbs.db (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_01.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_02.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_03.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_04.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_05.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_06.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_07.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_08.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_09.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_10.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_11.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_12.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_13.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_14.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_15.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_16.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_17.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_18.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_19.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_20.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_21.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_22.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_23.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_24.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_25.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_26.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_27.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_28.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_29.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_30.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_31.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Abstract tiles/abstractTile_32.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/Thumbs.db (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_01.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_02.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_03.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_04.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_05.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_06.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_07.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_08.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_09.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_10.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_11.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_12.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_13.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_14.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_15.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_16.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_17.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_18.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_19.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_20.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_21.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_22.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_23.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_24.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_25.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_26.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_27.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_28.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_29.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_30.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_31.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_32.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_33.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_34.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_35.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_36.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_37.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_38.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_39.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_40.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_41.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_42.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_43.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_44.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_45.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_46.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_47.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Platformer tiles/platformerTile_48.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Thumbs.db (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/Thumbs.db (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_01.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_02.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_03.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_04.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_05.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_06.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_07.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_08.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_09.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_10.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_11.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_12.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_13.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_14.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_15.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_16.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_17.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_18.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_19.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_20.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_21.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_22.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_23.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_24.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_25.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_26.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_27.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_28.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_29.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_30.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_31.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_32.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_33.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_34.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_35.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_36.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_37.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_38.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_39.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_40.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_41.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_42.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_43.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_44.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_45.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_46.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_47.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_48.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_49.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_50.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_51.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_52.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_53.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_54.png (100%) rename example/{ => formats}/assets/isometric-blocks/PNG/Voxel tiles/voxelTile_55.png (100%) rename example/{ => formats}/assets/isometric-blocks/Preview.png (100%) rename example/{ => formats}/assets/isometric-blocks/Preview_KenneyNL.png (100%) rename example/{ => formats}/assets/isometric-blocks/Sample.png (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/abstractTiles_sheet.png (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/abstractTiles_sheet.xml (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/allTiles_sheet.png (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/allTiles_sheet.xml (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/platformerTiles_sheet.png (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/platformerTiles_sheet.xml (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/voxelTiles_sheet.png (100%) rename example/{ => formats}/assets/isometric-blocks/Spritesheet/voxelTiles_sheet.xml (100%) rename example/{ => formats}/assets/isometric-blocks/Tilesheet/Thumbs.db (100%) rename example/{ => formats}/assets/isometric-blocks/Tilesheet/tilesheet_complete.png (100%) rename example/{ => formats}/assets/isometric-blocks/Tilesheet/tilesheet_complete_2X.png (100%) rename example/{ => formats}/assets/isometric-blocks/Vector/vector_complete.svg (100%) rename example/{ => formats}/assets/isometric-blocks/Vector/vector_complete.swf (100%) create mode 100644 example/formats/assets/isometric/Spritesheet.png rename example/{ => formats}/assets/kenny-rpg-urban-pack/Instructions.url (100%) rename example/{ => formats}/assets/kenny-rpg-urban-pack/Kenney.url (100%) rename example/{ => formats}/assets/kenny-rpg-urban-pack/Kenny RPG Urban Pack.tsx (100%) rename example/{ => formats}/assets/kenny-rpg-urban-pack/License.txt (100%) rename example/{ => formats}/assets/kenny-rpg-urban-pack/Patreon.url (100%) rename example/{ => formats}/assets/kenny-rpg-urban-pack/tilemap_packed.png (100%) rename example/{ => formats}/assets/margin.png (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/Donate on Itch.io.url (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/Donate on Steam.url (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/Facebook.url (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/License.txt (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/Preview.png (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/Sample.png (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/roguelikeCity_transparent.png (100%) rename example/{ => formats}/assets/roguelike-modern-city-pack/spritesheetInfo.txt (100%) rename example/{ => formats}/collider.tmx (99%) rename example/{ => formats}/cubes.tsx (95%) rename example/{ => formats}/example-city-base64.tmx (100%) rename example/{ => formats}/example-city-external-tsx.tmx (100%) rename example/{ => formats}/example-city-gzip.tmx (100%) rename example/{ => formats}/example-city-zlib.tmx (100%) rename example/{ => formats}/example-city-zstd.tmx (53%) rename example/{ => formats}/example-city.json (100%) create mode 100644 example/formats/example-city.tmj rename example/{ => formats}/example-city.tmx (99%) rename example/{ => formats}/example-isometric.tmx (98%) rename example/{ => formats}/external-collection.tsx (100%) rename example/{ => formats}/external-collsion-json.tsj (100%) create mode 100644 example/formats/external-kenny.tsx create mode 100644 example/formats/external-tsj.tsj create mode 100644 example/formats/external.tsj rename example/{game.ts => formats/formats.ts} (57%) create mode 100644 example/formats/greencube.tx create mode 100644 example/formats/heart.tj rename example/{ => formats}/index.html (96%) rename example/{ => formats}/margin.tmx (99%) rename example/{ => formats}/player-cube.png (100%) rename example/{ => formats}/test-gzip.json (100%) rename example/{ => formats}/test-spacing.json (99%) rename example/{ => formats}/test-v1-external.json (100%) rename example/{ => formats}/test-v1.json (100%) rename example/{ => formats}/test-zlib.json (100%) rename example/{ => formats}/test.json (100%) create mode 100644 example/formats/test.tmx rename example/{ => formats}/tilemap-collider.png (100%) rename example/{ => formats}/tilemap-v1.tmx (100%) rename example/{ => formats}/tilemap.json (100%) rename example/{ => formats}/tilemap.png (100%) create mode 100644 example/isometric-infinite/assets/Isometric_MedievalFantasy_Tiles.png create mode 100644 example/isometric-infinite/external-iso-fantasy.tsx create mode 100644 example/isometric-infinite/index.html create mode 100644 example/isometric-infinite/isometric-infinite.tmj create mode 100644 example/isometric-infinite/isometric-infinite.tmx create mode 100644 example/isometric-infinite/isometric-infinite.ts create mode 100644 example/isometric-infinite/isometric-template.tx create mode 100644 example/isometric/assets/Isometric_MedievalFantasy_Tiles.png create mode 100644 example/isometric/external-fantasy.tsx create mode 100644 example/isometric/external-iso-fantasy.tsx create mode 100644 example/isometric/index.html create mode 100644 example/isometric/isometric-template.tx create mode 100644 example/isometric/isometric.tmx create mode 100644 example/isometric/isometric.ts create mode 100644 example/orthogonal-infinite/coin.tx create mode 100644 example/orthogonal-infinite/external-fantasy.tsx create mode 100644 example/orthogonal-infinite/index.html create mode 100644 example/orthogonal-infinite/orthogonal-infinite.tmx create mode 100644 example/orthogonal-infinite/orthogonal-infinite.ts create mode 100644 example/orthogonal-infinite/tilemap_packed.png create mode 100644 example/orthogonal/coin.tx create mode 100644 example/orthogonal/external-fantasy.tsx create mode 100644 example/orthogonal/index.html create mode 100644 example/orthogonal/orthogonal.tmx create mode 100644 example/orthogonal/orthogonal.ts create mode 100644 example/orthogonal/tilemap_packed.png delete mode 100644 example/tilemap-collider.aseprite delete mode 100644 example/tilemap.tmx create mode 100644 playwright.config.ts create mode 100644 src/deprecated.ts create mode 100644 src/deprecated/index.ts rename src/{ => deprecated}/raw-tiled-layer.ts (99%) rename src/{ => deprecated}/raw-tiled-map.ts (99%) rename src/{ => deprecated}/raw-tiled-object.ts (97%) rename src/{ => deprecated}/raw-tiled-text.ts (97%) rename src/{ => deprecated}/raw-tiled-tileset.ts (98%) rename src/{ => deprecated}/raw-tileset-tile.ts (94%) rename src/{ => deprecated}/tiled-entity.ts (94%) rename src/{ => deprecated}/tiled-layer-component.ts (91%) rename src/{ => deprecated}/tiled-layer.ts (97%) rename src/{ => deprecated}/tiled-map-parser.ts (99%) rename src/{ => deprecated}/tiled-map-resource.ts (99%) rename src/{ => deprecated}/tiled-object-component.ts (91%) rename src/{ => deprecated}/tiled-object.ts (97%) rename src/{ => deprecated}/tiled-tileset.ts (98%) rename src/{ => deprecated}/tiled-types.ts (89%) create mode 100644 src/parser/tiled-parser.ts create mode 100644 src/resource/decoder.ts create mode 100644 src/resource/excalibur-properties.ts create mode 100644 src/resource/file-loader.ts create mode 100644 src/resource/filter-util.ts create mode 100644 src/resource/gid-util.ts create mode 100644 src/resource/image-layer.ts create mode 100644 src/resource/iso-tile-layer.ts create mode 100644 src/resource/layer.ts create mode 100644 src/resource/loader-cache.ts create mode 100644 src/resource/object-layer.ts create mode 100644 src/resource/objects.ts create mode 100644 src/resource/path-util.ts create mode 100644 src/resource/properties.ts create mode 100644 src/resource/template-resource.ts create mode 100644 src/resource/template.ts create mode 100644 src/resource/tile-layer.ts create mode 100644 src/resource/tiled-data-component.ts create mode 100644 src/resource/tiled-layer-component.ts create mode 100644 src/resource/tiled-resource.ts create mode 100644 src/resource/tileset-resource.ts create mode 100644 src/resource/tileset.ts rename test/{integration => integration-old}/ex-tests.ts (100%) rename test/{integration => integration-old}/images/expected-loaded.png (100%) rename test/{integration => integration-old}/images/expected-play-isometric.png (100%) rename test/{integration => integration-old}/images/expected-play-margin.tmx.png (100%) rename test/{integration => integration-old}/images/expected-play-test-spacing.png (100%) rename test/{integration => integration-old}/images/expected-play-v0-gzip.png (100%) rename test/{integration => integration-old}/images/expected-play-v0-zlib.png (100%) rename test/{integration => integration-old}/images/expected-play-v0.png (100%) rename test/{integration => integration-old}/images/expected-play-v1-external-tileset.png (100%) rename test/{integration => integration-old}/images/expected-play-v1-external.png (100%) rename test/{integration => integration-old}/images/expected-play-v1.png (100%) rename test/{integration => integration-old}/images/expected-play.png (100%) create mode 100644 test/integration/formats.spec.ts create mode 100644 test/integration/formats.spec.ts-snapshots/collider-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/collider-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/collider-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/collider-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/collider-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/collider-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-base64-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-base64-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-base64-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-base64-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-base64-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-base64-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-external-tsx-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-external-tsx-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-external-tsx-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-external-tsx-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-external-tsx-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-external-tsx-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-gzip-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-gzip-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-gzip-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-gzip-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-gzip-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-gzip-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-json-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-json-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-json-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-json-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-json-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-json-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zlib-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zlib-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zlib-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zlib-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zlib-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zlib-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zstd-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/example-city-zstd-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/margin-tmx-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/margin-tmx-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/margin-tmx-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/margin-tmx-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/margin-tmx-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/margin-tmx-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-gzip-json-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-gzip-json-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-gzip-json-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-gzip-json-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-gzip-json-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-gzip-json-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-spacing-json-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-spacing-json-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-spacing-json-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-spacing-json-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-spacing-json-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-spacing-json-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-external-json-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-external-json-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-external-json-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-external-json-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-external-json-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-external-json-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-json-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-json-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-json-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-json-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-json-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-v1-json-1-webkit-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-zlib-json-1-chromium-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-zlib-json-1-chromium-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-zlib-json-1-firefox-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-zlib-json-1-firefox-win32.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-zlib-json-1-webkit-linux.png create mode 100644 test/integration/formats.spec.ts-snapshots/test-zlib-json-1-webkit-win32.png create mode 100644 test/integration/isometric-infinite.spec.ts create mode 100644 test/integration/isometric-infinite.spec.ts-snapshots/isometric-infinite-matches-1-chromium-linux.png create mode 100644 test/integration/isometric-infinite.spec.ts-snapshots/isometric-infinite-matches-1-chromium-win32.png create mode 100644 test/integration/isometric-infinite.spec.ts-snapshots/isometric-infinite-matches-1-firefox-linux.png create mode 100644 test/integration/isometric-infinite.spec.ts-snapshots/isometric-infinite-matches-1-firefox-win32.png create mode 100644 test/integration/isometric-infinite.spec.ts-snapshots/isometric-infinite-matches-1-webkit-linux.png create mode 100644 test/integration/isometric-infinite.spec.ts-snapshots/isometric-infinite-matches-1-webkit-win32.png create mode 100644 test/integration/isometric.spec.ts create mode 100644 test/integration/isometric.spec.ts-snapshots/isometric-matches-1-chromium-linux.png create mode 100644 test/integration/isometric.spec.ts-snapshots/isometric-matches-1-chromium-win32.png create mode 100644 test/integration/isometric.spec.ts-snapshots/isometric-matches-1-firefox-linux.png create mode 100644 test/integration/isometric.spec.ts-snapshots/isometric-matches-1-firefox-win32.png create mode 100644 test/integration/isometric.spec.ts-snapshots/isometric-matches-1-webkit-linux.png create mode 100644 test/integration/isometric.spec.ts-snapshots/isometric-matches-1-webkit-win32.png create mode 100644 test/integration/orthogonal-infinite.spec.ts create mode 100644 test/integration/orthogonal-infinite.spec.ts-snapshots/orthogonal-infinite-matches-1-chromium-linux.png create mode 100644 test/integration/orthogonal-infinite.spec.ts-snapshots/orthogonal-infinite-matches-1-chromium-win32.png create mode 100644 test/integration/orthogonal-infinite.spec.ts-snapshots/orthogonal-infinite-matches-1-firefox-linux.png create mode 100644 test/integration/orthogonal-infinite.spec.ts-snapshots/orthogonal-infinite-matches-1-firefox-win32.png create mode 100644 test/integration/orthogonal-infinite.spec.ts-snapshots/orthogonal-infinite-matches-1-webkit-linux.png create mode 100644 test/integration/orthogonal-infinite.spec.ts-snapshots/orthogonal-infinite-matches-1-webkit-win32.png create mode 100644 test/integration/orthogonal.spec.ts create mode 100644 test/integration/orthogonal.spec.ts-snapshots/orthogonal-matches-1-chromium-linux.png create mode 100644 test/integration/orthogonal.spec.ts-snapshots/orthogonal-matches-1-chromium-win32.png create mode 100644 test/integration/orthogonal.spec.ts-snapshots/orthogonal-matches-1-firefox-linux.png create mode 100644 test/integration/orthogonal.spec.ts-snapshots/orthogonal-matches-1-firefox-win32.png create mode 100644 test/integration/orthogonal.spec.ts-snapshots/orthogonal-matches-1-webkit-linux.png create mode 100644 test/integration/orthogonal.spec.ts-snapshots/orthogonal-matches-1-webkit-win32.png create mode 100644 test/unit-old/_boot.ts rename test/{unit => unit-old}/animation.tmx (100%) rename test/{unit => unit-old}/assets/kenny-rpg-urban-pack/Instructions.url (100%) rename test/{unit => unit-old}/assets/kenny-rpg-urban-pack/Kenney.url (100%) rename test/{unit => unit-old}/assets/kenny-rpg-urban-pack/Kenny RPG Urban Pack.tsx (100%) rename test/{unit => unit-old}/assets/kenny-rpg-urban-pack/License.txt (100%) rename test/{unit => unit-old}/assets/kenny-rpg-urban-pack/Patreon.url (100%) rename test/{unit => unit-old}/assets/kenny-rpg-urban-pack/tilemap_packed.png (100%) rename test/{unit => unit-old}/assets/platformerTile_40.png (100%) rename test/{unit => unit-old}/assets/platformerTile_48.png (100%) rename test/{unit => unit-old}/basic.json (100%) rename test/{unit => unit-old}/basic.tmx (100%) rename test/{unit => unit-old}/camera.tmx (100%) rename test/{unit => unit-old}/collection-external.tsj (100%) rename test/{unit => unit-old}/collection-external.tsx (100%) rename test/{unit => unit-old}/gzip.tmx (100%) rename test/{unit => unit-old}/layer-zindex.tmx (100%) rename test/{unit => unit-old}/objects.json (100%) rename test/{unit => unit-old}/objects.tmx (100%) rename test/{unit => unit-old}/parallax.tmx (100%) rename test/{unit => unit-old}/solid.tmx (100%) rename test/{unit => unit-old}/test.tmx (100%) rename test/{unit => unit-old}/tiled-entity.spec.ts (91%) rename test/{unit => unit-old}/tiled-layer-component.spec.ts (93%) rename test/{unit => unit-old}/tiled-layer.spec.ts (95%) rename test/{unit => unit-old}/tiled-map-resource.spec.ts (99%) rename test/{unit => unit-old}/tiled-map.spec.ts (99%) rename test/{unit => unit-old}/tiled-object-component.spec.ts (97%) rename test/{unit => unit-old}/tiled-tileset.spec.ts (99%) rename test/{unit => unit-old}/tileset-with-collection.tmj (100%) rename test/{unit => unit-old}/tileset-with-collection.tmx (100%) rename test/{unit => unit-old}/tileset.tsx (100%) rename test/{unit => unit-old}/tilesetWithAnimation.tsj (100%) rename test/{unit => unit-old}/tilesetWithAnimation.tsx (100%) rename test/{unit => unit-old}/zlib.tmx (100%) rename test/{unit => unit-old}/zstd.tmx (100%) create mode 100644 test/unit/parser.spec.ts create mode 100644 test/unit/pathMap.spec.ts create mode 100644 test/unit/template-resource.spec.ts create mode 100644 test/unit/tiled-resource.spec.ts create mode 100644 test/unit/tiled/parser-spec/Cloud.png create mode 100644 test/unit/tiled/parser-spec/collection.tsj create mode 100644 test/unit/tiled/parser-spec/collection.tsx create mode 100644 test/unit/tiled/parser-spec/external.tsj create mode 100644 test/unit/tiled/parser-spec/external.tsx create mode 100644 test/unit/tiled/parser-spec/iso-collection.tsj create mode 100644 test/unit/tiled/parser-spec/iso-collection.tsx create mode 100644 test/unit/tiled/parser-spec/isometric.png create mode 100644 test/unit/tiled/parser-spec/isometric.tsj create mode 100644 test/unit/tiled/parser-spec/isometric.tsx create mode 100644 test/unit/tiled/parser-spec/isometric2.png create mode 100644 test/unit/tiled/parser-spec/orthogonal-complex.tmj create mode 100644 test/unit/tiled/parser-spec/orthogonal-complex.tmx create mode 100644 test/unit/tiled/parser-spec/orthogonal-infinite.tmj create mode 100644 test/unit/tiled/parser-spec/orthogonal-infinite.tmx create mode 100644 test/unit/tiled/parser-spec/orthogonal-simple.tmj create mode 100644 test/unit/tiled/parser-spec/orthogonal-simple.tmx create mode 100644 test/unit/tiled/parser-spec/readme.md create mode 100644 test/unit/tiled/parser-spec/simple-tileset.tsx create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_12.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_13.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_14.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_15.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_27.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_28.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_29.png create mode 100644 test/unit/tiled/parser-spec/tile-images/abstractTile_30.png create mode 100644 test/unit/tiled/parser-spec/tilemap_packed.png create mode 100644 test/unit/tiled/template-resource-spec/coin.tx create mode 100644 test/unit/tiled/template-resource-spec/external-fantasy.tsx create mode 100644 test/unit/tiled/template-resource-spec/template.tx create mode 100644 test/unit/tiled/template-resource-spec/tilemap_packed.png create mode 100644 test/unit/tiled/tiled-resource-spec/badversion.tmx create mode 100644 test/unit/tiled/tiled-resource-spec/coin.tx create mode 100644 test/unit/tiled/tiled-resource-spec/external-fantasy.tsj create mode 100644 test/unit/tiled/tiled-resource-spec/external-fantasy.tsx create mode 100644 test/unit/tiled/tiled-resource-spec/index.html create mode 100644 test/unit/tiled/tiled-resource-spec/invalid.tmx create mode 100644 test/unit/tiled/tiled-resource-spec/newversion.tmx create mode 100644 test/unit/tiled/tiled-resource-spec/orthogonal.tmx create mode 100644 test/unit/tiled/tiled-resource-spec/tilemap_packed.png create mode 100644 test/unit/tiled/tileset-resource-spec/external-fantasy.tsj create mode 100644 test/unit/tiled/tileset-resource-spec/external-fantasy.tsx create mode 100644 test/unit/tiled/tileset-resource-spec/tilemap_packed.png create mode 100644 test/unit/tileset-resource.spec.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf854f31..206331bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,4 +31,5 @@ jobs: ${{ runner.os }}-node- - run: npm ci - run: npm run build + - run: npx playwright install - run: npm run test diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml new file mode 100644 index 00000000..5156520e --- /dev/null +++ b/.github/workflows/playwright.yml @@ -0,0 +1,27 @@ +name: Playwright Tests +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Install dependencies + run: npm ci + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Run Playwright tests + run: npx playwright test + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 diff --git a/.gitignore b/.gitignore index f5c3cc25..35d631e8 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,9 @@ actual-*.png diff-*.png coverage/ !files.d.ts -!karma.conf.js \ No newline at end of file +!karma.conf.js +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ +*.tiled-session \ No newline at end of file diff --git a/.npmignore b/.npmignore index 6cdfe0bc..41e779c3 100644 --- a/.npmignore +++ b/.npmignore @@ -6,6 +6,9 @@ coverage example node_cache/* test +test-results +playwright-report +readme/* !dist/* **/webpack.config.js **/webpack.config.test.js \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index 1b497a7b..1fb53e10 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16.20.2 \ No newline at end of file +18.14.1 \ No newline at end of file diff --git a/README.md b/README.md index 70719450..944bcc78 100644 --- a/README.md +++ b/README.md @@ -1,291 +1,41 @@ # Tiled Plugin for Excalibur.js -This extension adds support for tile maps from all [Tiled map editor](http://mapeditor.org) files in Excalibur. Use the `TiledMapResource` to load and interact with Tiled based maps! +Tiled is a super useful tool for building game levels across the industry. The Tiled plugin for Excalibur offers support for both Orthogonal (standard) and Isometric maps! -![](./readme/example.gif) - -## Quickstart - -Install using [npm](http://npmjs.org): - -``` -> npm install @excaliburjs/plugin-tiled -``` - -## ES2015 (TS/JS) +The current Tiled plugin aims to support *parsing all data* in the Map (.tmx/.tmj), Tileset (.tsx, .tsj.) and Template files (.tx, tj). The plugin however does not support rendering all map types, currently hexagons and isometric staggered are not supported. -The ES2015 `import` syntax is the recommended way to use Excalibur with Excalibur Tiled and is supported through a module loader like [webpack](https://github.com/excaliburjs/example-ts-webpack) or [Parcel](https://parceljs.org) with TypeScript or Babel: +The plugin officially supports the latest version of Tiled that has been published and will warn if you are using an older version. This is because there have been many breaking changes to the Tiled map format over time that are difficult to reconcile. -```ts -import * as ex from 'excalibur'; -import { TiledMapResource } from '@excaliburjs/plugin-tiled'; - -// Create tiled map resource, pointing to static asset path -const tiledMap = new TiledMapResource("/assets/map.tmx"); - -// Create a loader and reference the map -const loader = new ex.Loader([tiledMap]); - -// Start the game (starts the loader) -game.start(loader).then(function() { - - console.log("Game loaded"); - tiledMap.addTiledMapToScene(game.currentScene); - -}); -``` - -For reference, see this [CodeSandbox sample](https://codesandbox.io/s/excalibur-tiled-example-4f83x?fontsize=14) for a Parcel-based game. - -## Features - -* Parse default Tiled tmx files - - Supports all Tiled compressions zlib, gzip, and zstd -* Parse Tiled exported json files -* Supports external tilesets `.tsx` and `json` -* New TypeScript based object model for working with Tiled data - * Query for layers by property - * Query for objects by property - * Easy helpers to locate Polygons, Polylines, and Text -* Automatic Excalibur wiring for certain Tiled properties and objects: - * Camera - * Colliders - * Solid TileMap Layers - * Tiled Text - * Inserted Tiled Tiles - -### Excalibur Wiring +![](./readme/example.gif) -You may opt-in to the Excalibur wiring by calling `addTiledMapToScene(someScene)` +## Installation -```typescript -// After loading tiledMapResource -tiledMapResource.addTiledMapToScene(game.currentScene); +```sh +npm install --save-exact @excaliburjs/plugin-tiled@next ``` -* **To exclude object layers `"excalibur-exclude"=true`**. - Objects are included by default and can be retrieved with the following - - ```typescript - const objects: TiledObjectGroup[] = tiledMapResource.getObjects(); - ``` - -* **Camera Object Position & Zoom** - You may set the starting camera position and zoom - - ![](./readme/camera.png) - - In an object layer with a custom property "excalibur"=true - - **Note** Only the first Camera in the first "excalibur"=true layer will be used - - Create a Tiled "Point" with the Tiled Class "Camera" - - Optionally, to set zoom other than the default of 1.0, create a custom property named "Zoom" with a numeric value - -* **Solid layers** - You can mark a particular layers tiles as solid in Tiled - - ![](./readme/solid.png) - - In the Tiled layer properties, add a custom property named "Solid" with a boolean value `true` - - The presence of a tile in this layer indicates that space is solid, the absence of a tile means it is not solid - -* **Colliders Objects** - You may position Excalibur colliders within Tiled - ![](./readme/collider.png) - - In an object layer with a custom property "excalibur"=true - - Create a "Circle" (ellipses are not supported) or "Rectangle" - - Set the Tiled Class to "BoxCollider" or "CircleCollider" - - Optionally, to set an Excalibur collision type specify a custom property named "CollisionType" with the value - - "Fixed" (default for colliders) - non-movable object - - "Passive" - triggers events, does not participate in collision - - "Active" - participates in collision and can be pushed around - - "PreventCollision" - all collisions are ignored - -* **Tile Custom Colliders** - You can leverage custom colliders in Tiled and they will be pulled into excalibur - ![Add a tile collider](./readme/tile-collider.png) - - Must be in a layer marked with a custom property named "solid" with a value `true` - - Colliders are "Fixed" - -* **Text** - You may insert excalibur labels within Tiled - ![Example of Tiled text](./readme/text.png) - - In an object layer with a custom property "excalibur"=true - - Create a Tiled Text object - - Optionally, you can set the "ZIndex" as a float custom tiled property - - **âš  A word of caution around fonts âš ** - fonts are different on every operating system (some may not be available to your user unless you explicitly load them into the page with a font loader). See [here for some detail](https://erikonarheim.com/posts/dont-test-fonts/) - -* **Inserted Tile Objects** - You may insert tiles on or off grid in Tiled with inserted tiles - ![Example of an inserted Tile](./readme/insertedtile.png) - - In an object layer with a custom property "excalibur"=true - - Create a Tiled inserted Tile - - Optionally, you can set the "ZIndex" as a float custom tiled property - - Optionally, to set an Excalibur collision type specify a custom property named "CollisionType" with the value - - "Fixed" non-movable object - - "Passive" (default for inserted tiles) - triggers events, does not participate in collision - - "Active" - participates in collision and can be pushed around - - "PreventCollision" - all collisions are ignored - - -* **Tile Animations** - You can leverage tile animations in Tiled and they will be pulled into excalibur - ![Tiled Tile Animation Editor](./readme/animations.png) - -* **Isometric Tile Maps** - Tiled isometric maps now work without any additional configuration! - ![Tiled Isometric](./readme/isometric.png) - -* **Parallax Layers** - Tiled parallax layers are now supported - ![Tiled Layer Parallax Factor](./readme/parallax.png) - -* **Layer offsets** - - ![Tiled Layer Offset](./readme/offset.png) - -## Not Yet Supported Out of the Box - -* Currently Hexagonal maps are not directly supported by Excalibur TileMaps, however the data is still parsed by this plugin and can be used manually by accessing the `RawTiledMap` in `TiledMapResource.data.rawMap` after loading. - -* Excalibur Text is limited at the moment and doesn't support Tiled word wrapping or Tiled text alignment other than the default "Left" horizontal, "Top" vertical alignments. - -* [Layer tinting](https://doc.mapeditor.org/en/latest/manual/layers/#tinting-layers) is not yet supported - -* Image Layers - Tiled image layers are not yet fully supported, but do show up in the `RawTiledMap` so can be used that way. Using inserted [Tile Objects](https://doc.mapeditor.org/fr/latest/manual/layers/#image-layers) is a way to achieve the same effect in a fully supported way. - -* Group Layers - Tiled group layers are not yet supported at all, currently layers in a group do not load. Maps with group layers will load all other layers fine. - -* Infinite maps - Tiled infinite maps are not yet supported, but do show up in the `RawTiledMap`. - -* `RawTiledMap` fully types the Tiled 1.4.3 api, this can be used to write custom code for anything this plugin doesn't yet support. +Create your resource, load it, then add it to your scene! ```typescript +const game = new ex.Engine({...}); -import * as ex from 'excalibur'; -import { TiledMapResource } from '@excaliburjs/plugin-tiled'; - -// Create tiled map resource, pointing to static asset path -const tiledMap = new TiledMapResource("/assets/map.tmx"); +const tiledMap = new TiledResource('./path/to/map.tmx'); -// Create a loader and reference the map const loader = new ex.Loader([tiledMap]); -game.start(loader).then(function() { - - // Access raw data - const rawMap = tiledMap.data.rawMap; - +game.start(loader).then(() => { + tiledMap.addToScene(game.currentScene); }); ``` - - -## Webpack Configuration - -You will need to modify your webpack configuration to load Tiled JSON files using `file-loader` and then ensure any tilemap images are copied to the same output directory as your bundle, see [this example-ts-webpack branch](https://github.com/excaliburjs/example-ts-webpack/tree/feature/excalibur-tiled-with-webpack) for an example. - -## Standalone Script File (JS) - -In your HTML file, add a reference **dist/excalibur-tiled.min.js** in your page: - -```html - - -``` - -and then you can use it like this: - -```js - -// New game -const game = new ex.Engine({ width: 500, height: 400, canvasElementId: "game" }); - -// Create a new TiledMapResource loadable -const tiledMap = new ex.Plugin.Tiled.TiledMapResource("test.tmx"); - -// Create a loader and reference the map -const loader = new ex.Loader([tiledMap]); - -// Start the game (starts the loader) -game.start(loader).then(function() { - - console.log("Game loaded"); - - tiledMap.addTiledMapToScene(game.currentScene); - -}); -``` - -The dist uses a UMD build and will attach itself to the `ex.Plugin.Tiled` global if running in the browser standalone. - ## Documentation -The `TiledMapResource` loadable will load the map file you specify along with any referenced tile set assets (images). - -### Handling Tiled Paths - -The image paths and external tileset paths loaded will be relative to where the exported file was saved. - -For example, let's say this is your source working directory structure when you make your Tiled map: - -``` -work/ - - map.tmx - - map.png - - map.tsx -``` - -The tileset image and/or source are stored next to the TMX file. - -So when you export to JSON, say to **map.json**, Tiled will save the paths like this: - -```js -{ - "tilesets": [ - { - "image": "map.png" - }, - { - "source": "map.tsx" - } - ] -} -``` - -But for your game, your file structure looks like this: - -``` -assets/ - - maps/map.json - - tx/map.png - - tsx/map.tsx -``` - -When your game loads and the extension loads your map file (`/assets/maps/map.tmx`), the paths will be loaded **relative** to the map tmx or any tsx file, so they will return 404 responses: - -``` -GET /assets/maps/map.png -> 404 Not Found -GET /assets/maps/map.tsx -> 404 Not Found -``` - -If you need to override this behavior, you can set `convertPath` to a custom function that takes two parameters: `originPath` and `relativePath` data. - -`originPath` is the path of the original source file (for example the `map.tmx`), and `relativePath` is referenced external fil (for example the `map.tsx`) - -```js -// Create a new TiledResource loadable -var map = new ex.Plugin.Tiled.TiledMapResource("map.tmx"); - -map.convertPath = function (originPath, relativePath) { - return "/assets/tx/" + path; -} -``` - -That will fix the paths: - -``` -GET /assets/tx/map.png -> 200 OK -GET /assets/tsx/map.tsx -> 200 OK -``` - -### Supported Formats - -Supports all currently supported Tiled 1.4.3 formats! - -* TMX - CSV, Base64 + Compressed (`zlib`, `gzip`, and `zstd`) -* JSON Tiled Export +For information on how to use the plugin visit https://beta.excaliburjs.com/docs/plugin/tiled-plugin ## Contributing -- Built with webpack 4 +- Built with webpack 5 - Uses webpack-dev-server To start development server: @@ -302,4 +52,24 @@ To compile only: To run tests: + npx playwright install npm test + +To update snapshots + +* Windows + + ```powershell + npx playwright test --update-snapshots + ``` + +* Linux for CI + + ```powershell + docker run --rm --network host -v C:\projects\excalibur-tiled:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.40.0-jammy /bin/bash + npm install + npx playwright test --update-snapshots + ``` + + + diff --git a/example/formats/assets/Isometric_MedievalFantasy_Tiles.png b/example/formats/assets/Isometric_MedievalFantasy_Tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b7f89481e45fe12352bd8e3579372c0ce2ae9c GIT binary patch literal 14545 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⋙?Oz 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 -r2{`2Syi28LGKS-vA8^!U;JyXU#7o%$DwP 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�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%0A9&BL4pHtT<>Zr%X8zpHW%66_!IQ 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 z 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 z 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�njR}PDQ^<}i2i97V?MVCI3T9{Q^TAjQ@j2T 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�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�{j>MdVz0*n#f;M?utcr0V`*Nj{-2A4I*Dojb^Sj#`R`vm@3Ln? z{(a~F{^#EhVi7aB|Mxrp{u{%$@*%z1qlERh^6bO{^AVrN=`-{=)aCa{y)L3TEvC>> zFRv5bCNh!fjOPaY$6h~Lr5`KmjP#pE!fM%V(h70XNgIXvWH5Z&6nRuVf-gf;7e(JT zU*&IP*sBJWk~VL&`ski6iLsF!tY#FBS*_QSlkYXX);u*SOD>US&uO(D@0jGdx2ZpR zgGQa7{P7U=e;%j*-8009zPjo``1tH;&#V{EH!jx0QYj}u4KSIpN^t*%Q&`n~pzcpr z9BJX!;I{SF8%cNB1?X03LW>z4nz1}^Zkq{O+|Zop!Rc*|%FTV0$jx$KMo zu_X@ZXd~hE{;Wl1f?EY7w7e`Sx|mU3PU}bdXylWKHNh%xQzw2_oY>clCd9yGI60%{ zyxRx~{#EAShoiT4I*#`x^Ihs$ih&7UjYfb+P;6u*P?(S3ozO@my;>S_5Ms>ROVfe^ zwc#6VpfdT-i~c+5niOuVaG;1d{q^&-IKz&+Nh4d}$wY2$qb_VtNs8#x(gzA|?$yRN zZxH2sLQiY&t^D6GPj zbSkzvhF=_nX6Q-fOj1|cLFbCFyc1?e-Y>FuxyY`rw{(ld-E<M5^)hlh0u$#QJJXdjGH{D&h%A8+}vgcLw!TNFDe-KskYXh6|)uLz0C)k$p^i;nuvoYK7%=xog8=V+hOy^_vFHc50q

uDZqm#CJf^J><+_r% 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

Jn3*-L0T;{+@L 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 - + \ No newline at end of file diff --git a/example/cubes.tsx b/example/formats/cubes.tsx similarity index 95% rename from example/cubes.tsx rename to example/formats/cubes.tsx index b115d719..37b6997e 100644 --- a/example/cubes.tsx +++ b/example/formats/cubes.tsx @@ -1,5 +1,5 @@ - + diff --git a/example/example-city-base64.tmx b/example/formats/example-city-base64.tmx similarity index 100% rename from example/example-city-base64.tmx rename to example/formats/example-city-base64.tmx diff --git a/example/example-city-external-tsx.tmx b/example/formats/example-city-external-tsx.tmx similarity index 100% rename from example/example-city-external-tsx.tmx rename to example/formats/example-city-external-tsx.tmx diff --git a/example/example-city-gzip.tmx b/example/formats/example-city-gzip.tmx similarity index 100% rename from example/example-city-gzip.tmx rename to example/formats/example-city-gzip.tmx diff --git a/example/example-city-zlib.tmx b/example/formats/example-city-zlib.tmx similarity index 100% rename from example/example-city-zlib.tmx rename to example/formats/example-city-zlib.tmx diff --git a/example/example-city-zstd.tmx b/example/formats/example-city-zstd.tmx similarity index 53% rename from example/example-city-zstd.tmx rename to example/formats/example-city-zstd.tmx index 228f2f5e..45db8339 100644 --- a/example/example-city-zstd.tmx +++ b/example/formats/example-city-zstd.tmx @@ -1,5 +1,5 @@ - + @@ -8,12 +8,12 @@ - KLUv/WBAmxULALLHGCGASwKiZUg7ZsvWsrXwgrmdu67rapbU4R46WRY5RwBb8z0OhJjLYYqaZNwJgS0F+UZq8AsCA15E8qXsnvQsHim2C0EuM30V7b6vO532N9/H1/Ft/AlEjCcz/OsLv5Zv5S/8GWigQd4FtegdYAIDQwTiNkkpdl6QV2Yvw9yRVRlVhKoeOilVWAo1Emq4H7lIpklWZ4RTvqPEoslSa4SFqqiqhREtGgnlvDdGaVUEVDQSGisuRBbvoWaSRkLlSnL0+9h2bY26faX+RulEo/zFmLoiV2Mmp+4aGWrwu3JVVzlSpwGTqx7Oc8Ft+J5kcA4SdJVT7Ey86srIdzLHMnTVqZxWgpW4IH5bf8P2lB3oLr5zlin5SjylaQdTu/aY+4A5ZPD3lC94tMOp7t2j+633Gk5LL3Znj8pX0lOcdn+H+e269egPLJXPLqoyjJLER+IPhSpOmpwoP4/62/W9rPqp/A== + KLUv/WBAmyULALJHGSOAS9IBRQwtdjrv4/v4gYsGq0zIhEzcaO2zDCfSaEAhYyAkUw6EmMthippk3AmBLQX5RmrwCwIDXkTypeye9CweKbYLQS4zfRXtvq87nfY338fX8W38CUSMJzP86wu/lm/lL/wZaKBB3gW17B1gAiNDJMRtSSl2XpBXZi/D3JFVGVWEqh46KVVYCjUSargfuUimSVZnhFO+o8SiSVVrhIWqqKqFES0aCeW8N0ZpVQRUNBIaKy5EFu/hZ5JGQuVycvT72HZtjbp9pf5G6USj/MWYuiJXYyan7hoZavC7clVXOfKnAZOrHs5zwW34nmRwDhJ0lVPsSrrqgsh3MscydNWpnFaClbggflt/w/aUHeguvnOWKflKPKVpB1O79xj2ATtk8GfKHxj0AVZm95kb1DPNDUkudmWPylfCU5x2f4f57br1SA0slZ8uymU4ksRH5g+VKlianCg/j/rb9b2s+qn8 - KLUv/WBAm5UBAKgAAAEAAAADABwAAAAeACwBNwAAADkJINB7DsX6Do0qMABR1a/jx8lMOFTLoVqOpmdY + KLUv/WBAm50BAKAAAQAAAAMAHAAAAB4ALAE3AAAAOQkgkEO7A8X6Do0qZACiql/Pj5OYcKiWQ6qFNPTtCg== @@ -21,7 +21,7 @@ - KLUv/WBAmy0OADKPKCxAd0kAT3fKjI59ubLm+jIG2yZInz6kG+DCjRVphaNsvLVRxyM9YcrKed33AaTTTls9lvPYvOYxq69c5YLCE0TuUSPjGCN5I4eEHmR6c0fnOWFezupqAb0XznO5vJYVtHbyUn/u8x4L1CvSfOYyz6BUGun1kIP848HhpqNG7+KhHsJBw1OOchXBwAUCWB3n+EbK5CWPYQCnovjEJU4Rh1h0onygAIsAUqIAsAIkExBK2AGh+A0G7tRtn3dxr1BlchJfBaiCwlA5KA6SUjFskmovLPiSmWDhD/RxBd4dxqoZDoK1fndPPukAlX0Asj/e6133k2pqmwscxyLlnTd1VBe8p+HvdMSe1PQDVLaJTS99ZoTOg2biRCZwvN3pCuhbZfMNfZ6snnzKAap4MVdiyZ500lQqhogzDzdiyYtIxD7oNAdUYcVWRfhTCbEnmWYLwZpMCRuREa2Ok0hNcYwqiK3F0iAtVeWTajRspZakQB0mlYYDRHFxNbESjTtSDohqUtOhW0avRY6b7HiWssOwd1dHdmNYTnlNZotCPKLa4mrGXKpZMe75FcRkqDHl8rlz45Ni9EbWAVN/2GVxn7hUtB0JHw== + KLUv/WBAmy0OADKPKCxAd2kMRv8LSrmj7m6l6lWoPKuAaPh8VkTdt3/Rti+zFZXP02b1H+TUhlxApqTTTls9lvPYvOYxq69c5YLCE0TuUSPjGCN5I4eEHmR6c0fnOWFezupqAb0XznO5vJYVtHbyUn/u8x4L1CvSfOYyz6BUGun1kIP848HhpqNG7+KhHsJBw1OOchXBwAUCWB3n+EbK5CWPYQCnovjEJU4Rh1h0onygAIskqmQ5sAIkEySUtAOh+A0G7tRtn3dxr1BlchJfBaiCwlA5KA6SUjNskuovLOiSmWDfD/u46u8KY/UMB8Eqv6snn3qAih8DmR/P9a7aSRVFmwocxyLlnTd1VBe8p+HvdMSe1JQDVNzETy9NZoDOg2biRCZwvN10BelfYfMEP09WTz79AFW9GCuxRE86zVRqQ+TZDzZiyYtIxD74KQeouONXRbhTCbEnmbKFYM2mhIloEK2Kk0hFcYx6EFqLpSAtXbWn1W3OypakQB0mlb4DRG1zfrEalTuyDoh6UtOiW0etaW6b7vI8NaZBLy5H7GBwvNIaHBaFeBylzeWNsWQjZ977S4hJVXnc8e3Oik3O9I2YA6v0lOPafWNDcXS0Yg== @@ -29,7 +29,7 @@ - KLUv/WBAmx0HAEQDAABOAU8H9QhsAYBJAQAASgEAAEsBAAAeAR1P7O0AvgEHAUlOAU68AdcBoQGhvQG9TU0HAU2gQM9FAvACo0xNCh0n9izqEP8f03GWKwHnrNOyKs+Yoq6dl9T9UQmuenpw1F3nrewkPBoeekBUR6m/xGe5Q+xIDHAmUJ8pN9ke0F0MxgKXhOpXLiYlzC2rkimH1HBvFbVZjgScw7mIVEfCs2hDNUk/2K0I3iIOUaxdoRrOp3mmJTUm9PcdciWVOFyHH/dphb9EXKdeWfB8hJZPhTlGlaawp6Cbk5IKHX9YO5kU + KLUv/WBAmxUHADQDAE4BTwf1CGwBgEkBAABKAQAASwEAAB4BHU/s7QC+AQcBSU4BTrwB1wGhAaG9Ab1NTQcBTaBAz2UO8AKjTE06HSf2LOoQ/x6j4yyqqHPWaamKUwxVa+c19Y9oCVePNlwFbvgnOzk+HY8ecNVV/k9hsO4UOxIjcCa4L8qrvCd894NjGZcE1ZGXmQLmFmpqkgM1XFtLbRbRqHM4FyHqSDgv0lA14h67FcL1iUMkyytWh/0Jz7Smjgn8e4VcSdW8bIOM+4SK3hDXKa8WPB+hyqdhjlXnaSyo0s1TScVGnDDMJGI= diff --git a/example/example-city.json b/example/formats/example-city.json similarity index 100% rename from example/example-city.json rename to example/formats/example-city.json diff --git a/example/formats/example-city.tmj b/example/formats/example-city.tmj new file mode 100644 index 00000000..8feeecfb --- /dev/null +++ b/example/formats/example-city.tmj @@ -0,0 +1,3051 @@ +{ "compressionlevel":-1, + "height":100, + "infinite":false, + "layers":[ + { + "data":[63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 63, 63, 63, 63, 63, 63, 29, 29, 29, 29, 30, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 435, 436, 437, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 435, 436, 437, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 407, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 1073742285, 407, 406, 468, 469, 467, 406, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 406, 468, 469, 467, 406, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, + 434, 469, 1073742258, 469, 434, 469, 434, 469, 434, 442, 434, 442, 434, 442, 434, 433, 469, 408, 469, 433, 434, 469, 434, 469, 434, 469, 434, 469, 434, 469, 433, 469, 408, 469, 433, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, 442, 434, + 461, 461, 1073742231, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 460, 441, 469, 440, 460, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 460, 441, 469, 440, 460, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 435, 436, 437, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 435, 436, 437, 9, 10, 10, 11, 438, 439, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 36, 37, 37, 38, 462, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 36, 37, 37, 38, 462, 464, 63, 64, 15, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 36, 37, 37, 38, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 36, 37, 37, 38, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 36, 37, 37, 38, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 36, 37, 37, 38, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 36, 37, 37, 38, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 36, 37, 37, 38, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 63, 64, 64, 65, 462, 464, 461, 2684355003, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 438, 407, 407, 407, 468, 464, 9, 10, 42, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 465, 461, 461, 461, 461, 466, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 469, 464, 9, 10, 10, 10, 10, 10, 42, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 462, 463, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 435, 436, 437, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 435, 436, 437, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 469, 467, 406, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 406, 468, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 408, 469, 433, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 433, 469, 408, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 462, 469, 440, 460, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 460, 441, 469, 464, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 37, 37, 37, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 37, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 63, 63, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 37, 37, 37, 37, 37, 29, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 63, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 63, 63, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 29, 29, 29, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 37, 37, 37, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 29, 29, 29, 29, 29, 29, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 63, 63, 63, 63, 63, 63, 63, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29], + "height":100, + "id":1, + "name":"Ground", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":4, + "name":"Ground Level 2", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "class":"Ground", + "data":[236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 0, 0, 0, 0, 0, 0, 0, 109, 110, 110, 110, 111, 0, 90, 91, 92, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 306, 136, 137, 137, 137, 138, 0, 117, 118, 119, 0, 427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 236, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, 0, 0, 0, 0, 0, 0, 0, 18, 19, 19, 19, 20, 0, 144, 145, 146, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 356, 358, 249, 249, 249, 250, 250, 72, 73, 73, 73, 74, 0, 126, 127, 128, 222, 222, 222, 222, 222, 222, 222, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 273, 0, 0, 0, + 290, 290, 290, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 73, 73, 73, 74, 281, 180, 181, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 100, 100, 100, 101, 0, 207, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478, 479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2147483840, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, 172, 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, 145, 146, 0, 198, 199, 199, 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 73, 73, 74, 0, 225, 226, 226, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 387, 389, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, 110, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 118, 118, 119, 0, 136, 137, 137, 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, 145, 146, 0, 18, 19, 19, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 129, 131, 125, 0, 45, 46, 46, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 156, 158, 152, 0, 72, 73, 73, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 183, 185, 179, 0, 72, 73, 73, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 413, 414, 206, 0, 99, 340, 100, 340, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, + 0, 0, 0, 273, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":2, + "name":"Solid", + "opacity":1, + "properties":[ + { + "name":"solid", + "type":"bool", + "value":true + }], + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 364, 364, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 330, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 286, 256, 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, 0, 0, 0, 0, 0, 0, 0, 446, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 329, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, 0, 0, 0, 0, 0, 0, 0, 444, 444, 0, 0, 0, 471, 0, 471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 417, 471, 471, 417, 0, 0, 445, 0, 445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 417, 445, 445, 417, 0, 0, 333, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 417, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":3, + "name":"Solid Level 2", + "opacity":1, + "properties":[ + { + "name":"solid", + "type":"bool", + "value":true + }], + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 91, 91, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 83, 83, 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 91, 91, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":6, + "name":"Above", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":7, + "name":"Above Level 2", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 293, 0, 293, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 293, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":10, + "name":"Parallax", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "class":"image layer", + "id":15, + "image":"tilemap.png", + "name":"Some Image Layer", + "offsetx":48, + "offsety":0, + "opacity":0.4, + "tintcolor":"#55ff00", + "transparentcolor":"#5555ff", + "type":"imagelayer", + "visible":true, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":12, + "name":"CollectionTiles", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "class":"tint", + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":100, + "id":14, + "name":"TintOpacity", + "opacity":0.5, + "tintcolor":"#0055ff", + "type":"tilelayer", + "visible":true, + "width":100, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":8, + "name":"Camera", + "objects":[ + { + "height":0, + "id":6, + "name":"Player", + "point":true, + "rotation":0, + "type":"player-start", + "visible":true, + "width":0, + "x":375, + "y":104 + }, + { + "height":0, + "id":7, + "name":"Camera", + "point":true, + "properties":[ + { + "name":"Camera", + "type":"bool", + "value":true + }, + { + "name":"Zoom", + "type":"float", + "value":4 + }], + "rotation":0, + "type":"Camera", + "visible":true, + "width":0, + "x":630.583, + "y":209 + }, + { + "gid":252, + "height":16, + "id":12, + "name":"raycastable", + "rotation":0, + "type":"raycastable", + "visible":true, + "width":16, + "x":368.667, + "y":144.333 + }], + "opacity":1, + "properties":[ + { + "name":"excalibur", + "type":"bool", + "value":true + }], + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "color":"#00ff00", + "draworder":"topdown", + "id":5, + "name":"Objects", + "objects":[ + { + "gid":409, + "height":16, + "id":1, + "name":"StopLightA", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":304, + "y":112 + }, + { + "gid":168, + "height":16, + "id":4, + "name":"SignPost", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":640, + "y":176 + }, + { + "gid":2147484058, + "height":16, + "id":5, + "name":"StopLight", + "rotation":-90, + "type":"", + "visible":true, + "width":16, + "x":592, + "y":176 + }, + { + "gid":252, + "height":32, + "id":9, + "name":"Barrel", + "rotation":0, + "type":"", + "visible":true, + "width":32, + "x":383.636, + "y":128.182 + }, + { + "gid":472, + "height":16, + "id":11, + "name":"HUD", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":344.375, + "y":122.375 + }, + { + "height":17, + "id":13, + "name":"", + "rotation":-38, + "text": + { + "text":"Hello World", + "wrap":true + }, + "type":"", + "visible":true, + "width":80, + "x":274, + "y":144.167 + }, + { + "height":31.3333, + "id":14, + "name":"box2", + "rotation":-57, + "type":"", + "visible":true, + "width":25.3333, + "x":269.667, + "y":184.667 + }, + { + "gid":456, + "height":32, + "id":16, + "name":"", + "rotation":90, + "type":"", + "visible":true, + "width":32, + "x":342.909, + "y":144.182 + }, + { + "height":0, + "id":17, + "name":"star", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-9.90909, + "y":-14.6364 + }, + { + "x":4.18182, + "y":-12.6364 + }, + { + "x":15.5455, + "y":-25.2727 + }, + { + "x":17.0909, + "y":-12.2727 + }, + { + "x":29, + "y":-8.36364 + }, + { + "x":16.7273, + "y":-0.727273 + }, + { + "x":14.8182, + "y":19.9091 + }, + { + "x":7, + "y":4.45455 + }, + { + "x":-5.36364, + "y":13.3636 + }], + "rotation":-93, + "type":"", + "visible":true, + "width":0, + "x":260, + "y":135.091 + }, + { + "height":0, + "id":18, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":251.727, + "y":163.364 + }, + { + "height":20, + "id":19, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":24.3636, + "x":237.636, + "y":159.182 + }, + { + "height":0, + "id":20, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-15.6364, + "y":4.09091 + }, + { + "x":0.727273, + "y":7.18182 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":262.273, + "y":87.5455 + }, + { + "ellipse":true, + "height":0, + "id":31, + "name":"circle", + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":218.818, + "y":154.455 + }, + { + "ellipse":true, + "height":20.2727, + "id":32, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":20.2727, + "x":208.091, + "y":144.455 + }, + { + "height":0, + "id":33, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":210, + "y":99.8182 + }, + { + "height":19.9091, + "id":37, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":20.1818, + "x":200, + "y":89.9091 + }, + { + "height":0, + "id":38, + "name":"", + "rotation":45, + "type":"", + "visible":true, + "width":0, + "x":186.545, + "y":99.8182 + }, + { + "height":19.4545, + "id":39, + "name":"", + "rotation":47, + "type":"", + "visible":true, + "width":19.2727, + "x":154.727, + "y":90.3636 + }, + { + "gid":308, + "height":16, + "id":42, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":160, + "y":175.75 + }, + { + "gid":252, + "height":16, + "id":43, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":95.75, + "y":176.25 + }, + { + "id":44, + "template":"cone.tx", + "x":80.75, + "y":128 + }, + { + "gid":308, + "height":16, + "id":45, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":108, + "y":152.5 + }, + { + "gid":308, + "height":16, + "id":46, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":84.5, + "y":169.5 + }], + "opacity":0.5, + "properties":[ + { + "name":"excalibur", + "type":"bool", + "value":true + }], + "tintcolor":"#ffff00", + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":17, + "name":"Templates", + "objects":[ + { + "id":48, + "template":"collectable.tx", + "x":112, + "y":209 + }, + { + "id":49, + "template":"heart.tj", + "x":136, + "y":207.5 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }], + "nextlayerid":18, + "nextobjectid":50, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.10.2", + "tileheight":16, + "tilesets":[ + { + "class":"kenny", + "columns":27, + "firstgid":1, + "image":"assets\/kenny-rpg-urban-pack\/tilemap_packed.png", + "imageheight":288, + "imagewidth":432, + "margin":0, + "name":"Kenny RPG Urban Pack", + "objectalignment":"bottomleft", + "properties":[ + { + "name":"tilesetprop", + "type":"string", + "value":"someprop" + }], + "spacing":0, + "tilecount":486, + "tileheight":16, + "tiles":[ + { + "id":8, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":9, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":10, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":35, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":36, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":37, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }], + "type":"sidewalk" + }, + { + "id":62, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":63, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":64, + "properties":[ + { + "name":"sidewalk", + "type":"bool", + "value":true + }] + }, + { + "id":190, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":3, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":3.0625, + "y":0 + }, + { + "x":3, + "y":6.0625 + }, + { + "x":-0.0625, + "y":6 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":6.0625, + "y":8.875 + }, + { + "ellipse":true, + "height":7.6875, + "id":4, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":7.6875, + "x":3.75, + "y":0.9375 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "properties":[ + { + "name":"meter", + "type":"string", + "value":"meter" + }] + }, + { + "id":191, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-0.125, + "y":-9.0625 + }, + { + "x":4.75, + "y":-9 + }, + { + "x":4.9375, + "y":-0.0625 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":10.125, + "y":14 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":192, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":0.125, + "y":-8.8125 + }, + { + "x":4.8125, + "y":-8.75 + }, + { + "x":5.0625, + "y":0.0625 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":5.9375, + "y":13.8125 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":193, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":14, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":5, + "x":6, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":194, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":14, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":3, + "x":7, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":221, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":12, + "id":2, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":4 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":230, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "ellipse":true, + "height":16, + "id":4, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":-0.0625, + "y":-0.0625 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":234, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":15, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6, + "x":10, + "y":1 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":236, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":15, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6, + "x":0, + "y":1 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":248, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":12, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":4 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":251, + "objectgroup": + { + "draworder":"index", + "id":3, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-1, + "y":-1.0625 + }, + { + "x":-1, + "y":-10.5625 + }, + { + "x":0.0625, + "y":-11.625 + }, + { + "x":5.5625, + "y":-11.5 + }, + { + "x":6.75, + "y":-10.75 + }, + { + "x":6.75, + "y":-1.25 + }, + { + "x":5.6875, + "y":-0.0625 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":5.1875, + "y":14.8125 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":261, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6, + "x":10, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":263, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":270, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":11, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":4 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":271, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":11, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":4 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":272, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":8, + "x":4, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "properties":[ + { + "name":"test", + "type":"string", + "value":"" + }] + }, + { + "id":278, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":1.8125, + "y":-4 + }, + { + "x":5.8125, + "y":-3.9375 + }, + { + "x":7.6875, + "y":0 + }, + { + "x":7.9375, + "y":6.75 + }, + { + "x":-0.0625, + "y":6.75 + }], + "properties":[ + { + "name":"more custom props", + "type":"string", + "value":"prop prop prop" + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":4.0625, + "y":7.0625 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":287, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":15, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":12, + "x":2, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":288, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":10, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6, + "x":10, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":289, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":15, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":290, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":10, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":297, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":11, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16, + "x":0, + "y":4 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":298, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":6, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":14, + "x":1, + "y":5 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":299, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":12, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":4, + "x":6, + "y":2 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":305, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":13, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":10, + "x":3, + "y":2 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"Decor" + }, + { + "id":307, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-3.5625, + "y":3 + }, + { + "x":-3.5, + "y":8.875 + }, + { + "x":3.25, + "y":8.9375 + }, + { + "x":3.5, + "y":3.25 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":7.9375, + "y":4.5 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "properties":[ + { + "name":"Cone", + "type":"bool", + "value":true + }], + "type":"Decor" + }, + { + "id":393, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":2.3125, + "y":-5.8125 + }, + { + "x":7, + "y":-5.875 + }, + { + "x":6.9375, + "y":0.0625 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":9, + "y":15.9375 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":394, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":4.75, + "y":0 + }, + { + "x":7, + "y":5.5 + }, + { + "x":0, + "y":5.625 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":0, + "y":10.125 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":396, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":2.1875, + "y":-6 + }, + { + "x":7.0625, + "y":-6.1875 + }, + { + "x":7, + "y":-0.1875 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":8.875, + "y":16.125 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":397, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":5.0625, + "y":-0.0625 + }, + { + "x":7.25, + "y":5.625 + }, + { + "x":0.1875, + "y":5.6875 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":-0.125, + "y":10.125 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":399, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":4, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":14, + "x":1, + "y":12 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":408, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":14.8125, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6.0625, + "x":0.9375, + "y":1.375 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"stoplight" + }, + { + "id":420, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":12, + "x":4, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":421, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":12, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":423, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":12, + "x":4, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":424, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":16, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":12, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":450, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":0, + "y":-1.75 + }, + { + "x":2.1875, + "y":-5.8125 + }, + { + "x":7.0625, + "y":-5.75 + }, + { + "x":7.25, + "y":0.0625 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":8.8125, + "y":15.75 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":451, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":4.8125, + "y":-0.0625 + }, + { + "x":6.875, + "y":3.875 + }, + { + "x":7.0625, + "y":5.8125 + }, + { + "x":0.1875, + "y":5.75 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":-0.125, + "y":10.1875 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "animation":[ + { + "duration":300, + "tileid":455 + }, + { + "duration":300, + "tileid":482 + }], + "id":455, + "properties":[ + { + "name":"Anim strategy", + "type":"string", + "value":"test" + }, + { + "name":"AnimationStrategy", + "type":"string", + "value":"loop" + }, + { + "name":"OtherProp", + "type":"string", + "value":"someval" + }] + }, + { + "animation":[ + { + "duration":300, + "tileid":456 + }, + { + "duration":300, + "tileid":483 + }], + "id":456 + }, + { + "animation":[ + { + "duration":300, + "tileid":457 + }, + { + "duration":300, + "tileid":484 + }], + "id":457 + }, + { + "animation":[ + { + "duration":300, + "tileid":458 + }, + { + "duration":300, + "tileid":485 + }], + "id":458 + }, + { + "id":477, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-11.0625, + "y":-0.0625 + }, + { + "x":-11.1875, + "y":-13.875 + }, + { + "x":-9.8125, + "y":-15.875 + }, + { + "x":-0.3125, + "y":-15.875 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":16.0625, + "y":15.9375 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":478, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":0.8125, + "y":1.9375 + }, + { + "x":1, + "y":14.5 + }, + { + "x":-1.875, + "y":14.4375 + }, + { + "x":-9.6875, + "y":14.6875 + }, + { + "x":-9.875, + "y":-0.125 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":9.9375, + "y":0.1875 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }], + "tilewidth":16 + }, + { + "columns":0, + "firstgid":487, + "grid": + { + "height":1, + "orientation":"orthogonal", + "width":1 + }, + "margin":0, + "name":"embedded-collection", + "spacing":0, + "tilecount":3, + "tileheight":128, + "tiles":[ + { + "id":0, + "image":"assets\/isometric-blocks\/PNG\/Abstract tiles\/abstractTile_09.png", + "imageheight":128, + "imagewidth":111 + }, + { + "id":1, + "image":"assets\/isometric-blocks\/PNG\/Abstract tiles\/abstractTile_10.png", + "imageheight":128, + "imagewidth":111 + }, + { + "id":2, + "image":"assets\/isometric-blocks\/PNG\/Abstract tiles\/abstractTile_11.png", + "imageheight":128, + "imagewidth":111 + }], + "tilewidth":111 + }, + { + "firstgid":490, + "source":"external-collection.tsx" + }, + { + "firstgid":495, + "source":"external-collsion-json.tsj" + }, + { + "firstgid":498, + "source":"external-kenny.tsx" + }], + "tilewidth":16, + "type":"map", + "version":"1.10", + "width":100 +} \ No newline at end of file diff --git a/example/example-city.tmx b/example/formats/example-city.tmx similarity index 99% rename from example/example-city.tmx rename to example/formats/example-city.tmx index cea7899b..a788c1a4 100644 --- a/example/example-city.tmx +++ b/example/formats/example-city.tmx @@ -1187,4 +1187,4 @@ - + \ No newline at end of file diff --git a/example/example-isometric.tmx b/example/formats/example-isometric.tmx similarity index 98% rename from example/example-isometric.tmx rename to example/formats/example-isometric.tmx index 2646bcbe..6284ffff 100644 --- a/example/example-isometric.tmx +++ b/example/formats/example-isometric.tmx @@ -1,5 +1,5 @@ - + diff --git a/example/external-collection.tsx b/example/formats/external-collection.tsx similarity index 100% rename from example/external-collection.tsx rename to example/formats/external-collection.tsx diff --git a/example/external-collsion-json.tsj b/example/formats/external-collsion-json.tsj similarity index 100% rename from example/external-collsion-json.tsj rename to example/formats/external-collsion-json.tsj diff --git a/example/formats/external-kenny.tsx b/example/formats/external-kenny.tsx new file mode 100644 index 00000000..ee95d22d --- /dev/null +++ b/example/formats/external-kenny.tsx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/example/formats/external-tsj.tsj b/example/formats/external-tsj.tsj new file mode 100644 index 00000000..1bae4e2f --- /dev/null +++ b/example/formats/external-tsj.tsj @@ -0,0 +1,74 @@ +{ "columns":27, + "image":"assets\/kenny-rpg-urban-pack\/tilemap_packed.png", + "imageheight":288, + "imagewidth":432, + "margin":0, + "name":"external-tsj", + "spacing":0, + "tilecount":486, + "tiledversion":"1.9.0", + "tileheight":16, + "tiles":[ + { + "id":252, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "class":"", + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":1.05389828361518, + "y":-1.01336373424536 + }, + { + "x":6.93140794223827, + "y":-1.01336373424536 + }, + { + "x":7.96503895116854, + "y":0 + }, + { + "x":8.00557350053835, + "y":9.80936094749509 + }, + { + "x":6.89087339286845, + "y":10.924061055165 + }, + { + "x":0.912027360820825, + "y":10.8835265057952 + }, + { + "x":-0.0202672746849069, + "y":9.87016277154981 + }], + "rotation":0, + "visible":true, + "width":0, + "x":4.01292038761163, + "y":4.05345493698144 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }], + "tilewidth":16, + "type":"tileset", + "version":"1.8" +} \ No newline at end of file diff --git a/example/formats/external.tsj b/example/formats/external.tsj new file mode 100644 index 00000000..5d6f2bb2 --- /dev/null +++ b/example/formats/external.tsj @@ -0,0 +1,220 @@ +{ "columns":27, + "image":"assets\/kenny-rpg-urban-pack\/tilemap_packed.png", + "imageheight":288, + "imagewidth":432, + "margin":0, + "name":"Kenny RPG Urban Pack", + "spacing":0, + "tilecount":486, + "tiledversion":"1.9.0", + "tileheight":16, + "tiles":[ + { + "id":278, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "class":"", + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":3.95211856355691, + "y":0 + }, + { + "x":4.92494774843245, + "y":0.993096459560454 + }, + { + "x":5.897776933308, + "y":3.99265311292672 + }, + { + "x":5.897776933308, + "y":11.0051301539046 + }, + { + "x":-2.02672746849072, + "y":10.9443283298499 + }, + { + "x":-2.02672746849072, + "y":4.01292038761163 + }, + { + "x":-1.03363100893027, + "y":0.972829184875546 + }], + "rotation":0, + "visible":true, + "width":0, + "x":6.03964785610235, + "y":2.99955665336627 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":450, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "class":"", + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-0.0202672746849064, + "y":-1.98619291912091 + }, + { + "x":2.02672746849072, + "y":-5.97884603204763 + }, + { + "x":6.99220976629299, + "y":-5.99911330673254 + }, + { + "x":6.97194249160808, + "y":-0.060801824054721 + }], + "rotation":0, + "visible":true, + "width":0, + "x":8.9986699600988, + "y":16.0111470010767 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":451, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "class":"", + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":5.00601684717208, + "y":0 + }, + { + "x":6.97194249160808, + "y":4.05345493698144 + }, + { + "x":6.97194249160808, + "y":5.97884603204763 + }, + { + "x":-0.0202672746849072, + "y":5.99911330673254 + }], + "rotation":0, + "visible":true, + "width":0, + "x":0, + "y":9.97149914497435 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":477, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "class":"", + "height":16, + "id":1, + "name":"", + "rotation":0, + "visible":true, + "width":11, + "x":5, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":478, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "class":"", + "height":16, + "id":1, + "name":"", + "rotation":0, + "visible":true, + "width":11, + "x":0, + "y":0 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }], + "tilewidth":16, + "type":"tileset", + "version":"1.8" +} \ No newline at end of file diff --git a/example/game.ts b/example/formats/formats.ts similarity index 57% rename from example/game.ts rename to example/formats/formats.ts index 1175d749..9a533e62 100644 --- a/example/game.ts +++ b/example/formats/formats.ts @@ -1,20 +1,39 @@ import * as ex from 'excalibur'; -import { TiledMapResource } from '@excalibur-tiled'; -import { ImageFiltering, ImageSource, Input, IsometricEntityComponent, Shape } from 'excalibur'; +import { Point, TiledResource } from '@excalibur-tiled'; +import { ImageFiltering, ImageSource, Keys, IsometricEntityComponent, Shape } from 'excalibur'; const game = new ex.Engine({ width: 800, height: 600, canvasElementId: 'game', - pointerScope: ex.Input.PointerScope.Canvas, + pointerScope: ex.PointerScope.Canvas, antialiasing: false }); + +// game.toggleDebug(); +// game.debug.isometric.showGrid = true; game.input.keyboard.on("press", (evt) => { - if (evt.key === Input.Keys.D) { + if (evt.key === Keys.D) { game.toggleDebug(); } }); +let currentPointer!: ex.Vector; +game.input.pointers.primary.on('down', (moveEvent) => { + currentPointer = moveEvent.worldPos; + game.currentScene.camera.move(currentPointer, 300, ex.EasingFunctions.EaseInOutCubic); +}); + +game.input.pointers.primary.on('wheel', (wheelEvent) => { + // wheel up + game.currentScene.camera.pos = currentPointer; + if (wheelEvent.deltaY < 0) { + game.currentScene.camera.zoom *= 1.2; + } else { + game.currentScene.camera.zoom /= 1.2; + } +}); + const reset = () => { game.stop(); game.currentScene.camera.clearAllStrategies(); @@ -79,7 +98,9 @@ const start = (mapFile: string) => { } game.add(player); - const map = new TiledMapResource(mapFile, { startingLayerZIndex: -2 }); + const map = new TiledResource(mapFile, { + startZIndex: -2 + }); const playercube = new ImageSource('./player-cube.png', true, ImageFiltering.Blended); const loader = new ex.Loader([map, playercube]); @@ -88,7 +109,6 @@ const start = (mapFile: string) => { game.input.pointers.primary.on('down', evt => { const tile = map.getTileByPoint('Ground', evt.worldPos); - console.log('id', tile?.id, 'tile props:', tile?.properties); }); player.pos = ex.vec(100, 100); @@ -100,53 +120,52 @@ const start = (mapFile: string) => { ex.vec( 110.639,-0.352914 +94.9975), ex.vec(55.584,31.7623+94.9975) ].map(p => p.sub(ex.vec(111/2, 64))))); - const iso = new IsometricEntityComponent(map.isoLayers[0]); - iso.elevation = 1; + + const playerlevel = map.getIsoTileLayers('playerlevel')[0]; + const iso = new IsometricEntityComponent(playerlevel.isometricMap); + iso.elevation = playerlevel.isometricMap.elevation; player.addComponent(iso); } - const excalibur = map.data.getExcaliburObjects(); - if (excalibur.length > 0) { - const start = excalibur[0].getObjectByName('player-start'); - if (start) { - player.pos.x = start.x; - player.pos.y = start.y; - console.log("player start", start.x, start.y); - console.log("props:" , start.getProperty("Custom Prop")); - } + const start = map.getObjectsByName('player-start')[0]; + if (start) { + player.pos.x = start.x; + player.pos.y = start.y; + console.log("player start", start.x, start.y); + } - // Use polyline for patrols - const lines = excalibur[0].getPolyLines(); - for (let line of lines) { - if (line && line.polyline) { - const start = ex.vec(line.x, line.y); - const firstpoint = line.polyline[0]; - const patrol = new ex.Actor({x: line.x + firstpoint.x, y: line.y + firstpoint.y, color: ex.Color.Green, width: 25, height: 25}); - patrol.actions.repeatForever(ctx => { - for (const p of (line.polyline ?? [])) { - ctx.moveTo(p.x + start.x, p.y + start.y, 100); - } - }); - game.add(patrol); - } - } + // // Use polyline for patrols + // const lines = excalibur[0].getPolyLines(); + // for (let line of lines) { + // if (line && line.polyline) { + // const start = ex.vec(line.x, line.y); + // const firstpoint = line.polyline[0]; + // const patrol = new ex.Actor({x: line.x + firstpoint.x, y: line.y + firstpoint.y, color: ex.Color.Green, width: 25, height: 25}); + // patrol.actions.repeatForever(ctx => { + // for (const p of (line.polyline ?? [])) { + // ctx.moveTo(p.x + start.x, p.y + start.y, 100); + // } + // }); + // game.add(patrol); + // } + // } - // Use polygon for patrols - const polys = excalibur[0].getPolygons(); - for (let poly of polys) { - poly.polygon?.push(poly.polygon[0]); // needs to end where it started - if (poly && poly.polygon) { - const start = ex.vec(poly.x, poly.y); - const firstpoint = poly.polygon[0]; - const patrol = new ex.Actor({x: poly.x + firstpoint.x, y: poly.y + firstpoint.y, color: ex.Color.Green, width: 25, height: 25}); - patrol.actions.repeatForever(ctx => { - for (const p of (poly.polygon ?? [])) { - ctx.moveTo(p.x + start.x, p.y + start.y, 100); - } - }) - game.add(patrol); - } - } - } + // // Use polygon for patrols + // const polys = excalibur[0].getPolygons(); + // for (let poly of polys) { + // poly.polygon?.push(poly.polygon[0]); // needs to end where it started + // if (poly && poly.polygon) { + // const start = ex.vec(poly.x, poly.y); + // const firstpoint = poly.polygon[0]; + // const patrol = new ex.Actor({x: poly.x + firstpoint.x, y: poly.y + firstpoint.y, color: ex.Color.Green, width: 25, height: 25}); + // patrol.actions.repeatForever(ctx => { + // for (const p of (poly.polygon ?? [])) { + // ctx.moveTo(p.x + start.x, p.y + start.y, 100); + // } + // }) + // game.add(patrol); + // } + // } + // } // Camera init bug :( forcing a a hack setTimeout(() => { game.currentScene.camera.x = player.pos.x; @@ -158,7 +177,8 @@ const start = (mapFile: string) => { player.pos.y = 200; } }); - map.addTiledMapToScene(game.currentScene); + map.addToScene(game.currentScene); + currentPointer = game.currentScene.camera.pos; }); } @@ -190,5 +210,4 @@ window.onload = function () { selectMapEl.selectedIndex = 0; start("example-city.tmx"); } -} - +} \ No newline at end of file diff --git a/example/formats/greencube.tx b/example/formats/greencube.tx new file mode 100644 index 00000000..907e01d2 --- /dev/null +++ b/example/formats/greencube.tx @@ -0,0 +1,5 @@ + + diff --git a/example/formats/heart.tj b/example/formats/heart.tj new file mode 100644 index 00000000..75d091e0 --- /dev/null +++ b/example/formats/heart.tj @@ -0,0 +1,18 @@ +{ "object": + { + "gid":253, + "height":16, + "id":49, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":16 + }, + "tileset": + { + "firstgid":1, + "source":"external-kenny.tsx" + }, + "type":"template" +} \ No newline at end of file diff --git a/example/index.html b/example/formats/index.html similarity index 96% rename from example/index.html rename to example/formats/index.html index 77e82839..c0e16a4b 100644 --- a/example/index.html +++ b/example/formats/index.html @@ -29,6 +29,6 @@ - + - + \ No newline at end of file diff --git a/example/margin.tmx b/example/formats/margin.tmx similarity index 99% rename from example/margin.tmx rename to example/formats/margin.tmx index f7b3984d..19163ab8 100644 --- a/example/margin.tmx +++ b/example/formats/margin.tmx @@ -27,4 +27,4 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - + \ No newline at end of file diff --git a/example/player-cube.png b/example/formats/player-cube.png similarity index 100% rename from example/player-cube.png rename to example/formats/player-cube.png diff --git a/example/test-gzip.json b/example/formats/test-gzip.json similarity index 100% rename from example/test-gzip.json rename to example/formats/test-gzip.json diff --git a/example/test-spacing.json b/example/formats/test-spacing.json similarity index 99% rename from example/test-spacing.json rename to example/formats/test-spacing.json index 2159835e..649797cc 100644 --- a/example/test-spacing.json +++ b/example/formats/test-spacing.json @@ -108,7 +108,7 @@ "nextobjectid":1, "orientation":"orthogonal", "renderorder":"right-down", - "tiledversion":"1.8.5", + "tiledversion":"1.10.2", "tileheight":16, "tilesets":[ { @@ -126,6 +126,6 @@ }], "tilewidth":16, "type":"map", - "version":"1.8", + "version":"1.10", "width":40 } \ No newline at end of file diff --git a/example/test-v1-external.json b/example/formats/test-v1-external.json similarity index 100% rename from example/test-v1-external.json rename to example/formats/test-v1-external.json diff --git a/example/test-v1.json b/example/formats/test-v1.json similarity index 100% rename from example/test-v1.json rename to example/formats/test-v1.json diff --git a/example/test-zlib.json b/example/formats/test-zlib.json similarity index 100% rename from example/test-zlib.json rename to example/formats/test-zlib.json diff --git a/example/test.json b/example/formats/test.json similarity index 100% rename from example/test.json rename to example/formats/test.json diff --git a/example/formats/test.tmx b/example/formats/test.tmx new file mode 100644 index 00000000..60b6b58f --- /dev/null +++ b/example/formats/test.tmx @@ -0,0 +1,110 @@ + + + + + + + +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,37,29,29,29,29,29,29,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,37,37,37,37,37,37,37,37,37,37,37,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, +29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 + + + diff --git a/example/tilemap-collider.png b/example/formats/tilemap-collider.png similarity index 100% rename from example/tilemap-collider.png rename to example/formats/tilemap-collider.png diff --git a/example/tilemap-v1.tmx b/example/formats/tilemap-v1.tmx similarity index 100% rename from example/tilemap-v1.tmx rename to example/formats/tilemap-v1.tmx diff --git a/example/tilemap.json b/example/formats/tilemap.json similarity index 100% rename from example/tilemap.json rename to example/formats/tilemap.json diff --git a/example/tilemap.png b/example/formats/tilemap.png similarity index 100% rename from example/tilemap.png rename to example/formats/tilemap.png diff --git a/example/isometric-infinite/assets/Isometric_MedievalFantasy_Tiles.png b/example/isometric-infinite/assets/Isometric_MedievalFantasy_Tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b7f89481e45fe12352bd8e3579372c0ce2ae9c GIT binary patch literal 14545 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 + + + + + + + + + diff --git a/example/isometric-infinite/index.html b/example/isometric-infinite/index.html new file mode 100644 index 00000000..45f306de --- /dev/null +++ b/example/isometric-infinite/index.html @@ -0,0 +1,15 @@ + + + + Isometric Map Test + + + + + + + diff --git a/example/isometric-infinite/isometric-infinite.tmj b/example/isometric-infinite/isometric-infinite.tmj new file mode 100644 index 00000000..a2f24a43 --- /dev/null +++ b/example/isometric-infinite/isometric-infinite.tmj @@ -0,0 +1,752 @@ +{ "backgroundcolor":"#22b2b2", + "compressionlevel":-1, + "height":10, + "infinite":true, + "layers":[ + { + "chunks":[ + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2], + "height":16, + "width":16, + "x":-16, + "y":-16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0], + "height":16, + "width":16, + "x":0, + "y":-16 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":-16, + "y":0 + }, + { + "data":[2, 46, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 46, 2, 2, 2, 2, 2, 2, 2, 13, 13, 2, 2, 2, 0, 0, + 2, 46, 2, 2, 2, 2, 2, 13, 13, 13, 13, 13, 2, 2, 0, 0, + 2, 46, 2, 2, 2, 2, 13, 13, 13, 16, 13, 13, 2, 2, 0, 0, + 2, 46, 2, 2, 2, 2, 13, 13, 13, 16, 19, 13, 2, 2, 0, 0, + 2, 46, 2, 2, 2, 2, 13, 13, 13, 16, 19, 13, 13, 2, 2, 0, + 2, 46, 2, 2, 2, 13, 13, 13, 13, 16, 19, 19, 13, 13, 2, 0, + 2, 46, 2, 2, 13, 13, 13, 13, 16, 16, 19, 19, 13, 13, 2, 0, + 2, 46, 2, 13, 13, 13, 16, 16, 16, 16, 19, 19, 13, 2, 2, 0, + 2, 46, 2, 13, 16, 16, 16, 16, 16, 19, 19, 13, 13, 2, 0, 0, + 2, 2, 13, 19, 19, 19, 19, 19, 19, 19, 13, 13, 2, 2, 0, 0, + 2, 2, 13, 13, 13, 13, 19, 19, 13, 13, 13, 2, 2, 0, 0, 0, + 2, 2, 2, 13, 13, 13, 13, 13, 13, 13, 2, 2, 0, 0, 0, 0, + 0, 2, 2, 2, 13, 13, 13, 13, 2, 2, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":0 + }], + "height":32, + "id":1, + "name":"Ground", + "opacity":1, + "startx":-16, + "starty":-16, + "type":"tilelayer", + "visible":true, + "width":32, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":8, + "name":"Objects", + "objects":[ + { + "height":0, + "id":24, + "name":"", + "point":true, + "properties":[ + { + "name":"camera", + "type":"bool", + "value":true + }, + { + "name":"zoom", + "type":"float", + "value":5 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":8.25, + "y":-17.25 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "chunks":[ + { + "data":[0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":0 + }], + "height":16, + "id":2, + "name":"Above", + "offsetx":0, + "offsety":-8, + "opacity":1, + "startx":0, + "starty":0, + "type":"tilelayer", + "visible":true, + "width":16, + "x":0, + "y":0 + }, + { + "chunks":[ + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":0 + }], + "height":16, + "id":4, + "name":"Above (Non-Iso)", + "offsetx":0, + "offsety":-8, + "opacity":1, + "startx":0, + "starty":0, + "type":"tilelayer", + "visible":true, + "width":16, + "x":0, + "y":0 + }, + { + "chunks":[ + { + "data":[0, 0, 0, 0, 0, 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 263, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 231, 231, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 231, 231, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":0, + "y":0 + }], + "height":16, + "id":6, + "name":"Above (External)", + "offsetx":0, + "offsety":-8, + "opacity":0.3, + "startx":0, + "starty":0, + "tintcolor":"#ff0000", + "type":"tilelayer", + "visible":true, + "width":16, + "x":0, + "y":0 + }], + "nextlayerid":9, + "nextobjectid":25, + "orientation":"isometric", + "renderorder":"right-down", + "tiledversion":"1.10.2", + "tileheight":8, + "tilesets":[ + { + "columns":11, + "firstgid":1, + "grid": + { + "height":8, + "orientation":"isometric", + "width":17 + }, + "image":"assets\/Isometric_MedievalFantasy_Tiles.png", + "imageheight":170, + "imagewidth":176, + "margin":0, + "name":"iso-fantasy", + "spacing":0, + "tilecount":110, + "tileheight":17, + "tiles":[ + { + "id":0, + "type":"Ground" + }, + { + "id":1, + "type":"Ground" + }, + { + "id":7, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":8, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":8.1016, + "x":-5.90909, + "y":-5.81818 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":8, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":4.58824, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":4.83422, + "x":1.2246, + "y":1.22995 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":9, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "ellipse":true, + "height":6.86631, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":6.86631, + "x":-3.86096, + "y":-3.91444 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":11, + "type":"Ground" + }, + { + "id":12, + "type":"Ground" + }, + { + "id":15, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":10, + "id":2, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":8.27807, + "x":-0.673797, + "y":-2.14439 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"Water" + }, + { + "id":16, + "type":"Water" + }, + { + "id":17, + "type":"Water" + }, + { + "id":18, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":8, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":7.44385, + "x":-0.925134, + "y":-1.71123 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"Water" + }, + { + "id":19, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":4.49733, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":4.47594, + "x":1.20856, + "y":1.15508 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":42, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":3.90909, + "id":2, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":3.90909, + "x":3.04278, + "y":2.95722 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"Cactus" + }, + { + "id":98, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":3.55615, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":9.98396, + "x":-0.486631, + "y":2.41176 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"Fence" + }, + { + "id":109, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":11.2513, + "id":4, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":3.42781, + "x":2.71123, + "y":-0.71123 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + "type":"Fence" + }], + "tilewidth":16 + }, + { + "columns":11, + "firstgid":111, + "image":"assets\/Isometric_MedievalFantasy_Tiles.png", + "imageheight":170, + "imagewidth":176, + "margin":0, + "name":"non-iso-fantasy", + "spacing":0, + "tilecount":110, + "tileheight":17, + "tiles":[ + { + "id":7, + "objectgroup": + { + "draworder":"index", + "id":3, + "name":"", + "objects":[ + { + "height":0, + "id":3, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":7.81818, + "y":-4.18182 + }, + { + "x":15.5455, + "y":-0.363636 + }, + { + "x":7.72727, + "y":3.72727 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":0.272727, + "y":7.54545 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":9, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "ellipse":true, + "height":8.72727, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":8.72727, + "x":3.27273, + "y":4.81818 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":18, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":7.63636, + "y":-3.81818 + }, + { + "x":15.8182, + "y":-0.272727 + }, + { + "x":7.90909, + "y":3.90909 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":0.272727, + "y":11.3636 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":31, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":7, + "id":1, + "name":"", + "rotation":0, + "type":"", + "visible":true, + "width":9.63636, + "x":3.27273, + "y":7.09091 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":43, + "objectgroup": + { + "draworder":"index", + "id":2, + "name":"", + "objects":[ + { + "height":0, + "id":2, + "name":"Spike", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":4.45455, + "y":-10.0909 + }, + { + "x":9.63636, + "y":-0.181818 + }, + { + "x":4.90909, + "y":2.45455 + }], + "rotation":0, + "type":"", + "visible":true, + "width":0, + "x":3, + "y":13.1818 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }], + "tilewidth":16 + }, + { + "firstgid":221, + "source":"external-iso-fantasy.tsx" + }], + "tilewidth":16, + "type":"map", + "version":"1.10", + "width":10 +} \ No newline at end of file diff --git a/example/isometric-infinite/isometric-infinite.tmx b/example/isometric-infinite/isometric-infinite.tmx new file mode 100644 index 00000000..7c148807 --- /dev/null +++ b/example/isometric-infinite/isometric-infinite.tmx @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +2,46,2,2,2,2,2,2,2,2,2,2,2,2,0,0, +2,46,2,2,2,2,2,2,2,13,13,2,2,2,0,0, +2,46,2,2,2,2,2,13,13,13,13,13,2,2,0,0, +2,46,2,2,2,2,13,13,13,16,13,13,2,2,0,0, +2,46,2,2,2,2,13,13,13,16,19,13,2,2,0,0, +2,46,2,2,2,2,13,13,13,16,19,13,13,2,2,0, +2,46,2,2,2,13,13,13,13,16,19,19,13,13,2,0, +2,46,2,2,13,13,13,13,16,16,19,19,13,13,2,0, +2,46,2,13,13,13,16,16,16,16,19,19,13,2,2,0, +2,46,2,13,16,16,16,16,16,19,19,13,13,2,0,0, +2,2,13,19,19,19,19,19,19,19,13,13,2,2,0,0, +2,2,13,13,13,13,19,19,13,13,13,2,2,0,0,0, +2,2,2,13,13,13,13,13,13,13,2,2,0,0,0,0, +0,2,2,2,13,13,13,13,2,2,2,0,0,0,0,0, +0,0,0,2,2,2,2,2,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + + + + + + + +0,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0, +0,0,0,99,99,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,43,0,0,0,0,0,0,0,0,0,0,0,0,0, +9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +154,0,154,0,0,0,0,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,154,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,142,0,0,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + +0,0,0,0,0,0,251,0,0,0,0,0,0,0,0,0, +0,263,263,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,231,231,0,0,0,0,264,0,0,0,0,0,0,0,0, +0,231,231,0,0,0,263,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + diff --git a/example/isometric-infinite/isometric-infinite.ts b/example/isometric-infinite/isometric-infinite.ts new file mode 100644 index 00000000..92499b3a --- /dev/null +++ b/example/isometric-infinite/isometric-infinite.ts @@ -0,0 +1,67 @@ +import * as ex from 'excalibur'; +import { TiledResource } from '@excalibur-tiled'; + +class Player extends ex.Actor { + override onPostUpdate(engine: ex.Engine) { + this.vel = ex.vec(0, 0) + const speed = 64; + if (engine.input.keyboard.isHeld(ex.Keys.Right)) { + this.vel.x = speed; + } + if (engine.input.keyboard.isHeld(ex.Keys.Left)) { + this.vel.x = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Up)) { + this.vel.y = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Down)) { + this.vel.y = speed; + } + } +} + +const game = new ex.Engine({ + width: 800, + height: 600, + canvasElementId: 'game', + pointerScope: ex.PointerScope.Canvas, + antialiasing: false +}); +game.toggleDebug(); +// game.debug.isometric.showGrid = true; + +const tiledMap = new TiledResource('isometric-infinite.tmx', { + useMapBackgroundColor: true +}); + +const loader = new ex.Loader([tiledMap]); + +let currentPointer!: ex.Vector; +game.input.pointers.primary.on('down', (moveEvent) => { + currentPointer = moveEvent.worldPos; + game.currentScene.camera.move(currentPointer, 300, ex.EasingFunctions.EaseInOutCubic); +}); + +game.input.pointers.primary.on('move', (moveEvent) => { + const tile = tiledMap.getTileByPoint('ground', moveEvent.worldPos); + if (tile) { + console.log(tile); + } +}) + +game.input.pointers.primary.on('wheel', (wheelEvent) => { + // wheel up + game.currentScene.camera.pos = currentPointer; + if (wheelEvent.deltaY < 0) { + game.currentScene.camera.zoom *= 1.2; + } else { + game.currentScene.camera.zoom /= 1.2; + } +}); + +game.start(loader).then(() => { + tiledMap.addToScene(game.currentScene); + currentPointer = game.currentScene.camera.pos; + + (window as any).tiledMap = tiledMap; +}); diff --git a/example/isometric-infinite/isometric-template.tx b/example/isometric-infinite/isometric-template.tx new file mode 100644 index 00000000..76a010e9 --- /dev/null +++ b/example/isometric-infinite/isometric-template.tx @@ -0,0 +1,5 @@ + + diff --git a/example/isometric/assets/Isometric_MedievalFantasy_Tiles.png b/example/isometric/assets/Isometric_MedievalFantasy_Tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b7f89481e45fe12352bd8e3579372c0ce2ae9c GIT binary patch literal 14545 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 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/isometric/external-iso-fantasy.tsx b/example/isometric/external-iso-fantasy.tsx new file mode 100644 index 00000000..f6a71fe2 --- /dev/null +++ b/example/isometric/external-iso-fantasy.tsx @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/example/isometric/index.html b/example/isometric/index.html new file mode 100644 index 00000000..a7e3b925 --- /dev/null +++ b/example/isometric/index.html @@ -0,0 +1,15 @@ + + + + Isometric Map Test + + + + + + + diff --git a/example/isometric/isometric-template.tx b/example/isometric/isometric-template.tx new file mode 100644 index 00000000..76a010e9 --- /dev/null +++ b/example/isometric/isometric-template.tx @@ -0,0 +1,5 @@ + + diff --git a/example/isometric/isometric.tmx b/example/isometric/isometric.tmx new file mode 100644 index 00000000..9c95cb1e --- /dev/null +++ b/example/isometric/isometric.tmx @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2,46,2,2,2,2,2,2,2,2, +2,46,2,2,2,2,2,2,2,13, +2,46,2,2,2,2,2,13,13,13, +2,46,2,2,2,2,13,13,13,16, +2,46,2,2,2,2,13,13,13,16, +2,46,2,2,2,2,13,13,13,16, +2,46,2,2,2,13,13,13,13,16, +2,46,2,2,13,13,13,13,16,16, +2,46,2,13,13,13,16,16,16,16, +2,46,2,13,16,16,16,16,16,16 + + + + + + + + + + + + + + Hello World + + + + + + + + + + + + + + + + + +0,0,0,0,0,110,0,0,0,0, +0,0,0,99,99,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,10,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,43,0,0,0,0,0,0,0, +9,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0 + + + + + + + +0,0,0,0,0,0,0,0,0,0, +142,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0, +154,0,154,0,0,0,0,0,0,0, +154,0,0,0,0,154,0,0,0,0, +0,0,0,0,142,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +154,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + +0,0,0,0,0,0,251,0,0,0, +0,263,263,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,231,231,0,0,0,0,264,0,0, +0,231,231,0,0,0,263,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0 + + + + + + + diff --git a/example/isometric/isometric.ts b/example/isometric/isometric.ts new file mode 100644 index 00000000..cbe22696 --- /dev/null +++ b/example/isometric/isometric.ts @@ -0,0 +1,128 @@ +import * as ex from 'excalibur'; +import { TiledResource } from '@excalibur-tiled'; + +export class OtherPlayer extends ex.Actor { + graphic!: ex.Canvas + constructor() { + super({ + width: 16, + height: 17, + z: 15000, + anchor: ex.vec(.5, 1.0) // bottom middle + }); + } + onInitialize() { + this.graphic = new ex.Canvas({ + width: this.width, + height: this.height, + cache: true, + draw: (context) => { + context.lineWidth = 1; + context.strokeStyle = "#ff0000" + + context.moveTo(0, 0); + context.lineTo(this.width, 0); + context.lineTo(this.width, this.height); + context.lineTo(0, this.height); + context.lineTo(0, 0); + context.stroke(); + + context.moveTo(this.width / 2, 0); + context.lineTo(this.width / 2, this.height); + context.stroke(); + + context.moveTo(0, this.height / 2); + context.lineTo(this.width, this.height / 2); + context.stroke(); + } + }) + this.graphics.use(this.graphic); + } +} + +class Player extends ex.Actor { + override onPostUpdate(engine: ex.Engine) { + this.vel = ex.vec(0, 0) + const speed = 64; + if (engine.input.keyboard.isHeld(ex.Keys.Right)) { + this.vel.x = speed; + } + if (engine.input.keyboard.isHeld(ex.Keys.Left)) { + this.vel.x = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Up)) { + this.vel.y = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Down)) { + this.vel.y = speed; + } + } +} + +// public testPlaceTinInCenterOfTile() { +// const lastIsoLayer = this.floorMap.getLastIsoMapLayer() +// const c = 0, r = 0 +// const tile = lastIsoLayer.getTile(c, r) +// const graphi = tile.get(GraphicsComponent) +// const bound = graphi.recalculateBounds() +// console.log("bound", bound) +// const pos = lastIsoLayer.tileToWorld(vec(c, r)) +// const play = new Player() +// play.pos = pos +// play.z = tile.get(TransformComponent).z - 0.1 +// this.add(play) +// this.camera.zoom = 0.5 +// } + +const game = new ex.Engine({ + width: 800, + height: 600, + canvasElementId: 'game', + pointerScope: ex.PointerScope.Canvas, + antialiasing: false +}); +game.toggleDebug(); + +const tiledMap = new TiledResource('isometric.tmx', { + useMapBackgroundColor: true +}); + +const loader = new ex.Loader([tiledMap]); + +let currentPointer!: ex.Vector; +game.input.pointers.primary.on('down', (moveEvent) => { + currentPointer = moveEvent.worldPos; + game.currentScene.camera.move(currentPointer, 300, ex.EasingFunctions.EaseInOutCubic); +}); + +game.input.pointers.primary.on('move', (moveEvent) => { + const tile = tiledMap.getTileByPoint('ground', moveEvent.worldPos); + if (tile) { + console.log(tile); + } +}) + +game.input.pointers.primary.on('wheel', (wheelEvent) => { + // wheel up + game.currentScene.camera.pos = currentPointer; + if (wheelEvent.deltaY < 0) { + game.currentScene.camera.zoom *= 1.2; + } else { + game.currentScene.camera.zoom /= 1.2; + } +}); + +game.start(loader).then(() => { + tiledMap.addToScene(game.currentScene); + currentPointer = game.currentScene.camera.pos; + + // const topIsoLayer = tiledMap.getIsoTileLayers().at(-1); + // if (topIsoLayer) { + // const pos = topIsoLayer.isometricMap.tileToWorld(ex.vec(0, 0)); + // const player = new OtherPlayer(); + // player.pos = pos.add(ex.vec(0, 17/2)); + // game.currentScene.add(player); + // } + + (window as any).tiledMap = tiledMap; +}); diff --git a/example/orthogonal-infinite/coin.tx b/example/orthogonal-infinite/coin.tx new file mode 100644 index 00000000..ef9ab38b --- /dev/null +++ b/example/orthogonal-infinite/coin.tx @@ -0,0 +1,9 @@ + + diff --git a/example/orthogonal-infinite/external-fantasy.tsx b/example/orthogonal-infinite/external-fantasy.tsx new file mode 100644 index 00000000..167f473d --- /dev/null +++ b/example/orthogonal-infinite/external-fantasy.tsx @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/orthogonal-infinite/index.html b/example/orthogonal-infinite/index.html new file mode 100644 index 00000000..a9e2abcb --- /dev/null +++ b/example/orthogonal-infinite/index.html @@ -0,0 +1,15 @@ + + + + Orthogonal Infinite Map Test + + + + + + + diff --git a/example/orthogonal-infinite/orthogonal-infinite.tmx b/example/orthogonal-infinite/orthogonal-infinite.tmx new file mode 100644 index 00000000..ce49343a --- /dev/null +++ b/example/orthogonal-infinite/orthogonal-infinite.tmx @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,3,3,0,0, +0,0,3,0,0,0,0,0,0,0,3,3,3,3,0,0, +0,0,3,0,0,0,0,0,0,0,3,3,0,3,0,0, +0,0,3,0,0,0,0,0,0,0,3,0,0,3,0,0, +0,0,3,0,0,0,0,0,0,0,3,0,0,3,3,0, +3,3,3,3,3,3,3,0,0,0,3,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0, +0,0,0,3,0,0,3,3,0,0,0,0,0,0,0,0, +0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,3,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,3,0,0,0,0,0,3,3,0,0, +0,0,3,0,0,0,0,0,3,0,0,0,3,0,3,0, +0,0,3,0,0,0,0,0,3,3,0,0,3,0,3,3, +0,0,3,3,0,0,0,0,0,3,0,0,3,0,0,3, +0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,0,3,0,0,0,0,3,0,0,0, +0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0, +0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,3,3,0,0,0,0,0,3,3,3, +0,0,3,0,0,0,0,3,0,0,0,0,3,3,3,3, +0,0,3,0,0,0,0,3,0,0,0,0,3,3,0,0, +0,0,3,0,0,0,0,3,0,0,0,3,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3 + + +0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +3,1,3,1,1,3,2,1,2,3,3,3,3,0,0,0, +2,1,2,1,1,1,2,2,2,3,3,3,3,0,0,0, +1,3,1,2,1,2,3,3,3,3,3,3,3,0,0,0, +1,3,1,3,1,2,1,3,1,1,3,3,3,0,0,0, +2,1,3,1,3,3,2,3,2,3,3,3,3,3,0,0, +3,2,1,3,1,2,2,1,1,3,3,3,3,3,0,0, +3,1,2,2,1,3,3,1,1,1,3,3,3,3,0,0, +3,3,3,3,1,3,1,1,1,2,3,3,3,3,0,0, +1,3,2,1,2,3,2,1,3,2,3,3,3,3,0,0, +2,1,1,2,3,3,1,3,3,2,3,3,3,3,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0, +3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3, +0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0, +0,3,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3, +0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,0,3,0,0,0,0,3,3,3,0,0,0,0, +0,3,0,3,3,0,0,0,3,0,0,3,3,3,0,0, +0,3,3,3,3,3,0,0,3,0,0,3,0,0,0,0, +0,0,3,3,0,3,0,3,0,0,0,3,0,0,0,0, +0,0,3,3,0,3,0,3,0,0,0,3,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,3,3,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,3,3,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,3,3,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,3,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,3,3,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,3, +0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,3, +0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,3, +0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,3,0,0,0,0,0,3,3,3,0,0, +0,0,0,0,0,3,0,0,0,0,0,3,3,3,0,0, +3,0,0,0,0,0,3,0,0,0,0,3,3,0,0,0, +0,0,0,0,0,0,3,0,0,0,0,3,0,0,0,0, +0,0,0,0,0,0,3,0,0,0,0,3,0,0,0,0, +0,0,0,0,0,0,0,3,0,0,0,3,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0, +3,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,3,0,0,3,0,3,0,0,0,3,3,0,0,0, +0,0,3,0,0,0,0,3,0,0,3,3,0,3,0,0, +0,0,0,0,0,0,0,3,0,0,3,0,0,3,0,0, +0,0,0,0,0,0,0,3,0,0,3,0,0,0,3,0, +0,0,0,0,0,0,0,3,0,3,3,0,0,0,0,3, +0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + +4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +16,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0, +0,0,0,0,0,0,185,186,187,188,0,0,0,0,0,0, +0,0,0,0,0,0,197,198,199,200,0,0,0,0,0,0, +0,0,0,0,0,0,209,210,211,212,0,0,0,0,0,0, +0,237,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,150,0,0,0,228,0,0,0,0,0,0,0,0, +4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +16,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,225,0,0,0,0,0,0,222,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/orthogonal-infinite/orthogonal-infinite.ts b/example/orthogonal-infinite/orthogonal-infinite.ts new file mode 100644 index 00000000..7f98851c --- /dev/null +++ b/example/orthogonal-infinite/orthogonal-infinite.ts @@ -0,0 +1,92 @@ +import * as ex from 'excalibur'; +import { TiledResource } from '@excalibur-tiled'; + +class Player extends ex.Actor { + override onPostUpdate(engine: ex.Engine) { + this.vel = ex.vec(0, 0) + const speed = 64; + if (engine.input.keyboard.isHeld(ex.Keys.Right)) { + this.vel.x = speed; + } + if (engine.input.keyboard.isHeld(ex.Keys.Left)) { + this.vel.x = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Up)) { + this.vel.y = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Down)) { + this.vel.y = speed; + } + } +} + +const game = new ex.Engine({ + width: 800, + height: 600, + canvasElementId: 'game', + pointerScope: ex.PointerScope.Canvas, + antialiasing: false +}); +game.toggleDebug(); + +const tiledMap = new TiledResource('./orthogonal-infinite.tmx', { + useMapBackgroundColor: true, + entityClassNameFactories: { + 'player-start': (props) => { + return new Player({ + pos: props.worldPos, + width: 16, + height: 16, + color: ex.Color.Blue, + collisionType: ex.CollisionType.Active + }); + } + } +}); + +// const tiledMap = new TiledResource('../../test/unit/tiled/parser-spec/orthogonal-infinite.tmx', { +// useMapBackgroundColor: true, +// entityClassNameFactories: { +// 'player-start': (props) => { +// return new Player({ +// pos: props.worldPos, +// width: 16, +// height: 16, +// color: ex.Color.Blue, +// collisionType: ex.CollisionType.Active +// }); +// } +// } +// }); + +const loader = new ex.Loader([tiledMap]); + +let currentPointer!: ex.Vector; +game.input.pointers.primary.on('down', (moveEvent) => { + currentPointer = moveEvent.worldPos; + game.currentScene.camera.move(currentPointer, 300, ex.EasingFunctions.EaseInOutCubic); +}); + +game.input.pointers.primary.on('move', (moveEvent) => { + const tile = tiledMap.getTileByPoint('ground', moveEvent.worldPos); + if (tile) { + console.log(tile); + } +}) + +game.input.pointers.primary.on('wheel', (wheelEvent) => { + // wheel up + game.currentScene.camera.pos = currentPointer; + if (wheelEvent.deltaY < 0) { + game.currentScene.camera.zoom *= 1.2; + } else { + game.currentScene.camera.zoom /= 1.2; + } +}); + +game.start(loader).then(() => { + tiledMap.addToScene(game.currentScene); + currentPointer = game.currentScene.camera.pos; + + (window as any).tiledMap = tiledMap; +}); diff --git a/example/orthogonal-infinite/tilemap_packed.png b/example/orthogonal-infinite/tilemap_packed.png new file mode 100644 index 0000000000000000000000000000000000000000..ed007c5f4a8a9c53a865b8150f70f6f40f20968c GIT binary patch literal 5049 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 literal 0 HcmV?d00001 diff --git a/example/orthogonal/coin.tx b/example/orthogonal/coin.tx new file mode 100644 index 00000000..ef9ab38b --- /dev/null +++ b/example/orthogonal/coin.tx @@ -0,0 +1,9 @@ + + diff --git a/example/orthogonal/external-fantasy.tsx b/example/orthogonal/external-fantasy.tsx new file mode 100644 index 00000000..0addd26d --- /dev/null +++ b/example/orthogonal/external-fantasy.tsx @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/orthogonal/index.html b/example/orthogonal/index.html new file mode 100644 index 00000000..e306bcf0 --- /dev/null +++ b/example/orthogonal/index.html @@ -0,0 +1,15 @@ + + + + Orthogonal Map Test + + + + + + + diff --git a/example/orthogonal/orthogonal.tmx b/example/orthogonal/orthogonal.tmx new file mode 100644 index 00000000..6edf2c0b --- /dev/null +++ b/example/orthogonal/orthogonal.tmx @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + +3,1,3,1,1,3,2,1,2,3, +2,1,2,1,1,1,2,2,2,3, +1,3,1,2,1,2,3,3,3,3, +1,3,1,3,1,2,1,3,1,1, +2,1,3,1,3,3,2,3,2,3, +3,2,1,3,1,2,2,1,1,3, +3,1,2,2,1,3,3,1,1,1, +3,3,3,3,1,3,1,1,1,2, +1,3,2,1,2,3,2,1,3,2, +2,1,1,2,3,3,1,3,3,2 + + + + + + + +4,0,0,0,0,0,0,0,0,4, +16,0,0,0,0,0,0,0,0,16, +0,0,0,0,0,0,185,186,187,188, +0,0,0,0,0,0,197,198,199,200, +0,0,0,0,0,0,209,210,211,212, +0,237,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,150,0,0,0,228,0,0, +4,0,0,0,0,0,0,0,0,4, +16,0,0,0,0,0,0,0,0,16 + + + + +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,225,0,0,0,0,0,0,222,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + + + + + + + + + + diff --git a/example/orthogonal/orthogonal.ts b/example/orthogonal/orthogonal.ts new file mode 100644 index 00000000..940736c5 --- /dev/null +++ b/example/orthogonal/orthogonal.ts @@ -0,0 +1,92 @@ +import * as ex from 'excalibur'; +import { TiledResource } from '@excalibur-tiled'; + +class Player extends ex.Actor { + override onPostUpdate(engine: ex.Engine) { + this.vel = ex.vec(0, 0) + const speed = 64; + if (engine.input.keyboard.isHeld(ex.Keys.Right)) { + this.vel.x = speed; + } + if (engine.input.keyboard.isHeld(ex.Keys.Left)) { + this.vel.x = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Up)) { + this.vel.y = -speed; + } + if (game.input.keyboard.isHeld(ex.Input.Keys.Down)) { + this.vel.y = speed; + } + } +} + +const game = new ex.Engine({ + width: 800, + height: 600, + canvasElementId: 'game', + pointerScope: ex.PointerScope.Canvas, + antialiasing: false +}); +game.toggleDebug(); + +const tiledMap = new TiledResource('./orthogonal.tmx', { + useMapBackgroundColor: true, + entityClassNameFactories: { + 'player-start': (props) => { + return new Player({ + pos: props.worldPos, + width: 16, + height: 16, + color: ex.Color.Blue, + collisionType: ex.CollisionType.Active + }); + } + } +}); + +// const tiledMap = new TiledResource('../../test/unit/tiled/parser-spec/orthogonal-infinite.tmx', { +// useMapBackgroundColor: true, +// entityClassNameFactories: { +// 'player-start': (props) => { +// return new Player({ +// pos: props.worldPos, +// width: 16, +// height: 16, +// color: ex.Color.Blue, +// collisionType: ex.CollisionType.Active +// }); +// } +// } +// }); + +const loader = new ex.Loader([tiledMap]); + +let currentPointer!: ex.Vector; +game.input.pointers.primary.on('down', (moveEvent) => { + currentPointer = moveEvent.worldPos; + game.currentScene.camera.move(currentPointer, 300, ex.EasingFunctions.EaseInOutCubic); +}); + +game.input.pointers.primary.on('move', (moveEvent) => { + const tile = tiledMap.getTileByPoint('ground', moveEvent.worldPos); + if (tile) { + console.log(tile); + } +}) + +game.input.pointers.primary.on('wheel', (wheelEvent) => { + // wheel up + game.currentScene.camera.pos = currentPointer; + if (wheelEvent.deltaY < 0) { + game.currentScene.camera.zoom *= 1.2; + } else { + game.currentScene.camera.zoom /= 1.2; + } +}); + +game.start(loader).then(() => { + tiledMap.addToScene(game.currentScene); + currentPointer = game.currentScene.camera.pos; + + (window as any).tiledMap = tiledMap; +}); diff --git a/example/orthogonal/tilemap_packed.png b/example/orthogonal/tilemap_packed.png new file mode 100644 index 0000000000000000000000000000000000000000..ed007c5f4a8a9c53a865b8150f70f6f40f20968c GIT binary patch literal 5049 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 literal 0 HcmV?d00001 diff --git a/example/tilemap-collider.aseprite b/example/tilemap-collider.aseprite deleted file mode 100644 index 4e75b7c9df525ff58030547dd5aef37cf6ba0da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmcJN&nv@W9LJx{7P)X(%4K_6Yaz1DqGdHH2ezUeh8&F9YCB9MZ7Bz2*<}~`IG zaaNMlN{Z#+ARJiX;Gj4O_4V3D_7C_xJ+Gec^VIWxeZJrCm|BSY9hJ~Aq)-VVCYXQ4 zUSU&IGybFU-2U;ZEv9M-sAE>jVq{s|4eNR-e|8LIC&i^Agi+dIPlFSN99Ed}b;7$T zGrZmo!I$h7{CsPNn~wu9a%6!Wt5N6wPdeX;C6Hpeej}$$}>60DasM z#~NjPk;N2E91+A0HN23*2%Un9qF{jn`Gk{9ESUt7MwFqDBrD)=p&%-SXDl9^mewI2 zw6b)h@KcmZ$7hda0)GGdMOX0f}y$hvetV0m*cUV>C%}AdHs4{Tcf=u>uK6Z UjGNca7t_5)v*!3&=+)ZhZ?Z(6)Bpeg diff --git a/example/tilemap.tmx b/example/tilemap.tmx deleted file mode 100644 index 69e2b1e1..00000000 --- a/example/tilemap.tmx +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - BQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAUAAAAFAAAABgAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAYAAAAFAAAABQAAAAYAAAAFAAAABwAAAAcAAAAHAAAABwAAAAUAAAAGAAAABQAAAAUAAAAGAAAABQAAAAcAAAAIAAAACAAAAAcAAAAFAAAABgAAAAUAAAAFAAAABgAAAAUAAAAHAAAACAAAAAgAAAAHAAAABQAAAAYAAAAFAAAABQAAAAYAAAAFAAAABwAAAAcAAAAHAAAABwAAAAUAAAAGAAAABQAAAAUAAAAGAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABgAAAAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAA== - - - - - AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/files.d.ts b/files.d.ts index 4ae0c6b7..48393436 100644 --- a/files.d.ts +++ b/files.d.ts @@ -1,5 +1,28 @@ -declare module '*.tmx'; -declare module '*.tmj'; -declare module '*.tsx'; -declare module '*.tsj'; -declare module '*.json'; \ No newline at end of file +declare module '*.tmx' { + const value: string; + export default value; +} +declare module '*.tmj' { + const value: string; + export default value; +} +declare module '*.tsx' { + const value: string; + export default value; +} +declare module '*.tx' { + const value: string; + export default value; +} +declare module '*.tsj' { + const value: string; + export default value; +} +declare module '*.tj' { + const value: string; + export default value; +} +declare module '*.json' { + const value: string; + export default value; +} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 8a33aeb1..5ea4bfc3 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,19 +2,29 @@ // Generated on Sun Jan 31 2021 14:58:28 GMT-0600 (Central Standard Time) const webpack = require('./webpack.config') +const NodePolyfillPlugin = require('node-polyfill-webpack-plugin') module.exports = function(config) { config.set({ + client: { + // Excalibur logs / console logs suppressed when captureConsole = false; + captureConsole: false, + }, // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', - webpack: webpack, + webpack: { + ...webpack, + ...{ plugins: [ + new NodePolyfillPlugin() // for json-diff tests in parser + ]} + }, // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], + frameworks: ['jasmine', 'webpack'], proxies: { // smooths over loading files because karma prepends '/base/' to everything @@ -34,8 +44,10 @@ module.exports = function(config) { { pattern: './example/**/*.png', included: false, served: true }, { pattern: './test/**/*.tmx', included: false, served: true }, { pattern: './test/**/*.tsx', included: false, served: true }, + { pattern: './test/**/*.tx', included: false, served: true }, { pattern: './test/**/*.tmj', included: false, served: true }, { pattern: './test/**/*.tsj', included: false, served: true }, + { pattern: './test/**/*.tj', included: false, served: true }, { pattern: './test/**/*.png', included: false, served: true } ], diff --git a/package-lock.json b/package-lock.json index 639a2eb6..49b26572 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7178 +1,2686 @@ { - "name": "@excaliburjs/plugin-tiled", - "version": "0.28.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@excaliburjs/plugin-tiled", - "version": "0.28.0", - "license": "BSD-2-Clause", - "dependencies": { - "fast-xml-parser": "3.21.1", - "pako": "1.0.11", - "zstddec": "0.1.0" - }, - "devDependencies": { - "@excaliburjs/testing": "0.25.1", - "@types/jasmine": "3.10.15", - "@types/pako": "1.0.6", - "@types/webpack-env": "1.18.3", - "cross-env": "7.0.3", - "excalibur": "~0.28.1", - "jasmine-core": "4.6.0", - "karma": "6.4.2", - "karma-chrome-launcher": "3.2.0", - "karma-jasmine": "4.0.2", - "karma-webpack": "5.0.0", - "raw-loader": "4.0.2", - "ts-loader": "9.5.0", - "typescript": "4.9.5", - "webpack": "5.89.0", - "webpack-bundle-analyzer": "4.9.1", - "webpack-cli": "4.10.0", - "webpack-dev-server": "4.12.0" - }, - "peerDependencies": { - "excalibur": "~0.28.1" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@excaliburjs/testing": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@excaliburjs/testing/-/testing-0.25.1.tgz", - "integrity": "sha512-yw8HU5A2jHGcL3y1N3J8hhdT4GrNV2PWodMsx/nst7JUiIZmpjHCbc8e32mxiB2LNu2ViSveL2WM9CZDLWCOPQ==", - "dev": true, - "dependencies": { - "@types/node": "16.7.10", - "@types/node-static": "0.7.7", - "@types/pixelmatch": "5.2.4", - "@types/pngjs": "6.0.1", - "@types/puppeteer": "5.4.4", - "commander": "8.1.0", - "node-static": "0.7.11", - "pixelmatch": "5.2.1", - "pngjs": "6.0.0", - "puppeteer": "10.2.0" - }, - "bin": { - "ex-test": "dist/src/cli.js" - } - }, - "node_modules/@excaliburjs/testing/node_modules/@types/node": { - "version": "16.7.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", - "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", - "dev": true - }, - "node_modules/@excaliburjs/testing/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@excaliburjs/testing/node_modules/commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@excaliburjs/testing/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@excaliburjs/testing/node_modules/devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "node_modules/@excaliburjs/testing/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@excaliburjs/testing/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@excaliburjs/testing/node_modules/progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@excaliburjs/testing/node_modules/puppeteer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.2.0.tgz", - "integrity": "sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "engines": { - "node": ">=10.18.1" - } - }, - "node_modules/@excaliburjs/testing/node_modules/tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/@excaliburjs/testing/node_modules/unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/@excaliburjs/testing/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", - "dev": true - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, - "node_modules/@types/eslint": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", - "integrity": "sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.27", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz", - "integrity": "sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.10.15", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.15.tgz", - "integrity": "sha512-NdWern4OhbU7QcdlpPnvqy7LqpEjiAQ47tHDRdUKyGcwnhdmTsGniSJCC2B9ODiYiRnP53v6HOzu8B5/bqOtUw==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", - "dev": true - }, - "node_modules/@types/node-static": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/node-static/-/node-static-0.7.7.tgz", - "integrity": "sha512-Cq3c9lfC9zRrGxe7ox073219Mpy/kmWNsISG0yEG7aUEk33xv/g+uqz/+4b7hM4WN9LsGageBzGuvy09inaGhg==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-cqH9QTLnznwxSPZxhoKpEjeXflGFSI7xcJoWgSkJ13b3kzrLuvJMNzqB+cJxCVyLe8TQ6SIhPBgEnDVNr0dr2w==", - "dev": true - }, - "node_modules/@types/pixelmatch": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-5.2.4.tgz", - "integrity": "sha512-HDaSHIAv9kwpMN7zlmwfTv6gax0PiporJOipcrGsVNF3Ba+kryOZc0Pio5pn6NhisgWr7TaajlPEKTbTAypIBQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/pngjs": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.1.tgz", - "integrity": "sha512-J39njbdW1U/6YyVXvC9+1iflZghP8jgRf2ndYghdJb5xL49LYDB+1EuAxfbuJ2IBbWIL3AjHPQhgaTxT3YaYeg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/puppeteer": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz", - "integrity": "sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/webpack-env": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.3.tgz", - "integrity": "sha512-v4CH6FLBCftYGFAswDhzFLjKgucXsOkIf5Mzl8ZZhEtC6oye9whFInNPKszNB9AvX7JEZMtpXxWctih6addP+Q==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", - "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bl/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bl/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bl/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bonjour-service": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz", - "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.4" - } - }, - "node_modules/bonjour-service/node_modules/dns-packet": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/bonjour-service/node_modules/multicast-dns": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001285", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", - "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/core-js": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", - "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-env/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-env/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-env/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-env/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-env/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz", - "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz", - "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==", - "dev": true, - "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "ws": "~8.2.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", - "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", - "dev": true, - "dependencies": { - "base64-arraybuffer": "~1.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/excalibur": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/excalibur/-/excalibur-0.28.1.tgz", - "integrity": "sha512-nTuew4c8F3vJLbuGEuQ1snwWWpvKP9CD+bMwuwZv4luudZdV1eM3D+zImjqf6d7GcpBoib6fWFLs8x3zD+vmqw==", - "dev": true, - "dependencies": { - "core-js": "3.32.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "node_modules/fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "dependencies": { - "strnum": "^1.0.4" - }, - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/karma": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", - "dev": true, - "dependencies": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.4.1", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-jasmine": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz", - "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.6.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "karma": "*" - } - }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "3.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", - "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", - "dev": true - }, - "node_modules/karma-webpack": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", - "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "webpack-merge": "^4.1.5" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/karma/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.invokemap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz", - "integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==", - "dev": true - }, - "node_modules/lodash.pullall": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.pullall/-/lodash.pullall-4.2.0.tgz", - "integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==", - "dev": true - }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "node_modules/log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", - "dev": true, - "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", - "rfdc": "^1.3.0", - "streamroller": "^3.0.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/log4js/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/log4js/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dev": true, - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.0.tgz", - "integrity": "sha512-M4AsdaP0bGNaSPtatd/+f76asocI0cFaURRdeQVZvrJBrYp2Qohv5hDbGHykuNqCb1BYjWHjdS6HlN50qbztwA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/node-static": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz", - "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==", - "dev": true, - "dependencies": { - "colors": ">=0.6.0", - "mime": "^1.2.9", - "optimist": ">=0.3.4" - }, - "bin": { - "static": "bin/cli.js" - }, - "engines": { - "node": ">= 0.4.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "dependencies": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "node_modules/optimist/node_modules/minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dev": true, - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pixelmatch": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==", - "dev": true, - "dependencies": { - "pngjs": "^4.0.1" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pixelmatch/node_modules/pngjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "dev": true, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/raw-loader/node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/raw-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/raw-loader/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", - "dev": true - }, - "node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dev": true, - "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy-transport/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/spdy/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", - "dev": true, - "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/streamroller/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strnum": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.4.tgz", - "integrity": "sha512-lMzNMfDpaQOLt4B2mEbfzYS0+T7dvCXeojnlGf6f1AygvWDMcWyXYaLbyICfjVu29sErR8fnRagQfBW/N/hGgw==" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar-stream/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/tar-stream/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/terser": { - "version": "5.19.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", - "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ts-loader": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.0.tgz", - "integrity": "sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz", - "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "is-plain-object": "^5.0.0", - "lodash.debounce": "^4.0.8", - "lodash.escape": "^4.0.1", - "lodash.flatten": "^4.4.0", - "lodash.invokemap": "^4.6.0", - "lodash.pullall": "^4.2.0", - "lodash.uniqby": "^4.7.0", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.12.0.tgz", - "integrity": "sha512-XRN9YRnvOj3TQQ5w/0pR1y1xDcVnbWtNkTri46kuEbaWUPTHsWUvOyAAI7PZHLY+hsFki2kRltJjKMw7e+IiqA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/zstddec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", - "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==" - } - }, - "dependencies": { - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@excaliburjs/testing": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@excaliburjs/testing/-/testing-0.25.1.tgz", - "integrity": "sha512-yw8HU5A2jHGcL3y1N3J8hhdT4GrNV2PWodMsx/nst7JUiIZmpjHCbc8e32mxiB2LNu2ViSveL2WM9CZDLWCOPQ==", - "dev": true, - "requires": { - "@types/node": "16.7.10", - "@types/node-static": "0.7.7", - "@types/pixelmatch": "5.2.4", - "@types/pngjs": "6.0.1", - "@types/puppeteer": "5.4.4", - "commander": "8.1.0", - "node-static": "0.7.11", - "pixelmatch": "5.2.1", - "pngjs": "6.0.0", - "puppeteer": "10.2.0" - }, - "dependencies": { - "@types/node": { - "version": "16.7.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", - "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true - }, - "puppeteer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.2.0.tgz", - "integrity": "sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw==", - "dev": true, - "requires": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - } - }, - "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "requires": {} - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", - "dev": true - }, - "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", - "dev": true - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", - "dev": true - }, - "@types/eslint": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", - "integrity": "sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.27", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz", - "integrity": "sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "3.10.15", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.15.tgz", - "integrity": "sha512-NdWern4OhbU7QcdlpPnvqy7LqpEjiAQ47tHDRdUKyGcwnhdmTsGniSJCC2B9ODiYiRnP53v6HOzu8B5/bqOtUw==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/node": { - "version": "14.14.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", - "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", - "dev": true - }, - "@types/node-static": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/node-static/-/node-static-0.7.7.tgz", - "integrity": "sha512-Cq3c9lfC9zRrGxe7ox073219Mpy/kmWNsISG0yEG7aUEk33xv/g+uqz/+4b7hM4WN9LsGageBzGuvy09inaGhg==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-cqH9QTLnznwxSPZxhoKpEjeXflGFSI7xcJoWgSkJ13b3kzrLuvJMNzqB+cJxCVyLe8TQ6SIhPBgEnDVNr0dr2w==", - "dev": true - }, - "@types/pixelmatch": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@types/pixelmatch/-/pixelmatch-5.2.4.tgz", - "integrity": "sha512-HDaSHIAv9kwpMN7zlmwfTv6gax0PiporJOipcrGsVNF3Ba+kryOZc0Pio5pn6NhisgWr7TaajlPEKTbTAypIBQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/pngjs": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.1.tgz", - "integrity": "sha512-J39njbdW1U/6YyVXvC9+1iflZghP8jgRf2ndYghdJb5xL49LYDB+1EuAxfbuJ2IBbWIL3AjHPQhgaTxT3YaYeg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/puppeteer": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz", - "integrity": "sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/webpack-env": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.3.tgz", - "integrity": "sha512-v4CH6FLBCftYGFAswDhzFLjKgucXsOkIf5Mzl8ZZhEtC6oye9whFInNPKszNB9AvX7JEZMtpXxWctih6addP+Q==", - "dev": true - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "requires": { + "name": "@excaliburjs/plugin-tiled", + "version": "0.29.0-alpha.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@excaliburjs/plugin-tiled", + "version": "0.29.0-alpha.1", + "license": "BSD-2-Clause", + "dependencies": { + "compare-versions": "6.1.0", + "fast-xml-parser": "3.21.1", + "pako": "1.0.11", + "zod": "3.22.4", + "zstddec": "0.1.0" + }, + "devDependencies": { + "@playwright/test": "1.40.1", + "@types/jasmine": "5.1.4", + "@types/json-diff": "1.0.2", + "@types/node": "20.10.6", + "@types/pako": "1.0.6", + "@types/webpack-env": "1.18.4", + "cross-env": "7.0.3", + "excalibur": "~0.28.5", + "http-server": "14.1.1", + "jasmine-core": "5.1.1", + "json-diff": "1.0.6", + "karma": "6.4.2", + "karma-chrome-launcher": "3.2.0", + "karma-jasmine": "5.1.0", + "karma-webpack": "5.0.0", + "node-polyfill-webpack-plugin": "3.0.0", + "raw-loader": "4.0.2", + "ts-loader": "9.5.1", + "typescript": "5.3.3", + "webpack": "5.89.0", + "webpack-bundle-analyzer": "4.10.1", + "webpack-cli": "5.1.4", + "webpack-dev-middleware": "7.0.0", + "webpack-dev-server": "4.15.1" + }, + "peerDependencies": { + "excalibur": "~0.28.5" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@ewoudenberg/difflib": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@ewoudenberg/difflib/-/difflib-0.1.0.tgz", + "integrity": "sha512-OU5P5mJyD3OoWYMWY+yIgwvgNS9cFAU10f+DDuvtogcWQOoJIsQ4Hy2McSfUfhKjq8L0FuWVb4Rt7kgA+XK86A==", + "dev": true, + "dependencies": { + "heap": ">= 0.2.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@playwright/test": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", + "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", + "dev": true, + "dependencies": { + "playwright": "1.40.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.24", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", + "dev": true + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-diff": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/json-diff/-/json-diff-1.0.2.tgz", + "integrity": "sha512-XsYtsD5ih3imV3W+e2/ick1rMqs1ERG2uW3EJPPgF6PndPmf+sci2PtR3wOd7u4Di2wn3gU/EPql/2AYdKqqDw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", + "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-cqH9QTLnznwxSPZxhoKpEjeXflGFSI7xcJoWgSkJ13b3kzrLuvJMNzqB+cJxCVyLe8TQ6SIhPBgEnDVNr0dr2w==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/webpack-env": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.4.tgz", + "integrity": "sha512-I6e+9+HtWADAWeeJWDFQtdk4EVSAbj6Rtz4q8fJ7mSr1M0jzlFcs8/HZ+Xb5SHzVm1dxH7aUiI+A8kA8Gcrm0A==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", - "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.4", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - } - } - }, - "bonjour-service": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz", - "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", - "dev": true, - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.4" - }, - "dependencies": { - "dns-packet": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", - "dev": true, - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "multicast-dns": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", - "dev": true, - "requires": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001285", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", - "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - } - }, - "connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "core-js": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", - "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001572", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/compare-versions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", + "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz", + "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "requires": { - "execa": "^5.0.0" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.11.tgz", - "integrity": "sha512-2OhsaYgsWGhWjx2et8kaUcdktPbBGjKM2X0BReUCKcSCPttEY+hz2zie820JLbttU8jwL92+JJysWwkut3wZgA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz", - "integrity": "sha512-ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==", - "dev": true, - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "ws": "~8.2.3" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "engine.io-parser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz", - "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==", - "dev": true, - "requires": { - "base64-arraybuffer": "~1.0.1" - } - }, - "enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "excalibur": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/excalibur/-/excalibur-0.28.1.tgz", - "integrity": "sha512-nTuew4c8F3vJLbuGEuQ1snwWWpvKP9CD+bMwuwZv4luudZdV1eM3D+zImjqf6d7GcpBoib6fWFLs8x3zD+vmqw==", - "dev": true, - "requires": { - "core-js": "3.32.0" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/domain-browser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/dreamopt": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", + "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", + "dev": true, + "dependencies": { + "wordwrap": ">=0.0.2" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.616", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { "ms": "2.1.2" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "requires": { - "strnum": "^1.0.4" - } - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dev": true, - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/excalibur": { + "version": "0.28.5", + "resolved": "https://registry.npmjs.org/excalibur/-/excalibur-0.28.5.tgz", + "integrity": "sha512-xoIYVOBYgTSPpclrqep/RKz1bCsqY9KR7UjJP0KAW1GVq2P7XpDcPpqZ6GN83DIKErvkub3uvMhSlSRG3V4GJA==", + "dev": true, + "dependencies": { + "core-js": "3.33.3" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "peer": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-xml-parser": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", + "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", + "dependencies": { + "strnum": "^1.0.4" + }, + "bin": { + "xml2js": "cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -7180,2150 +2688,8322 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-server/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { "has-flag": "^4.0.0" - } - } - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "karma": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.5.1", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.8", - "lodash": "^4.17.21", - "log4js": "^6.4.1", - "mime": "^2.5.2", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.5", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^4.4.1", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "dependencies": { - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - } - } - }, - "karma-chrome-launcher": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", - "dev": true, - "requires": { - "which": "^1.2.1" - } - }, - "karma-jasmine": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz", - "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==", - "dev": true, - "requires": { - "jasmine-core": "^3.6.0" - }, - "dependencies": { - "jasmine-core": { - "version": "3.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", - "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", - "dev": true - } - } - }, - "karma-webpack": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", - "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "webpack-merge": "^4.1.5" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "lodash.invokemap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz", - "integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==", - "dev": true - }, - "lodash.pullall": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.pullall/-/lodash.pullall-4.2.0.tgz", - "integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==", - "dev": true - }, - "lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", - "dev": true, - "requires": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", - "rfdc": "^1.3.0", - "streamroller": "^3.0.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dev": true, - "requires": { - "fs-monkey": "1.0.3" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "dependencies": { - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "node-forge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.0.tgz", - "integrity": "sha512-M4AsdaP0bGNaSPtatd/+f76asocI0cFaURRdeQVZvrJBrYp2Qohv5hDbGHykuNqCb1BYjWHjdS6HlN50qbztwA==", - "dev": true - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node-static": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz", - "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==", - "dev": true, - "requires": { - "colors": ">=0.6.0", - "mime": "^1.2.9", - "optimist": ">=0.3.4" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dev": true, - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pixelmatch": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==", - "dev": true, - "requires": { - "pngjs": "^4.0.1" - }, - "dependencies": { - "pngjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==", - "dev": true - } - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - } - } - }, - "raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/json-diff": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.6.tgz", + "integrity": "sha512-tcFIPRdlc35YkYdGxcamJjllUhXWv4n2rK9oJ2RsAzV4FBkuV4ojKEDgcZ+kpKxDmJKv+PFK65+1tVVOnSeEqA==", + "dev": true, + "dependencies": { + "@ewoudenberg/difflib": "0.1.0", + "colors": "^1.4.0", + "dreamopt": "~0.8.0" + }, + "bin": { + "json-diff": "bin/json-diff.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/json-joy": { + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/json-joy/-/json-joy-9.9.1.tgz", + "integrity": "sha512-/d7th2nbQRBQ/nqTkBe6KjjvDciSwn9UICmndwk3Ed/Bk9AqkTRm4PnLVfXG4DKbT0rEY0nKnwE7NqZlqKE6kg==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "hyperdyperid": "^1.2.0" + }, + "bin": { + "jj": "bin/jj.js", + "json-pack": "bin/json-pack.js", + "json-pack-test": "bin/json-pack-test.js", + "json-patch": "bin/json-patch.js", + "json-patch-test": "bin/json-patch-test.js", + "json-pointer": "bin/json-pointer.js", + "json-pointer-test": "bin/json-pointer-test.js", + "json-unpack": "bin/json-unpack.js" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "quill-delta": "^5", + "rxjs": "7", + "tslib": "2" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-webpack": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", + "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "webpack-merge": "^4.1.5" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "requires": { - "node-forge": "^1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "peer": true + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/log4js/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/log4js/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.6.0.tgz", + "integrity": "sha512-I6mhA1//KEZfKRQT9LujyW6lRbX7RkC24xKododIDO3AGShcaFAMKElv1yFGWX8fD4UaSiwasr3NeQ5TdtHY1A==", + "dev": true, + "dependencies": { + "json-joy": "^9.2.0", + "thingies": "^1.11.1" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-polyfill-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-QpG496dDBiaelQZu9wDcVvpLbtk7h9Ctz693RaUMZBgl8DUoFToO90ZTLKq57gP7rwKqYtGbMBXkcEgLSag2jQ==", + "dev": true, + "dependencies": { + "assert": "^2.1.0", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "domain-browser": "^4.22.0", + "events": "^3.3.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "punycode": "^2.3.0", + "querystring-es3": "^0.2.1", + "readable-stream": "^4.4.2", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "timers-browserify": "^2.0.12", + "tty-browserify": "^0.0.1", + "type-fest": "^4.4.0", + "url": "^0.11.3", + "util": "^0.12.5", + "vm-browserify": "^1.1.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "webpack": ">=5" + } + }, + "node_modules/node-polyfill-webpack-plugin/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", + "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", + "dev": true, + "dependencies": { + "playwright-core": "1.40.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", + "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/quill-delta": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz", + "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==", + "dev": true, + "peer": true, + "dependencies": { + "fast-diff": "^1.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "dev": true + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - } - }, - "socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "dependencies": { + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", - "dev": true - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "dev": true, - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", - "dev": true, - "requires": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/streamroller/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strnum": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.4.tgz", - "integrity": "sha512-lMzNMfDpaQOLt4B2mEbfzYS0+T7dvCXeojnlGf6f1AygvWDMcWyXYaLbyICfjVu29sErR8fnRagQfBW/N/hGgw==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/thingies": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.15.0.tgz", + "integrity": "sha512-ZSJlvEpD8QllYim0VSGlbAoob/iPrTWNlV/m8ltizMvMmzzU2gVJvHfH9ijLstyciWF70ZiQXqz+BCXWJq+ZQw==", + "dev": true, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true, + "peer": true + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-fest": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz", + "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "terser": { - "version": "5.19.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", - "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true - }, - "ts-loader": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.0.tgz", - "integrity": "sha512-LLlB/pkB4q9mW2yLdFMnK3dEHbrBjeZTYguaaIfusyojBgAGf5kF+O6KcWqiGzWqHk0LBsoolrp4VftEURhybg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - } - }, - "webpack-bundle-analyzer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz", - "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "is-plain-object": "^5.0.0", - "lodash.debounce": "^4.0.8", - "lodash.escape": "^4.0.1", - "lodash.flatten": "^4.4.0", - "lodash.invokemap": "^4.6.0", - "lodash.pullall": "^4.2.0", - "lodash.uniqby": "^4.7.0", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "requires": {} - } - } - }, - "webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "is-plain-object": "^5.0.0", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-cli/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "dev": true, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "requires": { + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.0.0.tgz", + "integrity": "sha512-tZ5hqsWwww/8DislmrzXE3x+4f+v10H1z57mA2dWFrILb4i3xX+dPhTkcdR0DLyQztrhF2AUmO5nN085UYjd/Q==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.12.0.tgz", - "integrity": "sha512-XRN9YRnvOj3TQQ5w/0pR1y1xDcVnbWtNkTri46kuEbaWUPTHsWUvOyAAI7PZHLY+hsFki2kRltJjKMw7e+IiqA==", - "dev": true, - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "requires": {} - } - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zstddec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", + "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==" + } + }, + "dependencies": { + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@ewoudenberg/difflib": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@ewoudenberg/difflib/-/difflib-0.1.0.tgz", + "integrity": "sha512-OU5P5mJyD3OoWYMWY+yIgwvgNS9cFAU10f+DDuvtogcWQOoJIsQ4Hy2McSfUfhKjq8L0FuWVb4Rt7kgA+XK86A==", + "dev": true, + "requires": { + "heap": ">= 0.2.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "@playwright/test": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", + "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", + "dev": true, + "requires": { + "playwright": "1.40.1" + } + }, + "@polka/url": { + "version": "1.0.0-next.24", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", + "dev": true + }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "@types/json-diff": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/json-diff/-/json-diff-1.0.2.tgz", + "integrity": "sha512-XsYtsD5ih3imV3W+e2/ick1rMqs1ERG2uW3EJPPgF6PndPmf+sci2PtR3wOd7u4Di2wn3gU/EPql/2AYdKqqDw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "@types/node": { + "version": "20.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", + "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-cqH9QTLnznwxSPZxhoKpEjeXflGFSI7xcJoWgSkJ13b3kzrLuvJMNzqB+cJxCVyLe8TQ6SIhPBgEnDVNr0dr2w==", + "dev": true + }, + "@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "requires": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/webpack-env": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.4.tgz", + "integrity": "sha512-I6e+9+HtWADAWeeJWDFQtdk4EVSAbj6Rtz4q8fJ7mSr1M0jzlFcs8/HZ+Xb5SHzVm1dxH7aUiI+A8kA8Gcrm0A==", + "dev": true + }, + "@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "requires": {} + }, + "@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.4", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001572", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "compare-versions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", + "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "core-js": { + "version": "3.33.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz", + "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "domain-browser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", + "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", + "dev": true + }, + "dreamopt": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", + "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", + "dev": true, + "requires": { + "wordwrap": ">=0.0.2" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.616", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + } + } + }, + "engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true + }, + "es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "excalibur": { + "version": "0.28.5", + "resolved": "https://registry.npmjs.org/excalibur/-/excalibur-0.28.5.tgz", + "integrity": "sha512-xoIYVOBYgTSPpclrqep/RKz1bCsqY9KR7UjJP0KAW1GVq2P7XpDcPpqZ6GN83DIKErvkub3uvMhSlSRG3V4GJA==", + "dev": true, + "requires": { + "core-js": "3.33.3" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + } + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "peer": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-xml-parser": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", + "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", + "requires": { + "strnum": "^1.0.4" + } + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "requires": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true + }, + "ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "json-diff": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.6.tgz", + "integrity": "sha512-tcFIPRdlc35YkYdGxcamJjllUhXWv4n2rK9oJ2RsAzV4FBkuV4ojKEDgcZ+kpKxDmJKv+PFK65+1tVVOnSeEqA==", + "dev": true, + "requires": { + "@ewoudenberg/difflib": "0.1.0", + "colors": "^1.4.0", + "dreamopt": "~0.8.0" + } + }, + "json-joy": { + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/json-joy/-/json-joy-9.9.1.tgz", + "integrity": "sha512-/d7th2nbQRBQ/nqTkBe6KjjvDciSwn9UICmndwk3Ed/Bk9AqkTRm4PnLVfXG4DKbT0rEY0nKnwE7NqZlqKE6kg==", + "dev": true, + "requires": { + "arg": "^5.0.2", + "hyperdyperid": "^1.2.0" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + } + }, + "karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "requires": { + "which": "^1.2.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "requires": { + "jasmine-core": "^4.1.0" + }, + "dependencies": { + "jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + } + } + }, + "karma-webpack": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz", + "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "webpack-merge": "^4.1.5" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "peer": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "peer": true + }, + "log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memfs": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.6.0.tgz", + "integrity": "sha512-I6mhA1//KEZfKRQT9LujyW6lRbX7RkC24xKododIDO3AGShcaFAMKElv1yFGWX8fD4UaSiwasr3NeQ5TdtHY1A==", + "dev": true, + "requires": { + "json-joy": "^9.2.0", + "thingies": "^1.11.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-polyfill-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-QpG496dDBiaelQZu9wDcVvpLbtk7h9Ctz693RaUMZBgl8DUoFToO90ZTLKq57gP7rwKqYtGbMBXkcEgLSag2jQ==", + "dev": true, + "requires": { + "assert": "^2.1.0", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "domain-browser": "^4.22.0", + "events": "^3.3.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "punycode": "^2.3.0", + "querystring-es3": "^0.2.1", + "readable-stream": "^4.4.2", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "timers-browserify": "^2.0.12", + "tty-browserify": "^0.0.1", + "type-fest": "^4.4.0", + "url": "^0.11.3", + "util": "^0.12.5", + "vm-browserify": "^1.1.2" + }, + "dependencies": { + "readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + } + } + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "playwright": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", + "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", + "dev": true, + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.40.1" + }, + "dependencies": { + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + } + } + }, + "playwright-core": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", + "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", + "dev": true + }, + "portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "requires": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, + "quill-delta": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz", + "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==", + "dev": true, + "peer": true, + "requires": { + "fast-diff": "^1.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "requires": { + "resolve": "^1.20.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "peer": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "dev": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "requires": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + } + }, + "socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "requires": { + "ws": "~8.11.0" + }, + "dependencies": { + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + } + } + }, + "socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true, - "requires": {} - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "zstddec": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", - "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==" - } - } + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + } + }, + "thingies": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.15.0.tgz", + "integrity": "sha512-ZSJlvEpD8QllYim0VSGlbAoob/iPrTWNlV/m8ltizMvMmzzU2gVJvHfH9ijLstyciWF70ZiQXqz+BCXWJq+ZQw==", + "dev": true, + "requires": {} + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true + }, + "ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true, + "peer": true + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "type-fest": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.9.0.tgz", + "integrity": "sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "requires": { + "qs": "^6.4.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + } + }, + "webpack-bundle-analyzer": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "is-plain-object": "^5.0.0", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, + "webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.0.0.tgz", + "integrity": "sha512-tZ5hqsWwww/8DislmrzXE3x+4f+v10H1z57mA2dWFrILb4i3xX+dPhTkcdR0DLyQztrhF2AUmO5nN085UYjd/Q==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "7.0.0", + "ws": "^8.13.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "requires": {} + } + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==" + }, + "zstddec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", + "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==" + } + } } diff --git a/package.json b/package.json index c4fafa8c..73de4b63 100644 --- a/package.json +++ b/package.json @@ -1,68 +1,85 @@ { - "name": "@excaliburjs/plugin-tiled", - "version": "0.28.0", - "description": "excalibur-tiled provides Tiled map editor integration with Excalibur.js", - "main": "dist/excalibur-tiled.min.js", - "typings": "dist/src/index.d.ts", - "author": { - "name": "Excalibur.js Team", - "email": "excaliburjs@gmail.com", - "url": "http://excaliburjs.com" - }, - "homepage": "https://github.com/excaliburjs/excalibur-tiled", - "repository": { - "type": "git", - "url": "git://github.com/excaliburjs/excalibur-tiled.git" - }, - "bugs": { - "url": "https://github.com/excaliburjs/excalibur-tiled/issues" - }, - "license": "BSD-2-Clause", - "keywords": [ - "excalibur", - "game", - "engine", - "tiled", - "maps", - "map", - "typescript", - "javascript", - "simple" - ], - "scripts": { - "start": "webpack-dev-server --config webpack.config.test.js --open", - "watch": "webpack --progress --watch", - "build": "cross-env NODE_ENV=production webpack", - "test": "npm run test:unit && npm run test:integration", - "test:unit": "karma start", - "test:integration": "webpack --config webpack.config.test.js && tsc ./test/integration/ex-tests.ts && ex-test -d ./example -t ./test/integration/ex-tests.js" - }, - "devDependencies": { - "@excaliburjs/testing": "0.25.1", - "@types/jasmine": "3.10.15", - "@types/pako": "1.0.6", - "@types/webpack-env": "1.18.3", - "cross-env": "7.0.3", - "excalibur": "~0.28.1", - "jasmine-core": "4.6.0", - "karma": "6.4.2", - "karma-chrome-launcher": "3.2.0", - "karma-jasmine": "4.0.2", - "karma-webpack": "5.0.0", - "raw-loader": "4.0.2", - "ts-loader": "9.5.0", - "typescript": "4.9.5", - "webpack": "5.89.0", - "webpack-bundle-analyzer": "4.9.1", - "webpack-cli": "4.10.0", - "webpack-dev-server": "4.12.0" - }, - "dependencies": { - "fast-xml-parser": "3.21.1", - "pako": "1.0.11", - "zstddec": "0.1.0" - }, - "peerDependencies": { - "excalibur": "~0.28.1" - } + "name": "@excaliburjs/plugin-tiled", + "version": "0.29.0-alpha.1", + "description": "excalibur-tiled provides Tiled map editor integration with Excalibur.js", + "main": "dist/excalibur-tiled.min.js", + "typings": "dist/src/index.d.ts", + "author": { + "name": "Excalibur.js Team", + "email": "excaliburjs@gmail.com", + "url": "http://excaliburjs.com" + }, + "homepage": "https://github.com/excaliburjs/excalibur-tiled", + "repository": { + "type": "git", + "url": "git://github.com/excaliburjs/excalibur-tiled.git" + }, + "bugs": { + "url": "https://github.com/excaliburjs/excalibur-tiled/issues" + }, + "license": "BSD-2-Clause", + "keywords": [ + "excalibur", + "game", + "engine", + "tiled", + "maps", + "map", + "typescript", + "javascript", + "simple" + ], + "scripts": { + "start": "webpack-dev-server --config webpack.config.test.js --open", + "start:no-open": "webpack-dev-server --config webpack.config.test.js", + "start:ci-server": "webpack --config webpack.config.test.js && http-server ./example --port 8080", + "watch": "webpack --progress --watch", + "build": "cross-env NODE_ENV=production webpack", + "test": "npm run test:unit", + "test:watch": "karma start --single-run=false", + "test:unit": "karma start", + "test:integration": "npx playwright test", + "test:integration-update": "npx playwright test --update-snapshots" + }, + "devDependencies": { + "@playwright/test": "1.40.1", + "@types/jasmine": "5.1.4", + "@types/json-diff": "1.0.2", + "@types/node": "20.10.6", + "@types/pako": "1.0.6", + "@types/webpack-env": "1.18.4", + "cross-env": "7.0.3", + "excalibur": "~0.28.5", + "http-server": "14.1.1", + "jasmine-core": "5.1.1", + "json-diff": "1.0.6", + "karma": "6.4.2", + "karma-chrome-launcher": "3.2.0", + "karma-jasmine": "5.1.0", + "karma-webpack": "5.0.0", + "node-polyfill-webpack-plugin": "3.0.0", + "raw-loader": "4.0.2", + "ts-loader": "9.5.1", + "typescript": "5.3.3", + "webpack": "5.89.0", + "webpack-bundle-analyzer": "4.10.1", + "webpack-cli": "5.1.4", + "webpack-dev-middleware": "7.0.0", + "webpack-dev-server": "4.15.1" + }, + "dependencies": { + "compare-versions": "6.1.0", + "fast-xml-parser": "3.21.1", + "pako": "1.0.11", + "zod": "3.22.4", + "zstddec": "0.1.0" + }, + "peerDependencies": { + "excalibur": "~0.28.5" + }, + "overrides": { + "webpack-dev-server": { + "webpack-dev-middleware": "7.0.0" + } + } } diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 00000000..aa66979a --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,86 @@ +import { defineConfig, devices } from '@playwright/test'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './test/integration/', + webServer: { + command: 'npm run start:ci-server', + timeout: 240 * 1000, // linux takes a long time + url: 'http://localhost:8080', + reuseExistingServer: !process.env.CI, + stdout: 'ignore', + stderr: 'pipe', + }, + timeout: 120_000, // linux is slow sometimes + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + // webServer: { + // command: 'npm run start', + // url: 'http://127.0.0.1:3000', + // reuseExistingServer: !process.env.CI, + // }, +}); diff --git a/src/deprecated.ts b/src/deprecated.ts new file mode 100644 index 00000000..abc986ab --- /dev/null +++ b/src/deprecated.ts @@ -0,0 +1 @@ +export * from './deprecated/index'; \ No newline at end of file diff --git a/src/deprecated/index.ts b/src/deprecated/index.ts new file mode 100644 index 00000000..a0a31d02 --- /dev/null +++ b/src/deprecated/index.ts @@ -0,0 +1,17 @@ +export * from './tiled-types'; +export * from "./tiled-map-resource"; +export * from './tiled-map-parser'; +export * from './tiled-entity'; +export * from './tiled-layer'; +export * from './tiled-object'; +export * from './tiled-tileset'; +export * from './tiled-object-component'; +export * from './tiled-layer-component'; + +// raw data structures +export * from './raw-tiled-layer'; +export * from './raw-tiled-map'; +export * from './raw-tiled-object'; +export * from './raw-tiled-text'; +export * from './raw-tiled-tileset'; +export * from './raw-tileset-tile'; \ No newline at end of file diff --git a/src/raw-tiled-layer.ts b/src/deprecated/raw-tiled-layer.ts similarity index 99% rename from src/raw-tiled-layer.ts rename to src/deprecated/raw-tiled-layer.ts index ccb7102c..43cec715 100644 --- a/src/raw-tiled-layer.ts +++ b/src/deprecated/raw-tiled-layer.ts @@ -1,7 +1,9 @@ import { TiledChunk, TiledProperty, TiledEncoding, TiledCompression } from './tiled-types'; import { RawTiledObject } from "./raw-tiled-object"; - +/** + * @deprecated + */ export interface RawTiledLayer { /** * Incremental ID - unique across all layers diff --git a/src/raw-tiled-map.ts b/src/deprecated/raw-tiled-map.ts similarity index 99% rename from src/raw-tiled-map.ts rename to src/deprecated/raw-tiled-map.ts index d17265aa..c5447503 100644 --- a/src/raw-tiled-map.ts +++ b/src/deprecated/raw-tiled-map.ts @@ -7,6 +7,7 @@ import { RawTiledLayer } from "./raw-tiled-layer"; * * Represents the interface for the Tiled exported data structure (JSON). Used * when loading resources via Resource loader. + * @deprecated */ export interface RawTiledMap { diff --git a/src/raw-tiled-object.ts b/src/deprecated/raw-tiled-object.ts similarity index 97% rename from src/raw-tiled-object.ts rename to src/deprecated/raw-tiled-object.ts index a8b0147c..d28ae4d7 100644 --- a/src/raw-tiled-object.ts +++ b/src/deprecated/raw-tiled-object.ts @@ -1,7 +1,9 @@ import { RawTiledText } from './raw-tiled-text'; import { TiledProperty, TiledPoint } from './tiled-types'; - +/** + * @deprecated + */ export interface RawTiledObject { id: number; diff --git a/src/raw-tiled-text.ts b/src/deprecated/raw-tiled-text.ts similarity index 97% rename from src/raw-tiled-text.ts rename to src/deprecated/raw-tiled-text.ts index eed10d91..c78ea981 100644 --- a/src/raw-tiled-text.ts +++ b/src/deprecated/raw-tiled-text.ts @@ -1,4 +1,6 @@ - +/** + * @deprecated + */ export interface RawTiledText { text: string; /** diff --git a/src/raw-tiled-tileset.ts b/src/deprecated/raw-tiled-tileset.ts similarity index 98% rename from src/raw-tiled-tileset.ts rename to src/deprecated/raw-tiled-tileset.ts index 65c04030..47d1779c 100644 --- a/src/raw-tiled-tileset.ts +++ b/src/deprecated/raw-tiled-tileset.ts @@ -2,6 +2,9 @@ import { RawTilesetTile } from './raw-tileset-tile'; import { TiledGrid, TiledProperty, TiledTileOffset, TiledMapTerrain, TiledWangSet } from './tiled-types'; +/** + * @deprecated + */ export interface RawTiledTileset { type: 'tileset'; /** diff --git a/src/raw-tileset-tile.ts b/src/deprecated/raw-tileset-tile.ts similarity index 94% rename from src/raw-tileset-tile.ts rename to src/deprecated/raw-tileset-tile.ts index 5f8af540..87b6edaa 100644 --- a/src/raw-tileset-tile.ts +++ b/src/deprecated/raw-tileset-tile.ts @@ -1,7 +1,9 @@ import { RawTiledLayer } from './raw-tiled-layer'; import { TiledFrame, TiledProperty } from './tiled-types'; - +/** + * @deprecated + */ export interface RawTilesetTile { id: number; type: string; diff --git a/src/tiled-entity.ts b/src/deprecated/tiled-entity.ts similarity index 94% rename from src/tiled-entity.ts rename to src/deprecated/tiled-entity.ts index 5aa419c3..6c4f28ff 100644 --- a/src/tiled-entity.ts +++ b/src/deprecated/tiled-entity.ts @@ -5,6 +5,7 @@ import { TiledProperty } from "./tiled-types"; * @param properties * @param prop * @returns + * @deprecated */ export const getProperty = (properties: TiledProperty[], prop: string): TiledProperty | undefined => { if (Array.isArray(properties)) { @@ -12,6 +13,9 @@ export const getProperty = (properties: TiledProperty[], prop: stri } } +/** + * @deprecated + */ export class TiledEntity { public id!: number; public name?: string; diff --git a/src/tiled-layer-component.ts b/src/deprecated/tiled-layer-component.ts similarity index 91% rename from src/tiled-layer-component.ts rename to src/deprecated/tiled-layer-component.ts index b8b70fe9..b4895a0c 100644 --- a/src/tiled-layer-component.ts +++ b/src/deprecated/tiled-layer-component.ts @@ -1,6 +1,9 @@ import { Component } from "excalibur"; import { TiledLayer } from "./tiled-layer"; +/** + * @deprecated + */ export class TiledLayerComponent extends Component<'ex.tiledlayer'> { public readonly type = "ex.tiledlayer"; constructor(public layer: TiledLayer) { diff --git a/src/tiled-layer.ts b/src/deprecated/tiled-layer.ts similarity index 97% rename from src/tiled-layer.ts rename to src/deprecated/tiled-layer.ts index 0ea0b919..87aa6320 100644 --- a/src/tiled-layer.ts +++ b/src/deprecated/tiled-layer.ts @@ -12,6 +12,7 @@ export const FLIPPED_DIAGONALLY_FLAG = 0x20000000; /** * Inspects gid for horizontal flag * @param gid + * @deprecated */ export const isFlippedHorizontally = (gid: number): boolean => { return !!(gid & FLIPPED_HORIZONTALLY_FLAG); @@ -20,6 +21,7 @@ export const isFlippedHorizontally = (gid: number): boolean => { /** * Inspects gid for vertical flag * @param gid + * @deprecated */ export const isFlippedVertically = (gid: number): boolean => { return !!(gid & FLIPPED_VERTICALLY_FLAG); @@ -28,6 +30,7 @@ export const isFlippedVertically = (gid: number): boolean => { /** * Inspects gid for diagonal flag (anti-diagonal flip enables tile rotation) * @param gid + * @deprecated */ export const isFlippedDiagonally = (gid: number): boolean => { return !!(gid & FLIPPED_DIAGONALLY_FLAG); @@ -37,6 +40,7 @@ export const isFlippedDiagonally = (gid: number): boolean => { /** * Removes bit flags from gid * @param gid + * @deprecated */ export const getCanonicalGid = (gid: number): number => { return gid & ~(FLIPPED_HORIZONTALLY_FLAG | @@ -45,7 +49,9 @@ export const getCanonicalGid = (gid: number): number => { } - +/** + * @deprecated + */ export class TiledLayer extends TiledEntity { /** * Array of gid's (global Tiled identifiers) that point to a unique tile diff --git a/src/tiled-map-parser.ts b/src/deprecated/tiled-map-parser.ts similarity index 99% rename from src/tiled-map-parser.ts rename to src/deprecated/tiled-map-parser.ts index bea3652d..05b47718 100644 --- a/src/tiled-map-parser.ts +++ b/src/deprecated/tiled-map-parser.ts @@ -12,6 +12,7 @@ import { TiledTileset } from './tiled-tileset'; /** * Responsible for representing the Tiled TileMap in total and parsing from the source Tiled files (tmx) + * @deprecated */ export class TiledMap { /** @@ -268,6 +269,9 @@ export class TiledMap { } } +/** + * @deprecated + */ const tagLayerWithOriginalOrder = (rawMap: RawTiledMap) => { let order = 0; for (let layer of rawMap.layers) { @@ -277,6 +281,7 @@ const tagLayerWithOriginalOrder = (rawMap: RawTiledMap) => { /** * Decompression implementations + * @deprecated */ const decompressors = { diff --git a/src/tiled-map-resource.ts b/src/deprecated/tiled-map-resource.ts similarity index 99% rename from src/tiled-map-resource.ts rename to src/deprecated/tiled-map-resource.ts index 2ff827a3..f8712a0a 100644 --- a/src/tiled-map-resource.ts +++ b/src/deprecated/tiled-map-resource.ts @@ -40,8 +40,13 @@ import { getCanonicalGid, isFlippedDiagonally, isFlippedHorizontally, isFlippedV import { getProperty, TiledEntity } from './tiled-entity'; import { TiledObjectComponent } from './tiled-object-component'; import { TiledLayerComponent } from './tiled-layer-component'; -import { RawTilesetTile, TiledLayer, TiledObjectGroup } from '.'; +import { RawTilesetTile } from './raw-tileset-tile'; +import { TiledLayer } from './tiled-layer'; +import { TiledObjectGroup } from './tiled-object'; +/** + * @deprecated + */ export enum TiledMapFormat { /** @@ -55,6 +60,9 @@ export enum TiledMapFormat { JSON = 'JSON' } +/** + * @deprecated + */ export interface TiledMapOptions { /** * By default files ending in .tmx are treated as TMX format, otherwise treated as JSON format @@ -67,6 +75,9 @@ export interface TiledMapOptions { startingLayerZIndex?: number; } +/** + * @deprecated + */ export class TiledMapResource implements Loadable { private _resource: Resource; public data!: TiledMap; @@ -816,6 +827,7 @@ export class TiledMapResource implements Loadable { if (tilemap) { const tile = tilemap.getTileByPoint(worldPos); + if (!tile) return null; return this._lookupTile(tilemap, tile, layerName); } return null; diff --git a/src/tiled-object-component.ts b/src/deprecated/tiled-object-component.ts similarity index 91% rename from src/tiled-object-component.ts rename to src/deprecated/tiled-object-component.ts index 8b3518e9..90dbb5bd 100644 --- a/src/tiled-object-component.ts +++ b/src/deprecated/tiled-object-component.ts @@ -1,6 +1,9 @@ import { Component } from "excalibur"; import { TiledObject } from "./tiled-object"; +/** + * @deprecated + */ export class TiledObjectComponent extends Component<'ex.tiledobject'> { public readonly type = "ex.tiledobject"; constructor(public object: TiledObject) { diff --git a/src/tiled-object.ts b/src/deprecated/tiled-object.ts similarity index 97% rename from src/tiled-object.ts rename to src/deprecated/tiled-object.ts index 8dc3486e..4b2fd459 100644 --- a/src/tiled-object.ts +++ b/src/deprecated/tiled-object.ts @@ -4,6 +4,9 @@ import { RawTiledLayer } from "./raw-tiled-layer"; import { RawTiledObject } from "./raw-tiled-object"; import { toRadians } from "excalibur"; +/** + * @deprecated + */ export interface Polygon { x: number; y: number; @@ -12,6 +15,9 @@ export interface Polygon { } } +/** + * @deprecated + */ export interface Box { x: number; y: number; @@ -19,6 +25,9 @@ export interface Box { height: number; } +/** + * @deprecated + */ export interface Ellipse { x: number; y: number; @@ -28,6 +37,7 @@ export interface Ellipse { /** * Tiled Object Layer + * @deprecated */ export class TiledObjectGroup extends TiledEntity { public objects: TiledObject[] = []; @@ -120,6 +130,9 @@ export class TiledObjectGroup extends TiledEntity { } } +/** + * @deprecated + */ export class TiledObject extends TiledEntity { public type?: string; public class?: string; @@ -189,6 +202,9 @@ export class TiledObject extends TiledEntity { } } +/** + * @deprecated + */ export interface TiledText { text: string; color?: string; @@ -201,6 +217,9 @@ export interface TiledText { kerning: boolean; } +/** + * @deprecated + */ export interface TiledInsertedTile extends TiledObject { gid: number; } diff --git a/src/tiled-tileset.ts b/src/deprecated/tiled-tileset.ts similarity index 98% rename from src/tiled-tileset.ts rename to src/deprecated/tiled-tileset.ts index 8da95e02..de7ef40b 100644 --- a/src/tiled-tileset.ts +++ b/src/deprecated/tiled-tileset.ts @@ -1,14 +1,16 @@ // tmx xml parsing import { Matrix, vec, Animation, Sprite, Frame, AnimationStrategy } from 'excalibur'; import * as parser from 'fast-xml-parser' -import { TiledObjectGroup } from '.'; +import { TiledObjectGroup } from './tiled-object'; import { TiledFrame, TiledGrid, TiledMapTerrain, TiledProperty, TiledTileOffset, TiledWangSet } from "./tiled-types"; import { RawTiledTileset } from "./raw-tiled-tileset"; import { RawTilesetTile } from "./raw-tileset-tile"; import { TiledMapResource } from './tiled-map-resource'; import { getProperty } from './tiled-entity'; - +/** + * @deprecated + */ export class TiledTileset { /** * The JSON format version @@ -146,6 +148,9 @@ export class TiledTileset { } } +/** + * @deprecated + */ export class TiledTilesetTile { id!: number; tileset!: TiledTileset; @@ -215,6 +220,9 @@ export class TiledTilesetTile { } } // TODO merge this with the other parser +/** + * @deprecated + */ export const parseExternalTsx = (tsxData: string, firstGid: number, source: string): TiledTileset => { const _convertToArray = (obj: any, prop: string, plurlalize = false) => { if (!obj[prop]) { @@ -291,6 +299,9 @@ export const parseExternalTsx = (tsxData: string, firstGid: number, source: stri return result; } +/** + * @deprecated + */ export const parseExternalJson = (rawTileset: RawTiledTileset, firstGid: number, source: string): TiledTileset => { let tiles: TiledTilesetTile[] = []; diff --git a/src/tiled-types.ts b/src/deprecated/tiled-types.ts similarity index 89% rename from src/tiled-types.ts rename to src/deprecated/tiled-types.ts index 62436055..8be7ee94 100644 --- a/src/tiled-types.ts +++ b/src/deprecated/tiled-types.ts @@ -1,19 +1,28 @@ import { CollisionType } from 'excalibur'; -import { TiledObject } from '.'; +import { TiledObject } from './tiled-object'; +/** + * @deprecated + */ export interface ExcaliburData { camera?: ExcaliburCamera; colliders?: ExcaliburCollider[]; } +/** + * @deprecated + */ export interface ExcaliburCamera { x: number; y: number; zoom: number; } +/** + * @deprecated + */ export interface ExcaliburCollider { type: 'box' | 'circle'; collisionType: CollisionType; @@ -27,6 +36,9 @@ export interface ExcaliburCollider { name?: string; tiled: TiledObject; } +/** + * @deprecated + */ export interface TiledProperty { /** * Name of the property @@ -42,9 +54,18 @@ export interface TiledProperty { value: T; } +/** + * @deprecated + */ export type TiledEncoding = 'csv' | 'base64'; +/** + * @deprecated + */ export type TiledCompression = 'zlib' | 'gzip' | 'zstd'; +/** + * @deprecated + */ export interface TiledChunk { /** * Array of unsigned int (GIDs) or base64-encoded data @@ -68,6 +89,9 @@ export interface TiledChunk { y: number; } +/** + * @deprecated + */ export interface TiledTileOffset { /** * Horizontal offset in pixels @@ -79,6 +103,9 @@ export interface TiledTileOffset { y: number; } +/** + * @deprecated + */ export interface TiledWangSet { /** * Array of Wang colors @@ -97,6 +124,9 @@ export interface TiledWangSet { wangtiles: TiledWangTile[]; } +/** + * @deprecated + */ export interface TiledWangTile { /** * Array of Wang color indexes (uchar[8] @@ -120,6 +150,9 @@ export interface TiledWangTile { vflip: boolean; } +/** + * @deprecated + */ export interface TiledWangColor { /** * Hex-formatted color (#RRGGBB or #AARRGGBB) @@ -139,6 +172,9 @@ export interface TiledWangColor { tile: number; } +/** + * @deprecated + */ export interface TiledGrid { /** * orthogonal (default) or isometric @@ -154,6 +190,9 @@ export interface TiledGrid { height: number; } +/** + * @deprecated + */ export interface TiledFrame { /** * Frame duration in milliseconds @@ -164,6 +203,10 @@ export interface TiledFrame { */ tileid: number; } + +/** + * @deprecated + */ export interface TiledMapTerrain { name: string; /** @@ -173,6 +216,9 @@ export interface TiledMapTerrain { properties: TiledProperty[]; } +/** + * @deprecated + */ export interface TiledPoint { x: number; y: number; diff --git a/src/index.ts b/src/index.ts index 2c6e871c..b09b1198 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,23 @@ -// exports -export * from './tiled-types'; -export * from "./tiled-map-resource"; -export * from './tiled-map-parser'; -export * from './tiled-entity'; -export * from './tiled-layer'; -export * from './tiled-object'; -export * from './tiled-tileset'; -export * from './tiled-object-component'; -export * from './tiled-layer-component'; +export * from './parser/tiled-parser'; +export * from './resource/decoder'; +export * from './resource/excalibur-properties'; +export * from './resource/file-loader'; +export * from './resource/filter-util'; +export * from './resource/gid-util'; +export * from './resource/layer'; +export * from './resource/loader-cache'; +export * from './resource/objects'; +export * from './resource/path-util'; +export * from './resource/properties'; +export * from './resource/template-resource'; +export * from './resource/template'; +export * from './resource/tiled-data-component'; +export * from './resource/tiled-layer-component'; +export * from './resource/tiled-resource'; +export * from './resource/tileset-resource'; +export * from './resource/tileset'; -// raw data structures -export * from './raw-tiled-layer'; -export * from './raw-tiled-map'; -export * from './raw-tiled-object'; -export * from './raw-tiled-text'; -export * from './raw-tiled-tileset'; -export * from './raw-tileset-tile'; \ No newline at end of file + +// export deprecated +import * as deprecated from './deprecated'; +export { deprecated as Deprecated }; \ No newline at end of file diff --git a/src/parser/tiled-parser.ts b/src/parser/tiled-parser.ts new file mode 100644 index 00000000..de53ace2 --- /dev/null +++ b/src/parser/tiled-parser.ts @@ -0,0 +1,1003 @@ +import { z } from 'zod'; +const TiledIntProperty = z.object({ + name: z.string(), + type: z.literal('int'), + value: z.number().int() +}) + +const TiledBoolProperty = z.object({ + name: z.string(), + type: z.literal('bool'), + value: z.boolean() +}) + +const TiledFloatProperty = z.object({ + name: z.string(), + type: z.literal('float'), + value: z.number() +}) + +const TiledStringProperty = z.object({ + name: z.string(), + type: z.literal('string'), + value: z.string() +}) + +const TiledFileProperty = z.object({ + name: z.string(), + type: z.literal('file'), + value: z.string() +}) + +const TiledColorProperty = z.object({ + name: z.string(), + type: z.literal('color'), + value: z.string() +}) + +const TiledObjectProperty = z.object({ + name: z.string(), + type: z.literal('object'), + value: z.number() +}) + +const TiledProperty = z.discriminatedUnion("type", [ + TiledIntProperty, + TiledBoolProperty, + TiledFloatProperty, + TiledStringProperty, + TiledFileProperty, + TiledColorProperty, + TiledObjectProperty +]); + +const TiledTileLayerBase = z.object({ + name: z.string(), + type: z.literal("tilelayer"), + class: z.string().optional(), + height: z.number(), + width: z.number(), + x: z.number(), + y: z.number(), + id: z.number(), + opacity: z.number(), + properties: z.array(TiledProperty).optional(), + visible: z.boolean(), + tintcolor: z.string().optional(), + parallaxx: z.number().optional(), + parallaxy: z.number().optional(), + offsetx: z.number().optional(), + offsety: z.number().optional(), +}); + +const TiledTileLayerCSV = TiledTileLayerBase.extend({ + data: z.array(z.number()), + encoding: z.literal('csv') +}) + +const TiledTileLayerGZIP = TiledTileLayerBase.extend({ + data: z.array(z.number()), + encoding: z.literal('base64'), + compression: z.literal('gzip'), +}) + +const TiledTileLayerZLib = TiledTileLayerBase.extend({ + data: z.array(z.number()), + encoding: z.literal('base64'), + compression: z.literal('zlib'), +}) + +const TiledTileLayerZStandard = TiledTileLayerBase.extend({ + data: z.array(z.number()), + encoding: z.literal('base64'), + compression: z.literal('zstandard'), +}) + +const TiledTileLayerBase64 = TiledTileLayerBase.extend({ + data: z.string(), + encoding: z.literal('base64'), + compression: z.string(), +}); + +const TiledTileLayerChunk = z.object({ + x: z.number(), + y: z.number(), + width: z.number(), + height: z.number(), + data: z.array(z.number()) // infinite chunks are only csv! +}); + +export const TiledTileLayerInfinite = TiledTileLayerBase.extend({ + startx: z.number(), + starty: z.number(), + chunks: z.array(TiledTileLayerChunk) +}); + +export const TiledTileLayer = z.union([ + TiledTileLayerBase64, + TiledTileLayerCSV, + TiledTileLayerGZIP, + TiledTileLayerZLib, + TiledTileLayerZStandard, + TiledTileLayerInfinite +]); + +export function needsDecoding(x: TiledTileLayer): x is TiledTileLayer & { encoding: 'base64', data: string, compression: string } { + return (x as any).encoding === 'base64'; +} + +export function isCSV(x: TiledTileLayer): x is TiledTileLayer & { encoding: 'csv', data: number[] } { + return (x as any).encoding === 'csv' || Array.isArray((x as any).data); +} + +const TiledPoint = z.object({ + x: z.number(), + y: z.number() +}); + +const TiledPolygon = z.array(TiledPoint); + +export const TiledText = z.object({ + text: z.string(), + color: z.string().optional(), + fontfamily: z.string().optional(), + pixelsize: z.number().optional(), + wrap: z.boolean().optional(), + halign: z.union([z.literal('left'), z.literal('center'), z.literal('right'), z.literal('justify')]).optional(), + valign: z.union([z.literal('top'), z.literal('center'), z.literal('bottom')]).optional() +}) + +const TiledObject = z.object({ + id: z.number().optional(), // Template files might not have an id for some reason + name: z.string().optional(), + type: z.string().optional(), + x: z.number().optional(), // template files dont have x/y sometimes + y: z.number().optional(), // template files dont have x/y sometimes + rotation: z.number().optional(), + height: z.number().optional(), + width: z.number().optional(), + visible: z.boolean().optional(), + gid: z.number().optional(), + text: TiledText.optional(), + point: z.boolean().optional(), + ellipse: z.boolean().optional(), + polyline: z.array(TiledPoint).optional(), + polygon: TiledPolygon.optional(), + template: z.string().optional(), + properties: z.array(TiledProperty).optional(), +}); + +const TiledAnimation = z.object({ + duration: z.number(), + tileid: z.number() +}); + +const TiledObjectLayer = z.object({ + name: z.string(), + draworder: z.string(), + type: z.literal("objectgroup"), + class: z.string().optional(), + x: z.number(), + y: z.number(), + id: z.number(), + color: z.string().optional(), + tintcolor: z.string().optional(), + parallaxx: z.number().optional(), + parallaxy: z.number().optional(), + offsetx: z.number().optional(), + offsety: z.number().optional(), + opacity: z.number(), + properties: z.array(TiledProperty).optional(), + visible: z.boolean(), + objects: z.array(TiledObject) +}); + +const TiledImageLayer = z.object({ + name: z.string(), + x: z.number(), + y: z.number(), + id: z.number(), + type: z.literal('imagelayer'), + class: z.string().optional(), + image: z.string().optional(), + opacity: z.number(), + properties: z.array(TiledProperty).optional(), + visible: z.boolean(), + tintcolor: z.string().optional(), + repeatx: z.boolean().optional(), + repeaty: z.boolean().optional(), + parallaxx: z.number().optional(), + parallaxy: z.number().optional(), + offsetx: z.number().optional(), + offsety: z.number().optional(), + transparentcolor: z.string().optional() +}); + + +// FIXME recursive Group Layer definition +const TiledLayer = z.union([ + TiledImageLayer, + TiledTileLayer, + TiledObjectLayer +]); + + +const TiledObjectGroup = z.object({ + draworder: z.string(), + id: z.number().optional(), // sometimes tiled doesn't put an id here :( inconsistent + name: z.string(), + x: z.number(), + y: z.number(), + opacity: z.number(), + tintcolor: z.string().optional(), + type: z.literal("objectgroup"), + visible: z.boolean(), + objects: z.array(TiledObject), + properties: z.array(TiledProperty).optional() +}) + +export const TiledTile = z.object({ + id: z.number(), + type: z.string().optional(), + animation: z.array(TiledAnimation).optional(), + objectgroup: TiledObjectGroup.optional(), + probability: z.number().optional(), + properties: z.array(TiledProperty).optional(), + // Tiles can be collections of images + image: z.string().optional(), + imageheight: z.number().optional(), + imagewidth: z.number().optional() +}) + +const TiledTilesetEmbedded = z.object({ + name: z.string(), + firstgid: z.number().optional(), + class: z.string().optional(), + objectalignment: z.union([ + z.literal('topleft'), + z.literal('top'), + z.literal('topright'), + z.literal('left'), + z.literal('center'), + z.literal('right'), + z.literal('bottomleft'), + z.literal('bottom'), + z.literal('bottomright'), + ]).optional(), + // optional image/width/height if collection of images + image: z.string().optional(), + imagewidth: z.number().optional(), + imageheight: z.number().optional(), + columns: z.number(), + tileheight: z.number(), + tilewidth: z.number(), + tilecount: z.number(), + + grid: z.object({ + height: z.number(), + width: z.number(), + orientation: z.union([z.literal('isometric'), z.literal('orthogonal')]) + }).optional(), + // Can specify a drawing offset + tileoffset: TiledPoint.optional(), + spacing: z.number(), + margin: z.number(), + tiles: z.array(TiledTile).optional(), + properties: z.array(TiledProperty).optional() +}); + +export function isTiledTilesetSingleImage(x: TiledTileset): x is TiledTilesetEmbedded & { image: string, imagewidth: number, imageheight: number } { + return !!(x as TiledTilesetEmbedded).image; +} + +export function isTiledTilesetCollectionOfImages(x: TiledTileset): x is Omit { + return !!!(x as TiledTilesetEmbedded).image; +} + +export const TiledTilesetFile = TiledTilesetEmbedded.extend({ + tiledversion: z.string().optional(), + type: z.literal('tileset'), + version: z.string().optional() +}); + +const TiledTilesetExternal = z.object({ + firstgid: z.number(), + source: z.string() +}); + +export const TiledTileset = z.union([TiledTilesetEmbedded, TiledTilesetExternal]); + +export const TiledTemplate = z.object({ + object: TiledObject.extend({ id: z.number().optional() }), + tileset: TiledTilesetExternal.optional(), + type: z.literal('template') +}); + +export const TiledMap = z.object({ + type: z.string(), + class: z.string().optional(), + tiledversion: z.string(), + version: z.string(), + width: z.number(), + height: z.number(), + tilewidth: z.number(), + tileheight: z.number(), + compressionlevel: z.number().optional(), + infinite: z.boolean(), + nextlayerid: z.number(), + nextobjectid: z.number(), + parallaxoriginx: z.number().optional(), + parallaxoriginy: z.number().optional(), + hexsidelength: z.number().optional(), + staggeraxis: z.literal('y').or(z.literal('x')).optional(), + staggerindex: z.literal('odd').or(z.literal('even')).optional(), + orientation: z.union([z.literal("isometric"), z.literal("orthogonal"), z.literal("staggered"), z.literal("hexagonal")]), + renderorder: z.union([z.literal("right-down"), z.literal("right-up"), z.literal("left-down"), z.literal("left-up")]), + backgroundcolor: z.string().optional(), + layers: z.array(TiledLayer), + tilesets: z.array(TiledTileset), + properties: z.array(TiledProperty).optional() +}) + +export type TiledObjectGroup = z.infer; +export type TiledObject = z.infer; +export type TiledTile = z.infer; +export type TiledText = z.infer; + +export type TiledTileset = z.infer; +export type TiledTilesetEmbedded = z.infer; +export type TiledTilesetExternal = z.infer; +export type TiledTilesetFile = z.infer; + +export type TiledTemplate = z.infer; + +export type TiledMap = z.infer; +export type TiledTileLayer = z.infer; +export type TiledTileLayerInfinite = z.infer; +export type TiledObjectLayer = z.infer; +export type TiledImageLayer = z.infer; +export type TiledLayer = z.infer; +export type TiledProperty = z.infer; +export type TiledPropertyTypes = Pick['type']; + +export function isInfiniteLayer(tileLayer: TiledTileLayer): tileLayer is TiledTileLayerInfinite { + return !!(tileLayer as TiledTileLayerInfinite).chunks; +} + +export function isTiledTilesetEmbedded(ts: TiledTileset): ts is TiledTilesetEmbedded { + return !!!(ts as TiledTilesetExternal).source; +} + +export function isTiledTilesetExternal(ts: TiledTileset): ts is TiledTilesetExternal { + return !!(ts as TiledTilesetExternal).source; +} + + +class BoundingBox { + constructor(public x: number, public y: number, public width: number, public height: number) { } + + combine(other: BoundingBox) { + + const right = this.x + this.width; + const bottom = this.y + this.height; + + const otherRight = other.x + other.width; + const otherBottom = other.y + other.height; + + const endRight = Math.max(right, otherRight); + const endBottom = Math.max(bottom, otherBottom); + + + const compositeBB = new BoundingBox( + Math.min(this.x, other.x), + Math.min(this.y, other.y), + endRight - Math.min(this.x, other.x), + endBottom - Math.min(this.y, other.y) + ); + return compositeBB; + } + +} + +export class TiledParser { + + _coerceNumber(value: any) { + return +value; + } + _coerceBoolean(value: any) { + switch(value) { + case "0": return false; + case "false": return false; + case "true": return true; + default: return !!(Boolean(value)); + } + } + + _coerceType(type: TiledPropertyTypes, value: string) { + if (type === 'bool') { + return this._coerceBoolean(value); + } + + if (type === 'int' || type === 'float') { + return this._coerceNumber(value); + } + + if (type === 'object') { + return this._coerceNumber(value); + } + return value; + } + + _parsePropertiesNode(propertiesNode: Element, target: any) { + const properties = []; + if (propertiesNode) { + for (let prop of propertiesNode.children) { + const type = prop.getAttribute('type') as TiledPropertyTypes ?? 'string'; // if no type is set it's string! + let value: any = prop.getAttribute('value'); + if (!value) { + value = prop.innerHTML; + } + properties.push({ + name: prop.getAttribute('name'), + type: type, + value: this._coerceType(type, value as string) + }) + } + } + target.properties = properties; + } + + _parseAttributes(node: Element, target: any) { + // attribute names to coerce into numbers + const numberProps = [ + 'width', + 'height', + 'columns', + 'firstgid', + 'spacing', + 'margin', + 'tilecount', + 'tilewidth', + 'tileheight', + 'opacity', + 'compressionlevel', + 'nextlayerid', + 'nextobjectid', + 'parallaxoriginx', + 'parallaxoriginy', + 'parallaxx', + 'parallaxy', + 'hexsidelength', + 'offsetx', + 'offsety', + 'id', + 'gid', + 'x', + 'y', + 'rotation', + 'probability' + ]; + + // attribute names to coerce into booleans + const booleanProps = [ + "infinite", + 'visible', + 'repeatx', + 'repeaty', + ] + + for (let attribute of node.attributes) { + if (numberProps.indexOf(attribute.name as any) > -1) { + target[attribute.name] = this._coerceNumber(attribute.value); + } else if (booleanProps.indexOf(attribute.name as any) > -1) { + target[attribute.name] = this._coerceBoolean(attribute.value); + } else { + target[attribute.name] = attribute.value; + } + } + } + + parseObject(objectNode: Element, strict = true): TiledObject { + const object: any = {}; + object.type = ''; + object.x = 0; + object.y = 0; + + if (!objectNode.getAttribute('template')) { + object.visible = true; + object.name = ''; + object.rotation = 0; + object.height = 0; + object.width = 0; + } + + this._parseAttributes(objectNode, object); + + + const propertiesNode = objectNode.querySelector('properties') as Element; + if (propertiesNode) { + this._parsePropertiesNode(propertiesNode, object); + } + + const text = objectNode.querySelector('text') as Element; + if (text) { + object.text = { + text: text.textContent + } + + const fontfamily = text.getAttribute('fontfamily'); + if (fontfamily) { + object.text.fontfamily = fontfamily; + } + + const color = text.getAttribute('color'); + if (color) { + object.text.color = color; + } + + const pixelsize = text.getAttribute('pixelsize'); + if (pixelsize) { + object.text.pixelsize = this._coerceNumber(pixelsize); + } + + const wrap = text.getAttribute('wrap'); + if (wrap) { + object.text.wrap = this._coerceBoolean(wrap); + } + + const valign = text.getAttribute('valign'); + if (valign) { + object.text.valign = valign; + } + const halign = text.getAttribute('halign'); + if (halign) { + object.text.halign = halign; + } + } + + const point = objectNode.querySelector('point'); + if (point) { + object.point = true; + } + + const ellipse = objectNode.querySelector('ellipse'); + if (ellipse) { + object.ellipse = true; + } + + + const polygon = objectNode.querySelector('polygon'); + if (polygon) { + const points = polygon.getAttribute('points')?.split(' '); + object.polygon = []; + if (points) { + points.forEach(p => { + const point = p.split(','); + object.polygon.push({ + x: +point[0], + y: +point[1] + }) + }) + } + } + + const polyline = objectNode.querySelector('polyline'); + if (polyline) { + const points = polyline.getAttribute('points')?.split(' '); + object.polyline = []; + if (points) { + points.forEach(p => { + const point = p.split(','); + object.polyline.push({ + x: +point[0], + y: +point[1] + }) + }) + } + } + + if (strict) { + try { + return TiledObject.parse(object); + } catch (e) { + console.error('Could not parse object', object, e); + throw e; + } + } + return object as TiledObject; + } + + parseTileset(tilesetNode: Element, strict = true): TiledTileset { + const tileset: any = {}; + tileset.spacing = 0; + tileset.margin = 0; + this._parseAttributes(tilesetNode, tileset); + + if (tileset.source) { + try { + return TiledTileset.parse(tileset); + } catch (e) { + console.error('Could not parse external tileset', tileset, e); + } + } + + for (let tilesetChild of tilesetNode.children) { + switch (tilesetChild.tagName) { + case 'properties': { + this._parsePropertiesNode(tilesetChild, tileset); + break; + } + case 'tileoffset': { + const tileoffset: any = {}; + this._parseAttributes(tilesetChild, tileoffset); + tileset.tileoffset = tileoffset; + break; + } + case 'grid': { + const grid: any = {}; + this._parseAttributes(tilesetChild, grid); + tileset.grid = grid; + break; + } + case 'image': { + tileset.image = tilesetChild.getAttribute('source'); + tileset.imagewidth = this._coerceNumber(tilesetChild.getAttribute('width')); + tileset.imageheight = this._coerceNumber(tilesetChild.getAttribute('height')); + break; + } + case 'tile': { + if (!tileset.tiles) { + tileset.tiles = []; + } + const tile: any = {}; + this._parseAttributes(tilesetChild, tile); + for (let tileChild of tilesetChild.children) { + switch (tileChild.tagName) { + case 'image': { + tile.image = tileChild.getAttribute('source'); + tile.imagewidth = this._coerceNumber(tileChild.getAttribute('width')); + tile.imageheight = this._coerceNumber(tileChild.getAttribute('height')); + break; + } + case 'objectgroup': { + const objectgroup: any = {}; + objectgroup.type = 'objectgroup'; + objectgroup.name = ""; + objectgroup.visible = true; + objectgroup.x = 0; + objectgroup.y = 0; + objectgroup.opacity = 1; + objectgroup.objects = []; + this._parseAttributes(tileChild, objectgroup); + tile.objectgroup = objectgroup; + + for (let objectChild of tileChild.children) { + const object = this.parseObject(objectChild, strict); + objectgroup.objects.push(object); + } + break; + } + case 'animation': { + const animation: any = []; + for (let frameChild of tileChild.children) { + animation.push({ + duration: this._coerceNumber(frameChild.getAttribute('duration')), + tileid: this._coerceNumber(frameChild.getAttribute('tileid')) + }) + } + + tile.animation = animation; + break; + } + case 'properties': { + this._parsePropertiesNode(tileChild, tile); + break; + } + } + } + + if (strict) { + try { + tileset.tiles.push(TiledTile.parse(tile)); + } catch (e) { + console.error('Could not parse Tile', tile, e); + throw e; + } + } else { + tileset.tiles.push(tile as TiledTile); + } + break; + } + } + } + if (strict) { + try { + return TiledTileset.parse(tileset); + } catch (e) { + console.error('Could not parse Tileset', tileset, e); + throw e; + } + } + return tileset as TiledTileset; + } + + _largestBounds = new BoundingBox(0, 0, 0, 0); + parseTileLayer(layerNode: Element, infinite: boolean, strict = true): TiledLayer { + const layer: any = {}; + layer.type = 'tilelayer'; + layer.compression = ''; // default uncompressed + layer.x = 0; + layer.y = 0; + layer.opacity = 1; + layer.visible = true; + this._parseAttributes(layerNode, layer); + + for (let layerChild of layerNode.children) { + switch (layerChild.tagName) { + case 'properties': { + this._parsePropertiesNode(layerChild, layer); + break; + } + case 'data': { + if (infinite) { + layer.width = 0; + layer.height = 0; + layer.chunks = []; + // Tiled appears to have an undocumented minimum bounds + let bounds: BoundingBox = new BoundingBox(0, 0, 0, 0); + for (let chunkTag of layerChild.children) { + if (chunkTag.tagName === 'chunk') { + const chunk: any = {}; + this._parseAttributes(chunkTag, chunk); + + // If infinite there is no encoding other than CSV! + chunk.data = chunkTag.textContent?.split(',').map(id => +id); + + // combining bounding boxes actually probably is easiest here + const chunkBounds = new BoundingBox(chunk.x, chunk.y, chunk.width, chunk.height); + + bounds = bounds.combine(chunkBounds); + + layer.chunks.push(chunk); + } + } + + layer.width = bounds.width; + layer.height = bounds.height; + layer.startx = bounds.x; + layer.starty = bounds.y; + + this._largestBounds = this._largestBounds.combine(new BoundingBox(layer.startx, layer.starty, layer.width, layer.height)); + + } else { + const encoding = layerChild.getAttribute('encoding'); + // technically breaking compat, but this is useful + layer.encoding = encoding; + + const compression = layerChild.getAttribute('compression'); + if (compression) { + layer.compression = compression; + } + + switch (layer.encoding) { + case 'base64': { + layer.data = layerChild.textContent?.trim(); + break; + } + case 'csv': {// csv case + layer.data = layerChild.textContent?.split(',').map(id => +id); + break; + } + } + } + } + } + } + if (strict) { + try { + return TiledLayer.parse(layer); + } catch (e) { + console.error('Could not parse tiled tile layer', layer, e); + throw e; + } + } + return layer as TiledLayer; + } + + parseObjectGroup(groupNode: Element, strict = true): TiledLayer { + const group: any = {}; + group.type = 'objectgroup'; + group.draworder = 'topdown'; + group.visible = true; + group.x = 0; + group.y = 0; + group.opacity = 1; + group.objects = []; + this._parseAttributes(groupNode, group); + for (let groupChild of groupNode.children) { + switch (groupChild.tagName) { + case 'properties': { + this._parsePropertiesNode(groupChild, group); + break; + } + case 'object': { + const object = this.parseObject(groupChild, strict); + group.objects.push(object); + break; + } + } + } + + if (strict) { + try { + return TiledLayer.parse(group); + } catch (e) { + console.error('Could not parse object group', group, e); + throw e; + } + } + return group as TiledLayer; + } + + parseImageLayer(imageNode: Element, strict = true): TiledLayer { + const imageLayer: any = {}; + imageLayer.type = 'imagelayer'; + imageLayer.visible = true; + imageLayer.x = 0; + imageLayer.y = 0; + imageLayer.opacity = 1; + + const image = imageNode.querySelector('image'); + imageLayer.image = image?.getAttribute('source'); + + const properties = imageNode.querySelector('properties'); + if (properties) { + this._parsePropertiesNode(properties, imageLayer); + } + + const transparentcolor = image?.getAttribute('trans'); + if (transparentcolor) { + imageLayer.transparentcolor = '#' + transparentcolor; + } + + this._parseAttributes(imageNode, imageLayer); + + if (strict) { + try { + return TiledLayer.parse(imageLayer); + } catch (e) { + console.error('Could not parse layer', imageLayer, e); + throw e; + } + } + return imageLayer as TiledLayer; + } + + parseExternalTemplate(txXml: string, strict = true): TiledTemplate { + const domParser = new DOMParser(); + const doc = domParser.parseFromString(txXml, 'application/xml'); + const templateElement = doc.querySelector('template') as Element; + const template: any = {}; + template.type = 'template'; + const objectElement = templateElement.querySelector('object'); + if (objectElement) { + template.object = this.parseObject(objectElement, strict); + } + + const tileSetElement = templateElement.querySelector('tileset'); + if (tileSetElement) { + template.tileset = this.parseTileset(tileSetElement, strict); + } + + if (strict) { + try { + return TiledTemplate.parse(template); + } catch (e) { + console.error('Could not parse template', template, e); + throw e; + } + } + return template as TiledTemplate; + } + + /** + * Takes Tiled tmx xml and produces the equivalent Tiled txj (json) content + * @param tsxXml + */ + parseExternalTileset(tsxXml: string, strict = true): TiledTilesetFile { + const domParser = new DOMParser(); + const doc = domParser.parseFromString(tsxXml, 'application/xml'); + const tilesetElement = doc.querySelector('tileset') as Element; + + const tileset = this.parseTileset(tilesetElement, strict); + + (tileset as any).type = 'tileset'; + this._parseAttributes(tilesetElement, tileset); + + + if (strict) { + try { + return TiledTilesetFile.parse(tileset); + } catch (e) { + console.error('Could not parse tileset file', tileset, e); + throw e; + } + } + return tileset as TiledTilesetFile; + } + + + /** + * Takes Tiled tmx xml and produces the equivalent Tiled tmj (json) content + * @param tmxXml + * @returns + */ + parse(tmxXml: string, strict = true): TiledMap { + const domParser = new DOMParser(); + const doc = domParser.parseFromString(tmxXml, 'application/xml'); + + const mapElement = doc.querySelector('map') as Element; + + const tiledMap: any = {}; + tiledMap.type = 'map'; + tiledMap.compressionlevel = -1; + tiledMap.layers = []; + tiledMap.tilesets = []; + + this._parseAttributes(mapElement, tiledMap); + + const parseHelper = (node: Element, strict = true) => { + switch (node.tagName) { + case 'group': { + // recurse through groups! + // currently we support groups by flattening them, no group types + for (let child of node.children) { + parseHelper(child, strict); + } + break; + } + case 'layer': { + const layer = this.parseTileLayer(node, tiledMap.infinite, strict); + tiledMap.layers.push(layer); + + break; + } + case 'properties': { + this._parsePropertiesNode(node, tiledMap); + break; + } + case 'tileset': { + const tileset = this.parseTileset(node, strict); + tiledMap.tilesets.push(tileset); + break; + } + case 'objectgroup': { + const objectgroup = this.parseObjectGroup(node, strict); + tiledMap.layers.push(objectgroup); + break; + } + case 'imagelayer': { + const imageLayer = this.parseImageLayer(node, strict); + tiledMap.layers.push(imageLayer); + break; + } + } + } + + // Parse all layers + for (let mapChild of mapElement.children) { + parseHelper(mapChild, strict); + } + + if (strict) { + try { + return TiledMap.parse(tiledMap); + } catch (e) { + console.error('Could not parse Tiled map', e); + throw e; + } + } + + return tiledMap as TiledMap; + } +} \ No newline at end of file diff --git a/src/resource/decoder.ts b/src/resource/decoder.ts new file mode 100644 index 00000000..b92ce885 --- /dev/null +++ b/src/resource/decoder.ts @@ -0,0 +1,129 @@ +// gzip & zlib +import { inflate as pakoInflate } from 'pako'; +// zstd +import { ZSTDDecoder } from 'zstddec'; + +export class Decoder { + /** + * Decodes any compressed/encoded Tiled data and produces the canonical list of Tiled gids + * @param data + * @param options + */ + static decode(data: string, compression: string): Promise { + var i: number, + j: number, + l: number, + tmp: number, + placeHolders: number, + arr: Uint8Array; + + if (data.length % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + var PLUS = '+'.charCodeAt(0); + var SLASH = '/'.charCodeAt(0); + var NUMBER = '0'.charCodeAt(0); + var LOWER = 'a'.charCodeAt(0); + var UPPER = 'A'.charCodeAt(0); + var PLUS_URL_SAFE = '-'.charCodeAt(0); + var SLASH_URL_SAFE = '_'.charCodeAt(0); + + function decode(elt: string): number { + var code = elt.charCodeAt(0) + if (code === PLUS || code === PLUS_URL_SAFE) return 62 // '+' + if (code === SLASH || code === SLASH_URL_SAFE) return 63 // '/' + if (code < NUMBER) return -1 // no match + if (code < NUMBER + 10) return code - NUMBER + 26 + 26 + if (code < UPPER + 26) return code - UPPER + if (code < LOWER + 26) return code - LOWER + 26 + throw Error('Could not decode elt'); + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + var len = data.length + placeHolders = data.charAt(len - 2) === '=' ? 2 : data.charAt(len - 1) === '=' ? 1 : 0 + + // base64 is 4/3 + up to two characters of the original data + arr = new Uint8Array(data.length * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? data.length - 4 : data.length + + var L = 0 + + function push(v: number) { + arr[L++] = v + } + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (decode(data.charAt(i)) << 18) | (decode(data.charAt(i + 1)) << 12) | (decode(data.charAt(i + 2)) << 6) | decode(data.charAt(i + 3)) + push((tmp & 0xFF0000) >> 16) + push((tmp & 0xFF00) >> 8) + push(tmp & 0xFF) + } + + if (placeHolders === 2) { + tmp = (decode(data.charAt(i)) << 2) | (decode(data.charAt(i + 1)) >> 4) + push(tmp & 0xFF) + } else if (placeHolders === 1) { + tmp = (decode(data.charAt(i)) << 10) | (decode(data.charAt(i + 1)) << 4) | (decode(data.charAt(i + 2)) >> 2) + push((tmp >> 8) & 0xFF) + push(tmp & 0xFF) + } + + return new Promise(resolve => { + const toNumber = function (byteArray: number[] | Uint8Array) { + var value = 0; + + for (var i = byteArray.length - 1; i >= 0; i--) { + value = (value * 256) + byteArray[i] * 1; + } + + return value; + }; + + // Byte array + // handle compression + if ("zlib" === compression || "gzip" === compression) { + arr = pakoInflate( arr ); + + var resultLen = arr.length / 4; + var result = new Array(resultLen); + + for (i = 0; i < resultLen; i++) { + result[i] = toNumber(arr.slice(i * 4, i * 4 + 4)); + } + resolve(result); + } + + if ("zstd" === compression) { + const decoder = new ZSTDDecoder(); + decoder.init().then(() => { + arr = decoder.decode(arr); + var resultLen = arr.length / 4; + var result = new Array(resultLen); + + for (i = 0; i < resultLen; i++) { + result[i] = toNumber(arr.slice(i * 4, i * 4 + 4)); + } + resolve(result); + }); + } + + // no compression just base64 + if (!compression) { + var resultLen = arr.length / 4; + var result = new Array(resultLen); + for (i = 0; i < resultLen; i++) { + result[i] = toNumber(arr.slice(i * 4, i * 4 + 4)); + } + resolve(result); + } + }); + } +} \ No newline at end of file diff --git a/src/resource/excalibur-properties.ts b/src/resource/excalibur-properties.ts new file mode 100644 index 00000000..bc47de5d --- /dev/null +++ b/src/resource/excalibur-properties.ts @@ -0,0 +1,42 @@ + +/** + * Special excalibur properties + */ +export const ExcaliburTiledProperties = { + ZIndex: { + /** + * Override the default z-index based on the ordering in Tiled + */ + ZIndex: 'zindex' + }, + Camera: { + /** + * Boolean property on an object to treat as the excalibur camera if truthy + * + * Warning, the plugin will use the first object it finds with this property! + */ + Camera: 'camera', + Zoom: 'zoom' + }, + Animation: { + /** + * String property with any value from the ex.AnimationStrategy enum (case insensitive) + */ + Strategy: 'animationstrategy' + }, + Layer: { + /** + * Boolean property on a TileLayer, if truthy any tile on the layer will be treated as solid + * + * Boolean property on a ObjectLayer, if truthy any object will be created as an actor, objects + * will have a default collision type of preventcollision, see the collisiontype property. + */ + Solid: 'solid' + }, + Collision: { + /** + * String property with any value from the ex.CollisionType enum (case insensitive) + */ + Type: 'collisiontype' + } +} as const; \ No newline at end of file diff --git a/src/resource/file-loader.ts b/src/resource/file-loader.ts new file mode 100644 index 00000000..7f4ce1cc --- /dev/null +++ b/src/resource/file-loader.ts @@ -0,0 +1,12 @@ + + +export type FileLoader = (path: string, contentType: 'json' | 'xml') => Promise; + +export const FetchLoader: FileLoader = async (path: string, contentType: 'json' | 'xml') => { + const response = await fetch(path); + switch(contentType.toLowerCase()) { + case 'xml': return await response.text(); + case 'json': return await response.json(); + default: return await response.text(); + } +} \ No newline at end of file diff --git a/src/resource/filter-util.ts b/src/resource/filter-util.ts new file mode 100644 index 00000000..cb9db0d6 --- /dev/null +++ b/src/resource/filter-util.ts @@ -0,0 +1,47 @@ + +export const byNameCaseInsensitive = (name?: string) => { + return (object: TObject) => { + if (object?.name && name) { + return object.name.toLocaleLowerCase().localeCompare(name.toLocaleLowerCase()) === 0; + } + return object?.name === name; + } +} + +export const byClassCaseInsensitive = (className?: string) => { + return (object: TObject) => { + if (object?.class && className) { + return object.class.toLocaleLowerCase().localeCompare(className.toLocaleLowerCase()) === 0; + } + return object?.class === className; + } +} + +const copyPropsLowerCase = (properties: Map) => { + const lowercase = new Map(); + for (let [key, value] of properties) { + let normalizedValue = value; + if (typeof value === 'string') { + normalizedValue = value.toLocaleLowerCase(); + } + lowercase.set(key.toLocaleLowerCase(), normalizedValue); + } + return lowercase; +} + +export const byPropertyCaseInsensitive = (propertyName: string, value?: any) => { + return }>(object: TObject) => { + const lowercase = copyPropsLowerCase(object.properties); + + if (value !== undefined) { + let normalizedValue = value; + if (typeof value === 'string') { + normalizedValue = value.toLocaleLowerCase(); + } + + return lowercase.get(propertyName.toLocaleLowerCase()) === normalizedValue; + } else { + return lowercase.has(propertyName.toLocaleLowerCase()); + } + } +} \ No newline at end of file diff --git a/src/resource/gid-util.ts b/src/resource/gid-util.ts new file mode 100644 index 00000000..291b1e48 --- /dev/null +++ b/src/resource/gid-util.ts @@ -0,0 +1,41 @@ +// Most significant byte of 32 bit id contains flags for flipping +// See https://doc.mapeditor.org/en/stable/reference/tmx-map-format/#tile-flipping +export const FLIPPED_HORIZONTALLY_FLAG = 0x80000000; +export const FLIPPED_VERTICALLY_FLAG = 0x40000000; +export const FLIPPED_DIAGONALLY_FLAG = 0x20000000; + +/** + * Inspects gid for horizontal flag + * @param gid + */ +export const isFlippedHorizontally = (gid: number): boolean => { + return !!(gid & FLIPPED_HORIZONTALLY_FLAG); +} + +/** + * Inspects gid for vertical flag + * @param gid + */ +export const isFlippedVertically = (gid: number): boolean => { + return !!(gid & FLIPPED_VERTICALLY_FLAG); +} + +/** + * Inspects gid for diagonal flag (anti-diagonal flip enables tile rotation) + * @param gid + */ +export const isFlippedDiagonally = (gid: number): boolean => { + return !!(gid & FLIPPED_DIAGONALLY_FLAG); +} + + +/** + * Removes bit flags from gid + * @param gid + */ +export const getCanonicalGid = (gid: number): number => { + return gid & ~(FLIPPED_HORIZONTALLY_FLAG | + FLIPPED_VERTICALLY_FLAG | + FLIPPED_DIAGONALLY_FLAG); + +} diff --git a/src/resource/image-layer.ts b/src/resource/image-layer.ts new file mode 100644 index 00000000..29ac39f4 --- /dev/null +++ b/src/resource/image-layer.ts @@ -0,0 +1,50 @@ +import { Actor, Color, ImageSource, ParallaxComponent, Vector, vec } from "excalibur"; +import { Layer } from "./layer"; +import { TiledImageLayer } from "../parser/tiled-parser"; +import { TiledResource } from "./tiled-resource"; +import { mapProps } from "./properties"; +import { pathRelativeToBase } from "./path-util"; + +export class ImageLayer implements Layer { + public readonly name: string; + public readonly class?: string; + properties = new Map(); + image: ImageSource | null = null; + imageActor: Actor | null = null; + constructor(public tiledImageLayer: TiledImageLayer, public resource: TiledResource, public readonly order: number) { + this.name = tiledImageLayer.name; + this.class = tiledImageLayer.class; + mapProps(this, tiledImageLayer.properties); + if (tiledImageLayer.image) { + this.image = new ImageSource(pathRelativeToBase(this.resource.path, tiledImageLayer.image, this.resource.pathMap)) + } + } + async load(): Promise { + const opacity = this.tiledImageLayer.opacity; + const hasTint = !!this.tiledImageLayer.tintcolor; + const tint = this.tiledImageLayer.tintcolor ? Color.fromHex(this.tiledImageLayer.tintcolor) : Color.White; + const offset = vec(this.tiledImageLayer.offsetx ?? 0, this.tiledImageLayer.offsety ?? 0); + const parallaxx = this.tiledImageLayer.parallaxx ?? 1; + const parallaxy = this.tiledImageLayer.parallaxy ?? 1; + if (this.image) { + if (!this.resource.headless) { + await this.image.load(); + } + this.imageActor = new Actor({ + name: this.tiledImageLayer.name, + pos: offset, + anchor: Vector.Zero, + z: this.order + }); + this.imageActor.addComponent(new ParallaxComponent(vec(parallaxx, parallaxy))) + // FIXME when excalibur supports tiling we should use it here for repeatx/repeaty! + const sprite = this.image.toSprite(); + this.imageActor.graphics.use(sprite); + this.imageActor.graphics.visible = this.tiledImageLayer.visible; + this.imageActor.graphics.opacity = opacity; + if (hasTint) { + sprite.tint = tint; + } + } + } +} \ No newline at end of file diff --git a/src/resource/iso-tile-layer.ts b/src/resource/iso-tile-layer.ts new file mode 100644 index 00000000..d70fbb96 --- /dev/null +++ b/src/resource/iso-tile-layer.ts @@ -0,0 +1,233 @@ +import { Color, ParallaxComponent, Vector, vec, GraphicsComponent, Logger, AnimationStrategy, IsometricMap, PolygonCollider, CircleCollider, IsometricTile, IsometricEntityComponent } from "excalibur"; +import { mapProps } from "./properties"; +import { TiledTileLayer, isCSV, isInfiniteLayer, needsDecoding } from "../parser/tiled-parser"; +import { Decoder } from "./decoder"; +import { TiledResource } from "./tiled-resource"; +import { getCanonicalGid } from "./gid-util"; +import { ExcaliburTiledProperties } from "./excalibur-properties"; +import { TiledLayerDataComponent } from "./tiled-layer-component"; +import { Layer } from "./layer"; +import { Tile } from "./tileset"; + +export interface IsometricTileInfo { + /** + * Tiled based information for the tile + */ + tiledTile?: Tile; + /** + * Excalibur tile abstraction + */ + exTile: IsometricTile; +} + +export class IsoTileLayer implements Layer { + private logger = Logger.getInstance(); + public readonly name: string; + class?: string | undefined; + /** + * Number of tiles wide + */ + public readonly width: number = 0; + /** + * Number of tiles high + */ + public readonly height: number = 0; + + properties = new Map(); + + /** + * Original list of gids for this layer from tiled + */ + data: number[] = []; + + /** + * Excalibur IsometricMap structure for drawing in excalibur + */ + isometricMap!: IsometricMap; + constructor(public tiledTileLayer: TiledTileLayer, public resource: TiledResource, public readonly order: number) { + this.name = tiledTileLayer.name; + this.class = tiledTileLayer.class; + this.width = tiledTileLayer.width; + this.height = tiledTileLayer.height; + mapProps(this, tiledTileLayer.properties); + } + + getTileByPoint(worldPos: Vector): IsometricTileInfo | null { + if (!this.isometricMap) { + this.logger.warn('IsometricMap has not yet been loaded! getTileByPoint() will only return null'); + return null; + } + if (this.isometricMap) { + const exTile = this.isometricMap.getTileByPoint(worldPos); + if (!exTile) return null; + const tileIndex = this.isometricMap.tiles.indexOf(exTile); + const gid = getCanonicalGid(this.data[tileIndex]); + + if (gid <= 0) { + return null; + } + + const tileset = this.resource.getTilesetForTileGid(gid); + const tiledTile = tileset.getTileByGid(gid); + + return { tiledTile, exTile }; + } + return null; + } + + private updateTile(tile: IsometricTile, gid: number, hasTint: boolean, tint: Color, isSolidLayer: boolean) { + if (this.resource.useExcaliburWiring && isSolidLayer) { + tile.solid = true; + } + + const iso = tile.get(IsometricEntityComponent); + if (iso) { + iso.elevation = this.order; + } + + const tileset = this.resource.getTilesetForTileGid(gid); + let sprite = tileset.getSpriteForGid(gid); + if (hasTint) { + sprite = sprite.clone(); + sprite.tint = tint; + } + tile.addGraphic(sprite, { offset: tileset.tileOffset }); + + let offset = tile.pos; + if (tileset.orientation === 'orthogonal') { + // Odd rendering case when mixing/matching iso maps with orthogonal tilesets + offset = vec(0, 0); + } else { + const halfWidth = this.resource.map.tilewidth / 2; + const height = this.resource.map.tileheight; + offset = vec(halfWidth, height); + } + + // the whole tilemap uses a giant composite collider relative to the Tilemap + // not individual tiles + const colliders = tileset.getCollidersForGid(gid, {offset}); + for (let collider of colliders) { + tile.addCollider(collider); + } + + let animation = tileset.getAnimationForGid(gid); + if (animation) { + if (hasTint) { + animation = animation.clone(); + animation.tint = tint; + } + tile.clearGraphics(); + tile.addGraphic(animation, { offset: tileset.tileOffset }); + if (this.resource.useExcaliburWiring) { + const tileObj = tileset.getTileByGid(gid); + const strategy = tileObj?.properties.get(ExcaliburTiledProperties.Animation.Strategy); + if (strategy && typeof strategy === 'string') { + switch (strategy.toLowerCase()) { + case AnimationStrategy.End.toLowerCase(): { + animation.strategy = AnimationStrategy.End; + break; + } + case AnimationStrategy.Freeze.toLowerCase(): { + animation.strategy = AnimationStrategy.Freeze; + break; + } + case AnimationStrategy.Loop.toLowerCase(): { + animation.strategy = AnimationStrategy.Loop; + break; + } + case AnimationStrategy.PingPong.toLowerCase(): { + animation.strategy = AnimationStrategy.PingPong; + break; + } + default: { + // unknown animation strategy + this.logger.warn(`Unknown animation strategy in tileset ${tileset.name} on tile gid ${gid}: ${strategy}`); + break; + } + } + } + } + } + } + + async load(): Promise { + const layer = this.tiledTileLayer; + const isSolidLayer = !!this.properties.get(ExcaliburTiledProperties.Layer.Solid); + const opacity = this.tiledTileLayer.opacity; + const hasTint = !!this.tiledTileLayer.tintcolor; + const tint = this.tiledTileLayer.tintcolor ? Color.fromHex(this.tiledTileLayer.tintcolor) : Color.Transparent; + const pos = vec(layer.offsetx ?? 0, layer.offsety ?? 0); + if (needsDecoding(this.tiledTileLayer)) { + this.data = await Decoder.decode(this.tiledTileLayer.data, this.tiledTileLayer.compression); + } else if (isCSV(this.tiledTileLayer)) { + this.data = this.tiledTileLayer.data; + } + + let order = this.order; + let zoverride = this.properties.get(ExcaliburTiledProperties.ZIndex.ZIndex) as number | undefined; + if (typeof zoverride === 'number') { + order = zoverride; + } + + + + if (this.resource.map.infinite && isInfiniteLayer(this.tiledTileLayer)) { + const start = this.resource.isometricTiledCoordToWorld(this.tiledTileLayer.startx, this.tiledTileLayer.starty); + const infiniteStartPos = vec( + start.x * this.resource.map.tilewidth, + start.y * this.resource.map.tileheight); + this.isometricMap = new IsometricMap({ + name: this.name, + pos: pos.add(infiniteStartPos), + tileHeight: this.resource.map.tileheight, + tileWidth: this.resource.map.tilewidth, + columns: layer.width, + rows: layer.height, + elevation: order + }); + } else { + this.isometricMap = new IsometricMap({ + name: this.name, + pos, + tileWidth: this.resource.map.tilewidth, + tileHeight: this.resource.map.tileheight, + columns: layer.width, + rows: layer.height, + elevation: order + }); + } + + // TODO make these optional params in the ctor + this.isometricMap.visible = this.tiledTileLayer.visible; + this.isometricMap.opacity = this.tiledTileLayer.opacity; + this.isometricMap.addComponent(new TiledLayerDataComponent({ tiledTileLayer: layer })); + if (layer.parallaxx || layer.parallaxy) { + const factor = vec(layer.parallaxx ?? 1, layer.parallaxy ?? 1); + this.isometricMap.addComponent(new ParallaxComponent(factor)); + } + + if (this.resource.map.infinite && isInfiniteLayer(this.tiledTileLayer)) { + for (let chunk of this.tiledTileLayer.chunks) { + for (let i = 0; i < chunk.data.length; i++) { + const gid = chunk.data[i]; + if (gid != 0) { + // Map from chunk to big tile map + const tileX = (i % chunk.width) + (chunk.x - this.tiledTileLayer.startx); + const tileY = Math.floor(i / chunk.width) + (chunk.y - this.tiledTileLayer.starty); + const tile = this.isometricMap.tiles[tileX + tileY * layer.width]; + this.updateTile(tile, gid, hasTint, tint, isSolidLayer); + } + } + } + } else { + // Read tiled data into Excalibur's tilemap type + for (let i = 0; i < this.data.length; i++) { + let gid = this.data[i]; + if (gid !== 0) { + const tile = this.isometricMap.tiles[i]; + this.updateTile(tile, gid, hasTint, tint, isSolidLayer); + } + } + } + } +} diff --git a/src/resource/layer.ts b/src/resource/layer.ts new file mode 100644 index 00000000..e1e28d1b --- /dev/null +++ b/src/resource/layer.ts @@ -0,0 +1,25 @@ +import { Actor, Shape, toRadians, Entity, ImageSource, CollisionType, IsometricEntityComponent } from "excalibur"; +import { Properties } from "./properties"; +import { Tileset } from "./tileset"; + +export interface Layer extends Properties { + /** + * Name from Tiled + */ + name: string; + /** + * Original ordering from Tiled + */ + order: number; + /** + * Class name from Tiled + */ + class?: string; + /** + * Loads friendly datastructure (called by the plugin) + * @internal + */ + load(): Promise; +} + + diff --git a/src/resource/loader-cache.ts b/src/resource/loader-cache.ts new file mode 100644 index 00000000..55e8a3ba --- /dev/null +++ b/src/resource/loader-cache.ts @@ -0,0 +1,50 @@ +export interface CanLoad { + load(): Promise; +} + +/** + * Read through cache for loadables + */ +export class LoaderCache { + private _loaded = false; + cache = new Map(); + + constructor(public readonly type: new (...args: any[]) => T){} + + getOrAdd(...args: any[]): T { + let resource = this.cache.get(args.join('+')); + if (resource) { + return resource; + } + + resource = new this.type(...args); + this.cache.set(args.join('+'), resource); + return resource; + } + + values(): T[] { + if (this._loaded) { + return Array.from(this.cache.values()); + } + throw new Error(`Read through cache not yet loaded! No values to return!`); + } + + async load() { + const resources = Array.from(this.cache.entries()); + const results = await Promise.allSettled(resources.map(i => i[1].load())); + + // Check for errors loading resources + let errored = 0; + for (let i = 0; i < results.length; i++) { + const result = results[i]; + if (result.status === 'rejected') { + console.error(`Error loading resource at ${resources[i][0]}, is your pathMap correct? or your Tiled map corrupted?`, result.reason); + errored++; + } + } + if (errored) { + throw new Error(`Error loading ${errored} resources`); + } + this._loaded = true; + } +} \ No newline at end of file diff --git a/src/resource/object-layer.ts b/src/resource/object-layer.ts new file mode 100644 index 00000000..315e0318 --- /dev/null +++ b/src/resource/object-layer.ts @@ -0,0 +1,321 @@ +import { Actor, CircleCollider, CollisionType, Color, Entity, GraphicsComponent, IsometricEntityComponent, Logger, PolygonCollider, Shape, Vector, toRadians, vec } from "excalibur"; +import { Layer } from "./layer"; +import { InsertedTile, PluginObject, TemplateObject, Text, Polygon, Rectangle, Ellipse, parseObjects } from "./objects"; +import { TiledObjectLayer } from "../parser/tiled-parser"; +import { FactoryProps, TiledResource } from "./tiled-resource"; +import { mapProps } from "./properties"; +import { byClassCaseInsensitive, byNameCaseInsensitive, byPropertyCaseInsensitive } from "./filter-util"; +import { Tileset } from "./tileset"; +import { ExcaliburTiledProperties } from "./excalibur-properties"; +import { TiledDataComponent } from "./tiled-data-component"; + +export class ObjectLayer implements Layer { + private logger = Logger.getInstance(); + + public readonly name: string; + public readonly class?: string; + properties = new Map(); + objects: PluginObject[] = []; + entities: Entity[] = []; + private _objectToEntity = new Map(); + private _entityToObject = new Map(); + private _loaded = false; + constructor(public tiledObjectLayer: TiledObjectLayer, public resource: TiledResource, public readonly order: number) { + this.name = tiledObjectLayer.name; + this.class = tiledObjectLayer.class; + + mapProps(this, tiledObjectLayer.properties); + } + + private _logLoadedWarning(name: TMethod) { + this.logger.warn(`ObjectLayer ${this.name} is not yet loaded, ${name}() will always be empty!`); + } + + getObjectsByName(name: string): PluginObject[] { + if (!this._loaded) this._logLoadedWarning('getObjectsByName'); + return this.objects.filter(byNameCaseInsensitive(name)); + } + + getEntitiesByName(name: string): Entity[] { + if (!this._loaded) this._logLoadedWarning('getEntitiesByName'); + return this.entities.filter(byNameCaseInsensitive(name)); + } + + getEntityByObject(object: PluginObject): Entity | undefined { + if (!this._loaded) this._logLoadedWarning('getEntityByObject'); + return this._objectToEntity.get(object); + } + + getObjectByEntity(actor: Entity): PluginObject | undefined { + if (!this._loaded) this._logLoadedWarning('getObjectByEntity'); + return this._entityToObject.get(actor); + } + + /** + * Search for a tiled object that has a property name, and optionally specify a value + * @param propertyName + * @param value + * @returns + */ + getObjectsByProperty(propertyName: string, value?: any): PluginObject[] { + if (!this._loaded) this._logLoadedWarning('getObjectsByProperty'); + return this.objects.filter(byPropertyCaseInsensitive(propertyName, value)); + } + /** + * Search for actors that were created from tiled objects + * @returns + */ + getEntitiesByProperty(propertyName: string, value?: any): Entity[] { + if (!this._loaded) this._logLoadedWarning('getEntitiesByProperty'); + return this.getObjectsByProperty(propertyName, value).map(o => this._objectToEntity.get(o)).filter(a => !!a) as Entity[]; + } + + /** + * Search for an Tiled object by it's Tiled class name + * @returns + */ + getObjectsByClassName(className: string): PluginObject[] { + if (!this._loaded) this._logLoadedWarning('getObjectsByClassName'); + return this.objects.filter(byClassCaseInsensitive(className)); + } + + /** + * Search for an Actor created by the plugin by it's Tiled object + * @param className + * @returns + */ + getEntitiesByClassName(className: string): Entity[] { + if (!this._loaded) this._logLoadedWarning('getEntitiesByClassName'); + return this.getObjectsByClassName(className).map(o => this._objectToEntity.get(o)).filter(a => !!a) as Entity[]; + } + + + getTemplates(): TemplateObject[] { + if (!this._loaded) this._logLoadedWarning('getTemplates'); + return this.objects.filter(o => o instanceof TemplateObject) as TemplateObject[]; + } + + _actorFromObject(object: PluginObject, newActor: Actor, tileset?: Tileset): void { + const hasTint = !!this.tiledObjectLayer.tintcolor; + const tint = this.tiledObjectLayer.tintcolor ? Color.fromHex(this.tiledObjectLayer.tintcolor) : Color.White; + + if (object instanceof InsertedTile && tileset) { + // handle case where we have isometric map but orthogonal tileset!s + const overrideAlignment = this.resource.map.orientation === 'isometric' && tileset.orientation === 'orthogonal' ? 'bottom' : undefined; + const anchor = tileset.getTilesetAlignmentAnchor(overrideAlignment); + // Inserted tiles pivot from the bottom left in Tiled + newActor.anchor = anchor; + const scaleX = (object.tiledObject.width ?? this.resource.map.tilewidth) / this.resource.map.tilewidth; + const scaleY = (object.tiledObject.width ?? this.resource.map.tilewidth) / this.resource.map.tilewidth; + const scale = vec(scaleX, scaleY); + + // need to clone because we are modify sprite properties, sprites are shared by default + const sprite = tileset.getSpriteForGid(object.gid).clone(); + sprite.destSize.width = object.tiledObject.width ?? sprite.width; + sprite.destSize.height = object.tiledObject.height ?? sprite.height; + if (hasTint) { + sprite.tint = tint; + } + + newActor.graphics.use(sprite); + newActor.graphics.offset = tileset.tileOffset; + + const animation = tileset.getAnimationForGid(object.gid); + if (animation) { + const animationScaled = animation.clone(); + animationScaled.scale = scale; + if (hasTint) { + animationScaled.tint = tint; + } + newActor.graphics.use(animationScaled); + newActor.graphics.offset = tileset.tileOffset; + } + + // insertable tiles have an x, y, width, height, gid + // by default they pivot from the bottom left (0, 1) + const width = (object.tiledObject.width ?? 0); + const height = (object.tiledObject.height ?? 0); + const offsetx = -width * anchor.x; + const offsety = -height * anchor.y; + const halfTileWidth = this.resource.map.tilewidth / 2; + const tileHeight = this.resource.map.tileheight; + let offset = vec(offsetx, offsety); + if (this.resource.map.orientation === 'isometric') { + offset = vec(offsetx + halfTileWidth, offsety + tileHeight); + if (tileset.orientation === 'orthogonal') { + // Handling odd case where the tileset is orthogonal but the map is isometric + offset = offset.sub(vec(halfTileWidth, tileHeight)); + } + } + + const colliders = tileset.getCollidersForGid(object.gid, { anchor: Vector.Zero, scale, offset }); + if (colliders) { + newActor.collider.useCompositeCollider(colliders); + } + } + + if (object instanceof Text) { + newActor.graphics.use(object.text); + } + + if (object instanceof Polygon) { + let pos = vec(object.x, object.y); + let points = object.localPoints; + + if (this.resource.map.orientation === 'isometric') { + pos = this.resource.isometricTiledCoordToWorld(pos.x, pos.y); + points = points.map(p => this.resource.isometricTiledCoordToWorld(p.x, p.y)); + } + + newActor.anchor = vec(0, 1); + newActor.pos = pos; + const polygon = Shape.Polygon(points, Vector.Zero, true); + if (!polygon.isConvex()) { + newActor.collider.set(polygon.triangulate()); + } else { + newActor.collider.set(polygon); + } + } + + if (object instanceof Rectangle) { + newActor.anchor = object.anchor; + let boxCollider = Shape.Box(object.width, object.height, object.anchor); + if (this.resource.map.orientation === 'isometric') { + boxCollider.points = boxCollider.points.map(p => this.resource.isometricTiledCoordToWorld(p.x, p.y)); + } + newActor.collider.set(boxCollider); + } + + if (object instanceof Ellipse) { + // FIXME: Circles are positioned differently in isometric as ellipses and currently arent supported + // FIXME: Excalibur doesn't support ellipses :( fallback to circle + // pick the smallest dimension and that's our radius + newActor.collider.useCircleCollider(Math.min(object.width, object.height) / 2); + } + } + + async load() { + const opacity = this.tiledObjectLayer.opacity; + const offset = vec(this.tiledObjectLayer.offsetx ?? 0, this.tiledObjectLayer.offsety ?? 0); + + const objects = parseObjects(this.tiledObjectLayer, this.resource); + + for (let object of objects) { + let worldPos = vec((object.x ?? 0) + offset.x, (object.y ?? 0) + offset.y); + + // When isometric, Tiled positions are in isometric coordinates + if (this.resource.map.orientation === 'isometric') { + worldPos = this.resource.isometricTiledCoordToWorld(worldPos.x, worldPos.y); + } + + let objectType = object.class; + if (object instanceof TemplateObject) { + objectType = objectType ? objectType : object.template.object.class; + } + if (objectType) { + const factory = this.resource.factories.get(objectType); + if (factory) { + const entity = factory({ + worldPos, + name: object.name, + class: objectType, + layer: this, + object, + properties: object.properties + } satisfies FactoryProps); + if (entity) { + this._recordObjectEntityMapping(object, entity); + } + continue; // If we do a factor method we skip any default processing + } + } + + let zindex = undefined; + let zoverride = this.properties.get(ExcaliburTiledProperties.ZIndex.ZIndex) as number | undefined; + if (typeof zoverride === 'number') { + zindex = zoverride; + } + + const newActor = new Actor({ + name: object.tiledObject.name, + pos: worldPos, + anchor: Vector.Zero, + rotation: toRadians(object.tiledObject.rotation ?? 0), + z: zindex + }); + const graphics = newActor.get(GraphicsComponent); + if (graphics) { + graphics.visible = this.tiledObjectLayer.visible && (object.tiledObject.visible === undefined ? true : !!object.tiledObject.visible); + graphics.opacity = opacity; + } + + if (this.resource.map.orientation === 'isometric') { + const iso = new IsometricEntityComponent({ + rows: this.resource.map.height, + columns: this.resource.map.width, + tileWidth: this.resource.map.tilewidth, + tileHeight: this.resource.map.tileheight + }); + iso.elevation = zindex ?? this.order; + newActor.addComponent(iso); + } + + if (this.resource.useExcaliburWiring) { + const collisionType = object.properties.get(ExcaliburTiledProperties.Collision.Type); + if (collisionType && typeof collisionType === 'string') { + switch (collisionType.toLowerCase()) { + case CollisionType.Active.toLowerCase(): { + newActor.body.collisionType = CollisionType.Active; + break; + } + case CollisionType.Fixed.toLowerCase(): { + newActor.body.collisionType = CollisionType.Fixed; + break; + } + case CollisionType.Passive.toLowerCase(): { + newActor.body.collisionType = CollisionType.Passive; + break; + } + case CollisionType.PreventCollision.toLowerCase(): { + newActor.body.collisionType = CollisionType.PreventCollision; + break; + } + default: { + this.logger.warn(`Unknown collision type in layer ${this.name}, for object id ${object.id} and name ${object.name}: ${collisionType}`); + break; + } + } + } + } + + + if (object instanceof TemplateObject) { + // templates reference their own tilesets + const tileset = object.template.tileset; + if (object.template.object) { + this._actorFromObject(object.template.object, newActor, tileset); + } + } else { + let tileset: Tileset | undefined; + if (object instanceof InsertedTile) { + tileset = this.resource.getTilesetForTileGid(object.gid); + } + this._actorFromObject(object, newActor, tileset); + } + + this._recordObjectEntityMapping(object, newActor); + } + + this._loaded = true; + } + + private _recordObjectEntityMapping(object: PluginObject, entity: Entity) { + entity.addComponent(new TiledDataComponent({ + tiledObject: object + })); + this.objects.push(object); + this.entities.push(entity); + this._objectToEntity.set(object, entity); + this._entityToObject.set(entity, object); + } +} \ No newline at end of file diff --git a/src/resource/objects.ts b/src/resource/objects.ts new file mode 100644 index 00000000..762ea037 --- /dev/null +++ b/src/resource/objects.ts @@ -0,0 +1,295 @@ +import { BaseAlign, Color, Font, FontUnit, TextAlign, Vector, vec } from "excalibur"; +import { Text as ExText } from 'excalibur'; +import { TiledObject, TiledObjectGroup, TiledText } from "../parser/tiled-parser"; +import { Properties, mapProps } from "./properties"; +import { Template } from "./template"; +import { filenameFromPath } from "./path-util"; +import { Tileset } from "./tileset"; +import { TiledResource } from "./tiled-resource"; + +export interface PluginObjectProps { + tiledObject: TiledObject; +} +/** + * Plugin object represents the base class of a generic instance of an object used in a map. + * + * It could be more specific as well. + */ +export class PluginObject implements Properties { + id: number; + x: number; + y: number; + name?: string; + class?: string; + tiledObject: TiledObject; + properties = new Map(); + constructor(props: PluginObjectProps) { + this.tiledObject = props.tiledObject; + this.name = this.tiledObject.name; + // Yes this is class in the Tiled UI, it switched from Type -> Class but not all the representations match + // class mostly synonymous with type in tiled except for a few instances + this.class = this.tiledObject.type; + this.id = this.tiledObject.id ?? -1; + this.x = this.tiledObject.x ?? 0; + this.y = this.tiledObject.y ?? 0; + } +} + +/** + * Represents a template instance in a map. + * + * Inherits properties, class, and name from template if not overridden. + */ +export class TemplateObject extends PluginObject { + public source: string; + public template: Template; + public tiledTemplate: TiledObject; + constructor(tiledObject: TiledObject, template: Template) { + super({tiledObject}); + if (!tiledObject.template) throw new Error('Invalid template'); + this.source = tiledObject.template + this.tiledTemplate = tiledObject; + this.template = template; + + // Inherited from template object + if (template.object) { + this.name = this.name || template.object.name; + this.class = this.class || template.object.class; + for (const [key, value] of template.object.properties.entries()) { + if (!this.properties.has(key)) { + this.properties.set(key, value); + } + } + } + + // Inherited from tileset + if (template.tileset && template.object.tiledObject.gid) { + const tile = template.tileset.getTileByGid(template.object.tiledObject.gid); + if (tile) { + this.class = this.class || tile.class; + for (const [key, value] of tile.properties.entries()) { + if (!this.properties.has(key)) { + this.properties.set(key, value); + } + } + } + } + + + } +} + +/** + * Represents an instance of an inserted tile object in a map. + */ +export class InsertedTile extends PluginObject { + constructor(tiledObject: TiledObject, public readonly gid: number, public readonly width: number, public readonly height: number) { + super({tiledObject}); + } +} + +/** + * Represents an instance of a point object in a map + */ +export class Point extends PluginObject {} + +/** + * Represents an instance of a Text object in a map + */ +export class Text extends PluginObject { + text: ExText; + font: Font; + + constructor(tiledObject: TiledObject, text: TiledText, width: number, textQuality: number) { + super({tiledObject}); + + this.font = new Font({ + family: text.fontfamily ?? 'sans-serif', + color: text.color ? Color.fromHex(text.color) : Color.Black, + size: text.pixelsize ?? 16, + unit: FontUnit.Px, + textAlign: this._textAlignFromTiled(text.halign), + baseAlign: this._textBaselineFromTiled(text.valign), + quality: textQuality + }) + + const textWrap = text.wrap ?? false; + + this.text = new ExText({ + text: text.text, + font: this.font, + ...(textWrap ? { + maxWidth: width + 10 // FIXME: need to bump by a few pixels for some reason + }: {}) + }); + } + _textBaselineFromTiled(code: Pick['valign']){ + switch(code) { + case 'bottom': { + return BaseAlign.Bottom; + } + case 'center': { + return BaseAlign.Middle; + } + case 'top': { + return BaseAlign.Top; + } + default: { + return BaseAlign.Top; + } + } + } + + _textAlignFromTiled(code: Pick['halign']) { + switch(code) { + case 'left': { + return TextAlign.Left + } + case 'center': { + return TextAlign.Center + } + case 'right': { + return TextAlign.Right + } + case 'justify': { + return TextAlign.Start + } + default: { + return TextAlign.Left; + } + } + } +} + +/** + * Represents an instance of an ellipse object in a map. + */ +export class Ellipse extends PluginObject { + constructor(tiledObject: TiledObject, public readonly width: number, public readonly height: number) { + super({tiledObject}); + } +} + +/** + * Represents an instance of a rectangle object in a map. + */ +export class Rectangle extends PluginObject { + + constructor(tiledObject: TiledObject, public readonly width: number, public readonly height: number, public readonly anchor: Vector) { + super({tiledObject}); + } +} + +/** + * Represents an instance of a polygon object in a map. + */ +export class Polygon extends PluginObject { + /** + * Transformed world space points + */ + public readonly points: Vector[] = []; + /** + * Local space points + */ + public readonly localPoints: Vector[] = []; + constructor(tiledObject: TiledObject, points: {x: number, y: number}[]) { + super({tiledObject}); + this.localPoints = points.map(p => vec(p.x, p.y)); + this.points = points.map(p => vec(p.x, p.y).add(vec(this.x, this.y))); + } +} + +/** + * Represents an instance of a polyline object in a map + */ +export class Polyline extends PluginObject { + public readonly points: Vector[] = [] + constructor(tiledObject: TiledObject, points: {x: number, y: number}[]) { + super({tiledObject}); + this.points = points.map(p => vec(p.x, p.y)); + } +} + +export type ObjectTypes = Polygon | Polyline | Rectangle | Ellipse | Text | Point | InsertedTile | PluginObject; + +/** + * Parses a TiledObject and returns a friendly plugin object. + * @param object + * @param resource + * @returns + */ +export function parseObject(object: TiledObject, resource?: TiledResource): PluginObject { + let newObject: PluginObject; + if (object.point) { + // Template objects don't have an id for some reason + newObject = new Point({tiledObject: object}); + } else if (object.ellipse) { + if (object.width && object.height) { + // if defaulted the circle center is accurate, otherwise need to be offset by radius + newObject = new Ellipse(object, object.width, object.height); + newObject.x += object.width / 2; + newObject.y += object.height / 2; + } else { + // Tiled undocumented default is 20x20 + newObject = new Ellipse(object, 20, 20); + } + } else if (object.polygon) { + newObject = new Polygon(object, object.polygon); + } else if (object.polyline) { + newObject = new Polyline(object, object.polyline); + } else if(object.text) { + newObject = new Text(object, object.text, object.width ?? 0, resource?.textQuality ?? 4); + } else if (object.gid) { + newObject = new InsertedTile(object, object.gid, object.width ?? 0, object.height ?? 0); + + // Check for inherited class names & properties from tileset + const tileset = resource?.getTilesetForTileGid(object.gid); + let className = object.type; + if (tileset) { + const tile = tileset?.getTileByGid(object.gid); + className = className || tile?.class; + if (tile?.properties) { + for (const [key, value] of tile.properties.entries()) { + if (!newObject.properties.has(key)) { + newObject.properties.set(key, value); + } + } + } + } + newObject.class = className; + } else if (object.template && resource) { + // FIXME This is problematic if you have files with the same name but different paths + const template = resource.templates.find(t => filenameFromPath(t.templatePath) === filenameFromPath(object.template!)); + if (template) { + newObject = new TemplateObject(object, template); + } else { + // This is truly an error situation + throw new Error(`Template object id ${object.id} with name ${object.name} is missing a loaded template file, there should be one loaded from ${object.template}! Is your tiled map or template corrupted?`); + } + } else { // rectangle + if (object.width && object.height) { + // if defaulted the rectangle center is accurate, otherwise need to be offset by radius + newObject = new Rectangle(object, object.width, object.height, Vector.Zero); + } else { + // Tiled undocumented default is 20x20 AND pivots around the center + newObject = new Rectangle(object, 20, 20, Vector.Half); + } + } + mapProps(newObject, object.properties); + return newObject; +} + +/** + * Parses a Tiled Object Group and returns friendly plugin objects. + * @param tiledObjectGroup + * @param resource + * @returns + */ +export function parseObjects(tiledObjectGroup: TiledObjectGroup, resource?: TiledResource) { + const objects: PluginObject[] = []; + for (const object of tiledObjectGroup.objects) { + let newObject: PluginObject = parseObject(object, resource); + objects.push(newObject); + } + return objects; +} \ No newline at end of file diff --git a/src/resource/path-util.ts b/src/resource/path-util.ts new file mode 100644 index 00000000..4c75f074 --- /dev/null +++ b/src/resource/path-util.ts @@ -0,0 +1,70 @@ + + +export type PathMap = { path: string | RegExp, output: string }[]; + +export function filenameFromPath(inputPath: string): string { + const filenameExpression = /[^/\\&\?]+\.\w{2,4}(?=([\#\?&].*$|$))/ig + + const matches = inputPath.match(filenameExpression); + + if (matches) { + const match = matches[0]; + return match; + } + + throw new Error(`Could not locate filename from path: ${inputPath}`); +} + +export function mapPath(inputPath: string, pathMap: PathMap): string { + + for (const { path, output } of pathMap) { + if (typeof path === 'string') { + if (inputPath.includes(path)) { + return output; + } + } else { + const match = inputPath.match(path); + if (match) { + return output.replace('[match]', match[0]);; + } + } + } + return inputPath; +} + +export function pathInMap(inputPath: string, pathMap?: PathMap): boolean { + if (!pathMap) return false; + for (const { path, output } of pathMap) { + if (typeof path === 'string') { + if (inputPath.includes(path)) { + return true; + } + } else { + const match = inputPath.match(path); + if (match) { + return true; + } + } + } + return false; +} + + +export function pathRelativeToBase(basePath: string, relativeToBase: string, pathMap?: PathMap) { + if (pathInMap(relativeToBase, pathMap) && pathMap) { + return mapPath(relativeToBase, pathMap); + } + + // Use absolute path if specified + if (relativeToBase.indexOf('/') === 0) { + return relativeToBase; + } + + const originSplit = basePath.split('/'); + const relativeSplit = relativeToBase.split('/'); + // if origin path is a file, remove it so it's a directory + if (originSplit[originSplit.length - 1].includes('.')) { + originSplit.pop(); + } + return originSplit.concat(relativeSplit).join('/'); +} \ No newline at end of file diff --git a/src/resource/properties.ts b/src/resource/properties.ts new file mode 100644 index 00000000..4a57ac83 --- /dev/null +++ b/src/resource/properties.ts @@ -0,0 +1,31 @@ +import { TiledProperty } from "../parser/tiled-parser"; + +export interface Properties { + /** + * Tiled properties are all lowercased when imported. + * + * These are all converted to lowercase keys, and lowercase if the value is a string + */ + properties: Map; +} + +/** + * Maps the tiled source properties, to a JS property map with all keys/values normalized to lowercase where appropriate + * @param target + * @param sourceProps + */ +export function mapProps(target: T, sourceProps?: TiledProperty[]) { + try { + if (sourceProps) { + for (const prop of sourceProps) { + let value = prop.value; + if (typeof prop.value === 'string') { + value = prop.value.toLocaleLowerCase(); + } + target.properties.set(prop.name.toLocaleLowerCase(), value); + } + } + } catch (e) { + console.error(`Unable to map properties onto ${target}`, e); + } +} \ No newline at end of file diff --git a/src/resource/template-resource.ts b/src/resource/template-resource.ts new file mode 100644 index 00000000..ebb49dc3 --- /dev/null +++ b/src/resource/template-resource.ts @@ -0,0 +1,99 @@ +import { ImageSource, Loadable } from "excalibur"; +import { TiledParser, TiledTemplate } from "../parser/tiled-parser"; +import { FetchLoader, FileLoader } from "./file-loader"; +import { LoaderCache } from "./loader-cache"; +import { parseObject } from "./objects"; +import { PathMap, pathRelativeToBase } from "./path-util"; +import { Tileset } from "./tileset"; +import { Template } from "./template"; +import { TilesetResource, TilesetResourceOptions } from "./tileset-resource"; + +export interface TemplateResourceOptions { + headless?: boolean; + strict?: boolean; + parser?: TiledParser, + fileLoader?: FileLoader, + imageLoader?: LoaderCache, + pathMap?: PathMap +} + +/** + * Templates are basically a mini tiled resource, they have a self contained object and optionally a tileset + * + * They can be used to instance objects in ObjectLayers, or as part of Tile Collider definitions + */ +export class TemplateResource implements Loadable