From 894e67863dbb89a4819e825fcdf7117021082b2a Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Tue, 24 Jun 2025 13:29:50 +0200 Subject: Replace leaflet for maplibre, use react-router in framework mode --- package-lock.json | 4288 +++++++++++++++++--- package.json | 10 +- .../GetStopEstimates.cs | 4 +- src/frontend/.gitignore | 7 + src/frontend/app/AppContext.tsx | 243 ++ src/frontend/app/ErrorBoundary.tsx | 46 + src/frontend/app/components/GroupedTable.tsx | 74 + src/frontend/app/components/LineIcon.css | 239 ++ src/frontend/app/components/LineIcon.tsx | 17 + src/frontend/app/components/RegularTable.tsx | 70 + src/frontend/app/components/StopItem.css | 54 + src/frontend/app/components/StopItem.tsx | 25 + src/frontend/app/controls/LocateControl.ts | 67 + src/frontend/app/data/StopDataProvider.ts | 160 + src/frontend/app/maps/styleloader.ts | 49 + src/frontend/app/root.css | 126 + src/frontend/app/root.tsx | 161 + src/frontend/app/routes.tsx | 9 + src/frontend/app/routes/estimates-$id.css | 105 + src/frontend/app/routes/estimates-$id.tsx | 103 + src/frontend/app/routes/index.tsx | 5 + src/frontend/app/routes/map.css | 86 + src/frontend/app/routes/map.tsx | 167 + src/frontend/app/routes/settings.css | 94 + src/frontend/app/routes/settings.tsx | 65 + src/frontend/app/routes/stoplist.css | 310 ++ src/frontend/app/routes/stoplist.tsx | 136 + src/frontend/app/vite-env.d.ts | 1 + src/frontend/package.json | 16 +- .../public/maps/fonts/Roboto Italic/0-255.pbf | Bin 0 -> 77109 bytes .../public/maps/fonts/Roboto Italic/1024-1279.pbf | 3 + .../maps/fonts/Roboto Italic/10240-10495.pbf | 3 + .../maps/fonts/Roboto Italic/10496-10751.pbf | 3 + .../maps/fonts/Roboto Italic/10752-11007.pbf | 3 + .../maps/fonts/Roboto Italic/11008-11263.pbf | 3 + .../maps/fonts/Roboto Italic/11264-11519.pbf | 3 + .../maps/fonts/Roboto Italic/11520-11775.pbf | 3 + .../maps/fonts/Roboto Italic/11776-12031.pbf | 3 + .../maps/fonts/Roboto Italic/12032-12287.pbf | 3 + .../maps/fonts/Roboto Italic/12288-12543.pbf | 3 + .../maps/fonts/Roboto Italic/12544-12799.pbf | 3 + .../public/maps/fonts/Roboto Italic/1280-1535.pbf | 3 + .../maps/fonts/Roboto Italic/12800-13055.pbf | 3 + .../maps/fonts/Roboto Italic/13056-13311.pbf | 3 + .../maps/fonts/Roboto Italic/13312-13567.pbf | 3 + .../maps/fonts/Roboto Italic/13568-13823.pbf | 3 + .../maps/fonts/Roboto Italic/13824-14079.pbf | 3 + .../maps/fonts/Roboto Italic/14080-14335.pbf | 3 + .../maps/fonts/Roboto Italic/14336-14591.pbf | 3 + .../maps/fonts/Roboto Italic/14592-14847.pbf | 3 + .../maps/fonts/Roboto Italic/14848-15103.pbf | 3 + .../maps/fonts/Roboto Italic/15104-15359.pbf | 3 + .../public/maps/fonts/Roboto Italic/1536-1791.pbf | 3 + .../maps/fonts/Roboto Italic/15360-15615.pbf | 3 + .../maps/fonts/Roboto Italic/15616-15871.pbf | 3 + .../maps/fonts/Roboto Italic/15872-16127.pbf | 3 + .../maps/fonts/Roboto Italic/16128-16383.pbf | 3 + .../maps/fonts/Roboto Italic/16384-16639.pbf | 3 + .../maps/fonts/Roboto Italic/16640-16895.pbf | 3 + .../maps/fonts/Roboto Italic/16896-17151.pbf | 3 + .../maps/fonts/Roboto Italic/17152-17407.pbf | 3 + .../maps/fonts/Roboto Italic/17408-17663.pbf | 3 + .../maps/fonts/Roboto Italic/17664-17919.pbf | 3 + .../public/maps/fonts/Roboto Italic/1792-2047.pbf | 3 + .../maps/fonts/Roboto Italic/17920-18175.pbf | 3 + .../maps/fonts/Roboto Italic/18176-18431.pbf | 3 + .../maps/fonts/Roboto Italic/18432-18687.pbf | 3 + .../maps/fonts/Roboto Italic/18688-18943.pbf | 3 + .../maps/fonts/Roboto Italic/18944-19199.pbf | 3 + .../maps/fonts/Roboto Italic/19200-19455.pbf | 3 + .../maps/fonts/Roboto Italic/19456-19711.pbf | 3 + .../maps/fonts/Roboto Italic/19712-19967.pbf | 3 + .../maps/fonts/Roboto Italic/19968-20223.pbf | 3 + .../maps/fonts/Roboto Italic/20224-20479.pbf | 3 + .../public/maps/fonts/Roboto Italic/2048-2303.pbf | 3 + .../maps/fonts/Roboto Italic/20480-20735.pbf | 3 + .../maps/fonts/Roboto Italic/20736-20991.pbf | 3 + .../maps/fonts/Roboto Italic/20992-21247.pbf | 3 + .../maps/fonts/Roboto Italic/21248-21503.pbf | 3 + .../maps/fonts/Roboto Italic/21504-21759.pbf | 3 + .../maps/fonts/Roboto Italic/21760-22015.pbf | 3 + .../maps/fonts/Roboto Italic/22016-22271.pbf | 3 + .../maps/fonts/Roboto Italic/22272-22527.pbf | 3 + .../maps/fonts/Roboto Italic/22528-22783.pbf | 3 + .../maps/fonts/Roboto Italic/22784-23039.pbf | 3 + .../public/maps/fonts/Roboto Italic/2304-2559.pbf | 3 + .../maps/fonts/Roboto Italic/23040-23295.pbf | 3 + .../maps/fonts/Roboto Italic/23296-23551.pbf | 3 + .../maps/fonts/Roboto Italic/23552-23807.pbf | 3 + .../maps/fonts/Roboto Italic/23808-24063.pbf | 3 + .../maps/fonts/Roboto Italic/24064-24319.pbf | 3 + .../maps/fonts/Roboto Italic/24320-24575.pbf | 3 + .../maps/fonts/Roboto Italic/24576-24831.pbf | 3 + .../maps/fonts/Roboto Italic/24832-25087.pbf | 3 + .../maps/fonts/Roboto Italic/25088-25343.pbf | 3 + .../maps/fonts/Roboto Italic/25344-25599.pbf | 3 + .../public/maps/fonts/Roboto Italic/256-511.pbf | Bin 0 -> 1370 bytes .../public/maps/fonts/Roboto Italic/2560-2815.pbf | 3 + .../maps/fonts/Roboto Italic/25600-25855.pbf | 3 + .../maps/fonts/Roboto Italic/25856-26111.pbf | 3 + .../maps/fonts/Roboto Italic/26112-26367.pbf | 3 + .../maps/fonts/Roboto Italic/26368-26623.pbf | 3 + .../maps/fonts/Roboto Italic/26624-26879.pbf | 3 + .../maps/fonts/Roboto Italic/26880-27135.pbf | 3 + .../maps/fonts/Roboto Italic/27136-27391.pbf | 3 + .../maps/fonts/Roboto Italic/27392-27647.pbf | 3 + .../maps/fonts/Roboto Italic/27648-27903.pbf | 3 + .../maps/fonts/Roboto Italic/27904-28159.pbf | 3 + .../public/maps/fonts/Roboto Italic/2816-3071.pbf | 3 + .../maps/fonts/Roboto Italic/28160-28415.pbf | 3 + .../maps/fonts/Roboto Italic/28416-28671.pbf | 3 + .../maps/fonts/Roboto Italic/28672-28927.pbf | 3 + .../maps/fonts/Roboto Italic/28928-29183.pbf | 3 + .../maps/fonts/Roboto Italic/29184-29439.pbf | 3 + .../maps/fonts/Roboto Italic/29440-29695.pbf | 3 + .../maps/fonts/Roboto Italic/29696-29951.pbf | 3 + .../maps/fonts/Roboto Italic/29952-30207.pbf | 3 + .../maps/fonts/Roboto Italic/30208-30463.pbf | 3 + .../maps/fonts/Roboto Italic/30464-30719.pbf | 3 + .../public/maps/fonts/Roboto Italic/3072-3327.pbf | 3 + .../maps/fonts/Roboto Italic/30720-30975.pbf | 3 + .../maps/fonts/Roboto Italic/30976-31231.pbf | 3 + .../maps/fonts/Roboto Italic/31232-31487.pbf | 3 + .../maps/fonts/Roboto Italic/31488-31743.pbf | 3 + .../maps/fonts/Roboto Italic/31744-31999.pbf | 3 + .../maps/fonts/Roboto Italic/32000-32255.pbf | 3 + .../maps/fonts/Roboto Italic/32256-32511.pbf | 3 + .../maps/fonts/Roboto Italic/32512-32767.pbf | 3 + .../maps/fonts/Roboto Italic/32768-33023.pbf | 3 + .../maps/fonts/Roboto Italic/33024-33279.pbf | 3 + .../public/maps/fonts/Roboto Italic/3328-3583.pbf | 3 + .../maps/fonts/Roboto Italic/33280-33535.pbf | 3 + .../maps/fonts/Roboto Italic/33536-33791.pbf | 3 + .../maps/fonts/Roboto Italic/33792-34047.pbf | 3 + .../maps/fonts/Roboto Italic/34048-34303.pbf | 3 + .../maps/fonts/Roboto Italic/34304-34559.pbf | 3 + .../maps/fonts/Roboto Italic/34560-34815.pbf | 3 + .../maps/fonts/Roboto Italic/34816-35071.pbf | 3 + .../maps/fonts/Roboto Italic/35072-35327.pbf | 3 + .../maps/fonts/Roboto Italic/35328-35583.pbf | 3 + .../maps/fonts/Roboto Italic/35584-35839.pbf | 3 + .../public/maps/fonts/Roboto Italic/3584-3839.pbf | 3 + .../maps/fonts/Roboto Italic/35840-36095.pbf | 3 + .../maps/fonts/Roboto Italic/36096-36351.pbf | 3 + .../maps/fonts/Roboto Italic/36352-36607.pbf | 3 + .../maps/fonts/Roboto Italic/36608-36863.pbf | 3 + .../maps/fonts/Roboto Italic/36864-37119.pbf | 3 + .../maps/fonts/Roboto Italic/37120-37375.pbf | 3 + .../maps/fonts/Roboto Italic/37376-37631.pbf | 3 + .../maps/fonts/Roboto Italic/37632-37887.pbf | 3 + .../maps/fonts/Roboto Italic/37888-38143.pbf | 3 + .../maps/fonts/Roboto Italic/38144-38399.pbf | 3 + .../public/maps/fonts/Roboto Italic/3840-4095.pbf | 3 + .../maps/fonts/Roboto Italic/38400-38655.pbf | 3 + .../maps/fonts/Roboto Italic/38656-38911.pbf | 3 + .../maps/fonts/Roboto Italic/38912-39167.pbf | 3 + .../maps/fonts/Roboto Italic/39168-39423.pbf | 3 + .../maps/fonts/Roboto Italic/39424-39679.pbf | 3 + .../maps/fonts/Roboto Italic/39680-39935.pbf | 3 + .../maps/fonts/Roboto Italic/39936-40191.pbf | 3 + .../maps/fonts/Roboto Italic/40192-40447.pbf | 3 + .../maps/fonts/Roboto Italic/40448-40703.pbf | 3 + .../maps/fonts/Roboto Italic/40704-40959.pbf | 3 + .../public/maps/fonts/Roboto Italic/4096-4351.pbf | 3 + .../maps/fonts/Roboto Italic/40960-41215.pbf | 3 + .../maps/fonts/Roboto Italic/41216-41471.pbf | 3 + .../maps/fonts/Roboto Italic/41472-41727.pbf | 3 + .../maps/fonts/Roboto Italic/41728-41983.pbf | 3 + .../maps/fonts/Roboto Italic/41984-42239.pbf | 3 + .../maps/fonts/Roboto Italic/42240-42495.pbf | 3 + .../maps/fonts/Roboto Italic/42496-42751.pbf | 3 + .../maps/fonts/Roboto Italic/42752-43007.pbf | 3 + .../maps/fonts/Roboto Italic/43008-43263.pbf | 3 + .../maps/fonts/Roboto Italic/43264-43519.pbf | 3 + .../public/maps/fonts/Roboto Italic/4352-4607.pbf | 3 + .../maps/fonts/Roboto Italic/43520-43775.pbf | 3 + .../maps/fonts/Roboto Italic/43776-44031.pbf | 3 + .../maps/fonts/Roboto Italic/44032-44287.pbf | 3 + .../maps/fonts/Roboto Italic/44288-44543.pbf | 3 + .../maps/fonts/Roboto Italic/44544-44799.pbf | 3 + .../maps/fonts/Roboto Italic/44800-45055.pbf | 3 + .../maps/fonts/Roboto Italic/45056-45311.pbf | 3 + .../maps/fonts/Roboto Italic/45312-45567.pbf | 3 + .../maps/fonts/Roboto Italic/45568-45823.pbf | 3 + .../maps/fonts/Roboto Italic/45824-46079.pbf | 3 + .../public/maps/fonts/Roboto Italic/4608-4863.pbf | 3 + .../maps/fonts/Roboto Italic/46080-46335.pbf | 3 + .../maps/fonts/Roboto Italic/46336-46591.pbf | 3 + .../maps/fonts/Roboto Italic/46592-46847.pbf | 3 + .../maps/fonts/Roboto Italic/46848-47103.pbf | 3 + .../maps/fonts/Roboto Italic/47104-47359.pbf | 3 + .../maps/fonts/Roboto Italic/47360-47615.pbf | 3 + .../maps/fonts/Roboto Italic/47616-47871.pbf | 3 + .../maps/fonts/Roboto Italic/47872-48127.pbf | 3 + .../maps/fonts/Roboto Italic/48128-48383.pbf | 3 + .../maps/fonts/Roboto Italic/48384-48639.pbf | 3 + .../public/maps/fonts/Roboto Italic/4864-5119.pbf | 3 + .../maps/fonts/Roboto Italic/48640-48895.pbf | 3 + .../maps/fonts/Roboto Italic/48896-49151.pbf | 3 + .../maps/fonts/Roboto Italic/49152-49407.pbf | 3 + .../maps/fonts/Roboto Italic/49408-49663.pbf | 3 + .../maps/fonts/Roboto Italic/49664-49919.pbf | 3 + .../maps/fonts/Roboto Italic/49920-50175.pbf | 3 + .../maps/fonts/Roboto Italic/50176-50431.pbf | 3 + .../maps/fonts/Roboto Italic/50432-50687.pbf | 3 + .../maps/fonts/Roboto Italic/50688-50943.pbf | 3 + .../maps/fonts/Roboto Italic/50944-51199.pbf | 3 + .../public/maps/fonts/Roboto Italic/512-767.pbf | Bin 0 -> 583 bytes .../public/maps/fonts/Roboto Italic/5120-5375.pbf | 3 + .../maps/fonts/Roboto Italic/51200-51455.pbf | 3 + .../maps/fonts/Roboto Italic/51456-51711.pbf | 3 + .../maps/fonts/Roboto Italic/51712-51967.pbf | 3 + .../maps/fonts/Roboto Italic/51968-52223.pbf | 3 + .../maps/fonts/Roboto Italic/52224-52479.pbf | 3 + .../maps/fonts/Roboto Italic/52480-52735.pbf | 3 + .../maps/fonts/Roboto Italic/52736-52991.pbf | 3 + .../maps/fonts/Roboto Italic/52992-53247.pbf | 3 + .../maps/fonts/Roboto Italic/53248-53503.pbf | 3 + .../maps/fonts/Roboto Italic/53504-53759.pbf | 3 + .../public/maps/fonts/Roboto Italic/5376-5631.pbf | 3 + .../maps/fonts/Roboto Italic/53760-54015.pbf | 3 + .../maps/fonts/Roboto Italic/54016-54271.pbf | 3 + .../maps/fonts/Roboto Italic/54272-54527.pbf | 3 + .../maps/fonts/Roboto Italic/54528-54783.pbf | 3 + .../maps/fonts/Roboto Italic/54784-55039.pbf | 3 + .../maps/fonts/Roboto Italic/55040-55295.pbf | 3 + .../maps/fonts/Roboto Italic/55296-55551.pbf | 3 + .../maps/fonts/Roboto Italic/55552-55807.pbf | 3 + .../maps/fonts/Roboto Italic/55808-56063.pbf | 3 + .../maps/fonts/Roboto Italic/56064-56319.pbf | 3 + .../public/maps/fonts/Roboto Italic/5632-5887.pbf | 3 + .../maps/fonts/Roboto Italic/56320-56575.pbf | 3 + .../maps/fonts/Roboto Italic/56576-56831.pbf | 3 + .../maps/fonts/Roboto Italic/56832-57087.pbf | 3 + .../maps/fonts/Roboto Italic/57088-57343.pbf | 3 + .../maps/fonts/Roboto Italic/57344-57599.pbf | 3 + .../maps/fonts/Roboto Italic/57600-57855.pbf | 3 + .../maps/fonts/Roboto Italic/57856-58111.pbf | 3 + .../maps/fonts/Roboto Italic/58112-58367.pbf | 3 + .../maps/fonts/Roboto Italic/58368-58623.pbf | 3 + .../maps/fonts/Roboto Italic/58624-58879.pbf | 3 + .../public/maps/fonts/Roboto Italic/5888-6143.pbf | 3 + .../maps/fonts/Roboto Italic/58880-59135.pbf | 3 + .../maps/fonts/Roboto Italic/59136-59391.pbf | 3 + .../maps/fonts/Roboto Italic/59392-59647.pbf | 3 + .../maps/fonts/Roboto Italic/59648-59903.pbf | 3 + .../maps/fonts/Roboto Italic/59904-60159.pbf | 3 + .../maps/fonts/Roboto Italic/60160-60415.pbf | 3 + .../maps/fonts/Roboto Italic/60416-60671.pbf | 3 + .../maps/fonts/Roboto Italic/60672-60927.pbf | 3 + .../maps/fonts/Roboto Italic/60928-61183.pbf | 3 + .../maps/fonts/Roboto Italic/61184-61439.pbf | 3 + .../public/maps/fonts/Roboto Italic/6144-6399.pbf | 3 + .../maps/fonts/Roboto Italic/61440-61695.pbf | 3 + .../maps/fonts/Roboto Italic/61696-61951.pbf | 3 + .../maps/fonts/Roboto Italic/61952-62207.pbf | 3 + .../maps/fonts/Roboto Italic/62208-62463.pbf | 3 + .../maps/fonts/Roboto Italic/62464-62719.pbf | 3 + .../maps/fonts/Roboto Italic/62720-62975.pbf | 3 + .../maps/fonts/Roboto Italic/62976-63231.pbf | 3 + .../maps/fonts/Roboto Italic/63232-63487.pbf | 3 + .../maps/fonts/Roboto Italic/63488-63743.pbf | 3 + .../maps/fonts/Roboto Italic/63744-63999.pbf | 3 + .../public/maps/fonts/Roboto Italic/6400-6655.pbf | 3 + .../maps/fonts/Roboto Italic/64000-64255.pbf | 3 + .../maps/fonts/Roboto Italic/64256-64511.pbf | 3 + .../maps/fonts/Roboto Italic/64512-64767.pbf | 3 + .../maps/fonts/Roboto Italic/64768-65023.pbf | 3 + .../maps/fonts/Roboto Italic/65024-65279.pbf | Bin 0 -> 46 bytes .../maps/fonts/Roboto Italic/65280-65535.pbf | Bin 0 -> 1153 bytes .../public/maps/fonts/Roboto Italic/6656-6911.pbf | 3 + .../public/maps/fonts/Roboto Italic/6912-7167.pbf | 3 + .../public/maps/fonts/Roboto Italic/7168-7423.pbf | 3 + .../public/maps/fonts/Roboto Italic/7424-7679.pbf | 3 + .../public/maps/fonts/Roboto Italic/768-1023.pbf | Bin 0 -> 601 bytes .../public/maps/fonts/Roboto Italic/7680-7935.pbf | 3 + .../public/maps/fonts/Roboto Italic/7936-8191.pbf | 3 + .../public/maps/fonts/Roboto Italic/8192-8447.pbf | Bin 0 -> 3134 bytes .../public/maps/fonts/Roboto Italic/8448-8703.pbf | 3 + .../public/maps/fonts/Roboto Italic/8704-8959.pbf | 4 + .../public/maps/fonts/Roboto Italic/8960-9215.pbf | 3 + .../public/maps/fonts/Roboto Italic/9216-9471.pbf | 3 + .../public/maps/fonts/Roboto Italic/9472-9727.pbf | 3 + .../public/maps/fonts/Roboto Italic/9728-9983.pbf | 3 + .../public/maps/fonts/Roboto Italic/9984-10239.pbf | 4 + .../public/maps/fonts/Roboto Medium/0-255.pbf | Bin 0 -> 75637 bytes .../public/maps/fonts/Roboto Medium/1024-1279.pbf | 3 + .../maps/fonts/Roboto Medium/10240-10495.pbf | 3 + .../maps/fonts/Roboto Medium/10496-10751.pbf | 3 + .../maps/fonts/Roboto Medium/10752-11007.pbf | 3 + .../maps/fonts/Roboto Medium/11008-11263.pbf | 3 + .../maps/fonts/Roboto Medium/11264-11519.pbf | 3 + .../maps/fonts/Roboto Medium/11520-11775.pbf | 3 + .../maps/fonts/Roboto Medium/11776-12031.pbf | 3 + .../maps/fonts/Roboto Medium/12032-12287.pbf | 3 + .../maps/fonts/Roboto Medium/12288-12543.pbf | 3 + .../maps/fonts/Roboto Medium/12544-12799.pbf | 3 + .../public/maps/fonts/Roboto Medium/1280-1535.pbf | 3 + .../maps/fonts/Roboto Medium/12800-13055.pbf | 3 + .../maps/fonts/Roboto Medium/13056-13311.pbf | 3 + .../maps/fonts/Roboto Medium/13312-13567.pbf | 3 + .../maps/fonts/Roboto Medium/13568-13823.pbf | 3 + .../maps/fonts/Roboto Medium/13824-14079.pbf | 3 + .../maps/fonts/Roboto Medium/14080-14335.pbf | 3 + .../maps/fonts/Roboto Medium/14336-14591.pbf | 3 + .../maps/fonts/Roboto Medium/14592-14847.pbf | 3 + .../maps/fonts/Roboto Medium/14848-15103.pbf | 3 + .../maps/fonts/Roboto Medium/15104-15359.pbf | 3 + .../public/maps/fonts/Roboto Medium/1536-1791.pbf | 3 + .../maps/fonts/Roboto Medium/15360-15615.pbf | 3 + .../maps/fonts/Roboto Medium/15616-15871.pbf | 3 + .../maps/fonts/Roboto Medium/15872-16127.pbf | 3 + .../maps/fonts/Roboto Medium/16128-16383.pbf | 3 + .../maps/fonts/Roboto Medium/16384-16639.pbf | 3 + .../maps/fonts/Roboto Medium/16640-16895.pbf | 3 + .../maps/fonts/Roboto Medium/16896-17151.pbf | 3 + .../maps/fonts/Roboto Medium/17152-17407.pbf | 3 + .../maps/fonts/Roboto Medium/17408-17663.pbf | 3 + .../maps/fonts/Roboto Medium/17664-17919.pbf | 3 + .../public/maps/fonts/Roboto Medium/1792-2047.pbf | 3 + .../maps/fonts/Roboto Medium/17920-18175.pbf | 3 + .../maps/fonts/Roboto Medium/18176-18431.pbf | 3 + .../maps/fonts/Roboto Medium/18432-18687.pbf | 3 + .../maps/fonts/Roboto Medium/18688-18943.pbf | 3 + .../maps/fonts/Roboto Medium/18944-19199.pbf | 3 + .../maps/fonts/Roboto Medium/19200-19455.pbf | 3 + .../maps/fonts/Roboto Medium/19456-19711.pbf | 3 + .../maps/fonts/Roboto Medium/19712-19967.pbf | 3 + .../maps/fonts/Roboto Medium/19968-20223.pbf | 3 + .../maps/fonts/Roboto Medium/20224-20479.pbf | 3 + .../public/maps/fonts/Roboto Medium/2048-2303.pbf | 3 + .../maps/fonts/Roboto Medium/20480-20735.pbf | 3 + .../maps/fonts/Roboto Medium/20736-20991.pbf | 3 + .../maps/fonts/Roboto Medium/20992-21247.pbf | 3 + .../maps/fonts/Roboto Medium/21248-21503.pbf | 3 + .../maps/fonts/Roboto Medium/21504-21759.pbf | 3 + .../maps/fonts/Roboto Medium/21760-22015.pbf | 3 + .../maps/fonts/Roboto Medium/22016-22271.pbf | 3 + .../maps/fonts/Roboto Medium/22272-22527.pbf | 3 + .../maps/fonts/Roboto Medium/22528-22783.pbf | 3 + .../maps/fonts/Roboto Medium/22784-23039.pbf | 3 + .../public/maps/fonts/Roboto Medium/2304-2559.pbf | 3 + .../maps/fonts/Roboto Medium/23040-23295.pbf | 3 + .../maps/fonts/Roboto Medium/23296-23551.pbf | 3 + .../maps/fonts/Roboto Medium/23552-23807.pbf | 3 + .../maps/fonts/Roboto Medium/23808-24063.pbf | 3 + .../maps/fonts/Roboto Medium/24064-24319.pbf | 3 + .../maps/fonts/Roboto Medium/24320-24575.pbf | 3 + .../maps/fonts/Roboto Medium/24576-24831.pbf | 3 + .../maps/fonts/Roboto Medium/24832-25087.pbf | 3 + .../maps/fonts/Roboto Medium/25088-25343.pbf | 3 + .../maps/fonts/Roboto Medium/25344-25599.pbf | 3 + .../public/maps/fonts/Roboto Medium/256-511.pbf | Bin 0 -> 1370 bytes .../public/maps/fonts/Roboto Medium/2560-2815.pbf | 3 + .../maps/fonts/Roboto Medium/25600-25855.pbf | 3 + .../maps/fonts/Roboto Medium/25856-26111.pbf | 3 + .../maps/fonts/Roboto Medium/26112-26367.pbf | 3 + .../maps/fonts/Roboto Medium/26368-26623.pbf | 3 + .../maps/fonts/Roboto Medium/26624-26879.pbf | 3 + .../maps/fonts/Roboto Medium/26880-27135.pbf | 3 + .../maps/fonts/Roboto Medium/27136-27391.pbf | 3 + .../maps/fonts/Roboto Medium/27392-27647.pbf | 3 + .../maps/fonts/Roboto Medium/27648-27903.pbf | 3 + .../maps/fonts/Roboto Medium/27904-28159.pbf | 3 + .../public/maps/fonts/Roboto Medium/2816-3071.pbf | 3 + .../maps/fonts/Roboto Medium/28160-28415.pbf | 3 + .../maps/fonts/Roboto Medium/28416-28671.pbf | 3 + .../maps/fonts/Roboto Medium/28672-28927.pbf | 3 + .../maps/fonts/Roboto Medium/28928-29183.pbf | 3 + .../maps/fonts/Roboto Medium/29184-29439.pbf | 3 + .../maps/fonts/Roboto Medium/29440-29695.pbf | 3 + .../maps/fonts/Roboto Medium/29696-29951.pbf | 3 + .../maps/fonts/Roboto Medium/29952-30207.pbf | 3 + .../maps/fonts/Roboto Medium/30208-30463.pbf | 3 + .../maps/fonts/Roboto Medium/30464-30719.pbf | 3 + .../public/maps/fonts/Roboto Medium/3072-3327.pbf | 3 + .../maps/fonts/Roboto Medium/30720-30975.pbf | 3 + .../maps/fonts/Roboto Medium/30976-31231.pbf | 3 + .../maps/fonts/Roboto Medium/31232-31487.pbf | 3 + .../maps/fonts/Roboto Medium/31488-31743.pbf | 3 + .../maps/fonts/Roboto Medium/31744-31999.pbf | 3 + .../maps/fonts/Roboto Medium/32000-32255.pbf | 3 + .../maps/fonts/Roboto Medium/32256-32511.pbf | 3 + .../maps/fonts/Roboto Medium/32512-32767.pbf | 3 + .../maps/fonts/Roboto Medium/32768-33023.pbf | 3 + .../maps/fonts/Roboto Medium/33024-33279.pbf | 3 + .../public/maps/fonts/Roboto Medium/3328-3583.pbf | 3 + .../maps/fonts/Roboto Medium/33280-33535.pbf | 3 + .../maps/fonts/Roboto Medium/33536-33791.pbf | 3 + .../maps/fonts/Roboto Medium/33792-34047.pbf | 3 + .../maps/fonts/Roboto Medium/34048-34303.pbf | 3 + .../maps/fonts/Roboto Medium/34304-34559.pbf | 3 + .../maps/fonts/Roboto Medium/34560-34815.pbf | 3 + .../maps/fonts/Roboto Medium/34816-35071.pbf | 3 + .../maps/fonts/Roboto Medium/35072-35327.pbf | 3 + .../maps/fonts/Roboto Medium/35328-35583.pbf | 3 + .../maps/fonts/Roboto Medium/35584-35839.pbf | 3 + .../public/maps/fonts/Roboto Medium/3584-3839.pbf | 3 + .../maps/fonts/Roboto Medium/35840-36095.pbf | 3 + .../maps/fonts/Roboto Medium/36096-36351.pbf | 3 + .../maps/fonts/Roboto Medium/36352-36607.pbf | 3 + .../maps/fonts/Roboto Medium/36608-36863.pbf | 3 + .../maps/fonts/Roboto Medium/36864-37119.pbf | 3 + .../maps/fonts/Roboto Medium/37120-37375.pbf | 3 + .../maps/fonts/Roboto Medium/37376-37631.pbf | 3 + .../maps/fonts/Roboto Medium/37632-37887.pbf | 3 + .../maps/fonts/Roboto Medium/37888-38143.pbf | 3 + .../maps/fonts/Roboto Medium/38144-38399.pbf | 3 + .../public/maps/fonts/Roboto Medium/3840-4095.pbf | 3 + .../maps/fonts/Roboto Medium/38400-38655.pbf | 3 + .../maps/fonts/Roboto Medium/38656-38911.pbf | 3 + .../maps/fonts/Roboto Medium/38912-39167.pbf | 3 + .../maps/fonts/Roboto Medium/39168-39423.pbf | 3 + .../maps/fonts/Roboto Medium/39424-39679.pbf | 3 + .../maps/fonts/Roboto Medium/39680-39935.pbf | 3 + .../maps/fonts/Roboto Medium/39936-40191.pbf | 3 + .../maps/fonts/Roboto Medium/40192-40447.pbf | 3 + .../maps/fonts/Roboto Medium/40448-40703.pbf | 3 + .../maps/fonts/Roboto Medium/40704-40959.pbf | 3 + .../public/maps/fonts/Roboto Medium/4096-4351.pbf | 3 + .../maps/fonts/Roboto Medium/40960-41215.pbf | 3 + .../maps/fonts/Roboto Medium/41216-41471.pbf | 3 + .../maps/fonts/Roboto Medium/41472-41727.pbf | 3 + .../maps/fonts/Roboto Medium/41728-41983.pbf | 3 + .../maps/fonts/Roboto Medium/41984-42239.pbf | 3 + .../maps/fonts/Roboto Medium/42240-42495.pbf | 3 + .../maps/fonts/Roboto Medium/42496-42751.pbf | 3 + .../maps/fonts/Roboto Medium/42752-43007.pbf | 3 + .../maps/fonts/Roboto Medium/43008-43263.pbf | 3 + .../maps/fonts/Roboto Medium/43264-43519.pbf | 3 + .../public/maps/fonts/Roboto Medium/4352-4607.pbf | 3 + .../maps/fonts/Roboto Medium/43520-43775.pbf | 3 + .../maps/fonts/Roboto Medium/43776-44031.pbf | 3 + .../maps/fonts/Roboto Medium/44032-44287.pbf | 3 + .../maps/fonts/Roboto Medium/44288-44543.pbf | 3 + .../maps/fonts/Roboto Medium/44544-44799.pbf | 3 + .../maps/fonts/Roboto Medium/44800-45055.pbf | 3 + .../maps/fonts/Roboto Medium/45056-45311.pbf | 3 + .../maps/fonts/Roboto Medium/45312-45567.pbf | 3 + .../maps/fonts/Roboto Medium/45568-45823.pbf | 3 + .../maps/fonts/Roboto Medium/45824-46079.pbf | 3 + .../public/maps/fonts/Roboto Medium/4608-4863.pbf | 3 + .../maps/fonts/Roboto Medium/46080-46335.pbf | 3 + .../maps/fonts/Roboto Medium/46336-46591.pbf | 3 + .../maps/fonts/Roboto Medium/46592-46847.pbf | 3 + .../maps/fonts/Roboto Medium/46848-47103.pbf | 3 + .../maps/fonts/Roboto Medium/47104-47359.pbf | 3 + .../maps/fonts/Roboto Medium/47360-47615.pbf | 3 + .../maps/fonts/Roboto Medium/47616-47871.pbf | 3 + .../maps/fonts/Roboto Medium/47872-48127.pbf | 3 + .../maps/fonts/Roboto Medium/48128-48383.pbf | 3 + .../maps/fonts/Roboto Medium/48384-48639.pbf | 3 + .../public/maps/fonts/Roboto Medium/4864-5119.pbf | 3 + .../maps/fonts/Roboto Medium/48640-48895.pbf | 3 + .../maps/fonts/Roboto Medium/48896-49151.pbf | 3 + .../maps/fonts/Roboto Medium/49152-49407.pbf | 3 + .../maps/fonts/Roboto Medium/49408-49663.pbf | 3 + .../maps/fonts/Roboto Medium/49664-49919.pbf | 3 + .../maps/fonts/Roboto Medium/49920-50175.pbf | 3 + .../maps/fonts/Roboto Medium/50176-50431.pbf | 3 + .../maps/fonts/Roboto Medium/50432-50687.pbf | 3 + .../maps/fonts/Roboto Medium/50688-50943.pbf | 3 + .../maps/fonts/Roboto Medium/50944-51199.pbf | 3 + .../public/maps/fonts/Roboto Medium/512-767.pbf | Bin 0 -> 588 bytes .../public/maps/fonts/Roboto Medium/5120-5375.pbf | 3 + .../maps/fonts/Roboto Medium/51200-51455.pbf | 3 + .../maps/fonts/Roboto Medium/51456-51711.pbf | 3 + .../maps/fonts/Roboto Medium/51712-51967.pbf | 3 + .../maps/fonts/Roboto Medium/51968-52223.pbf | 3 + .../maps/fonts/Roboto Medium/52224-52479.pbf | 3 + .../maps/fonts/Roboto Medium/52480-52735.pbf | 3 + .../maps/fonts/Roboto Medium/52736-52991.pbf | 3 + .../maps/fonts/Roboto Medium/52992-53247.pbf | 3 + .../maps/fonts/Roboto Medium/53248-53503.pbf | 3 + .../maps/fonts/Roboto Medium/53504-53759.pbf | 3 + .../public/maps/fonts/Roboto Medium/5376-5631.pbf | 3 + .../maps/fonts/Roboto Medium/53760-54015.pbf | 3 + .../maps/fonts/Roboto Medium/54016-54271.pbf | 3 + .../maps/fonts/Roboto Medium/54272-54527.pbf | 3 + .../maps/fonts/Roboto Medium/54528-54783.pbf | 3 + .../maps/fonts/Roboto Medium/54784-55039.pbf | 3 + .../maps/fonts/Roboto Medium/55040-55295.pbf | 3 + .../maps/fonts/Roboto Medium/55296-55551.pbf | 3 + .../maps/fonts/Roboto Medium/55552-55807.pbf | 3 + .../maps/fonts/Roboto Medium/55808-56063.pbf | 3 + .../maps/fonts/Roboto Medium/56064-56319.pbf | 3 + .../public/maps/fonts/Roboto Medium/5632-5887.pbf | 3 + .../maps/fonts/Roboto Medium/56320-56575.pbf | 3 + .../maps/fonts/Roboto Medium/56576-56831.pbf | 3 + .../maps/fonts/Roboto Medium/56832-57087.pbf | 3 + .../maps/fonts/Roboto Medium/57088-57343.pbf | 3 + .../maps/fonts/Roboto Medium/57344-57599.pbf | 3 + .../maps/fonts/Roboto Medium/57600-57855.pbf | 3 + .../maps/fonts/Roboto Medium/57856-58111.pbf | 3 + .../maps/fonts/Roboto Medium/58112-58367.pbf | 3 + .../maps/fonts/Roboto Medium/58368-58623.pbf | 3 + .../maps/fonts/Roboto Medium/58624-58879.pbf | 3 + .../public/maps/fonts/Roboto Medium/5888-6143.pbf | 3 + .../maps/fonts/Roboto Medium/58880-59135.pbf | 3 + .../maps/fonts/Roboto Medium/59136-59391.pbf | 3 + .../maps/fonts/Roboto Medium/59392-59647.pbf | 3 + .../maps/fonts/Roboto Medium/59648-59903.pbf | 3 + .../maps/fonts/Roboto Medium/59904-60159.pbf | 3 + .../maps/fonts/Roboto Medium/60160-60415.pbf | 3 + .../maps/fonts/Roboto Medium/60416-60671.pbf | 3 + .../maps/fonts/Roboto Medium/60672-60927.pbf | 3 + .../maps/fonts/Roboto Medium/60928-61183.pbf | 3 + .../maps/fonts/Roboto Medium/61184-61439.pbf | 3 + .../public/maps/fonts/Roboto Medium/6144-6399.pbf | 3 + .../maps/fonts/Roboto Medium/61440-61695.pbf | 3 + .../maps/fonts/Roboto Medium/61696-61951.pbf | 3 + .../maps/fonts/Roboto Medium/61952-62207.pbf | 3 + .../maps/fonts/Roboto Medium/62208-62463.pbf | 3 + .../maps/fonts/Roboto Medium/62464-62719.pbf | 3 + .../maps/fonts/Roboto Medium/62720-62975.pbf | 3 + .../maps/fonts/Roboto Medium/62976-63231.pbf | 3 + .../maps/fonts/Roboto Medium/63232-63487.pbf | 3 + .../maps/fonts/Roboto Medium/63488-63743.pbf | 3 + .../maps/fonts/Roboto Medium/63744-63999.pbf | 3 + .../public/maps/fonts/Roboto Medium/6400-6655.pbf | 3 + .../maps/fonts/Roboto Medium/64000-64255.pbf | 3 + .../maps/fonts/Roboto Medium/64256-64511.pbf | 3 + .../maps/fonts/Roboto Medium/64512-64767.pbf | 3 + .../maps/fonts/Roboto Medium/64768-65023.pbf | 3 + .../maps/fonts/Roboto Medium/65024-65279.pbf | Bin 0 -> 46 bytes .../maps/fonts/Roboto Medium/65280-65535.pbf | Bin 0 -> 1153 bytes .../public/maps/fonts/Roboto Medium/6656-6911.pbf | 3 + .../public/maps/fonts/Roboto Medium/6912-7167.pbf | 3 + .../public/maps/fonts/Roboto Medium/7168-7423.pbf | 3 + .../public/maps/fonts/Roboto Medium/7424-7679.pbf | 3 + .../public/maps/fonts/Roboto Medium/768-1023.pbf | Bin 0 -> 671 bytes .../public/maps/fonts/Roboto Medium/7680-7935.pbf | 3 + .../public/maps/fonts/Roboto Medium/7936-8191.pbf | 3 + .../public/maps/fonts/Roboto Medium/8192-8447.pbf | Bin 0 -> 3162 bytes .../public/maps/fonts/Roboto Medium/8448-8703.pbf | 3 + .../public/maps/fonts/Roboto Medium/8704-8959.pbf | 4 + .../public/maps/fonts/Roboto Medium/8960-9215.pbf | 3 + .../public/maps/fonts/Roboto Medium/9216-9471.pbf | 3 + .../public/maps/fonts/Roboto Medium/9472-9727.pbf | 3 + .../public/maps/fonts/Roboto Medium/9728-9983.pbf | 3 + .../public/maps/fonts/Roboto Medium/9984-10239.pbf | 4 + .../public/maps/fonts/Roboto Regular/0-255.pbf | Bin 0 -> 73916 bytes .../public/maps/fonts/Roboto Regular/1024-1279.pbf | 3 + .../maps/fonts/Roboto Regular/10240-10495.pbf | 3 + .../maps/fonts/Roboto Regular/10496-10751.pbf | 3 + .../maps/fonts/Roboto Regular/10752-11007.pbf | 3 + .../maps/fonts/Roboto Regular/11008-11263.pbf | 3 + .../maps/fonts/Roboto Regular/11264-11519.pbf | 3 + .../maps/fonts/Roboto Regular/11520-11775.pbf | 3 + .../maps/fonts/Roboto Regular/11776-12031.pbf | 3 + .../maps/fonts/Roboto Regular/12032-12287.pbf | 3 + .../maps/fonts/Roboto Regular/12288-12543.pbf | 3 + .../maps/fonts/Roboto Regular/12544-12799.pbf | 3 + .../public/maps/fonts/Roboto Regular/1280-1535.pbf | 3 + .../maps/fonts/Roboto Regular/12800-13055.pbf | 3 + .../maps/fonts/Roboto Regular/13056-13311.pbf | 3 + .../maps/fonts/Roboto Regular/13312-13567.pbf | 3 + .../maps/fonts/Roboto Regular/13568-13823.pbf | 3 + .../maps/fonts/Roboto Regular/13824-14079.pbf | 3 + .../maps/fonts/Roboto Regular/14080-14335.pbf | 3 + .../maps/fonts/Roboto Regular/14336-14591.pbf | 3 + .../maps/fonts/Roboto Regular/14592-14847.pbf | 3 + .../maps/fonts/Roboto Regular/14848-15103.pbf | 3 + .../maps/fonts/Roboto Regular/15104-15359.pbf | 3 + .../public/maps/fonts/Roboto Regular/1536-1791.pbf | 3 + .../maps/fonts/Roboto Regular/15360-15615.pbf | 3 + .../maps/fonts/Roboto Regular/15616-15871.pbf | 3 + .../maps/fonts/Roboto Regular/15872-16127.pbf | 3 + .../maps/fonts/Roboto Regular/16128-16383.pbf | 3 + .../maps/fonts/Roboto Regular/16384-16639.pbf | 3 + .../maps/fonts/Roboto Regular/16640-16895.pbf | 3 + .../maps/fonts/Roboto Regular/16896-17151.pbf | 3 + .../maps/fonts/Roboto Regular/17152-17407.pbf | 3 + .../maps/fonts/Roboto Regular/17408-17663.pbf | 3 + .../maps/fonts/Roboto Regular/17664-17919.pbf | 3 + .../public/maps/fonts/Roboto Regular/1792-2047.pbf | 3 + .../maps/fonts/Roboto Regular/17920-18175.pbf | 3 + .../maps/fonts/Roboto Regular/18176-18431.pbf | 3 + .../maps/fonts/Roboto Regular/18432-18687.pbf | 3 + .../maps/fonts/Roboto Regular/18688-18943.pbf | 3 + .../maps/fonts/Roboto Regular/18944-19199.pbf | 3 + .../maps/fonts/Roboto Regular/19200-19455.pbf | 3 + .../maps/fonts/Roboto Regular/19456-19711.pbf | 3 + .../maps/fonts/Roboto Regular/19712-19967.pbf | 3 + .../maps/fonts/Roboto Regular/19968-20223.pbf | 3 + .../maps/fonts/Roboto Regular/20224-20479.pbf | 3 + .../public/maps/fonts/Roboto Regular/2048-2303.pbf | 3 + .../maps/fonts/Roboto Regular/20480-20735.pbf | 3 + .../maps/fonts/Roboto Regular/20736-20991.pbf | 3 + .../maps/fonts/Roboto Regular/20992-21247.pbf | 3 + .../maps/fonts/Roboto Regular/21248-21503.pbf | 3 + .../maps/fonts/Roboto Regular/21504-21759.pbf | 3 + .../maps/fonts/Roboto Regular/21760-22015.pbf | 3 + .../maps/fonts/Roboto Regular/22016-22271.pbf | 3 + .../maps/fonts/Roboto Regular/22272-22527.pbf | 3 + .../maps/fonts/Roboto Regular/22528-22783.pbf | 3 + .../maps/fonts/Roboto Regular/22784-23039.pbf | 3 + .../public/maps/fonts/Roboto Regular/2304-2559.pbf | 3 + .../maps/fonts/Roboto Regular/23040-23295.pbf | 3 + .../maps/fonts/Roboto Regular/23296-23551.pbf | 3 + .../maps/fonts/Roboto Regular/23552-23807.pbf | 3 + .../maps/fonts/Roboto Regular/23808-24063.pbf | 3 + .../maps/fonts/Roboto Regular/24064-24319.pbf | 3 + .../maps/fonts/Roboto Regular/24320-24575.pbf | 3 + .../maps/fonts/Roboto Regular/24576-24831.pbf | 3 + .../maps/fonts/Roboto Regular/24832-25087.pbf | 3 + .../maps/fonts/Roboto Regular/25088-25343.pbf | 3 + .../maps/fonts/Roboto Regular/25344-25599.pbf | 3 + .../public/maps/fonts/Roboto Regular/256-511.pbf | Bin 0 -> 1329 bytes .../public/maps/fonts/Roboto Regular/2560-2815.pbf | 3 + .../maps/fonts/Roboto Regular/25600-25855.pbf | 3 + .../maps/fonts/Roboto Regular/25856-26111.pbf | 3 + .../maps/fonts/Roboto Regular/26112-26367.pbf | 3 + .../maps/fonts/Roboto Regular/26368-26623.pbf | 3 + .../maps/fonts/Roboto Regular/26624-26879.pbf | 3 + .../maps/fonts/Roboto Regular/26880-27135.pbf | 3 + .../maps/fonts/Roboto Regular/27136-27391.pbf | 3 + .../maps/fonts/Roboto Regular/27392-27647.pbf | 3 + .../maps/fonts/Roboto Regular/27648-27903.pbf | 3 + .../maps/fonts/Roboto Regular/27904-28159.pbf | 3 + .../public/maps/fonts/Roboto Regular/2816-3071.pbf | 3 + .../maps/fonts/Roboto Regular/28160-28415.pbf | 3 + .../maps/fonts/Roboto Regular/28416-28671.pbf | 3 + .../maps/fonts/Roboto Regular/28672-28927.pbf | 3 + .../maps/fonts/Roboto Regular/28928-29183.pbf | 3 + .../maps/fonts/Roboto Regular/29184-29439.pbf | 3 + .../maps/fonts/Roboto Regular/29440-29695.pbf | 3 + .../maps/fonts/Roboto Regular/29696-29951.pbf | 3 + .../maps/fonts/Roboto Regular/29952-30207.pbf | 3 + .../maps/fonts/Roboto Regular/30208-30463.pbf | 3 + .../maps/fonts/Roboto Regular/30464-30719.pbf | 3 + .../public/maps/fonts/Roboto Regular/3072-3327.pbf | 3 + .../maps/fonts/Roboto Regular/30720-30975.pbf | 3 + .../maps/fonts/Roboto Regular/30976-31231.pbf | 3 + .../maps/fonts/Roboto Regular/31232-31487.pbf | 3 + .../maps/fonts/Roboto Regular/31488-31743.pbf | 3 + .../maps/fonts/Roboto Regular/31744-31999.pbf | 3 + .../maps/fonts/Roboto Regular/32000-32255.pbf | 3 + .../maps/fonts/Roboto Regular/32256-32511.pbf | 3 + .../maps/fonts/Roboto Regular/32512-32767.pbf | 3 + .../maps/fonts/Roboto Regular/32768-33023.pbf | 3 + .../maps/fonts/Roboto Regular/33024-33279.pbf | 3 + .../public/maps/fonts/Roboto Regular/3328-3583.pbf | 3 + .../maps/fonts/Roboto Regular/33280-33535.pbf | 3 + .../maps/fonts/Roboto Regular/33536-33791.pbf | 3 + .../maps/fonts/Roboto Regular/33792-34047.pbf | 3 + .../maps/fonts/Roboto Regular/34048-34303.pbf | 3 + .../maps/fonts/Roboto Regular/34304-34559.pbf | 3 + .../maps/fonts/Roboto Regular/34560-34815.pbf | 3 + .../maps/fonts/Roboto Regular/34816-35071.pbf | 3 + .../maps/fonts/Roboto Regular/35072-35327.pbf | 3 + .../maps/fonts/Roboto Regular/35328-35583.pbf | 3 + .../maps/fonts/Roboto Regular/35584-35839.pbf | 3 + .../public/maps/fonts/Roboto Regular/3584-3839.pbf | 3 + .../maps/fonts/Roboto Regular/35840-36095.pbf | 3 + .../maps/fonts/Roboto Regular/36096-36351.pbf | 3 + .../maps/fonts/Roboto Regular/36352-36607.pbf | 3 + .../maps/fonts/Roboto Regular/36608-36863.pbf | 3 + .../maps/fonts/Roboto Regular/36864-37119.pbf | 3 + .../maps/fonts/Roboto Regular/37120-37375.pbf | 3 + .../maps/fonts/Roboto Regular/37376-37631.pbf | 3 + .../maps/fonts/Roboto Regular/37632-37887.pbf | 3 + .../maps/fonts/Roboto Regular/37888-38143.pbf | 3 + .../maps/fonts/Roboto Regular/38144-38399.pbf | 3 + .../public/maps/fonts/Roboto Regular/3840-4095.pbf | 3 + .../maps/fonts/Roboto Regular/38400-38655.pbf | 3 + .../maps/fonts/Roboto Regular/38656-38911.pbf | 3 + .../maps/fonts/Roboto Regular/38912-39167.pbf | 3 + .../maps/fonts/Roboto Regular/39168-39423.pbf | 3 + .../maps/fonts/Roboto Regular/39424-39679.pbf | 3 + .../maps/fonts/Roboto Regular/39680-39935.pbf | 3 + .../maps/fonts/Roboto Regular/39936-40191.pbf | 3 + .../maps/fonts/Roboto Regular/40192-40447.pbf | 3 + .../maps/fonts/Roboto Regular/40448-40703.pbf | 3 + .../maps/fonts/Roboto Regular/40704-40959.pbf | 3 + .../public/maps/fonts/Roboto Regular/4096-4351.pbf | 3 + .../maps/fonts/Roboto Regular/40960-41215.pbf | 3 + .../maps/fonts/Roboto Regular/41216-41471.pbf | 3 + .../maps/fonts/Roboto Regular/41472-41727.pbf | 3 + .../maps/fonts/Roboto Regular/41728-41983.pbf | 3 + .../maps/fonts/Roboto Regular/41984-42239.pbf | 3 + .../maps/fonts/Roboto Regular/42240-42495.pbf | 3 + .../maps/fonts/Roboto Regular/42496-42751.pbf | 3 + .../maps/fonts/Roboto Regular/42752-43007.pbf | 3 + .../maps/fonts/Roboto Regular/43008-43263.pbf | 3 + .../maps/fonts/Roboto Regular/43264-43519.pbf | 3 + .../public/maps/fonts/Roboto Regular/4352-4607.pbf | 3 + .../maps/fonts/Roboto Regular/43520-43775.pbf | 3 + .../maps/fonts/Roboto Regular/43776-44031.pbf | 3 + .../maps/fonts/Roboto Regular/44032-44287.pbf | 3 + .../maps/fonts/Roboto Regular/44288-44543.pbf | 3 + .../maps/fonts/Roboto Regular/44544-44799.pbf | 3 + .../maps/fonts/Roboto Regular/44800-45055.pbf | 3 + .../maps/fonts/Roboto Regular/45056-45311.pbf | 3 + .../maps/fonts/Roboto Regular/45312-45567.pbf | 3 + .../maps/fonts/Roboto Regular/45568-45823.pbf | 3 + .../maps/fonts/Roboto Regular/45824-46079.pbf | 3 + .../public/maps/fonts/Roboto Regular/4608-4863.pbf | 3 + .../maps/fonts/Roboto Regular/46080-46335.pbf | 3 + .../maps/fonts/Roboto Regular/46336-46591.pbf | 3 + .../maps/fonts/Roboto Regular/46592-46847.pbf | 3 + .../maps/fonts/Roboto Regular/46848-47103.pbf | 3 + .../maps/fonts/Roboto Regular/47104-47359.pbf | 3 + .../maps/fonts/Roboto Regular/47360-47615.pbf | 3 + .../maps/fonts/Roboto Regular/47616-47871.pbf | 3 + .../maps/fonts/Roboto Regular/47872-48127.pbf | 3 + .../maps/fonts/Roboto Regular/48128-48383.pbf | 3 + .../maps/fonts/Roboto Regular/48384-48639.pbf | 3 + .../public/maps/fonts/Roboto Regular/4864-5119.pbf | 3 + .../maps/fonts/Roboto Regular/48640-48895.pbf | 3 + .../maps/fonts/Roboto Regular/48896-49151.pbf | 3 + .../maps/fonts/Roboto Regular/49152-49407.pbf | 3 + .../maps/fonts/Roboto Regular/49408-49663.pbf | 3 + .../maps/fonts/Roboto Regular/49664-49919.pbf | 3 + .../maps/fonts/Roboto Regular/49920-50175.pbf | 3 + .../maps/fonts/Roboto Regular/50176-50431.pbf | 3 + .../maps/fonts/Roboto Regular/50432-50687.pbf | 3 + .../maps/fonts/Roboto Regular/50688-50943.pbf | 3 + .../maps/fonts/Roboto Regular/50944-51199.pbf | 3 + .../public/maps/fonts/Roboto Regular/512-767.pbf | 4 + .../public/maps/fonts/Roboto Regular/5120-5375.pbf | 3 + .../maps/fonts/Roboto Regular/51200-51455.pbf | 3 + .../maps/fonts/Roboto Regular/51456-51711.pbf | 3 + .../maps/fonts/Roboto Regular/51712-51967.pbf | 3 + .../maps/fonts/Roboto Regular/51968-52223.pbf | 3 + .../maps/fonts/Roboto Regular/52224-52479.pbf | 3 + .../maps/fonts/Roboto Regular/52480-52735.pbf | 3 + .../maps/fonts/Roboto Regular/52736-52991.pbf | 3 + .../maps/fonts/Roboto Regular/52992-53247.pbf | 3 + .../maps/fonts/Roboto Regular/53248-53503.pbf | 3 + .../maps/fonts/Roboto Regular/53504-53759.pbf | 3 + .../public/maps/fonts/Roboto Regular/5376-5631.pbf | 3 + .../maps/fonts/Roboto Regular/53760-54015.pbf | 3 + .../maps/fonts/Roboto Regular/54016-54271.pbf | 3 + .../maps/fonts/Roboto Regular/54272-54527.pbf | 3 + .../maps/fonts/Roboto Regular/54528-54783.pbf | 3 + .../maps/fonts/Roboto Regular/54784-55039.pbf | 3 + .../maps/fonts/Roboto Regular/55040-55295.pbf | 3 + .../maps/fonts/Roboto Regular/55296-55551.pbf | 3 + .../maps/fonts/Roboto Regular/55552-55807.pbf | 3 + .../maps/fonts/Roboto Regular/55808-56063.pbf | 3 + .../maps/fonts/Roboto Regular/56064-56319.pbf | 3 + .../public/maps/fonts/Roboto Regular/5632-5887.pbf | 3 + .../maps/fonts/Roboto Regular/56320-56575.pbf | 3 + .../maps/fonts/Roboto Regular/56576-56831.pbf | 3 + .../maps/fonts/Roboto Regular/56832-57087.pbf | 3 + .../maps/fonts/Roboto Regular/57088-57343.pbf | 3 + .../maps/fonts/Roboto Regular/57344-57599.pbf | 3 + .../maps/fonts/Roboto Regular/57600-57855.pbf | 3 + .../maps/fonts/Roboto Regular/57856-58111.pbf | 3 + .../maps/fonts/Roboto Regular/58112-58367.pbf | 3 + .../maps/fonts/Roboto Regular/58368-58623.pbf | 3 + .../maps/fonts/Roboto Regular/58624-58879.pbf | 3 + .../public/maps/fonts/Roboto Regular/5888-6143.pbf | 3 + .../maps/fonts/Roboto Regular/58880-59135.pbf | 3 + .../maps/fonts/Roboto Regular/59136-59391.pbf | 3 + .../maps/fonts/Roboto Regular/59392-59647.pbf | 3 + .../maps/fonts/Roboto Regular/59648-59903.pbf | 3 + .../maps/fonts/Roboto Regular/59904-60159.pbf | 3 + .../maps/fonts/Roboto Regular/60160-60415.pbf | 3 + .../maps/fonts/Roboto Regular/60416-60671.pbf | 3 + .../maps/fonts/Roboto Regular/60672-60927.pbf | 3 + .../maps/fonts/Roboto Regular/60928-61183.pbf | 3 + .../maps/fonts/Roboto Regular/61184-61439.pbf | 3 + .../public/maps/fonts/Roboto Regular/6144-6399.pbf | 3 + .../maps/fonts/Roboto Regular/61440-61695.pbf | 3 + .../maps/fonts/Roboto Regular/61696-61951.pbf | 3 + .../maps/fonts/Roboto Regular/61952-62207.pbf | 3 + .../maps/fonts/Roboto Regular/62208-62463.pbf | 3 + .../maps/fonts/Roboto Regular/62464-62719.pbf | 3 + .../maps/fonts/Roboto Regular/62720-62975.pbf | 3 + .../maps/fonts/Roboto Regular/62976-63231.pbf | 3 + .../maps/fonts/Roboto Regular/63232-63487.pbf | 3 + .../maps/fonts/Roboto Regular/63488-63743.pbf | 3 + .../maps/fonts/Roboto Regular/63744-63999.pbf | 3 + .../public/maps/fonts/Roboto Regular/6400-6655.pbf | 3 + .../maps/fonts/Roboto Regular/64000-64255.pbf | 3 + .../maps/fonts/Roboto Regular/64256-64511.pbf | 3 + .../maps/fonts/Roboto Regular/64512-64767.pbf | 3 + .../maps/fonts/Roboto Regular/64768-65023.pbf | 3 + .../maps/fonts/Roboto Regular/65024-65279.pbf | Bin 0 -> 47 bytes .../maps/fonts/Roboto Regular/65280-65535.pbf | Bin 0 -> 1154 bytes .../public/maps/fonts/Roboto Regular/6656-6911.pbf | 3 + .../public/maps/fonts/Roboto Regular/6912-7167.pbf | 3 + .../public/maps/fonts/Roboto Regular/7168-7423.pbf | 3 + .../public/maps/fonts/Roboto Regular/7424-7679.pbf | 3 + .../public/maps/fonts/Roboto Regular/768-1023.pbf | Bin 0 -> 613 bytes .../public/maps/fonts/Roboto Regular/7680-7935.pbf | 3 + .../public/maps/fonts/Roboto Regular/7936-8191.pbf | 3 + .../public/maps/fonts/Roboto Regular/8192-8447.pbf | Bin 0 -> 2916 bytes .../public/maps/fonts/Roboto Regular/8448-8703.pbf | 3 + .../public/maps/fonts/Roboto Regular/8704-8959.pbf | 4 + .../public/maps/fonts/Roboto Regular/8960-9215.pbf | 3 + .../public/maps/fonts/Roboto Regular/9216-9471.pbf | 3 + .../public/maps/fonts/Roboto Regular/9472-9727.pbf | 3 + .../public/maps/fonts/Roboto Regular/9728-9983.pbf | 3 + .../maps/fonts/Roboto Regular/9984-10239.pbf | 4 + src/frontend/public/maps/spritesheet/sprite.json | 10 + src/frontend/public/maps/spritesheet/sprite.png | Bin 0 -> 1231 bytes src/frontend/public/maps/styles/carto-dark.json | 33 + src/frontend/public/maps/styles/carto-light.json | 33 + src/frontend/react-router.config.ts | 8 + src/frontend/src/AppContext.tsx | 234 -- src/frontend/src/ErrorBoundary.tsx | 46 - src/frontend/src/Layout.css | 65 - src/frontend/src/Layout.tsx | 57 - src/frontend/src/components/GroupedTable.tsx | 74 - src/frontend/src/components/LineIcon.css | 239 -- src/frontend/src/components/LineIcon.tsx | 17 - src/frontend/src/components/RegularTable.tsx | 70 - src/frontend/src/components/StopItem.css | 54 - src/frontend/src/components/StopItem.tsx | 25 - src/frontend/src/controls/LocateControl.ts | 67 - src/frontend/src/data/StopDataProvider.ts | 160 - src/frontend/src/main.tsx | 43 - src/frontend/src/pages/Estimates.tsx | 99 - src/frontend/src/pages/Map.tsx | 75 - src/frontend/src/pages/Settings.tsx | 65 - src/frontend/src/pages/StopList.tsx | 135 - src/frontend/src/styles/Estimates.css | 105 - src/frontend/src/styles/Map.css | 86 - src/frontend/src/styles/Pages.css | 364 -- src/frontend/src/styles/Settings.css | 94 - src/frontend/src/vite-env.d.ts | 1 - src/frontend/tsconfig.json | 8 +- src/frontend/vite.config.ts | 18 +- 826 files changed, 8554 insertions(+), 2719 deletions(-) create mode 100644 src/frontend/app/AppContext.tsx create mode 100644 src/frontend/app/ErrorBoundary.tsx create mode 100644 src/frontend/app/components/GroupedTable.tsx create mode 100644 src/frontend/app/components/LineIcon.css create mode 100644 src/frontend/app/components/LineIcon.tsx create mode 100644 src/frontend/app/components/RegularTable.tsx create mode 100644 src/frontend/app/components/StopItem.css create mode 100644 src/frontend/app/components/StopItem.tsx create mode 100644 src/frontend/app/controls/LocateControl.ts create mode 100644 src/frontend/app/data/StopDataProvider.ts create mode 100644 src/frontend/app/maps/styleloader.ts create mode 100644 src/frontend/app/root.css create mode 100644 src/frontend/app/root.tsx create mode 100644 src/frontend/app/routes.tsx create mode 100644 src/frontend/app/routes/estimates-$id.css create mode 100644 src/frontend/app/routes/estimates-$id.tsx create mode 100644 src/frontend/app/routes/index.tsx create mode 100644 src/frontend/app/routes/map.css create mode 100644 src/frontend/app/routes/map.tsx create mode 100644 src/frontend/app/routes/settings.css create mode 100644 src/frontend/app/routes/settings.tsx create mode 100644 src/frontend/app/routes/stoplist.css create mode 100644 src/frontend/app/routes/stoplist.tsx create mode 100644 src/frontend/app/vite-env.d.ts create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/0-255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/1024-1279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/10240-10495.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/10496-10751.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/10752-11007.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/11008-11263.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/11264-11519.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/11520-11775.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/11776-12031.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/12032-12287.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/12288-12543.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/12544-12799.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/1280-1535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/12800-13055.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/13056-13311.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/13312-13567.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/13568-13823.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/13824-14079.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/14080-14335.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/14336-14591.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/14592-14847.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/14848-15103.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/15104-15359.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/1536-1791.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/15360-15615.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/15616-15871.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/15872-16127.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/16128-16383.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/16384-16639.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/16640-16895.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/16896-17151.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/17152-17407.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/17408-17663.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/17664-17919.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/1792-2047.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/17920-18175.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/18176-18431.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/18432-18687.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/18688-18943.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/18944-19199.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/19200-19455.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/19456-19711.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/19712-19967.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/19968-20223.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/20224-20479.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/2048-2303.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/20480-20735.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/20736-20991.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/20992-21247.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/21248-21503.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/21504-21759.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/21760-22015.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/22016-22271.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/22272-22527.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/22528-22783.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/22784-23039.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/2304-2559.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/23040-23295.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/23296-23551.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/23552-23807.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/23808-24063.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/24064-24319.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/24320-24575.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/24576-24831.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/24832-25087.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/25088-25343.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/25344-25599.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/256-511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/2560-2815.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/25600-25855.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/25856-26111.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/26112-26367.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/26368-26623.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/26624-26879.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/26880-27135.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/27136-27391.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/27392-27647.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/27648-27903.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/27904-28159.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/2816-3071.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/28160-28415.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/28416-28671.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/28672-28927.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/28928-29183.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/29184-29439.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/29440-29695.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/29696-29951.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/29952-30207.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/30208-30463.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/30464-30719.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/3072-3327.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/30720-30975.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/30976-31231.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/31232-31487.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/31488-31743.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/31744-31999.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/32000-32255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/32256-32511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/32512-32767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/32768-33023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/33024-33279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/3328-3583.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/33280-33535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/33536-33791.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/33792-34047.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/34048-34303.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/34304-34559.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/34560-34815.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/34816-35071.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/35072-35327.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/35328-35583.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/35584-35839.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/3584-3839.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/35840-36095.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/36096-36351.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/36352-36607.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/36608-36863.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/36864-37119.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/37120-37375.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/37376-37631.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/37632-37887.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/37888-38143.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/38144-38399.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/3840-4095.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/38400-38655.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/38656-38911.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/38912-39167.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/39168-39423.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/39424-39679.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/39680-39935.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/39936-40191.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/40192-40447.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/40448-40703.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/40704-40959.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/4096-4351.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/40960-41215.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/41216-41471.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/41472-41727.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/41728-41983.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/41984-42239.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/42240-42495.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/42496-42751.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/42752-43007.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/43008-43263.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/43264-43519.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/4352-4607.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/43520-43775.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/43776-44031.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/44032-44287.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/44288-44543.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/44544-44799.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/44800-45055.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/45056-45311.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/45312-45567.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/45568-45823.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/45824-46079.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/4608-4863.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/46080-46335.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/46336-46591.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/46592-46847.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/46848-47103.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/47104-47359.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/47360-47615.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/47616-47871.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/47872-48127.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/48128-48383.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/48384-48639.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/4864-5119.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/48640-48895.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/48896-49151.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/49152-49407.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/49408-49663.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/49664-49919.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/49920-50175.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/50176-50431.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/50432-50687.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/50688-50943.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/50944-51199.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/512-767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/5120-5375.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/51200-51455.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/51456-51711.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/51712-51967.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/51968-52223.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/52224-52479.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/52480-52735.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/52736-52991.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/52992-53247.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/53248-53503.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/53504-53759.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/5376-5631.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/53760-54015.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/54016-54271.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/54272-54527.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/54528-54783.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/54784-55039.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/55040-55295.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/55296-55551.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/55552-55807.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/55808-56063.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/56064-56319.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/5632-5887.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/56320-56575.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/56576-56831.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/56832-57087.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/57088-57343.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/57344-57599.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/57600-57855.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/57856-58111.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/58112-58367.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/58368-58623.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/58624-58879.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/5888-6143.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/58880-59135.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/59136-59391.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/59392-59647.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/59648-59903.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/59904-60159.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/60160-60415.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/60416-60671.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/60672-60927.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/60928-61183.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/61184-61439.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/6144-6399.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/61440-61695.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/61696-61951.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/61952-62207.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/62208-62463.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/62464-62719.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/62720-62975.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/62976-63231.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/63232-63487.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/63488-63743.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/63744-63999.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/6400-6655.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/64000-64255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/64256-64511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/64512-64767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/64768-65023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/65024-65279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/65280-65535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/6656-6911.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/6912-7167.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/7168-7423.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/7424-7679.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/768-1023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/7680-7935.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/7936-8191.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/8192-8447.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/8448-8703.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/8704-8959.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/8960-9215.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/9216-9471.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/9472-9727.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/9728-9983.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Italic/9984-10239.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/0-255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/1024-1279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/10240-10495.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/10496-10751.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/10752-11007.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/11008-11263.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/11264-11519.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/11520-11775.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/11776-12031.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/12032-12287.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/12288-12543.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/12544-12799.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/1280-1535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/12800-13055.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/13056-13311.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/13312-13567.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/13568-13823.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/13824-14079.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/14080-14335.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/14336-14591.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/14592-14847.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/14848-15103.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/15104-15359.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/1536-1791.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/15360-15615.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/15616-15871.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/15872-16127.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/16128-16383.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/16384-16639.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/16640-16895.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/16896-17151.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/17152-17407.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/17408-17663.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/17664-17919.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/1792-2047.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/17920-18175.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/18176-18431.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/18432-18687.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/18688-18943.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/18944-19199.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/19200-19455.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/19456-19711.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/19712-19967.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/19968-20223.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/20224-20479.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/2048-2303.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/20480-20735.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/20736-20991.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/20992-21247.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/21248-21503.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/21504-21759.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/21760-22015.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/22016-22271.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/22272-22527.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/22528-22783.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/22784-23039.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/2304-2559.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/23040-23295.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/23296-23551.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/23552-23807.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/23808-24063.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/24064-24319.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/24320-24575.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/24576-24831.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/24832-25087.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/25088-25343.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/25344-25599.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/256-511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/2560-2815.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/25600-25855.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/25856-26111.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/26112-26367.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/26368-26623.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/26624-26879.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/26880-27135.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/27136-27391.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/27392-27647.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/27648-27903.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/27904-28159.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/2816-3071.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/28160-28415.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/28416-28671.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/28672-28927.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/28928-29183.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/29184-29439.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/29440-29695.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/29696-29951.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/29952-30207.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/30208-30463.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/30464-30719.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/3072-3327.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/30720-30975.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/30976-31231.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/31232-31487.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/31488-31743.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/31744-31999.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/32000-32255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/32256-32511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/32512-32767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/32768-33023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/33024-33279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/3328-3583.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/33280-33535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/33536-33791.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/33792-34047.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/34048-34303.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/34304-34559.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/34560-34815.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/34816-35071.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/35072-35327.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/35328-35583.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/35584-35839.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/3584-3839.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/35840-36095.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/36096-36351.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/36352-36607.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/36608-36863.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/36864-37119.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/37120-37375.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/37376-37631.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/37632-37887.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/37888-38143.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/38144-38399.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/3840-4095.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/38400-38655.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/38656-38911.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/38912-39167.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/39168-39423.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/39424-39679.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/39680-39935.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/39936-40191.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/40192-40447.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/40448-40703.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/40704-40959.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/4096-4351.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/40960-41215.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/41216-41471.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/41472-41727.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/41728-41983.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/41984-42239.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/42240-42495.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/42496-42751.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/42752-43007.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/43008-43263.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/43264-43519.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/4352-4607.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/43520-43775.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/43776-44031.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/44032-44287.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/44288-44543.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/44544-44799.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/44800-45055.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/45056-45311.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/45312-45567.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/45568-45823.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/45824-46079.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/4608-4863.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/46080-46335.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/46336-46591.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/46592-46847.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/46848-47103.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/47104-47359.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/47360-47615.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/47616-47871.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/47872-48127.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/48128-48383.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/48384-48639.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/4864-5119.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/48640-48895.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/48896-49151.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/49152-49407.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/49408-49663.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/49664-49919.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/49920-50175.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/50176-50431.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/50432-50687.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/50688-50943.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/50944-51199.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/512-767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/5120-5375.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/51200-51455.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/51456-51711.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/51712-51967.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/51968-52223.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/52224-52479.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/52480-52735.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/52736-52991.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/52992-53247.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/53248-53503.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/53504-53759.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/5376-5631.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/53760-54015.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/54016-54271.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/54272-54527.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/54528-54783.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/54784-55039.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/55040-55295.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/55296-55551.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/55552-55807.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/55808-56063.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/56064-56319.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/5632-5887.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/56320-56575.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/56576-56831.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/56832-57087.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/57088-57343.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/57344-57599.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/57600-57855.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/57856-58111.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/58112-58367.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/58368-58623.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/58624-58879.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/5888-6143.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/58880-59135.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/59136-59391.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/59392-59647.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/59648-59903.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/59904-60159.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/60160-60415.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/60416-60671.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/60672-60927.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/60928-61183.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/61184-61439.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/6144-6399.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/61440-61695.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/61696-61951.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/61952-62207.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/62208-62463.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/62464-62719.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/62720-62975.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/62976-63231.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/63232-63487.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/63488-63743.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/63744-63999.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/6400-6655.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/64000-64255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/64256-64511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/64512-64767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/64768-65023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/65024-65279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/65280-65535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/6656-6911.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/6912-7167.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/7168-7423.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/7424-7679.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/768-1023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/7680-7935.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/7936-8191.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/8192-8447.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/8448-8703.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/8704-8959.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/8960-9215.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/9216-9471.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/9472-9727.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/9728-9983.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Medium/9984-10239.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/0-255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/1024-1279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/10240-10495.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/10496-10751.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/10752-11007.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/11008-11263.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/11264-11519.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/11520-11775.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/11776-12031.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/12032-12287.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/12288-12543.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/12544-12799.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/1280-1535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/12800-13055.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/13056-13311.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/13312-13567.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/13568-13823.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/13824-14079.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/14080-14335.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/14336-14591.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/14592-14847.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/14848-15103.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/15104-15359.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/1536-1791.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/15360-15615.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/15616-15871.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/15872-16127.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/16128-16383.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/16384-16639.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/16640-16895.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/16896-17151.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/17152-17407.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/17408-17663.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/17664-17919.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/1792-2047.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/17920-18175.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/18176-18431.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/18432-18687.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/18688-18943.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/18944-19199.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/19200-19455.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/19456-19711.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/19712-19967.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/19968-20223.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/20224-20479.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/2048-2303.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/20480-20735.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/20736-20991.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/20992-21247.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/21248-21503.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/21504-21759.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/21760-22015.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/22016-22271.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/22272-22527.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/22528-22783.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/22784-23039.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/2304-2559.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/23040-23295.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/23296-23551.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/23552-23807.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/23808-24063.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/24064-24319.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/24320-24575.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/24576-24831.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/24832-25087.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/25088-25343.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/25344-25599.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/256-511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/2560-2815.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/25600-25855.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/25856-26111.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/26112-26367.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/26368-26623.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/26624-26879.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/26880-27135.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/27136-27391.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/27392-27647.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/27648-27903.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/27904-28159.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/2816-3071.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/28160-28415.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/28416-28671.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/28672-28927.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/28928-29183.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/29184-29439.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/29440-29695.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/29696-29951.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/29952-30207.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/30208-30463.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/30464-30719.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/3072-3327.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/30720-30975.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/30976-31231.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/31232-31487.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/31488-31743.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/31744-31999.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/32000-32255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/32256-32511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/32512-32767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/32768-33023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/33024-33279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/3328-3583.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/33280-33535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/33536-33791.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/33792-34047.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/34048-34303.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/34304-34559.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/34560-34815.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/34816-35071.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/35072-35327.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/35328-35583.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/35584-35839.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/3584-3839.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/35840-36095.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/36096-36351.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/36352-36607.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/36608-36863.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/36864-37119.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/37120-37375.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/37376-37631.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/37632-37887.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/37888-38143.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/38144-38399.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/3840-4095.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/38400-38655.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/38656-38911.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/38912-39167.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/39168-39423.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/39424-39679.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/39680-39935.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/39936-40191.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/40192-40447.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/40448-40703.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/40704-40959.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/4096-4351.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/40960-41215.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/41216-41471.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/41472-41727.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/41728-41983.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/41984-42239.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/42240-42495.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/42496-42751.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/42752-43007.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/43008-43263.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/43264-43519.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/4352-4607.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/43520-43775.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/43776-44031.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/44032-44287.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/44288-44543.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/44544-44799.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/44800-45055.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/45056-45311.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/45312-45567.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/45568-45823.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/45824-46079.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/4608-4863.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/46080-46335.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/46336-46591.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/46592-46847.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/46848-47103.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/47104-47359.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/47360-47615.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/47616-47871.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/47872-48127.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/48128-48383.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/48384-48639.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/4864-5119.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/48640-48895.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/48896-49151.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/49152-49407.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/49408-49663.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/49664-49919.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/49920-50175.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/50176-50431.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/50432-50687.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/50688-50943.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/50944-51199.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/512-767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/5120-5375.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/51200-51455.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/51456-51711.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/51712-51967.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/51968-52223.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/52224-52479.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/52480-52735.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/52736-52991.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/52992-53247.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/53248-53503.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/53504-53759.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/5376-5631.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/53760-54015.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/54016-54271.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/54272-54527.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/54528-54783.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/54784-55039.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/55040-55295.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/55296-55551.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/55552-55807.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/55808-56063.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/56064-56319.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/5632-5887.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/56320-56575.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/56576-56831.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/56832-57087.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/57088-57343.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/57344-57599.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/57600-57855.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/57856-58111.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/58112-58367.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/58368-58623.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/58624-58879.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/5888-6143.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/58880-59135.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/59136-59391.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/59392-59647.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/59648-59903.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/59904-60159.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/60160-60415.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/60416-60671.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/60672-60927.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/60928-61183.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/61184-61439.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/6144-6399.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/61440-61695.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/61696-61951.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/61952-62207.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/62208-62463.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/62464-62719.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/62720-62975.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/62976-63231.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/63232-63487.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/63488-63743.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/63744-63999.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/6400-6655.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/64000-64255.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/64256-64511.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/64512-64767.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/64768-65023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/65024-65279.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/65280-65535.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/6656-6911.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/6912-7167.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/7168-7423.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/7424-7679.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/768-1023.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/7680-7935.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/7936-8191.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/8192-8447.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/8448-8703.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/8704-8959.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/8960-9215.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/9216-9471.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/9472-9727.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/9728-9983.pbf create mode 100644 src/frontend/public/maps/fonts/Roboto Regular/9984-10239.pbf create mode 100644 src/frontend/public/maps/spritesheet/sprite.json create mode 100644 src/frontend/public/maps/spritesheet/sprite.png create mode 100644 src/frontend/public/maps/styles/carto-dark.json create mode 100644 src/frontend/public/maps/styles/carto-light.json create mode 100644 src/frontend/react-router.config.ts delete mode 100644 src/frontend/src/AppContext.tsx delete mode 100644 src/frontend/src/ErrorBoundary.tsx delete mode 100644 src/frontend/src/Layout.css delete mode 100644 src/frontend/src/Layout.tsx delete mode 100644 src/frontend/src/components/GroupedTable.tsx delete mode 100644 src/frontend/src/components/LineIcon.css delete mode 100644 src/frontend/src/components/LineIcon.tsx delete mode 100644 src/frontend/src/components/RegularTable.tsx delete mode 100644 src/frontend/src/components/StopItem.css delete mode 100644 src/frontend/src/components/StopItem.tsx delete mode 100644 src/frontend/src/controls/LocateControl.ts delete mode 100644 src/frontend/src/data/StopDataProvider.ts delete mode 100644 src/frontend/src/main.tsx delete mode 100644 src/frontend/src/pages/Estimates.tsx delete mode 100644 src/frontend/src/pages/Map.tsx delete mode 100644 src/frontend/src/pages/Settings.tsx delete mode 100644 src/frontend/src/pages/StopList.tsx delete mode 100644 src/frontend/src/styles/Estimates.css delete mode 100644 src/frontend/src/styles/Map.css delete mode 100644 src/frontend/src/styles/Pages.css delete mode 100644 src/frontend/src/styles/Settings.css delete mode 100644 src/frontend/src/vite-env.d.ts diff --git a/package-lock.json b/package-lock.json index 818a74b..7ecddaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,11 +12,510 @@ "src/frontend" ], "dependencies": { - "@fontsource-variable/roboto": "^5.2.6" + "@fontsource-variable/roboto": "^5.2.6", + "@react-router/node": "^7.6.2", + "@react-router/serve": "^7.6.2", + "maplibre-gl": "^5.6.0", + "pmtiles": "^4.3.0", + "react-map-gl": "^8.0.4" }, "devDependencies": { "concurrently": "^9.1.2", - "prettier": "^3.5.3" + "prettier": "^3.5.3", + "vite-tsconfig-paths": "^5.1.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@esbuild/aix-ppc64": { @@ -32,6 +531,7 @@ "os": [ "aix" ], + "peer": true, "engines": { "node": ">=18" } @@ -49,6 +549,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -66,6 +567,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -83,6 +585,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -100,6 +603,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -117,6 +621,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -134,6 +639,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -151,6 +657,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -168,6 +675,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -185,6 +693,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -202,6 +711,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -219,6 +729,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -236,6 +747,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -253,6 +765,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -270,6 +783,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -287,6 +801,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -304,6 +819,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -321,6 +837,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -338,6 +855,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -355,6 +873,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -372,6 +891,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -389,6 +909,7 @@ "os": [ "sunos" ], + "peer": true, "engines": { "node": ">=18" } @@ -406,6 +927,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -423,6 +945,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -440,6 +963,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -598,15 +1122,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@fontsource-variable/outfit": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@fontsource-variable/outfit/-/outfit-5.2.5.tgz", - "integrity": "sha512-MejrIp6Cbmd3u5AZtsot8kmhZiyQM5CATsdcBB2hktYIrv5CVekRSUmFDXL4FpF7K70IvFp2ZMfImm5VhnVf7Q==", - "license": "OFL-1.1", - "funding": { - "url": "https://github.com/sponsors/ayuhito" - } - }, "node_modules/@fontsource-variable/roboto": { "version": "5.2.6", "resolved": "https://registry.npmjs.org/@fontsource-variable/roboto/-/roboto-5.2.6.tgz", @@ -682,22 +1197,261 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.3.0.tgz", + "integrity": "sha512-IGJtuBbaGzOUgODdBRg66p8stnwj9iDXkgbYKoYcNiiQmaez5WVRfXm4b03MCDwmZyX93csbfHFWEJJYHnn5oA==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^3.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@mjackson/node-fetch-server": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@mjackson/node-fetch-server/-/node-fetch-server-0.2.0.tgz", + "integrity": "sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==", + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, @@ -720,6 +1474,111 @@ "node": ">= 8" } }, + "node_modules/@npmcli/git": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^4.1.0", + "glob": "^10.2.2", + "hosted-git-info": "^6.1.1", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@react-leaflet/core": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", @@ -731,12 +1590,151 @@ "react-dom": "^19.0.0" } }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.9", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz", - "integrity": "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==", + "node_modules/@react-router/dev": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@react-router/dev/-/dev-7.6.2.tgz", + "integrity": "sha512-BuG83Ug2C/P+zMYErTz/KKuXoxbOefh3oR66r13XWG9txwooC9nt2QDt2u8yt7Eo/9BATnx+TmXnOHEWqMyB8w==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.8", + "@babel/generator": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/plugin-syntax-decorators": "^7.22.10", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/preset-typescript": "^7.21.5", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.22.5", + "@npmcli/package-json": "^4.0.1", + "@react-router/node": "7.6.2", + "arg": "^5.0.1", + "babel-dead-code-elimination": "^1.0.6", + "chokidar": "^4.0.0", + "dedent": "^1.5.3", + "es-module-lexer": "^1.3.1", + "exit-hook": "2.2.1", + "fs-extra": "^10.0.0", + "jsesc": "3.0.2", + "lodash": "^4.17.21", + "pathe": "^1.1.2", + "picocolors": "^1.1.1", + "prettier": "^2.7.1", + "react-refresh": "^0.14.0", + "semver": "^7.3.7", + "set-cookie-parser": "^2.6.0", + "valibot": "^0.41.0", + "vite-node": "^3.1.4" + }, + "bin": { + "react-router": "bin.js" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@react-router/serve": "^7.6.2", + "react-router": "^7.6.2", + "typescript": "^5.1.0", + "vite": "^5.1.0 || ^6.0.0", + "wrangler": "^3.28.2 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@react-router/serve": { + "optional": true + }, + "typescript": { + "optional": true + }, + "wrangler": { + "optional": true + } + } + }, + "node_modules/@react-router/dev/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@react-router/express": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@react-router/express/-/express-7.6.2.tgz", + "integrity": "sha512-b1XwP2ZknWG6yNl1aEAJ+yx0Alk85+iLk5y521MOhh2lCKPNyFOuX4Gw8hI3E4IXgDEPqiZ+lipmrIb7XkLNZQ==", + "license": "MIT", + "dependencies": { + "@react-router/node": "7.6.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "express": "^4.17.1 || ^5", + "react-router": "7.6.2", + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@react-router/node": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@react-router/node/-/node-7.6.2.tgz", + "integrity": "sha512-KrxfnfJVU1b+020VKemkxpc7ssItsAL8MOJthcoGwPyKwrgovdwc+8NKJUqw3P7yk/Si0ZmVh9QYAzi9qF96dg==", + "license": "MIT", + "dependencies": { + "@mjackson/node-fetch-server": "^0.2.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.19.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react-router": "7.6.2", + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@react-router/serve": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@react-router/serve/-/serve-7.6.2.tgz", + "integrity": "sha512-VTdvB8kdZEtYeQML9TFJiIZnPefv94LfmLx5qQ0SJSesel/hQolnfpWEkLJ9WtBO+/10CulAvg6y5UwiceUFTQ==", + "license": "MIT", + "dependencies": { + "@react-router/express": "7.6.2", + "@react-router/node": "7.6.2", + "compression": "^1.7.4", + "express": "^4.19.2", + "get-port": "5.1.1", + "morgan": "^1.10.0", + "source-map-support": "^0.5.21" + }, + "bin": { + "react-router-serve": "bin.js" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react-router": "7.6.2" + } }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.41.1", @@ -750,7 +1748,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.41.1", @@ -764,7 +1763,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.41.1", @@ -778,7 +1778,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.41.1", @@ -792,7 +1793,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.41.1", @@ -806,7 +1808,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.41.1", @@ -820,7 +1823,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.41.1", @@ -834,7 +1838,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.41.1", @@ -848,400 +1853,186 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", - "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", - "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", - "cpu": [ - "arm64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", - "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", - "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", - "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", - "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", - "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", - "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", - "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", - "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { + "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", - "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", + "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", "cpu": [ - "ia32" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" - ] + "linux" + ], + "peer": true }, - "node_modules/@rollup/rollup-win32-x64-msvc": { + "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", - "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", + "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" - ] - }, - "node_modules/@swc/core": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.29.tgz", - "integrity": "sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.21" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.11.29", - "@swc/core-darwin-x64": "1.11.29", - "@swc/core-linux-arm-gnueabihf": "1.11.29", - "@swc/core-linux-arm64-gnu": "1.11.29", - "@swc/core-linux-arm64-musl": "1.11.29", - "@swc/core-linux-x64-gnu": "1.11.29", - "@swc/core-linux-x64-musl": "1.11.29", - "@swc/core-win32-arm64-msvc": "1.11.29", - "@swc/core-win32-ia32-msvc": "1.11.29", - "@swc/core-win32-x64-msvc": "1.11.29" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.17" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } + "linux" + ], + "peer": true }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.29.tgz", - "integrity": "sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==", + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", + "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", "cpu": [ - "arm64" + "loong64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.29.tgz", - "integrity": "sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", + "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", "cpu": [ - "x64" + "ppc64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.29.tgz", - "integrity": "sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", + "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", "cpu": [ - "arm" + "riscv64" ], "dev": true, - "license": "Apache-2.0", + "license": "MIT", "optional": true, "os": [ "linux" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.29.tgz", - "integrity": "sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==", + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", + "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", "cpu": [ - "arm64" + "riscv64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.29.tgz", - "integrity": "sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", + "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", "cpu": [ - "arm64" + "s390x" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.29.tgz", - "integrity": "sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", + "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", "cpu": [ "x64" ], - "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=10" - } + ] }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.29.tgz", - "integrity": "sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", + "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", "cpu": [ "x64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.29.tgz", - "integrity": "sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", + "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", "cpu": [ "arm64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "win32" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.29.tgz", - "integrity": "sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", + "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", "cpu": [ "ia32" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "win32" ], - "engines": { - "node": ">=10" - } + "peer": true }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.29.tgz", - "integrity": "sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", + "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", "cpu": [ "x64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "win32" ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.21.tgz", - "integrity": "sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } + "peer": true }, "node_modules/@types/estree": { "version": "1.0.7", @@ -1254,9 +2045,17 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "dev": true, "license": "MIT" }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1274,6 +2073,23 @@ "@types/geojson": "*" } }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==", + "license": "MIT" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, "node_modules/@types/node": { "version": "22.15.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.21.tgz", @@ -1284,6 +2100,12 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", + "license": "MIT" + }, "node_modules/@types/react": { "version": "19.1.5", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.5.tgz", @@ -1304,6 +2126,15 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.32.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz", @@ -1520,18 +2351,86 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.10.0.tgz", - "integrity": "sha512-ZmkdHw3wo/o/Rk05YsXZs/DJAfY2CdQ5DUAjoWji+PEr+hYADdGMCGgEAILbiKj+CjspBTuTACBcWDrmC8AUfw==", - "dev": true, + "node_modules/@vis.gl/react-mapbox": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@vis.gl/react-mapbox/-/react-mapbox-8.0.4.tgz", + "integrity": "sha512-NFk0vsWcNzSs0YCsVdt2100Zli9QWR+pje8DacpLkkGEAXFaJsFtI1oKD0Hatiate4/iAIW39SQHhgfhbeEPfQ==", + "license": "MIT", + "peerDependencies": { + "mapbox-gl": ">=3.5.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "mapbox-gl": { + "optional": true + } + } + }, + "node_modules/@vis.gl/react-maplibre": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@vis.gl/react-maplibre/-/react-maplibre-8.0.4.tgz", + "integrity": "sha512-HwZyfLjEu+y1mUFvwDAkVxinGm8fEegaWN+O8np/WZ2Sqe5Lv6OXFpV6GWz9LOEvBYMbGuGk1FQdejo+4HCJ5w==", "license": "MIT", "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.9", - "@swc/core": "^1.11.22" + "@maplibre/maplibre-gl-style-spec": "^19.2.1" }, "peerDependencies": { - "vite": "^4 || ^5 || ^6" + "maplibre-gl": ">=4.0.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "maplibre-gl": { + "optional": true + } + } + }, + "node_modules/@vis.gl/react-maplibre/node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "19.3.3", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.3.tgz", + "integrity": "sha512-cOZZOVhDSulgK0meTsTkmNXb1ahVvmTmWmfx9gRBwc6hq98wS9JP35ESIoNq3xqEan+UN+gn8187Z6E4NKhLsw==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^3.0.0", + "minimist": "^1.2.8", + "rw": "^1.3.3", + "sort-object": "^3.0.3" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@vis.gl/react-maplibre/node_modules/json-stringify-pretty-compact": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", + "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, "node_modules/acorn": { @@ -1591,27 +2490,128 @@ "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-dead-code-elimination": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/babel-dead-code-elimination/-/babel-dead-code-elimination-1.0.10.tgz", + "integrity": "sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + } + }, + "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, + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "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.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } }, - "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/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, "node_modules/brace-expansion": { @@ -1638,6 +2638,112 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", + "license": "MIT", + "dependencies": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "node_modules/bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "license": "MIT", + "dependencies": { + "typewise-core": "^1.2" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1648,6 +2754,27 @@ "node": ">=6" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001724", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz", + "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==", + "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" + } + ], + "license": "CC-BY-4.0" + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1678,6 +2805,22 @@ "node": ">=8" } }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -1713,6 +2856,51 @@ "dev": true, "license": "MIT" }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1746,69 +2934,230 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/earcut": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "license": "ISC" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.171", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.171.tgz", + "integrity": "sha512-scWpzXEJEMrGJa4Y6m/tVotb0WuvNmasv3wWVzUAeCgKU0ToFOhUW6Z+xWnRQANMYGxN4ngJXIThgBJOqzVPCQ==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 0.4" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">= 0.4" } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "es-errors": "^1.3.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.4" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "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, - "license": "MIT" - }, "node_modules/esbuild": { "version": "0.25.4", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", @@ -1860,6 +3209,12 @@ "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==", + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2051,6 +3406,110 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2112,6 +3571,12 @@ "reusify": "^1.0.4" } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -2138,6 +3603,39 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "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/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2176,55 +3674,292 @@ "dev": true, "license": "ISC" }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/frontend": { "resolved": "src/frontend", "link": true }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "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, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", + "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", + "license": "ISC" + }, + "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, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fuse.js": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz", - "integrity": "sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==", - "license": "Apache-2.0", + "node_modules/global-prefix": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", + "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", + "license": "MIT", + "dependencies": { + "ini": "^4.1.3", + "kind-of": "^6.0.3", + "which": "^4.0.0" + }, "engines": { - "node": ">=10" + "node": ">=16" } }, - "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, + "node_modules/global-prefix/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "license": "ISC", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=16" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, + "node_modules/global-prefix/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=10.13.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/globals": { @@ -2240,6 +3975,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "ISC" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -2257,6 +4018,101 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", + "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "MIT", + "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/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -2294,6 +4150,55 @@ "node": ">=0.8.19" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2337,6 +4242,27 @@ "node": ">=0.12.0" } }, + "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==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isbot": { + "version": "5.1.28", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-5.1.28.tgz", + "integrity": "sha512-qrOp4g3xj8YNse4biorv6O5ZShwsJM0trsoda4y7j/Su7ZtTTfVXFzbKkpgcSoDrHS8FcTuUwcU04YimZlZOxw==", + "license": "Unlicense", + "engines": { + "node": ">=18" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2344,6 +4270,31 @@ "dev": true, "license": "ISC" }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", @@ -2354,6 +4305,13 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2367,6 +4325,19 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -2374,6 +4345,16 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2388,6 +4369,44 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", + "license": "MIT" + }, + "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, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -2398,18 +4417,21 @@ "json-buffer": "3.0.1" } }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/leaflet": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", "license": "BSD-2-Clause" }, - "node_modules/leaflet.locatecontrol": { - "version": "0.84.2", - "resolved": "https://registry.npmjs.org/leaflet.locatecontrol/-/leaflet.locatecontrol-0.84.2.tgz", - "integrity": "sha512-Tv0S2bAhpFgZYyyfPgeVhb3hPr9CnlcP15EpMQd9m5vA+aALhM6key1ucfnnD7n09AEeNEmIFe71T4V18Kpu7g==", - "license": "MIT" - }, "node_modules/leaflet.markercluster": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz", @@ -2456,20 +4478,104 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.510.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.510.0.tgz", + "integrity": "sha512-p8SQRAMVh7NhsAIETokSqDrc5CHnDLbV29mMnzaXx+Vc/hnqQzwI2r0FMWCcoTXnbw2KEjy48xwpGdEL+ck06Q==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/maplibre-gl": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.6.0.tgz", + "integrity": "sha512-7TuHMozUC4rlIp08bSsxCixFn18P24otrlZU/7UGCO5RufFTJadFzauTrvBHr9FB67MbJ6nvFXEftGd0bUl4Iw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^23.3.0", + "@types/geojson": "^7946.0.16", + "@types/geojson-vt": "3.2.5", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.1", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^4.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.3.0", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/maplibre-theme": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/maplibre-theme/-/maplibre-theme-1.0.0.tgz", + "integrity": "sha512-SDoaMwQNOZReiQvrw2FVR0WsImpEqyg6Q7ps8ky4oKz+qEpHkquddozIWPJch/q1pWkrLOwwB20OZBx1aiQlgA==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/lucide-react": { - "version": "0.510.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.510.0.tgz", - "integrity": "sha512-p8SQRAMVh7NhsAIETokSqDrc5CHnDLbV29mMnzaXx+Vc/hnqQzwI2r0FMWCcoTXnbw2KEjy48xwpGdEL+ck06Q==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/merge2": { @@ -2482,6 +4588,15 @@ "node": ">= 8" } }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -2496,6 +4611,48 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2509,11 +4666,78 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/morgan/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==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "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, + "license": "MIT" + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", "license": "MIT" }, "node_modules/nanoid": { @@ -2542,6 +4766,126 @@ "dev": true, "license": "MIT" }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -2592,6 +4936,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -2605,6 +4956,15 @@ "node": ">=6" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "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", @@ -2625,6 +4985,56 @@ "node": ">=8" } }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -2645,6 +5055,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pmtiles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/pmtiles/-/pmtiles-4.3.0.tgz", + "integrity": "sha512-wnzQeSiYT/MyO63o7AVxwt7+uKqU0QUy2lHrivM7GvecNy0m1A4voVyGey7bujnEW5Hn+ZzLdvHPoFaqrOzbPA==", + "license": "BSD-3-Clause", + "dependencies": { + "fflate": "^0.8.2" + } + }, "node_modules/postcss": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", @@ -2674,6 +5093,12 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==", + "license": "ISC" + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -2700,6 +5125,56 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -2710,6 +5185,21 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -2731,6 +5221,36 @@ ], "license": "MIT" }, + "node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", @@ -2771,23 +5291,57 @@ "resolved": "https://registry.npmjs.org/react-leaflet-markercluster/-/react-leaflet-markercluster-5.0.0-rc.0.tgz", "integrity": "sha512-jWa4bPD5LfLV3Lid1RWgl+yKUuQtnqeYtJzzLb/fiRjvX+rtwzY8pMoUFuygqyxNrWxMTQlWKBHxkpI7Sxvu4Q==", "license": "MIT", - "dependencies": { - "@react-leaflet/core": "^3.0.0", - "leaflet": "^1.9.4", - "leaflet.markercluster": "^1.5.3", - "react-leaflet": "^5.0.0" - }, - "peerDependencies": { - "leaflet": "^1.9.4", - "leaflet.markercluster": "^1.5.3", - "react": "^19.0.0", - "react-leaflet": "^5.0.0" + "dependencies": { + "@react-leaflet/core": "^3.0.0", + "leaflet": "^1.9.4", + "leaflet.markercluster": "^1.5.3", + "react-leaflet": "^5.0.0" + }, + "peerDependencies": { + "leaflet": "^1.9.4", + "leaflet.markercluster": "^1.5.3", + "react": "^19.0.0", + "react-leaflet": "^5.0.0" + } + }, + "node_modules/react-map-gl": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-8.0.4.tgz", + "integrity": "sha512-SHdpvFIvswsZBg6BCPcwY/nbKuCo3sJM1Cj7Sd+gA3gFRFOixD+KtZ2XSuUWq2WySL2emYEXEgrLZoXsV4Ut4Q==", + "license": "MIT", + "dependencies": { + "@vis.gl/react-mapbox": "8.0.4", + "@vis.gl/react-maplibre": "8.0.4" + }, + "peerDependencies": { + "mapbox-gl": ">=1.13.0", + "maplibre-gl": ">=1.13.0", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + }, + "peerDependenciesMeta": { + "mapbox-gl": { + "optional": true + }, + "maplibre-gl": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, "node_modules/react-router": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.0.tgz", - "integrity": "sha512-GGufuHIVCJDbnIAXP3P9Sxzq3UUsddG3rrI3ut1q6m0FI6vxVBF3JoPQ38+W/blslLH4a5Yutp8drkEpXoddGQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.2.tgz", + "integrity": "sha512-U7Nv3y+bMimgWjhlT5CRdzHPu2/KVmqPwKUCChW8en5P3znxUqwlYFlbmyj8Rgp1SF6zs5X4+77kBVknkg6a0w==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -2806,6 +5360,20 @@ } } }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -2826,6 +5394,25 @@ "node": ">=4" } }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -2901,88 +5488,447 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, "node_modules/rxjs": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, - "license": "Apache-2.0", + "license": "Apache-2.0", + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "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/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sort-asc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-desc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-object": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", + "license": "MIT", + "dependencies": { + "bytewise": "^1.1.0", + "get-value": "^2.0.2", + "is-extendable": "^0.1.1", + "sort-asc": "^0.2.0", + "sort-desc": "^0.2.0", + "union-value": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "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, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "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, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "dev": true, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/stream-slice": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "license": "MIT" + }, + "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, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/string-width": { + "node_modules/string-width-cjs": { + "name": "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==", @@ -3010,6 +5956,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3023,6 +5983,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -3084,6 +6053,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3097,6 +6072,15 @@ "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==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -3120,6 +6104,27 @@ "typescript": ">=4.8.4" } }, + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "dev": true, + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -3140,11 +6145,24 @@ "node": ">= 0.8.0" } }, + "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==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -3177,6 +6195,30 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", + "license": "MIT", + "dependencies": { + "typewise-core": "^1.2.0" + } + }, + "node_modules/typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", @@ -3184,6 +6226,71 @@ "dev": true, "license": "MIT" }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "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", @@ -3194,6 +6301,60 @@ "punycode": "^2.1.0" } }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/valibot": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.41.0.tgz", + "integrity": "sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", @@ -3269,6 +6430,56 @@ } } }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-tsconfig-paths": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", + "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vite/node_modules/fdir": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", @@ -3297,6 +6508,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3341,6 +6563,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "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, + "license": "MIT", + "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/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -3351,6 +6592,13 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -3396,12 +6644,13 @@ "src/frontend": { "version": "0.0.0", "dependencies": { - "@fontsource-variable/outfit": "^5.2.5", + "@fontsource-variable/roboto": "^5.2.6", + "@react-router/node": "^7.6.2", + "@react-router/serve": "^7.6.2", "fuse.js": "^7.1.0", - "leaflet": "^1.9.4", - "leaflet.locatecontrol": "^0.84.2", - "leaflet.markercluster": "^1.5.3", + "isbot": "^5", "lucide-react": "^0.510.0", + "maplibre-theme": "^1.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-leaflet": "^5.0.0", @@ -3410,16 +6659,21 @@ }, "devDependencies": { "@eslint/js": "^9.26.0", + "@react-router/dev": "^7.6.2", + "@react-router/node": "^7.6.2", + "@react-router/serve": "^7.6.2", "@types/leaflet": "^1.9.17", "@types/node": "^22.15.17", "@types/react": "^19.1.3", "@types/react-dom": "^19.1.4", - "@vitejs/plugin-react-swc": "^3.9.0", "eslint": "^9.26.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^16.1.0", "jiti": "^2.4.2", + "maplibre-gl": "^5.6.0", + "pmtiles": "^4.3.0", + "react-map-gl": "^8.0.4", "typescript": "^5.8.3", "typescript-eslint": "^8.32.0", "vite": "^6.3.5" diff --git a/package.json b/package.json index e78abab..a1f4418 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,18 @@ "license": "BSD-3-Clause", "devDependencies": { "concurrently": "^9.1.2", - "prettier": "^3.5.3" + "prettier": "^3.5.3", + "vite-tsconfig-paths": "^5.1.4" }, "workspaces": [ "src/frontend" ], "dependencies": { - "@fontsource-variable/roboto": "^5.2.6" + "@fontsource-variable/roboto": "^5.2.6", + "@react-router/node": "^7.6.2", + "@react-router/serve": "^7.6.2", + "maplibre-gl": "^5.6.0", + "pmtiles": "^4.3.0", + "react-map-gl": "^8.0.4" } } diff --git a/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs b/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs index 7fe77e1..7d4a5e8 100644 --- a/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs +++ b/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs @@ -20,13 +20,13 @@ public class ApiController : ControllerBase var argumentAvailable = Request.Query.TryGetValue("id", out var requestedStopIdString); if (!argumentAvailable) { - return new BadRequestObjectResult("Please provide a stop id"); + return BadRequest("Please provide a stop id as a query parameter with the name 'id'."); } var argumentNumber = int.TryParse(requestedStopIdString, out var requestedStopId); if (!argumentNumber) { - return new BadRequestObjectResult("Please provide a valid stop id"); + return BadRequest("The provided stop id is not a valid number."); } try diff --git a/src/frontend/.gitignore b/src/frontend/.gitignore index 156a181..f21a466 100644 --- a/src/frontend/.gitignore +++ b/src/frontend/.gitignore @@ -1,3 +1,10 @@ +.DS_Store +/node_modules/ + +# React Router +/.react-router/ +/build/ + # User-specific files *.suo *.user diff --git a/src/frontend/app/AppContext.tsx b/src/frontend/app/AppContext.tsx new file mode 100644 index 0000000..7ca85bd --- /dev/null +++ b/src/frontend/app/AppContext.tsx @@ -0,0 +1,243 @@ +/* eslint-disable react-refresh/only-export-components */ +import { createContext, useContext, useEffect, useState, type ReactNode } from 'react'; +import { type LngLatLike } from 'maplibre-gl'; + +type Theme = 'light' | 'dark'; +type TableStyle = 'regular'|'grouped'; +type MapPositionMode = 'gps' | 'last'; + +interface MapState { + center: LngLatLike; + zoom: number; + userLocation: LngLatLike | null; + hasLocationPermission: boolean; +} + +interface AppContextProps { + theme: Theme; + setTheme: React.Dispatch>; + toggleTheme: () => void; + + tableStyle: TableStyle; + setTableStyle: React.Dispatch>; + toggleTableStyle: () => void; + + mapState: MapState; + setMapCenter: (center: LngLatLike) => void; + setMapZoom: (zoom: number) => void; + setUserLocation: (location: LngLatLike | null) => void; + setLocationPermission: (hasPermission: boolean) => void; + updateMapState: (center: LngLatLike, zoom: number) => void; + + mapPositionMode: MapPositionMode; + setMapPositionMode: (mode: MapPositionMode) => void; +} + +// Coordenadas por defecto centradas en Vigo +const DEFAULT_CENTER: LngLatLike = [42.229188855975046, -8.72246955783102]; +const DEFAULT_ZOOM = 14; + +const AppContext = createContext(undefined); + +export const AppProvider = ({ children }: { children: ReactNode }) => { + //#region Theme + const [theme, setTheme] = useState(() => { + const savedTheme = localStorage.getItem('theme'); + if (savedTheme) { + return savedTheme as Theme; + } + const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; + return prefersDark ? 'dark' : 'light'; + }); + + const toggleTheme = () => { + setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light')); + }; + + useEffect(() => { + document.documentElement.setAttribute('data-theme', theme); + localStorage.setItem('theme', theme); + }, [theme]); + //#endregion + + //#region Table Style + const [tableStyle, setTableStyle] = useState(() => { + const savedTableStyle = localStorage.getItem('tableStyle'); + if (savedTableStyle) { + return savedTableStyle as TableStyle; + } + return 'regular'; + }); + + const toggleTableStyle = () => { + setTableStyle((prevTableStyle) => (prevTableStyle === 'regular' ? 'grouped' : 'regular')); + } + + useEffect(() => { + localStorage.setItem('tableStyle', tableStyle); + }, [tableStyle]); + //#endregion + + //#region Map Position Mode + const [mapPositionMode, setMapPositionMode] = useState(() => { + const saved = localStorage.getItem('mapPositionMode'); + return saved === 'last' ? 'last' : 'gps'; + }); + + useEffect(() => { + localStorage.setItem('mapPositionMode', mapPositionMode); + }, [mapPositionMode]); + //#endregion + + //#region Map State + const [mapState, setMapState] = useState(() => { + const savedMapState = localStorage.getItem('mapState'); + if (savedMapState) { + try { + const parsed = JSON.parse(savedMapState); + return { + center: parsed.center || DEFAULT_CENTER, + zoom: parsed.zoom || DEFAULT_ZOOM, + userLocation: parsed.userLocation || null, + hasLocationPermission: parsed.hasLocationPermission || false + }; + } catch (e) { + console.error('Error parsing saved map state', e); + } + } + return { + center: DEFAULT_CENTER, + zoom: DEFAULT_ZOOM, + userLocation: null, + hasLocationPermission: false + }; + }); + + // Helper: check if coordinates are within Vigo bounds + function isWithinVigo(lngLat: LngLatLike): boolean { + let lng: number, lat: number; + if (Array.isArray(lngLat)) { + [lng, lat] = lngLat; + } else if ('lng' in lngLat && 'lat' in lngLat) { + lng = lngLat.lng; + lat = lngLat.lat; + } else { + return false; + } + // Rough bounding box for Vigo + return lat >= 42.18 && lat <= 42.30 && lng >= -8.78 && lng <= -8.65; + } + + // On app load, if mapPositionMode is 'gps', try to get GPS and set map center + useEffect(() => { + if (mapPositionMode === 'gps') { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + (position) => { + const { latitude, longitude } = position.coords; + const coords: LngLatLike = [latitude, longitude]; + if (isWithinVigo(coords)) { + setMapState(prev => { + const newState = { ...prev, center: coords, zoom: 16, userLocation: coords }; + localStorage.setItem('mapState', JSON.stringify(newState)); + return newState; + }); + } + }, + () => { + // Ignore error, fallback to last + } + ); + } + } + // If 'last', do nothing (already loaded from localStorage) + }, [mapPositionMode]); + + const setMapCenter = (center: LngLatLike) => { + setMapState(prev => { + const newState = { ...prev, center }; + localStorage.setItem('mapState', JSON.stringify(newState)); + return newState; + }); + }; + + const setMapZoom = (zoom: number) => { + setMapState(prev => { + const newState = { ...prev, zoom }; + localStorage.setItem('mapState', JSON.stringify(newState)); + return newState; + }); + }; + + const setUserLocation = (userLocation: LngLatLike | null) => { + setMapState(prev => { + const newState = { ...prev, userLocation }; + localStorage.setItem('mapState', JSON.stringify(newState)); + return newState; + }); + }; + + const setLocationPermission = (hasLocationPermission: boolean) => { + setMapState(prev => { + const newState = { ...prev, hasLocationPermission }; + localStorage.setItem('mapState', JSON.stringify(newState)); + return newState; + }); + }; + + const updateMapState = (center: LngLatLike, zoom: number) => { + setMapState(prev => { + const newState = { ...prev, center, zoom }; + localStorage.setItem('mapState', JSON.stringify(newState)); + return newState; + }); + }; + //#endregion + + // Tratar de obtener la ubicación del usuario cuando se carga la aplicación si ya se había concedido permiso antes + useEffect(() => { + if (mapState.hasLocationPermission && !mapState.userLocation) { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + (position) => { + const { latitude, longitude } = position.coords; + setUserLocation([latitude, longitude]); + }, + (error) => { + console.error('Error getting location:', error); + setLocationPermission(false); + } + ); + } + } + }, [mapState.hasLocationPermission, mapState.userLocation]); + + return ( + + {children} + + ); +}; + +export const useApp = () => { + const context = useContext(AppContext); + if (!context) { + throw new Error('useApp must be used within a AppProvider'); + } + return context; +}; diff --git a/src/frontend/app/ErrorBoundary.tsx b/src/frontend/app/ErrorBoundary.tsx new file mode 100644 index 0000000..5c877b7 --- /dev/null +++ b/src/frontend/app/ErrorBoundary.tsx @@ -0,0 +1,46 @@ +import React, { Component, type ReactNode } from 'react'; + +interface ErrorBoundaryProps { + children: ReactNode; +} + +interface ErrorBoundaryState { + hasError: boolean; + error: Error | null; +} + +class ErrorBoundary extends Component { + constructor(props: ErrorBoundaryProps) { + super(props); + this.state = { + hasError: false, + error: null + }; + } + + static getDerivedStateFromError(error: Error): ErrorBoundaryState { + return { + hasError: true, + error + }; + } + + componentDidCatch(error: Error, errorInfo: React.ErrorInfo) { + console.error("Uncaught error:", error, errorInfo); + } + + render() { + if (this.state.hasError) { + return <> +

Something went wrong.

+
+          {this.state.error?.stack}
+        
+ ; + } + + return this.props.children; + } +} + +export default ErrorBoundary; diff --git a/src/frontend/app/components/GroupedTable.tsx b/src/frontend/app/components/GroupedTable.tsx new file mode 100644 index 0000000..3a16d89 --- /dev/null +++ b/src/frontend/app/components/GroupedTable.tsx @@ -0,0 +1,74 @@ +import { type StopDetails } from "../routes/estimates-$id"; +import LineIcon from "./LineIcon"; + +interface GroupedTable { + data: StopDetails; + dataDate: Date | null; +} + +export const GroupedTable: React.FC = ({ data, dataDate }) => { + const formatDistance = (meters: number) => { + if (meters > 1024) { + return `${(meters / 1000).toFixed(1)} km`; + } else { + return `${meters} m`; + } + } + + const groupedEstimates = data.estimates.reduce((acc, estimate) => { + if (!acc[estimate.line]) { + acc[estimate.line] = []; + } + acc[estimate.line].push(estimate); + return acc; + }, {} as Record); + + const sortedLines = Object.keys(groupedEstimates).sort((a, b) => { + const firstArrivalA = groupedEstimates[a][0].minutes; + const firstArrivalB = groupedEstimates[b][0].minutes; + return firstArrivalA - firstArrivalB; + }); + + return + + + + + + + + + + + + + {sortedLines.map((line) => ( + groupedEstimates[line].map((estimate, idx) => ( + + {idx === 0 && ( + + )} + + + + + )) + ))} + + + {data?.estimates.length === 0 && ( + + + + + + )} +
Estimaciones de llegadas a las {dataDate?.toLocaleTimeString()}
LíneaRutaLlegadaDistancia
+ + {estimate.route}{`${estimate.minutes} min`} + {estimate.meters > -1 + ? formatDistance(estimate.meters) + : "No disponible" + } +
No hay estimaciones disponibles
+} diff --git a/src/frontend/app/components/LineIcon.css b/src/frontend/app/components/LineIcon.css new file mode 100644 index 0000000..e7e8949 --- /dev/null +++ b/src/frontend/app/components/LineIcon.css @@ -0,0 +1,239 @@ +:root { + --line-c1: rgb(237, 71, 19); + --line-c3d: rgb(255, 204, 0); + --line-c3i: rgb(255, 204, 0); + --line-l4a: rgb(0, 153, 0); + --line-l4c: rgb(0, 153, 0); + --line-l5a: rgb(0, 176, 240); + --line-l5b: rgb(0, 176, 240); + --line-l6: rgb(204, 51, 153); + --line-l7: rgb(150, 220, 153); + --line-l9b: rgb(244, 202, 140); + --line-l10: rgb(153, 51, 0); + --line-l11: rgb(226, 0, 38); + --line-l12a: rgb(106, 150, 190); + --line-l12b: rgb(106, 150, 190); + --line-l13: rgb(0, 176, 240); + --line-l14: rgb(129, 142, 126); + --line-l15a: rgb(216, 168, 206); + --line-l15b: rgb(216, 168, 206); + --line-l15c: rgb(216, 168, 168); + --line-l16: rgb(129, 142, 126); + --line-l17: rgb(214, 245, 31); + --line-l18a: rgb(212, 80, 168); + --line-l18b: rgb(0, 0, 0); + --line-l18h: rgb(0, 0, 0); + --line-l23: rgb(0, 70, 210); + --line-l24: rgb(191, 191, 191); + --line-l25: rgb(172, 100, 4); + --line-l27: rgb(112, 74, 42); + --line-l28: rgb(176, 189, 254); + --line-l29: rgb(248, 184, 90); + --line-l31: rgb(255, 255, 0); + --line-a: rgb(119, 41, 143); + --line-h: rgb(0, 96, 168); + --line-h1: rgb(0, 96, 168); + --line-h2: rgb(0, 96, 168); + --line-h3: rgb(0, 96, 168); + --line-lzd: rgb(61, 78, 167); + --line-n1: rgb(191, 191, 191); + --line-n4: rgb(102, 51, 102); + --line-psa1: rgb(0, 153, 0); + --line-psa4: rgb(0, 153, 0); + --line-ptl: rgb(150, 220, 153); + --line-turistico: rgb(102, 51, 102); + --line-u1: rgb(172, 100, 4); + --line-u2: rgb(172, 100, 4); +} + +.line-icon { + display: inline-block; + padding: 0.25rem 0.5rem; + margin-right: 0.5rem; + border-bottom: 3px solid; + font-size: 0.9rem; + font-weight: 600; + text-transform: uppercase; + color: inherit; + /* Prevent color change on hover */ +} + +.line-c1 { + border-color: var(--line-c1); +} + +.line-c3d { + border-color: var(--line-c3d); +} + +.line-c3i { + border-color: var(--line-c3i); +} + +.line-l4a { + border-color: var(--line-l4a); +} + +.line-l4c { + border-color: var(--line-l4c); +} + +.line-l5a { + border-color: var(--line-l5a); +} + +.line-l5b { + border-color: var(--line-l5b); +} + +.line-l6 { + border-color: var(--line-l6); +} + +.line-l7 { + border-color: var(--line-l7); +} + +.line-l9b { + border-color: var(--line-l9b); +} + +.line-l10 { + border-color: var(--line-l10); +} + +.line-l11 { + border-color: var(--line-l11); +} + +.line-l12a { + border-color: var(--line-l12a); +} + +.line-l12b { + border-color: var(--line-l12b); +} + +.line-l13 { + border-color: var(--line-l13); +} + +.line-l14 { + border-color: var(--line-l14); +} + +.line-l15a { + border-color: var(--line-l15a); +} + +.line-l15b { + border-color: var(--line-l15b); +} + +.line-l15c { + border-color: var(--line-l15c); +} + +.line-l16 { + border-color: var(--line-l16); +} + +.line-l17 { + border-color: var(--line-l17); +} + +.line-l18a { + border-color: var(--line-l18a); +} + +.line-l18b { + border-color: var(--line-l18b); +} + +.line-l18h { + border-color: var(--line-l18h); +} + +.line-l23 { + border-color: var(--line-l23); +} + +.line-l24 { + border-color: var(--line-l24); +} + +.line-l25 { + border-color: var(--line-l25); +} + +.line-l27 { + border-color: var(--line-l27); +} + +.line-l28 { + border-color: var(--line-l28); +} + +.line-l29 { + border-color: var(--line-l29); +} + +.line-l31 { + border-color: var(--line-l31); +} + +.line-a { + border-color: var(--line-a); +} + +.line-h { + border-color: var(--line-h); +} + +.line-h1 { + border-color: var(--line-h1); +} + +.line-h2 { + border-color: var(--line-h2); +} + +.line-h3 { + border-color: var(--line-h3); +} + +.line-lzd { + border-color: var(--line-lzd); +} + +.line-n1 { + border-color: var(--line-n1); +} + +.line-n4 { + border-color: var(--line-n4); +} + +.line-psa1 { + border-color: var(--line-psa1); +} + +.line-psa4 { + border-color: var(--line-psa4); +} + +.line-ptl { + border-color: var(--line-ptl); +} + +.line-turistico { + border-color: var(--line-turistico); +} + +.line-u1 { + border-color: var(--line-u1); +} + +.line-u2 { + border-color: var(--line-u2); +} \ No newline at end of file diff --git a/src/frontend/app/components/LineIcon.tsx b/src/frontend/app/components/LineIcon.tsx new file mode 100644 index 0000000..291b444 --- /dev/null +++ b/src/frontend/app/components/LineIcon.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import './LineIcon.css'; + +interface LineIconProps { + line: string; +} + +const LineIcon: React.FC = ({ line }) => { + const formattedLine = /^[a-zA-Z]/.test(line) ? line : `L${line}`; + return ( + + {formattedLine} + + ); +}; + +export default LineIcon; diff --git a/src/frontend/app/components/RegularTable.tsx b/src/frontend/app/components/RegularTable.tsx new file mode 100644 index 0000000..75b598b --- /dev/null +++ b/src/frontend/app/components/RegularTable.tsx @@ -0,0 +1,70 @@ +import { type StopDetails } from "../routes/estimates-$id"; +import LineIcon from "./LineIcon"; + +interface RegularTableProps { + data: StopDetails; + dataDate: Date | null; +} + +export const RegularTable: React.FC = ({ data, dataDate }) => { + + const absoluteArrivalTime = (minutes: number) => { + const now = new Date() + const arrival = new Date(now.getTime() + minutes * 60000) + return Intl.DateTimeFormat(navigator.language, { + hour: '2-digit', + minute: '2-digit' + }).format(arrival) + } + + const formatDistance = (meters: number) => { + if (meters > 1024) { + return `${(meters / 1000).toFixed(1)} km`; + } else { + return `${meters} m`; + } + } + + return + + + + + + + + + + + + + {data.estimates + .sort((a, b) => a.minutes - b.minutes) + .map((estimate, idx) => ( + + + + + + + ))} + + + {data?.estimates.length === 0 && ( + + + + + + )} +
Estimaciones de llegadas a las {dataDate?.toLocaleTimeString()}
LíneaRutaLlegadaDistancia
{estimate.route} + {estimate.minutes > 15 + ? absoluteArrivalTime(estimate.minutes) + : `${estimate.minutes} min`} + + {estimate.meters > -1 + ? formatDistance(estimate.meters) + : "No disponible" + } +
No hay estimaciones disponibles
+} diff --git a/src/frontend/app/components/StopItem.css b/src/frontend/app/components/StopItem.css new file mode 100644 index 0000000..9feb2d1 --- /dev/null +++ b/src/frontend/app/components/StopItem.css @@ -0,0 +1,54 @@ +/* Stop Item Styling */ + +.stop-notes { + font-size: 0.85rem; + font-style: italic; + color: #666; + margin: 2px 0; +} + +.stop-amenities { + display: flex; + flex-wrap: wrap; + gap: 4px; + margin-top: 4px; +} + +.amenity-tag { + font-size: 0.75rem; + background-color: #e8f4f8; + color: #0078d4; + border-radius: 4px; + padding: 2px 6px; + display: inline-block; +} + +/* Different colors for different amenity types */ +.amenity-tag[data-amenity="shelter"] { + background-color: #e3f1df; + color: #107c41; +} + +.amenity-tag[data-amenity="bench"] { + background-color: #f0e8fc; + color: #5c2e91; +} + +.amenity-tag[data-amenity="real-time display"] { + background-color: #fff4ce; + color: #986f0b; +} + +/* When there are alternate names available, show an indicator */ +.has-alternate-names { + position: relative; +} + +.has-alternate-names::after { + content: "⋯"; + position: absolute; + right: -15px; + top: 0; + color: #0078d4; + font-weight: bold; +} \ No newline at end of file diff --git a/src/frontend/app/components/StopItem.tsx b/src/frontend/app/components/StopItem.tsx new file mode 100644 index 0000000..29370b7 --- /dev/null +++ b/src/frontend/app/components/StopItem.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { Link } from 'react-router'; +import StopDataProvider, { type Stop } from '../data/StopDataProvider'; +import LineIcon from './LineIcon'; + +interface StopItemProps { + stop: Stop; +} + +const StopItem: React.FC = ({ stop }) => { + + return ( +
  • + + {stop.favourite && } ({stop.stopId}) {StopDataProvider.getDisplayName(stop)} +
    + {stop.lines?.map(line => )} +
    + + +
  • + ); +}; + +export default StopItem; diff --git a/src/frontend/app/controls/LocateControl.ts b/src/frontend/app/controls/LocateControl.ts new file mode 100644 index 0000000..26effa5 --- /dev/null +++ b/src/frontend/app/controls/LocateControl.ts @@ -0,0 +1,67 @@ +import { createControlComponent } from '@react-leaflet/core'; +import { LocateControl as LeafletLocateControl, type LocateOptions } from 'leaflet.locatecontrol'; +import "leaflet.locatecontrol/dist/L.Control.Locate.min.css"; +import { useEffect } from 'react'; +import { useMap } from 'react-leaflet'; +import { useApp } from '../AppContext'; + +interface EnhancedLocateControlProps { + options?: LocateOptions; +} + +// Componente que usa el contexto para manejar la localización +export const EnhancedLocateControl = (props: EnhancedLocateControlProps) => { + const map = useMap(); + const { mapState, setUserLocation, setLocationPermission } = useApp(); + + useEffect(() => { + // Configuración por defecto del control de localización + const defaultOptions: LocateOptions = { + position: 'topright', + strings: { + title: 'Mostrar mi ubicación', + }, + flyTo: true, + onLocationError: (err) => { + console.error('Error en la localización:', err); + setLocationPermission(false); + }, + returnToPrevBounds: true, + showPopup: false, + }; + + // Combinamos las opciones por defecto con las personalizadas + const options = { ...defaultOptions, ...props.options }; + + // Creamos la instancia del control + const locateControl = new LeafletLocateControl(options); + + // Añadimos el control al mapa + locateControl.addTo(map); + + // Si tenemos permiso de ubicación y ya conocemos la ubicación del usuario, + // podemos activarla automáticamente + if (mapState.hasLocationPermission && mapState.userLocation) { + // Esperamos a que el mapa esté listo + setTimeout(() => { + try { + locateControl.start(); + } catch (e) { + console.error('Error al iniciar la localización automática', e); + } + }, 1000); + } + + return () => { + // Limpieza al desmontar el componente + locateControl.remove(); + }; + }, [map, mapState.hasLocationPermission, mapState.userLocation, props.options, setLocationPermission, setUserLocation]); + + return null; +}; + +// Exportamos también el control base por compatibilidad +export const LocateControl = createControlComponent( + (props) => new LeafletLocateControl(props) +); diff --git a/src/frontend/app/data/StopDataProvider.ts b/src/frontend/app/data/StopDataProvider.ts new file mode 100644 index 0000000..0c1e46e --- /dev/null +++ b/src/frontend/app/data/StopDataProvider.ts @@ -0,0 +1,160 @@ +export interface CachedStopList { + timestamp: number; + data: Stop[]; +} + +export type StopName = { + original: string; + intersect?: string; +} + +export interface Stop { + stopId: number; + name: StopName; + latitude?: number; + longitude?: number; + lines: string[]; + favourite?: boolean; +} + +// In-memory cache and lookup map +let cachedStops: Stop[] | null = null; +let stopsMap: Record = {}; +// Custom names loaded from localStorage +let customNames: Record = {}; + +// Initialize cachedStops and customNames once +async function initStops() { + if (!cachedStops) { + const response = await fetch('/stops.json'); + const stops = await response.json() as Stop[]; + // build array and map + stopsMap = {}; + cachedStops = stops.map(stop => { + const entry = { ...stop, favourite: false } as Stop; + stopsMap[stop.stopId] = entry; + return entry; + }); + // load custom names + const rawCustom = localStorage.getItem('customStopNames'); + if (rawCustom) customNames = JSON.parse(rawCustom) as Record; + } +} + +async function getStops(): Promise { + await initStops(); + // update favourites + const rawFav = localStorage.getItem('favouriteStops'); + const favouriteStops = rawFav ? JSON.parse(rawFav) as number[] : []; + cachedStops!.forEach(stop => stop.favourite = favouriteStops.includes(stop.stopId)); + return cachedStops!; +} + +// New: get single stop by id +async function getStopById(stopId: number): Promise { + await initStops(); + const stop = stopsMap[stopId]; + if (stop) { + const rawFav = localStorage.getItem('favouriteStops'); + const favouriteStops = rawFav ? JSON.parse(rawFav) as number[] : []; + stop.favourite = favouriteStops.includes(stopId); + } + return stop; +} + +// Updated display name to include custom names +function getDisplayName(stop: Stop): string { + if (customNames[stop.stopId]) return customNames[stop.stopId]; + const nameObj = stop.name; + return nameObj.intersect || nameObj.original; +} + +// New: set or remove custom names +function setCustomName(stopId: number, label: string) { + customNames[stopId] = label; + localStorage.setItem('customStopNames', JSON.stringify(customNames)); +} + +function removeCustomName(stopId: number) { + delete customNames[stopId]; + localStorage.setItem('customStopNames', JSON.stringify(customNames)); +} + +// New: get custom label for a stop +function getCustomName(stopId: number): string | undefined { + return customNames[stopId]; +} + +function addFavourite(stopId: number) { + const rawFavouriteStops = localStorage.getItem('favouriteStops'); + let favouriteStops: number[] = []; + if (rawFavouriteStops) { + favouriteStops = JSON.parse(rawFavouriteStops) as number[]; + } + + if (!favouriteStops.includes(stopId)) { + favouriteStops.push(stopId); + localStorage.setItem('favouriteStops', JSON.stringify(favouriteStops)); + } +} + +function removeFavourite(stopId: number) { + const rawFavouriteStops = localStorage.getItem('favouriteStops'); + let favouriteStops: number[] = []; + if (rawFavouriteStops) { + favouriteStops = JSON.parse(rawFavouriteStops) as number[]; + } + + const newFavouriteStops = favouriteStops.filter(id => id !== stopId); + localStorage.setItem('favouriteStops', JSON.stringify(newFavouriteStops)); +} + +function isFavourite(stopId: number): boolean { + const rawFavouriteStops = localStorage.getItem('favouriteStops'); + if (rawFavouriteStops) { + const favouriteStops = JSON.parse(rawFavouriteStops) as number[]; + return favouriteStops.includes(stopId); + } + return false; +} + +const RECENT_STOPS_LIMIT = 10; + +function pushRecent(stopId: number) { + const rawRecentStops = localStorage.getItem('recentStops'); + let recentStops: Set = new Set(); + if (rawRecentStops) { + recentStops = new Set(JSON.parse(rawRecentStops) as number[]); + } + + recentStops.add(stopId); + if (recentStops.size > RECENT_STOPS_LIMIT) { + const iterator = recentStops.values(); + const val = iterator.next().value as number; + recentStops.delete(val); + } + + localStorage.setItem('recentStops', JSON.stringify(Array.from(recentStops))); +} + +function getRecent(): number[] { + const rawRecentStops = localStorage.getItem('recentStops'); + if (rawRecentStops) { + return JSON.parse(rawRecentStops) as number[]; + } + return []; +} + +export default { + getStops, + getStopById, + getCustomName, + getDisplayName, + setCustomName, + removeCustomName, + addFavourite, + removeFavourite, + isFavourite, + pushRecent, + getRecent +}; diff --git a/src/frontend/app/maps/styleloader.ts b/src/frontend/app/maps/styleloader.ts new file mode 100644 index 0000000..f00aacc --- /dev/null +++ b/src/frontend/app/maps/styleloader.ts @@ -0,0 +1,49 @@ +import type { StyleSpecification } from "react-map-gl/maplibre"; + +export async function loadStyle(styleName: string, colorScheme: string): Promise { + const stylePath = `/maps/styles/${styleName}-${colorScheme}.json`; + const resp = await fetch(stylePath); + + if (!resp.ok) { + throw new Error(`Failed to load style: ${stylePath}`); + } + + const style = await resp.json(); + + const baseUrl = window.location.origin; + const spritePath = style.sprite; + + // Handle both string and array cases for spritePath + if (Array.isArray(spritePath)) { + // For array format, update each sprite object's URL to be absolute + style.sprite = spritePath.map(spriteObj => { + const isAbsoluteUrl = spriteObj.url.startsWith("http://") || spriteObj.url.startsWith("https://"); + if (isAbsoluteUrl) { + return spriteObj; + } + + return { + ...spriteObj, + url: `${baseUrl}${spriteObj.url}` + }; + }); + } else if (typeof spritePath === "string") { + if (!spritePath.startsWith("http://") && !spritePath.startsWith("https://")) { + style.sprite = `${baseUrl}${spritePath}`; + } + } + + // Detect on each source if it the 'tiles' URLs are relative and convert them to absolute URLs + for (const sourceKey in style.sources) { + const source = style.sources[sourceKey]; + for (const tileKey in source.tiles) { + const tileUrl = source.tiles[tileKey]; + const isAbsoluteUrl = tileUrl.startsWith("http://") || tileUrl.startsWith("https://"); + if (!isAbsoluteUrl) { + source.tiles[tileKey] = `${baseUrl}${tileUrl}`; + } + } + } + + return style as StyleSpecification; +} diff --git a/src/frontend/app/root.css b/src/frontend/app/root.css new file mode 100644 index 0000000..689b48e --- /dev/null +++ b/src/frontend/app/root.css @@ -0,0 +1,126 @@ +:root { + --colour-scheme: light; + --background-color: #ffffff; + --text-color: #333333; + --subtitle-color: #444444; + --border-color: #eeeeee; + --button-background-color: #007bff; + --button-hover-background-color: #0069d9; + --button-disabled-background-color: #cccccc; + --star-color: #ffcc00; + --message-background-color: #f8f9fa; + + font-family: 'Roboto Variable', Roboto, Arial, sans-serif; +} + +[data-theme='dark'] { + --colour-scheme: dark; + --background-color: #121212; + --text-color: #ffffff; + --subtitle-color: #bbbbbb; + --border-color: #444444; + --button-background-color: #1e88e5; + --button-hover-background-color: #1565c0; + --button-disabled-background-color: #555555; + --star-color: #ffcc00; + --message-background-color: #333333; +} + +body { + color-scheme: var(--colour-scheme, light); + + margin: 0; + padding: 0; + box-sizing: border-box; + + background-color: var(--background-color); + + display: flex; + flex-direction: column; + height: 100vh; + width: 100%; + overflow: hidden; +} + +.main-content { + flex: 1; + overflow: auto; +} + +.navigation-bar { + display: flex; + justify-content: space-around; + align-items: center; + padding: 0.5rem 0; + + background-color: var(--background-color); + border-top: 1px solid var(--border-color); +} + +.navigation-bar__link { + flex: 1 0; + display: flex; + flex-direction: column; + align-items: center; + text-decoration: none; + color: var(--text-color); + padding: .25rem 0; + border-radius: .5rem; +} + +.navigation-bar__link svg { + width: 1.75rem; + height: 1.75rem; + margin-bottom: 5px; + fill: none; + stroke-width: 2; +} + +.navigation-bar__link span { + font-size: 14px; + line-height: 1; +} + +.navigation-bar__link.active { + color: var(--button-background-color); +} + +.theme-toggle { + background: none; + border: none; + cursor: pointer; + color: inherit; + display: flex; + align-items: center; + justify-content: center; + padding: 8px; +} + +.theme-toggle:hover { + color: var(--button-hover-background-color); +} + +.page-container { + max-width: 100%; + padding: 0 16px; + background-color: var(--background-color); + color: var(--text-color); +} + +@media (min-width: 768px) { + .page-container { + width: 90%; + max-width: 768px; + margin: 0 auto; + } + + .page-title { + font-size: 2.2rem; + } +} + +@media (min-width: 1024px) { + .page-container { + max-width: 1024px; + } +} diff --git a/src/frontend/app/root.tsx b/src/frontend/app/root.tsx new file mode 100644 index 0000000..d90dba0 --- /dev/null +++ b/src/frontend/app/root.tsx @@ -0,0 +1,161 @@ +import { + isRouteErrorResponse, + Link, + Links, + Meta, + Outlet, + Scripts, + ScrollRestoration +} from "react-router"; + +import type { Route } from "./+types/root"; +import "@fontsource-variable/roboto"; +import "./root.css"; + +//#region Maplibre setup +import "maplibre-theme/icons.default.css"; +import "maplibre-theme/modern.css"; +import { Protocol } from "pmtiles"; +import maplibregl from "maplibre-gl"; +import { AppProvider } from "./AppContext"; +import { Map, MapPin, Settings } from "lucide-react"; +const pmtiles = new Protocol(); +maplibregl.addProtocol("pmtiles", pmtiles.tile); +//#endregion + +if ('serviceWorker' in navigator) { + navigator.serviceWorker.register('/sw.js') + .then((registration) => { + console.log('Service Worker registered with scope:', registration.scope); + }) + .catch((error) => { + console.error('Service Worker registration failed:', error); + }); +} + +export const links: Route.LinksFunction = () => []; + +export function HydrateFallback() { + return "Loading..."; +} + +export function Layout({ children }: { children: React.ReactNode }) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + Busurbano + + + + + {children} + + + + + ); +} + +export default function App() { + const navItems = [ + { + name: 'Paradas', + icon: MapPin, + path: '/stops' + }, + { + name: 'Mapa', + icon: Map, + path: '/map' + }, + { + name: 'Ajustes', + icon: Settings, + path: '/settings' + } + ]; + + return ( + +
    + +
    +
    + +
    +
    + + + + ); +} + +export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { + let message = "Oops!"; + let details = "An unexpected error occurred."; + let stack: string | undefined; + + if (isRouteErrorResponse(error)) { + message = error.status === 404 ? "404" : "Error"; + details = + error.status === 404 + ? "The requested page could not be found." + : error.statusText || details; + } else if (import.meta.env.DEV && error && error instanceof Error) { + details = error.message; + stack = error.stack; + } + + return ( +
    +

    {message}

    +

    {details}

    + {stack && ( +
    +          {stack}
    +        
    + )} +
    + ); +} diff --git a/src/frontend/app/routes.tsx b/src/frontend/app/routes.tsx new file mode 100644 index 0000000..1bca5e8 --- /dev/null +++ b/src/frontend/app/routes.tsx @@ -0,0 +1,9 @@ +import { type RouteConfig, index, route } from "@react-router/dev/routes"; + +export default [ + index("routes/index.tsx"), + route("/stops", "routes/stoplist.tsx"), + route("/map", "routes/map.tsx"), + route("/estimates/:id", "routes/estimates-$id.tsx"), + route("/settings", "routes/settings.tsx") +] satisfies RouteConfig; diff --git a/src/frontend/app/routes/estimates-$id.css b/src/frontend/app/routes/estimates-$id.css new file mode 100644 index 0000000..86ca09b --- /dev/null +++ b/src/frontend/app/routes/estimates-$id.css @@ -0,0 +1,105 @@ +.table-responsive { + overflow-x: auto; + margin-bottom: 1.5rem; +} + +.table { + width: 100%; + border-collapse: collapse; +} + +.table caption { + margin-bottom: 0.5rem; + font-weight: 500; +} + +.table th, +.table td { + padding: 0.75rem; + text-align: left; + border-bottom: 1px solid #eee; +} + +.table th { + border-bottom: 2px solid #ddd; +} + +.table tfoot td { + text-align: center; +} + +/* Estimates page specific styles */ +.estimates-header { + display: flex; + align-items: center; + margin-bottom: 1rem; +} + +.estimates-stop-id { + font-size: 1rem; + color: var(--subtitle-color); + margin-left: 0.5rem; +} + +.estimates-arrival { + color: #28a745; + font-weight: 500; +} + +.estimates-delayed { + color: #dc3545; +} + +.button-group { + display: flex; + gap: 1rem; + margin-bottom: 1.5rem; + flex-wrap: wrap; +} + +.button { + padding: 0.75rem 1rem; + background-color: var(--button-background-color); + color: white; + border: none; + border-radius: 8px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + text-align: center; + text-decoration: none; + display: inline-block; +} + +.button:hover { + background-color: var(--button-hover-background-color); +} + +.button:disabled { + background-color: var(--button-disabled-background-color); + cursor: not-allowed; +} + +.star-icon { + margin-right: 0.5rem; + color: #ccc; + fill: none; +} + +.star-icon.active { + color: var(--star-color); + /* Yellow color for active star */ + fill: var(--star-color); +} + +/* Pencil (edit) icon next to header */ +.edit-icon { + margin-right: 0.5rem; + color: #ccc; + cursor: pointer; + stroke-width: 2px; +} + +.edit-icon:hover { + color: var(--star-color); +} \ No newline at end of file diff --git a/src/frontend/app/routes/estimates-$id.tsx b/src/frontend/app/routes/estimates-$id.tsx new file mode 100644 index 0000000..761a8d4 --- /dev/null +++ b/src/frontend/app/routes/estimates-$id.tsx @@ -0,0 +1,103 @@ +import { type JSX, useEffect, useState } from "react"; +import { useParams } from "react-router"; +import StopDataProvider from "../data/StopDataProvider"; +import { Star, Edit2 } from 'lucide-react'; +import "./estimates-$id.css"; +import { RegularTable } from "../components/RegularTable"; +import { useApp } from "../AppContext"; +import { GroupedTable } from "../components/GroupedTable"; + +export interface StopDetails { + stop: { + id: number; + name: string; + latitude: number; + longitude: number; + } + estimates: { + line: string; + route: string; + minutes: number; + meters: number; + }[] +} + +const loadData = async (stopId: string) => { + const resp = await fetch(`/api/GetStopEstimates?id=${stopId}`, { + headers: { + 'Accept': 'application/json', + } + }); + return await resp.json(); +}; + +export default function Estimates() { + const params = useParams(); + const stopIdNum = parseInt(params.id ?? ""); + const [customName, setCustomName] = useState(undefined); + const [data, setData] = useState(null); + const [dataDate, setDataDate] = useState(null); + const [favourited, setFavourited] = useState(false); + const { tableStyle } = useApp(); + + useEffect(() => { + loadData(params.id!) + .then((body: StopDetails) => { + setData(body); + setDataDate(new Date()); + setCustomName(StopDataProvider.getCustomName(stopIdNum)); + }) + + + StopDataProvider.pushRecent(parseInt(params.id ?? "")); + + setFavourited( + StopDataProvider.isFavourite(parseInt(params.id ?? "")) + ); + }, [params.id]); + + + const toggleFavourite = () => { + if (favourited) { + StopDataProvider.removeFavourite(stopIdNum); + setFavourited(false); + } else { + StopDataProvider.addFavourite(stopIdNum); + setFavourited(true); + } + } + + const handleRename = () => { + const current = customName ?? data?.stop.name; + const input = window.prompt('Custom name for this stop:', current); + if (input === null) return; // cancelled + const trimmed = input.trim(); + if (trimmed === '') { + StopDataProvider.removeCustomName(stopIdNum); + setCustomName(undefined); + } else { + StopDataProvider.setCustomName(stopIdNum, trimmed); + setCustomName(trimmed); + } + }; + + if (data === null) return

    Cargando datos en tiempo real...

    + + return ( +
    +
    +

    + + + {(customName ?? data.stop.name)} ({data.stop.id}) +

    +
    + +
    + {tableStyle === 'grouped' ? + : + } +
    +
    + ) +} diff --git a/src/frontend/app/routes/index.tsx b/src/frontend/app/routes/index.tsx new file mode 100644 index 0000000..7c8ab40 --- /dev/null +++ b/src/frontend/app/routes/index.tsx @@ -0,0 +1,5 @@ +import { Navigate, redirect, type LoaderFunction } from "react-router"; + +export default function Index() { + return ; +} diff --git a/src/frontend/app/routes/map.css b/src/frontend/app/routes/map.css new file mode 100644 index 0000000..3af112a --- /dev/null +++ b/src/frontend/app/routes/map.css @@ -0,0 +1,86 @@ +/* Map page specific styles */ +.map-container { + height: calc(100vh - 140px); + margin: -16px; + margin-bottom: 1rem; + position: relative; +} + +/* Fullscreen map styles */ +.fullscreen-container { + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + padding: 0; + margin: 0; + max-width: none; + overflow: hidden; +} + +.fullscreen-map { + width: 100%; + height: 100%; +} + +.fullscreen-loading { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + width: 100vw; + font-size: 1.8rem; + font-weight: 600; + color: var(--text-color); +} + +/* Map marker and popup styles */ +.stop-marker { + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + transition: all 0.2s ease-in-out; +} + +.stop-marker:hover { + transform: scale(1.2); +} + +.maplibregl-popup { + max-width: 250px; +} + +.maplibregl-popup-content { + padding: 12px; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); +} + +.popup-line-icons { + display: flex; + flex-wrap: wrap; + margin: 6px 0; + gap: 5px; +} + +.popup-line { + display: inline-block; + background-color: var(--button-background-color); + color: white; + padding: 2px 6px; + margin-right: 4px; + border-radius: 4px; + font-size: 0.8rem; + font-weight: 500; +} + +.popup-link { + display: block; + margin-top: 8px; + color: var(--button-background-color); + text-decoration: none; + font-weight: 500; +} + +.popup-link:hover { + text-decoration: underline; +} \ No newline at end of file diff --git a/src/frontend/app/routes/map.tsx b/src/frontend/app/routes/map.tsx new file mode 100644 index 0000000..a938148 --- /dev/null +++ b/src/frontend/app/routes/map.tsx @@ -0,0 +1,167 @@ +import StopDataProvider from "../data/StopDataProvider"; +import './map.css'; + +import { useEffect, useRef, useState } from 'react'; +import { useApp } from "../AppContext"; +import Map, { AttributionControl, GeolocateControl, Layer, NavigationControl, Popup, Source, type MapRef, type MapLayerMouseEvent, type StyleSpecification } from "react-map-gl/maplibre"; +import { loadStyle } from "app/maps/styleloader"; +import type { Feature as GeoJsonFeature, Point } from 'geojson'; +import LineIcon from "~/components/LineIcon"; +import { Link } from "react-router"; + +// Default minimal fallback style before dynamic loading +const defaultStyle: StyleSpecification = { + version: 8, + glyphs: `${window.location.origin}/maps/fonts/{fontstack}/{range}.pbf`, + sprite: `${window.location.origin}/maps/spritesheet/sprite`, + sources: {}, + layers: [] +}; + +// Componente principal del mapa +export default function StopMap() { + const [stops, setStops] = useState[]>([]); + const [popupInfo, setPopupInfo] = useState(null); + const { mapState, updateMapState, theme } = useApp(); + const mapRef = useRef(null); + const [mapStyleKey, setMapStyleKey] = useState("light"); + + // Style state for Map component + const [mapStyle, setMapStyle] = useState(defaultStyle); + + // Handle click events on clusters and individual stops + const onMapClick = (e: MapLayerMouseEvent) => { + const features = e.features; + if (!features || features.length === 0) return; + const feature = features[0]; + const props: any = feature.properties; + + handlePointClick(feature); + }; + + useEffect(() => { + StopDataProvider.getStops().then(data => { + const features: GeoJsonFeature[] = data.map(s => ({ + type: "Feature", + geometry: { type: "Point", coordinates: [s.longitude as number, s.latitude as number] }, + properties: { stopId: s.stopId, name: s.name.original, lines: s.lines } + })); + setStops(features); + }); + }, []); + + useEffect(() => { + const styleName = "carto"; + loadStyle(styleName, theme) + .then(style => setMapStyle(style)) + .catch(error => console.error("Failed to load map style:", error)); + }, [mapStyleKey, theme]); + + useEffect(() => { + const handleMapChange = () => { + if (!mapRef.current) return; + const map = mapRef.current.getMap(); + if (!map) return; + const center = map.getCenter(); + const zoom = map.getZoom(); + updateMapState([center.lat, center.lng], zoom); + }; + + if (mapRef.current) { + const map = mapRef.current.getMap(); + if (map) { + map.on('moveend', handleMapChange); + } + } + + return () => { + if (mapRef.current) { + const map = mapRef.current.getMap(); + if (map) { + map.off('moveend', handleMapChange); + } + } + }; + }, [mapRef.current]); + + const getLatitude = (center: any) => Array.isArray(center) ? center[0] : center.lat; + const getLongitude = (center: any) => Array.isArray(center) ? center[1] : center.lng; + + const handlePointClick = (feature: any) => { + const props: any = feature.properties; + // fetch full stop to get lines array + StopDataProvider.getStopById(props.stopId).then(stop => { + if (!stop) return; + setPopupInfo({ + geometry: feature.geometry, + properties: { + stopId: stop.stopId, + name: stop.name.original, + lines: stop.lines + } + }); + }); + }; + + return ( + + + + + + + + + + {popupInfo && ( + setPopupInfo(null)} + > +
    +

    {popupInfo.properties.name}

    +
    + {popupInfo.properties.lines.map((line: string) => ( + + ))} +
    + + Ver parada + +
    +
    + )} +
    + ); +} diff --git a/src/frontend/app/routes/settings.css b/src/frontend/app/routes/settings.css new file mode 100644 index 0000000..8c612d3 --- /dev/null +++ b/src/frontend/app/routes/settings.css @@ -0,0 +1,94 @@ +/* About page specific styles */ +.about-page { + text-align: center; + padding: 1rem; +} + +.about-version { + color: var(--subtitle-color); + font-size: 0.9rem; + margin-top: 2rem; +} + +.about-description { + margin-top: 1rem; + line-height: 1.6; +} + +.settings-section { + margin-bottom: 2em; + padding: 1rem; + border: 1px solid var(--border-color); + border-radius: 8px; + background-color: var(--message-background-color); + text-align: left; +} + +.settings-section h2 { + margin-bottom: 1em; +} + +.settings-content { + display: flex; + flex-direction: column; + align-items: flex-start; + margin-bottom: 1em; +} + +.settings-content-inline { + display: flex; + align-items: center; + margin-bottom: 1em; +} + +.settings-section .form-button { + margin-bottom: 1em; + padding: 0.75rem 1.5rem; + font-size: 1.1rem; +} + +.settings-section .form-select-inline { + margin-left: 0.5em; + padding: 0.5rem; + font-size: 1rem; + border: 1px solid var(--border-color); + border-radius: 8px; +} + +.settings-section .form-label-inline { + font-weight: 500; +} + +.settings-section .form-label { + display: block; + margin-bottom: 0.5em; + font-weight: 500; +} + +.settings-section .form-description { + margin-top: 0.5em; + font-size: 0.9rem; + color: var(--subtitle-color); +} + +.settings-section .form-details { + margin-top: 0.5em; + font-size: 0.9rem; + color: var(--subtitle-color); + border: 1px solid var(--border-color); + border-radius: 8px; + padding: 0.5rem; +} + +.settings-section .form-details summary { + cursor: pointer; + font-weight: 500; +} + +.settings-section .form-details p { + margin-top: 0.5em; +} + +.settings-section p { + margin-top: 0.5em; +} diff --git a/src/frontend/app/routes/settings.tsx b/src/frontend/app/routes/settings.tsx new file mode 100644 index 0000000..b5e91f1 --- /dev/null +++ b/src/frontend/app/routes/settings.tsx @@ -0,0 +1,65 @@ +import { useApp } from "../AppContext"; +import "./settings.css"; + +export default function Settings() { + const { theme, setTheme, tableStyle, setTableStyle, mapPositionMode, setMapPositionMode } = useApp(); + + return ( +
    +

    Sobre UrbanoVigo Web

    +

    + Aplicación web para encontrar paradas y tiempos de llegada de los autobuses + urbanos de Vigo, España. +

    +
    +

    Ajustes

    +
    + + +
    +
    + + +
    +
    + + +
    +
    + ¿Qué significa esto? +

    + La tabla de horarios puede mostrarse de dos formas: +

    +
    +
    Mostrar por orden
    +
    Las paradas se muestran en el orden en que se visitan. Aplicaciones como Infobus (Vitrasa) usan este estilo.
    +
    Agrupar por línea
    +
    Las paradas se agrupan por la línea de autobús. Aplicaciones como iTranvias (A Coruña) o Moovit (más o menos) usan este estilo.
    +
    +
    +
    +

    Créditos

    +

    + + Código en GitHub + - + Desarrollado por + Ariel Costas + +

    +

    + Datos obtenidos de datos.vigo.org bajo + licencia Open Data Commons Attribution License +

    +
    + ) +} diff --git a/src/frontend/app/routes/stoplist.css b/src/frontend/app/routes/stoplist.css new file mode 100644 index 0000000..d65e048 --- /dev/null +++ b/src/frontend/app/routes/stoplist.css @@ -0,0 +1,310 @@ +/* Common page styles */ +.page-title { + font-size: 1.8rem; + margin-bottom: 1rem; + font-weight: 600; + color: var(--text-color); +} + +.page-subtitle { + font-size: 1.4rem; + margin-top: 1.5rem; + margin-bottom: 0.75rem; + font-weight: 500; + color: var(--subtitle-color); +} + +/* Form styles */ +.search-form { + margin-bottom: 1.5rem; +} + +.form-group { + margin-bottom: 1rem; + display: flex; + flex-direction: column; +} + +.form-label { + font-size: 0.9rem; + margin-bottom: 0.25rem; + font-weight: 500; +} + +.form-input { + padding: 0.75rem; + font-size: 1rem; + border: 1px solid var(--border-color); + border-radius: 8px; +} + +.form-button { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 1rem; + + padding: 0.75rem 1rem; + background-color: var(--button-background-color); + color: white; + border: none; + border-radius: 8px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + width: 100%; + margin-top: 0.5rem; +} + +.form-button:hover { + background-color: var(--button-hover-background-color); +} + +/* List styles */ +.list-container { + margin-bottom: 1.5rem; +} + +.list { + list-style: none; + padding: 0; + margin: 0; +} + +.list-item { + padding: 1rem; + border-bottom: 1px solid var(--border-color); +} + +.list-item-link { + display: block; + color: var(--text-color); + text-decoration: none; + font-size: 1.1rem; /* Increased font size for stop name */ +} + +.list-item-link:hover { + color: var(--button-background-color); +} + +.list-item-link:hover .line-icon { + color: var(--text-color); +} + +.distance-info { + font-size: 0.9rem; + color: var(--subtitle-color); +} + +/* Message styles */ +.message { + padding: 1rem; + background-color: var(--message-background-color); + border-radius: 8px; + margin-bottom: 1rem; +} + +/* About page specific styles */ +.about-page { + text-align: center; + padding: 1rem; +} + +.about-version { + color: var(--subtitle-color); + font-size: 0.9rem; + margin-top: 2rem; +} + +.about-description { + margin-top: 1rem; + line-height: 1.6; +} + +/* Map page specific styles */ +.map-container { + height: calc(100vh - 140px); + margin: -16px; + margin-bottom: 1rem; + position: relative; +} + +/* Fullscreen map styles */ +.fullscreen-container { + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + padding: 0; + margin: 0; + max-width: none; + overflow: hidden; +} + +.fullscreen-map { + width: 100%; + height: 100%; +} + +.fullscreen-loading { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + width: 100vw; + font-size: 1.8rem; + font-weight: 600; + color: var(--text-color); +} + +/* Map marker and popup styles */ +.stop-marker { + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + transition: all 0.2s ease-in-out; +} + +.stop-marker:hover { + transform: scale(1.2); +} + +.maplibregl-popup { + max-width: 250px; +} + +.maplibregl-popup-content { + padding: 12px; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); +} + +.popup-line-icons { + display: flex; + flex-wrap: wrap; + margin: 6px 0; + gap: 5px; +} + +.popup-line { + display: inline-block; + background-color: var(--button-background-color); + color: white; + padding: 2px 6px; + margin-right: 4px; + border-radius: 4px; + font-size: 0.8rem; + font-weight: 500; +} + +.popup-link { + display: block; + margin-top: 8px; + color: var(--button-background-color); + text-decoration: none; + font-weight: 500; +} + +.popup-link:hover { + text-decoration: underline; +} + +/* Estimates page specific styles */ +.estimates-header { + display: flex; + align-items: center; + margin-bottom: 1rem; +} + +.estimates-stop-id { + font-size: 1rem; + color: var(--subtitle-color); + margin-left: 0.5rem; +} + +.estimates-arrival { + color: #28a745; + font-weight: 500; +} + +.estimates-delayed { + color: #dc3545; +} + +.button-group { + display: flex; + gap: 1rem; + margin-bottom: 1.5rem; + flex-wrap: wrap; +} + +.button { + padding: 0.75rem 1rem; + background-color: var(--button-background-color); + color: white; + border: none; + border-radius: 8px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + text-align: center; + text-decoration: none; + display: inline-block; +} + +.button:hover { + background-color: var(--button-hover-background-color); +} + +.button:disabled { + background-color: var(--button-disabled-background-color); + cursor: not-allowed; +} + +.star-icon { + margin-right: 0.5rem; + color: #ccc; + fill: none; +} + +.star-icon.active { + color: var(--star-color); /* Yellow color for active star */ + fill: var(--star-color); +} + +/* Tablet and larger breakpoint */ +@media (min-width: 768px) { + .search-form { + display: flex; + align-items: flex-end; + gap: 1rem; + } + + .form-group { + flex: 1; + margin-bottom: 0; + } + + .form-button { + width: auto; + margin-top: 0; + } + + .list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1rem; + } + + .list-item { + border: 1px solid var(--border-color); + border-radius: 8px; + margin-bottom: 0; + } +} + +/* Desktop breakpoint */ +@media (min-width: 1024px) { + .list { + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + } +} diff --git a/src/frontend/app/routes/stoplist.tsx b/src/frontend/app/routes/stoplist.tsx new file mode 100644 index 0000000..ff1da71 --- /dev/null +++ b/src/frontend/app/routes/stoplist.tsx @@ -0,0 +1,136 @@ +import { useEffect, useMemo, useRef, useState } from "react"; +import StopDataProvider, { type Stop } from "../data/StopDataProvider"; +import StopItem from "../components/StopItem"; +import Fuse from "fuse.js"; +import './stoplist.css'; + +const placeholders = [ + "Urzaiz", + "Gran Vía", + "Castelao", + "García Barbón", + "Valladares", + "Florida", + "Pizarro", + "Estrada Madrid", + "Sanjurjo Badía" +]; + +export default function StopList() { + const [data, setData] = useState(null) + const [searchResults, setSearchResults] = useState(null); + const searchTimeout = useRef(null); + + const randomPlaceholder = useMemo(() => placeholders[Math.floor(Math.random() * placeholders.length)], []); + const fuse = useMemo(() => new Fuse(data || [], { threshold: 0.3, keys: ['name.original'] }), [data]); + + useEffect(() => { + StopDataProvider.getStops().then((stops: Stop[]) => setData(stops)) + }, []); + + const handleStopSearch = (event: React.ChangeEvent) => { + const stopName = event.target.value || ""; + + if (searchTimeout.current) { + clearTimeout(searchTimeout.current); + } + + searchTimeout.current = setTimeout(() => { + if (stopName.length === 0) { + setSearchResults(null); + return; + } + + if (!data) { + console.error("No data available for search"); + return; + } + + const results = fuse.search(stopName); + const items = results.map(result => result.item); + setSearchResults(items); + }, 300); + } + + const favouritedStops = useMemo(() => { + return data?.filter(stop => stop.favourite) ?? [] + }, [data]) + + const recentStops = useMemo(() => { + // no recent items if data not loaded + if (!data) return null; + const recentIds = StopDataProvider.getRecent(); + if (recentIds.length === 0) return null; + // map and filter out missing entries + const stopsList = recentIds + .map(id => data.find(stop => stop.stopId === id)) + .filter((s): s is Stop => Boolean(s)); + return stopsList.reverse(); + }, [data]); + + if (data === null) return

    Loading...

    + + return ( +
    +

    UrbanoVigo Web

    + +
    +
    + + +
    +
    + + {searchResults && searchResults.length > 0 && ( +
    +

    Resultados de la búsqueda

    +
      + {searchResults.map((stop: Stop) => ( + + ))} +
    +
    + )} + +
    +

    Paradas favoritas

    + + {favouritedStops?.length === 0 && ( +

    + Accede a una parada y márcala como favorita para verla aquí. +

    + )} + +
      + {favouritedStops?.sort((a, b) => a.stopId - b.stopId).map((stop: Stop) => ( + + ))} +
    +
    + + {recentStops && recentStops.length > 0 && ( +
    +

    Recientes

    + +
      + {recentStops.map((stop: Stop) => ( + + ))} +
    +
    + )} + +
    +

    Paradas

    + +
      + {data?.sort((a, b) => a.stopId - b.stopId).map((stop: Stop) => ( + + ))} +
    +
    +
    + ) +} diff --git a/src/frontend/app/vite-env.d.ts b/src/frontend/app/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/frontend/app/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/frontend/package.json b/src/frontend/package.json index 546b9cf..e97fb4c 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -13,12 +13,13 @@ "preview": "vite preview" }, "dependencies": { - "@fontsource-variable/outfit": "^5.2.5", + "@fontsource-variable/roboto": "^5.2.6", + "@react-router/node": "^7.6.2", + "@react-router/serve": "^7.6.2", "fuse.js": "^7.1.0", - "leaflet": "^1.9.4", - "leaflet.locatecontrol": "^0.84.2", - "leaflet.markercluster": "^1.5.3", + "isbot": "^5", "lucide-react": "^0.510.0", + "maplibre-theme": "^1.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-leaflet": "^5.0.0", @@ -27,16 +28,21 @@ }, "devDependencies": { "@eslint/js": "^9.26.0", + "@react-router/dev": "^7.6.2", + "@react-router/node": "^7.6.2", + "@react-router/serve": "^7.6.2", "@types/leaflet": "^1.9.17", "@types/node": "^22.15.17", "@types/react": "^19.1.3", "@types/react-dom": "^19.1.4", - "@vitejs/plugin-react-swc": "^3.9.0", "eslint": "^9.26.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^16.1.0", "jiti": "^2.4.2", + "maplibre-gl": "^5.6.0", + "pmtiles": "^4.3.0", + "react-map-gl": "^8.0.4", "typescript": "^5.8.3", "typescript-eslint": "^8.32.0", "vite": "^6.3.5" diff --git a/src/frontend/public/maps/fonts/Roboto Italic/0-255.pbf b/src/frontend/public/maps/fonts/Roboto Italic/0-255.pbf new file mode 100644 index 0000000..889fbf3 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/0-255.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/1024-1279.pbf b/src/frontend/public/maps/fonts/Roboto Italic/1024-1279.pbf new file mode 100644 index 0000000..6a06799 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/1024-1279.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 1024-1279 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/10240-10495.pbf b/src/frontend/public/maps/fonts/Roboto Italic/10240-10495.pbf new file mode 100644 index 0000000..bedef34 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/10240-10495.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 10240-10495 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/10496-10751.pbf b/src/frontend/public/maps/fonts/Roboto Italic/10496-10751.pbf new file mode 100644 index 0000000..0069af0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/10496-10751.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 10496-10751 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/10752-11007.pbf b/src/frontend/public/maps/fonts/Roboto Italic/10752-11007.pbf new file mode 100644 index 0000000..fdcd1bc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/10752-11007.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 10752-11007 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/11008-11263.pbf b/src/frontend/public/maps/fonts/Roboto Italic/11008-11263.pbf new file mode 100644 index 0000000..784d398 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/11008-11263.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 11008-11263 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/11264-11519.pbf b/src/frontend/public/maps/fonts/Roboto Italic/11264-11519.pbf new file mode 100644 index 0000000..0d2f66a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/11264-11519.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 11264-11519 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/11520-11775.pbf b/src/frontend/public/maps/fonts/Roboto Italic/11520-11775.pbf new file mode 100644 index 0000000..7a01ba8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/11520-11775.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 11520-11775 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/11776-12031.pbf b/src/frontend/public/maps/fonts/Roboto Italic/11776-12031.pbf new file mode 100644 index 0000000..83662f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/11776-12031.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 11776-12031 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/12032-12287.pbf b/src/frontend/public/maps/fonts/Roboto Italic/12032-12287.pbf new file mode 100644 index 0000000..9419e60 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/12032-12287.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 12032-12287 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/12288-12543.pbf b/src/frontend/public/maps/fonts/Roboto Italic/12288-12543.pbf new file mode 100644 index 0000000..282345b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/12288-12543.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 12288-12543 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/12544-12799.pbf b/src/frontend/public/maps/fonts/Roboto Italic/12544-12799.pbf new file mode 100644 index 0000000..e0175af --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/12544-12799.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 12544-12799 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/1280-1535.pbf b/src/frontend/public/maps/fonts/Roboto Italic/1280-1535.pbf new file mode 100644 index 0000000..b1264d1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/1280-1535.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 1280-1535 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/12800-13055.pbf b/src/frontend/public/maps/fonts/Roboto Italic/12800-13055.pbf new file mode 100644 index 0000000..68750b8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/12800-13055.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 12800-13055 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/13056-13311.pbf b/src/frontend/public/maps/fonts/Roboto Italic/13056-13311.pbf new file mode 100644 index 0000000..21f000a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/13056-13311.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 13056-13311 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/13312-13567.pbf b/src/frontend/public/maps/fonts/Roboto Italic/13312-13567.pbf new file mode 100644 index 0000000..02e7d3e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/13312-13567.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 13312-13567 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/13568-13823.pbf b/src/frontend/public/maps/fonts/Roboto Italic/13568-13823.pbf new file mode 100644 index 0000000..34158bd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/13568-13823.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 13568-13823 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/13824-14079.pbf b/src/frontend/public/maps/fonts/Roboto Italic/13824-14079.pbf new file mode 100644 index 0000000..1ab57b7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/13824-14079.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 13824-14079 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/14080-14335.pbf b/src/frontend/public/maps/fonts/Roboto Italic/14080-14335.pbf new file mode 100644 index 0000000..da81fb9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/14080-14335.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 14080-14335 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/14336-14591.pbf b/src/frontend/public/maps/fonts/Roboto Italic/14336-14591.pbf new file mode 100644 index 0000000..d8f24c0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/14336-14591.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 14336-14591 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/14592-14847.pbf b/src/frontend/public/maps/fonts/Roboto Italic/14592-14847.pbf new file mode 100644 index 0000000..9454da1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/14592-14847.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 14592-14847 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/14848-15103.pbf b/src/frontend/public/maps/fonts/Roboto Italic/14848-15103.pbf new file mode 100644 index 0000000..8dc1bda --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/14848-15103.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 14848-15103 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/15104-15359.pbf b/src/frontend/public/maps/fonts/Roboto Italic/15104-15359.pbf new file mode 100644 index 0000000..f38b4a0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/15104-15359.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 15104-15359 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/1536-1791.pbf b/src/frontend/public/maps/fonts/Roboto Italic/1536-1791.pbf new file mode 100644 index 0000000..2054d58 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/1536-1791.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 1536-1791 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/15360-15615.pbf b/src/frontend/public/maps/fonts/Roboto Italic/15360-15615.pbf new file mode 100644 index 0000000..372938d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/15360-15615.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 15360-15615 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/15616-15871.pbf b/src/frontend/public/maps/fonts/Roboto Italic/15616-15871.pbf new file mode 100644 index 0000000..ddee1f7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/15616-15871.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 15616-15871 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/15872-16127.pbf b/src/frontend/public/maps/fonts/Roboto Italic/15872-16127.pbf new file mode 100644 index 0000000..8e6ca66 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/15872-16127.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 15872-16127 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/16128-16383.pbf b/src/frontend/public/maps/fonts/Roboto Italic/16128-16383.pbf new file mode 100644 index 0000000..eacf11d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/16128-16383.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 16128-16383 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/16384-16639.pbf b/src/frontend/public/maps/fonts/Roboto Italic/16384-16639.pbf new file mode 100644 index 0000000..4b7122c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/16384-16639.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 16384-16639 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/16640-16895.pbf b/src/frontend/public/maps/fonts/Roboto Italic/16640-16895.pbf new file mode 100644 index 0000000..8858f97 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/16640-16895.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 16640-16895 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/16896-17151.pbf b/src/frontend/public/maps/fonts/Roboto Italic/16896-17151.pbf new file mode 100644 index 0000000..a5dbb06 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/16896-17151.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 16896-17151 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/17152-17407.pbf b/src/frontend/public/maps/fonts/Roboto Italic/17152-17407.pbf new file mode 100644 index 0000000..75d18f1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/17152-17407.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 17152-17407 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/17408-17663.pbf b/src/frontend/public/maps/fonts/Roboto Italic/17408-17663.pbf new file mode 100644 index 0000000..5db7e38 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/17408-17663.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 17408-17663 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/17664-17919.pbf b/src/frontend/public/maps/fonts/Roboto Italic/17664-17919.pbf new file mode 100644 index 0000000..4e29947 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/17664-17919.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 17664-17919 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/1792-2047.pbf b/src/frontend/public/maps/fonts/Roboto Italic/1792-2047.pbf new file mode 100644 index 0000000..693e315 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/1792-2047.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 1792-2047 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/17920-18175.pbf b/src/frontend/public/maps/fonts/Roboto Italic/17920-18175.pbf new file mode 100644 index 0000000..a4bf09a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/17920-18175.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 17920-18175 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/18176-18431.pbf b/src/frontend/public/maps/fonts/Roboto Italic/18176-18431.pbf new file mode 100644 index 0000000..6096ded --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/18176-18431.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 18176-18431 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/18432-18687.pbf b/src/frontend/public/maps/fonts/Roboto Italic/18432-18687.pbf new file mode 100644 index 0000000..7da84d4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/18432-18687.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 18432-18687 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/18688-18943.pbf b/src/frontend/public/maps/fonts/Roboto Italic/18688-18943.pbf new file mode 100644 index 0000000..bff07fc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/18688-18943.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 18688-18943 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/18944-19199.pbf b/src/frontend/public/maps/fonts/Roboto Italic/18944-19199.pbf new file mode 100644 index 0000000..b7409db --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/18944-19199.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 18944-19199 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/19200-19455.pbf b/src/frontend/public/maps/fonts/Roboto Italic/19200-19455.pbf new file mode 100644 index 0000000..33d3787 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/19200-19455.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 19200-19455 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/19456-19711.pbf b/src/frontend/public/maps/fonts/Roboto Italic/19456-19711.pbf new file mode 100644 index 0000000..a2eb636 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/19456-19711.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 19456-19711 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/19712-19967.pbf b/src/frontend/public/maps/fonts/Roboto Italic/19712-19967.pbf new file mode 100644 index 0000000..b04865a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/19712-19967.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 19712-19967 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/19968-20223.pbf b/src/frontend/public/maps/fonts/Roboto Italic/19968-20223.pbf new file mode 100644 index 0000000..5ae0e8f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/19968-20223.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 19968-20223 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/20224-20479.pbf b/src/frontend/public/maps/fonts/Roboto Italic/20224-20479.pbf new file mode 100644 index 0000000..0d49320 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/20224-20479.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 20224-20479 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/2048-2303.pbf b/src/frontend/public/maps/fonts/Roboto Italic/2048-2303.pbf new file mode 100644 index 0000000..8eea642 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/2048-2303.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 2048-2303 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/20480-20735.pbf b/src/frontend/public/maps/fonts/Roboto Italic/20480-20735.pbf new file mode 100644 index 0000000..789deec --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/20480-20735.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 20480-20735 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/20736-20991.pbf b/src/frontend/public/maps/fonts/Roboto Italic/20736-20991.pbf new file mode 100644 index 0000000..6225e09 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/20736-20991.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 20736-20991 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/20992-21247.pbf b/src/frontend/public/maps/fonts/Roboto Italic/20992-21247.pbf new file mode 100644 index 0000000..868bad3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/20992-21247.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 20992-21247 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/21248-21503.pbf b/src/frontend/public/maps/fonts/Roboto Italic/21248-21503.pbf new file mode 100644 index 0000000..537510c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/21248-21503.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 21248-21503 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/21504-21759.pbf b/src/frontend/public/maps/fonts/Roboto Italic/21504-21759.pbf new file mode 100644 index 0000000..7a8e01c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/21504-21759.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 21504-21759 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/21760-22015.pbf b/src/frontend/public/maps/fonts/Roboto Italic/21760-22015.pbf new file mode 100644 index 0000000..f38c67e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/21760-22015.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 21760-22015 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/22016-22271.pbf b/src/frontend/public/maps/fonts/Roboto Italic/22016-22271.pbf new file mode 100644 index 0000000..5397d7a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/22016-22271.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 22016-22271 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/22272-22527.pbf b/src/frontend/public/maps/fonts/Roboto Italic/22272-22527.pbf new file mode 100644 index 0000000..8a4326a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/22272-22527.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 22272-22527 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/22528-22783.pbf b/src/frontend/public/maps/fonts/Roboto Italic/22528-22783.pbf new file mode 100644 index 0000000..be9cb67 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/22528-22783.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 22528-22783 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/22784-23039.pbf b/src/frontend/public/maps/fonts/Roboto Italic/22784-23039.pbf new file mode 100644 index 0000000..e893568 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/22784-23039.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 22784-23039 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/2304-2559.pbf b/src/frontend/public/maps/fonts/Roboto Italic/2304-2559.pbf new file mode 100644 index 0000000..ce5be7e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/2304-2559.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 2304-2559 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/23040-23295.pbf b/src/frontend/public/maps/fonts/Roboto Italic/23040-23295.pbf new file mode 100644 index 0000000..f562a19 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/23040-23295.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 23040-23295 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/23296-23551.pbf b/src/frontend/public/maps/fonts/Roboto Italic/23296-23551.pbf new file mode 100644 index 0000000..7a00936 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/23296-23551.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 23296-23551 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/23552-23807.pbf b/src/frontend/public/maps/fonts/Roboto Italic/23552-23807.pbf new file mode 100644 index 0000000..8d123d2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/23552-23807.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 23552-23807 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/23808-24063.pbf b/src/frontend/public/maps/fonts/Roboto Italic/23808-24063.pbf new file mode 100644 index 0000000..cb5626e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/23808-24063.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 23808-24063 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/24064-24319.pbf b/src/frontend/public/maps/fonts/Roboto Italic/24064-24319.pbf new file mode 100644 index 0000000..2827a42 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/24064-24319.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 24064-24319 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/24320-24575.pbf b/src/frontend/public/maps/fonts/Roboto Italic/24320-24575.pbf new file mode 100644 index 0000000..d3b8f84 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/24320-24575.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 24320-24575 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/24576-24831.pbf b/src/frontend/public/maps/fonts/Roboto Italic/24576-24831.pbf new file mode 100644 index 0000000..affa63c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/24576-24831.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 24576-24831 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/24832-25087.pbf b/src/frontend/public/maps/fonts/Roboto Italic/24832-25087.pbf new file mode 100644 index 0000000..a175ad8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/24832-25087.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 24832-25087 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/25088-25343.pbf b/src/frontend/public/maps/fonts/Roboto Italic/25088-25343.pbf new file mode 100644 index 0000000..d2d396d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/25088-25343.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 25088-25343 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/25344-25599.pbf b/src/frontend/public/maps/fonts/Roboto Italic/25344-25599.pbf new file mode 100644 index 0000000..c6ad23e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/25344-25599.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 25344-25599 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/256-511.pbf b/src/frontend/public/maps/fonts/Roboto Italic/256-511.pbf new file mode 100644 index 0000000..f01e3bc Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/256-511.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/2560-2815.pbf b/src/frontend/public/maps/fonts/Roboto Italic/2560-2815.pbf new file mode 100644 index 0000000..15fd2a2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/2560-2815.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 2560-2815 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/25600-25855.pbf b/src/frontend/public/maps/fonts/Roboto Italic/25600-25855.pbf new file mode 100644 index 0000000..e9ee026 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/25600-25855.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 25600-25855 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/25856-26111.pbf b/src/frontend/public/maps/fonts/Roboto Italic/25856-26111.pbf new file mode 100644 index 0000000..8b5a8d9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/25856-26111.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 25856-26111 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/26112-26367.pbf b/src/frontend/public/maps/fonts/Roboto Italic/26112-26367.pbf new file mode 100644 index 0000000..5366c54 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/26112-26367.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 26112-26367 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/26368-26623.pbf b/src/frontend/public/maps/fonts/Roboto Italic/26368-26623.pbf new file mode 100644 index 0000000..7332a4a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/26368-26623.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 26368-26623 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/26624-26879.pbf b/src/frontend/public/maps/fonts/Roboto Italic/26624-26879.pbf new file mode 100644 index 0000000..fff887c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/26624-26879.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 26624-26879 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/26880-27135.pbf b/src/frontend/public/maps/fonts/Roboto Italic/26880-27135.pbf new file mode 100644 index 0000000..07c53fb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/26880-27135.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 26880-27135 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/27136-27391.pbf b/src/frontend/public/maps/fonts/Roboto Italic/27136-27391.pbf new file mode 100644 index 0000000..ec7c1ce --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/27136-27391.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 27136-27391 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/27392-27647.pbf b/src/frontend/public/maps/fonts/Roboto Italic/27392-27647.pbf new file mode 100644 index 0000000..b7279a3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/27392-27647.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 27392-27647 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/27648-27903.pbf b/src/frontend/public/maps/fonts/Roboto Italic/27648-27903.pbf new file mode 100644 index 0000000..77f2222 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/27648-27903.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 27648-27903 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/27904-28159.pbf b/src/frontend/public/maps/fonts/Roboto Italic/27904-28159.pbf new file mode 100644 index 0000000..6119c7f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/27904-28159.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 27904-28159 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/2816-3071.pbf b/src/frontend/public/maps/fonts/Roboto Italic/2816-3071.pbf new file mode 100644 index 0000000..eca44db --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/2816-3071.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 2816-3071 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/28160-28415.pbf b/src/frontend/public/maps/fonts/Roboto Italic/28160-28415.pbf new file mode 100644 index 0000000..4f96f24 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/28160-28415.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 28160-28415 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/28416-28671.pbf b/src/frontend/public/maps/fonts/Roboto Italic/28416-28671.pbf new file mode 100644 index 0000000..d7c477c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/28416-28671.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 28416-28671 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/28672-28927.pbf b/src/frontend/public/maps/fonts/Roboto Italic/28672-28927.pbf new file mode 100644 index 0000000..1ea6344 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/28672-28927.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 28672-28927 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/28928-29183.pbf b/src/frontend/public/maps/fonts/Roboto Italic/28928-29183.pbf new file mode 100644 index 0000000..5ac94f3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/28928-29183.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 28928-29183 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/29184-29439.pbf b/src/frontend/public/maps/fonts/Roboto Italic/29184-29439.pbf new file mode 100644 index 0000000..1bc00da --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/29184-29439.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 29184-29439 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/29440-29695.pbf b/src/frontend/public/maps/fonts/Roboto Italic/29440-29695.pbf new file mode 100644 index 0000000..f6de76d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/29440-29695.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 29440-29695 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/29696-29951.pbf b/src/frontend/public/maps/fonts/Roboto Italic/29696-29951.pbf new file mode 100644 index 0000000..d0a6890 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/29696-29951.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 29696-29951 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/29952-30207.pbf b/src/frontend/public/maps/fonts/Roboto Italic/29952-30207.pbf new file mode 100644 index 0000000..5b3fcc7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/29952-30207.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 29952-30207 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/30208-30463.pbf b/src/frontend/public/maps/fonts/Roboto Italic/30208-30463.pbf new file mode 100644 index 0000000..c98e2ba --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/30208-30463.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 30208-30463 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/30464-30719.pbf b/src/frontend/public/maps/fonts/Roboto Italic/30464-30719.pbf new file mode 100644 index 0000000..3767610 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/30464-30719.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 30464-30719 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/3072-3327.pbf b/src/frontend/public/maps/fonts/Roboto Italic/3072-3327.pbf new file mode 100644 index 0000000..df33019 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/3072-3327.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 3072-3327 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/30720-30975.pbf b/src/frontend/public/maps/fonts/Roboto Italic/30720-30975.pbf new file mode 100644 index 0000000..f40b970 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/30720-30975.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 30720-30975 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/30976-31231.pbf b/src/frontend/public/maps/fonts/Roboto Italic/30976-31231.pbf new file mode 100644 index 0000000..7217859 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/30976-31231.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 30976-31231 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/31232-31487.pbf b/src/frontend/public/maps/fonts/Roboto Italic/31232-31487.pbf new file mode 100644 index 0000000..e02c2df --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/31232-31487.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 31232-31487 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/31488-31743.pbf b/src/frontend/public/maps/fonts/Roboto Italic/31488-31743.pbf new file mode 100644 index 0000000..60e4232 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/31488-31743.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 31488-31743 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/31744-31999.pbf b/src/frontend/public/maps/fonts/Roboto Italic/31744-31999.pbf new file mode 100644 index 0000000..977b687 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/31744-31999.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 31744-31999 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/32000-32255.pbf b/src/frontend/public/maps/fonts/Roboto Italic/32000-32255.pbf new file mode 100644 index 0000000..7f3506c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/32000-32255.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 32000-32255 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/32256-32511.pbf b/src/frontend/public/maps/fonts/Roboto Italic/32256-32511.pbf new file mode 100644 index 0000000..2614881 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/32256-32511.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 32256-32511 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/32512-32767.pbf b/src/frontend/public/maps/fonts/Roboto Italic/32512-32767.pbf new file mode 100644 index 0000000..17a672d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/32512-32767.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 32512-32767 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/32768-33023.pbf b/src/frontend/public/maps/fonts/Roboto Italic/32768-33023.pbf new file mode 100644 index 0000000..dc100e6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/32768-33023.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 32768-33023 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/33024-33279.pbf b/src/frontend/public/maps/fonts/Roboto Italic/33024-33279.pbf new file mode 100644 index 0000000..81b6182 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/33024-33279.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 33024-33279 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/3328-3583.pbf b/src/frontend/public/maps/fonts/Roboto Italic/3328-3583.pbf new file mode 100644 index 0000000..db50e41 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/3328-3583.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 3328-3583 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/33280-33535.pbf b/src/frontend/public/maps/fonts/Roboto Italic/33280-33535.pbf new file mode 100644 index 0000000..f544af7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/33280-33535.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 33280-33535 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/33536-33791.pbf b/src/frontend/public/maps/fonts/Roboto Italic/33536-33791.pbf new file mode 100644 index 0000000..458267c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/33536-33791.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 33536-33791 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/33792-34047.pbf b/src/frontend/public/maps/fonts/Roboto Italic/33792-34047.pbf new file mode 100644 index 0000000..ff9f86f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/33792-34047.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 33792-34047 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/34048-34303.pbf b/src/frontend/public/maps/fonts/Roboto Italic/34048-34303.pbf new file mode 100644 index 0000000..1a80e55 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/34048-34303.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 34048-34303 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/34304-34559.pbf b/src/frontend/public/maps/fonts/Roboto Italic/34304-34559.pbf new file mode 100644 index 0000000..fab7b91 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/34304-34559.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 34304-34559 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/34560-34815.pbf b/src/frontend/public/maps/fonts/Roboto Italic/34560-34815.pbf new file mode 100644 index 0000000..5aebd99 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/34560-34815.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 34560-34815 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/34816-35071.pbf b/src/frontend/public/maps/fonts/Roboto Italic/34816-35071.pbf new file mode 100644 index 0000000..7eb8eeb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/34816-35071.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 34816-35071 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/35072-35327.pbf b/src/frontend/public/maps/fonts/Roboto Italic/35072-35327.pbf new file mode 100644 index 0000000..1eeb432 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/35072-35327.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 35072-35327 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/35328-35583.pbf b/src/frontend/public/maps/fonts/Roboto Italic/35328-35583.pbf new file mode 100644 index 0000000..57b33df --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/35328-35583.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 35328-35583 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/35584-35839.pbf b/src/frontend/public/maps/fonts/Roboto Italic/35584-35839.pbf new file mode 100644 index 0000000..03a1a82 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/35584-35839.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 35584-35839 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/3584-3839.pbf b/src/frontend/public/maps/fonts/Roboto Italic/3584-3839.pbf new file mode 100644 index 0000000..535aa90 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/3584-3839.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 3584-3839 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/35840-36095.pbf b/src/frontend/public/maps/fonts/Roboto Italic/35840-36095.pbf new file mode 100644 index 0000000..67f1b4d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/35840-36095.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 35840-36095 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/36096-36351.pbf b/src/frontend/public/maps/fonts/Roboto Italic/36096-36351.pbf new file mode 100644 index 0000000..9ebf3c0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/36096-36351.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 36096-36351 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/36352-36607.pbf b/src/frontend/public/maps/fonts/Roboto Italic/36352-36607.pbf new file mode 100644 index 0000000..41ae387 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/36352-36607.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 36352-36607 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/36608-36863.pbf b/src/frontend/public/maps/fonts/Roboto Italic/36608-36863.pbf new file mode 100644 index 0000000..f5f7449 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/36608-36863.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 36608-36863 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/36864-37119.pbf b/src/frontend/public/maps/fonts/Roboto Italic/36864-37119.pbf new file mode 100644 index 0000000..72b8131 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/36864-37119.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 36864-37119 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/37120-37375.pbf b/src/frontend/public/maps/fonts/Roboto Italic/37120-37375.pbf new file mode 100644 index 0000000..04f7bdb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/37120-37375.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 37120-37375 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/37376-37631.pbf b/src/frontend/public/maps/fonts/Roboto Italic/37376-37631.pbf new file mode 100644 index 0000000..52a5d79 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/37376-37631.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 37376-37631 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/37632-37887.pbf b/src/frontend/public/maps/fonts/Roboto Italic/37632-37887.pbf new file mode 100644 index 0000000..ba68016 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/37632-37887.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 37632-37887 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/37888-38143.pbf b/src/frontend/public/maps/fonts/Roboto Italic/37888-38143.pbf new file mode 100644 index 0000000..028f789 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/37888-38143.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 37888-38143 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/38144-38399.pbf b/src/frontend/public/maps/fonts/Roboto Italic/38144-38399.pbf new file mode 100644 index 0000000..c92ff0b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/38144-38399.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 38144-38399 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/3840-4095.pbf b/src/frontend/public/maps/fonts/Roboto Italic/3840-4095.pbf new file mode 100644 index 0000000..8c1c30e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/3840-4095.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 3840-4095 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/38400-38655.pbf b/src/frontend/public/maps/fonts/Roboto Italic/38400-38655.pbf new file mode 100644 index 0000000..575c050 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/38400-38655.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 38400-38655 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/38656-38911.pbf b/src/frontend/public/maps/fonts/Roboto Italic/38656-38911.pbf new file mode 100644 index 0000000..be2164a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/38656-38911.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 38656-38911 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/38912-39167.pbf b/src/frontend/public/maps/fonts/Roboto Italic/38912-39167.pbf new file mode 100644 index 0000000..90ee9a4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/38912-39167.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 38912-39167 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/39168-39423.pbf b/src/frontend/public/maps/fonts/Roboto Italic/39168-39423.pbf new file mode 100644 index 0000000..d10f0ed --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/39168-39423.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 39168-39423 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/39424-39679.pbf b/src/frontend/public/maps/fonts/Roboto Italic/39424-39679.pbf new file mode 100644 index 0000000..348573e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/39424-39679.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 39424-39679 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/39680-39935.pbf b/src/frontend/public/maps/fonts/Roboto Italic/39680-39935.pbf new file mode 100644 index 0000000..21f47a7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/39680-39935.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 39680-39935 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/39936-40191.pbf b/src/frontend/public/maps/fonts/Roboto Italic/39936-40191.pbf new file mode 100644 index 0000000..7d97591 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/39936-40191.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 39936-40191 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/40192-40447.pbf b/src/frontend/public/maps/fonts/Roboto Italic/40192-40447.pbf new file mode 100644 index 0000000..13c55bc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/40192-40447.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 40192-40447 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/40448-40703.pbf b/src/frontend/public/maps/fonts/Roboto Italic/40448-40703.pbf new file mode 100644 index 0000000..da5331d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/40448-40703.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 40448-40703 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/40704-40959.pbf b/src/frontend/public/maps/fonts/Roboto Italic/40704-40959.pbf new file mode 100644 index 0000000..e0da7c8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/40704-40959.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 40704-40959 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/4096-4351.pbf b/src/frontend/public/maps/fonts/Roboto Italic/4096-4351.pbf new file mode 100644 index 0000000..559c144 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/4096-4351.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 4096-4351 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/40960-41215.pbf b/src/frontend/public/maps/fonts/Roboto Italic/40960-41215.pbf new file mode 100644 index 0000000..e1aa3c9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/40960-41215.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 40960-41215 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/41216-41471.pbf b/src/frontend/public/maps/fonts/Roboto Italic/41216-41471.pbf new file mode 100644 index 0000000..32d2188 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/41216-41471.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 41216-41471 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/41472-41727.pbf b/src/frontend/public/maps/fonts/Roboto Italic/41472-41727.pbf new file mode 100644 index 0000000..eddb81e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/41472-41727.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 41472-41727 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/41728-41983.pbf b/src/frontend/public/maps/fonts/Roboto Italic/41728-41983.pbf new file mode 100644 index 0000000..bfc1509 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/41728-41983.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 41728-41983 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/41984-42239.pbf b/src/frontend/public/maps/fonts/Roboto Italic/41984-42239.pbf new file mode 100644 index 0000000..c675f32 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/41984-42239.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 41984-42239 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/42240-42495.pbf b/src/frontend/public/maps/fonts/Roboto Italic/42240-42495.pbf new file mode 100644 index 0000000..76d6ca4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/42240-42495.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 42240-42495 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/42496-42751.pbf b/src/frontend/public/maps/fonts/Roboto Italic/42496-42751.pbf new file mode 100644 index 0000000..b0f7c8b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/42496-42751.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 42496-42751 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/42752-43007.pbf b/src/frontend/public/maps/fonts/Roboto Italic/42752-43007.pbf new file mode 100644 index 0000000..0426b4b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/42752-43007.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 42752-43007 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/43008-43263.pbf b/src/frontend/public/maps/fonts/Roboto Italic/43008-43263.pbf new file mode 100644 index 0000000..cf4dd19 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/43008-43263.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 43008-43263 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/43264-43519.pbf b/src/frontend/public/maps/fonts/Roboto Italic/43264-43519.pbf new file mode 100644 index 0000000..4e18b9f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/43264-43519.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 43264-43519 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/4352-4607.pbf b/src/frontend/public/maps/fonts/Roboto Italic/4352-4607.pbf new file mode 100644 index 0000000..ca73ee2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/4352-4607.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 4352-4607 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/43520-43775.pbf b/src/frontend/public/maps/fonts/Roboto Italic/43520-43775.pbf new file mode 100644 index 0000000..15bc2c5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/43520-43775.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 43520-43775 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/43776-44031.pbf b/src/frontend/public/maps/fonts/Roboto Italic/43776-44031.pbf new file mode 100644 index 0000000..1aacfa9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/43776-44031.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 43776-44031 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/44032-44287.pbf b/src/frontend/public/maps/fonts/Roboto Italic/44032-44287.pbf new file mode 100644 index 0000000..4745118 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/44032-44287.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 44032-44287 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/44288-44543.pbf b/src/frontend/public/maps/fonts/Roboto Italic/44288-44543.pbf new file mode 100644 index 0000000..720b885 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/44288-44543.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 44288-44543 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/44544-44799.pbf b/src/frontend/public/maps/fonts/Roboto Italic/44544-44799.pbf new file mode 100644 index 0000000..4a003ee --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/44544-44799.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 44544-44799 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/44800-45055.pbf b/src/frontend/public/maps/fonts/Roboto Italic/44800-45055.pbf new file mode 100644 index 0000000..8ffc5e8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/44800-45055.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 44800-45055 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/45056-45311.pbf b/src/frontend/public/maps/fonts/Roboto Italic/45056-45311.pbf new file mode 100644 index 0000000..b59790e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/45056-45311.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 45056-45311 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/45312-45567.pbf b/src/frontend/public/maps/fonts/Roboto Italic/45312-45567.pbf new file mode 100644 index 0000000..dbbf8bb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/45312-45567.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 45312-45567 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/45568-45823.pbf b/src/frontend/public/maps/fonts/Roboto Italic/45568-45823.pbf new file mode 100644 index 0000000..94b9535 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/45568-45823.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 45568-45823 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/45824-46079.pbf b/src/frontend/public/maps/fonts/Roboto Italic/45824-46079.pbf new file mode 100644 index 0000000..ec999b4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/45824-46079.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 45824-46079 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/4608-4863.pbf b/src/frontend/public/maps/fonts/Roboto Italic/4608-4863.pbf new file mode 100644 index 0000000..72468d2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/4608-4863.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 4608-4863 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/46080-46335.pbf b/src/frontend/public/maps/fonts/Roboto Italic/46080-46335.pbf new file mode 100644 index 0000000..8e2f8f4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/46080-46335.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 46080-46335 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/46336-46591.pbf b/src/frontend/public/maps/fonts/Roboto Italic/46336-46591.pbf new file mode 100644 index 0000000..e0948f9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/46336-46591.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 46336-46591 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/46592-46847.pbf b/src/frontend/public/maps/fonts/Roboto Italic/46592-46847.pbf new file mode 100644 index 0000000..73303b1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/46592-46847.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 46592-46847 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/46848-47103.pbf b/src/frontend/public/maps/fonts/Roboto Italic/46848-47103.pbf new file mode 100644 index 0000000..e809c71 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/46848-47103.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 46848-47103 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/47104-47359.pbf b/src/frontend/public/maps/fonts/Roboto Italic/47104-47359.pbf new file mode 100644 index 0000000..557e9c7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/47104-47359.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 47104-47359 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/47360-47615.pbf b/src/frontend/public/maps/fonts/Roboto Italic/47360-47615.pbf new file mode 100644 index 0000000..9f1d69e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/47360-47615.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 47360-47615 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/47616-47871.pbf b/src/frontend/public/maps/fonts/Roboto Italic/47616-47871.pbf new file mode 100644 index 0000000..ab18feb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/47616-47871.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 47616-47871 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/47872-48127.pbf b/src/frontend/public/maps/fonts/Roboto Italic/47872-48127.pbf new file mode 100644 index 0000000..1e74511 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/47872-48127.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 47872-48127 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/48128-48383.pbf b/src/frontend/public/maps/fonts/Roboto Italic/48128-48383.pbf new file mode 100644 index 0000000..cc85271 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/48128-48383.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 48128-48383 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/48384-48639.pbf b/src/frontend/public/maps/fonts/Roboto Italic/48384-48639.pbf new file mode 100644 index 0000000..bfc5f56 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/48384-48639.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 48384-48639 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/4864-5119.pbf b/src/frontend/public/maps/fonts/Roboto Italic/4864-5119.pbf new file mode 100644 index 0000000..8345410 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/4864-5119.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 4864-5119 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/48640-48895.pbf b/src/frontend/public/maps/fonts/Roboto Italic/48640-48895.pbf new file mode 100644 index 0000000..12a0993 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/48640-48895.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 48640-48895 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/48896-49151.pbf b/src/frontend/public/maps/fonts/Roboto Italic/48896-49151.pbf new file mode 100644 index 0000000..45ce707 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/48896-49151.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 48896-49151 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/49152-49407.pbf b/src/frontend/public/maps/fonts/Roboto Italic/49152-49407.pbf new file mode 100644 index 0000000..33c8460 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/49152-49407.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 49152-49407 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/49408-49663.pbf b/src/frontend/public/maps/fonts/Roboto Italic/49408-49663.pbf new file mode 100644 index 0000000..3e4c29b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/49408-49663.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 49408-49663 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/49664-49919.pbf b/src/frontend/public/maps/fonts/Roboto Italic/49664-49919.pbf new file mode 100644 index 0000000..ea960d8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/49664-49919.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 49664-49919 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/49920-50175.pbf b/src/frontend/public/maps/fonts/Roboto Italic/49920-50175.pbf new file mode 100644 index 0000000..cd8fa3a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/49920-50175.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 49920-50175 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/50176-50431.pbf b/src/frontend/public/maps/fonts/Roboto Italic/50176-50431.pbf new file mode 100644 index 0000000..9a7f2ef --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/50176-50431.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 50176-50431 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/50432-50687.pbf b/src/frontend/public/maps/fonts/Roboto Italic/50432-50687.pbf new file mode 100644 index 0000000..e53b39e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/50432-50687.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 50432-50687 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/50688-50943.pbf b/src/frontend/public/maps/fonts/Roboto Italic/50688-50943.pbf new file mode 100644 index 0000000..42feed5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/50688-50943.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 50688-50943 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/50944-51199.pbf b/src/frontend/public/maps/fonts/Roboto Italic/50944-51199.pbf new file mode 100644 index 0000000..2d373fd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/50944-51199.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 50944-51199 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/512-767.pbf b/src/frontend/public/maps/fonts/Roboto Italic/512-767.pbf new file mode 100644 index 0000000..a036424 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/512-767.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/5120-5375.pbf b/src/frontend/public/maps/fonts/Roboto Italic/5120-5375.pbf new file mode 100644 index 0000000..1eb1b1f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/5120-5375.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 5120-5375 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/51200-51455.pbf b/src/frontend/public/maps/fonts/Roboto Italic/51200-51455.pbf new file mode 100644 index 0000000..771b3ef --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/51200-51455.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 51200-51455 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/51456-51711.pbf b/src/frontend/public/maps/fonts/Roboto Italic/51456-51711.pbf new file mode 100644 index 0000000..76d21cb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/51456-51711.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 51456-51711 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/51712-51967.pbf b/src/frontend/public/maps/fonts/Roboto Italic/51712-51967.pbf new file mode 100644 index 0000000..1559125 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/51712-51967.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 51712-51967 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/51968-52223.pbf b/src/frontend/public/maps/fonts/Roboto Italic/51968-52223.pbf new file mode 100644 index 0000000..df7fee8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/51968-52223.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 51968-52223 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/52224-52479.pbf b/src/frontend/public/maps/fonts/Roboto Italic/52224-52479.pbf new file mode 100644 index 0000000..51a615e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/52224-52479.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 52224-52479 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/52480-52735.pbf b/src/frontend/public/maps/fonts/Roboto Italic/52480-52735.pbf new file mode 100644 index 0000000..a0fa639 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/52480-52735.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 52480-52735 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/52736-52991.pbf b/src/frontend/public/maps/fonts/Roboto Italic/52736-52991.pbf new file mode 100644 index 0000000..e8a92cb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/52736-52991.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 52736-52991 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/52992-53247.pbf b/src/frontend/public/maps/fonts/Roboto Italic/52992-53247.pbf new file mode 100644 index 0000000..d826776 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/52992-53247.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 52992-53247 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/53248-53503.pbf b/src/frontend/public/maps/fonts/Roboto Italic/53248-53503.pbf new file mode 100644 index 0000000..100a29a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/53248-53503.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 53248-53503 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/53504-53759.pbf b/src/frontend/public/maps/fonts/Roboto Italic/53504-53759.pbf new file mode 100644 index 0000000..2610b18 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/53504-53759.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 53504-53759 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/5376-5631.pbf b/src/frontend/public/maps/fonts/Roboto Italic/5376-5631.pbf new file mode 100644 index 0000000..656e978 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/5376-5631.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 5376-5631 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/53760-54015.pbf b/src/frontend/public/maps/fonts/Roboto Italic/53760-54015.pbf new file mode 100644 index 0000000..f257b69 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/53760-54015.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 53760-54015 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/54016-54271.pbf b/src/frontend/public/maps/fonts/Roboto Italic/54016-54271.pbf new file mode 100644 index 0000000..90d3f05 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/54016-54271.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 54016-54271 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/54272-54527.pbf b/src/frontend/public/maps/fonts/Roboto Italic/54272-54527.pbf new file mode 100644 index 0000000..e085039 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/54272-54527.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 54272-54527 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/54528-54783.pbf b/src/frontend/public/maps/fonts/Roboto Italic/54528-54783.pbf new file mode 100644 index 0000000..97ff5e2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/54528-54783.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 54528-54783 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/54784-55039.pbf b/src/frontend/public/maps/fonts/Roboto Italic/54784-55039.pbf new file mode 100644 index 0000000..6322008 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/54784-55039.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 54784-55039 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/55040-55295.pbf b/src/frontend/public/maps/fonts/Roboto Italic/55040-55295.pbf new file mode 100644 index 0000000..30abaa6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/55040-55295.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 55040-55295 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/55296-55551.pbf b/src/frontend/public/maps/fonts/Roboto Italic/55296-55551.pbf new file mode 100644 index 0000000..339ba4b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/55296-55551.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 55296-55551 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/55552-55807.pbf b/src/frontend/public/maps/fonts/Roboto Italic/55552-55807.pbf new file mode 100644 index 0000000..8dfba0b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/55552-55807.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 55552-55807 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/55808-56063.pbf b/src/frontend/public/maps/fonts/Roboto Italic/55808-56063.pbf new file mode 100644 index 0000000..faa783b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/55808-56063.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 55808-56063 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/56064-56319.pbf b/src/frontend/public/maps/fonts/Roboto Italic/56064-56319.pbf new file mode 100644 index 0000000..064993e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/56064-56319.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 56064-56319 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/5632-5887.pbf b/src/frontend/public/maps/fonts/Roboto Italic/5632-5887.pbf new file mode 100644 index 0000000..d905635 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/5632-5887.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 5632-5887 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/56320-56575.pbf b/src/frontend/public/maps/fonts/Roboto Italic/56320-56575.pbf new file mode 100644 index 0000000..fa476f1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/56320-56575.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 56320-56575 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/56576-56831.pbf b/src/frontend/public/maps/fonts/Roboto Italic/56576-56831.pbf new file mode 100644 index 0000000..7469f23 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/56576-56831.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 56576-56831 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/56832-57087.pbf b/src/frontend/public/maps/fonts/Roboto Italic/56832-57087.pbf new file mode 100644 index 0000000..6baa4df --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/56832-57087.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 56832-57087 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/57088-57343.pbf b/src/frontend/public/maps/fonts/Roboto Italic/57088-57343.pbf new file mode 100644 index 0000000..19426ec --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/57088-57343.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 57088-57343 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/57344-57599.pbf b/src/frontend/public/maps/fonts/Roboto Italic/57344-57599.pbf new file mode 100644 index 0000000..421200a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/57344-57599.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 57344-57599 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/57600-57855.pbf b/src/frontend/public/maps/fonts/Roboto Italic/57600-57855.pbf new file mode 100644 index 0000000..b62523c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/57600-57855.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 57600-57855 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/57856-58111.pbf b/src/frontend/public/maps/fonts/Roboto Italic/57856-58111.pbf new file mode 100644 index 0000000..e5a6f2a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/57856-58111.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 57856-58111 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/58112-58367.pbf b/src/frontend/public/maps/fonts/Roboto Italic/58112-58367.pbf new file mode 100644 index 0000000..557fe69 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/58112-58367.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 58112-58367 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/58368-58623.pbf b/src/frontend/public/maps/fonts/Roboto Italic/58368-58623.pbf new file mode 100644 index 0000000..bb302d0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/58368-58623.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 58368-58623 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/58624-58879.pbf b/src/frontend/public/maps/fonts/Roboto Italic/58624-58879.pbf new file mode 100644 index 0000000..748ce62 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/58624-58879.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 58624-58879 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/5888-6143.pbf b/src/frontend/public/maps/fonts/Roboto Italic/5888-6143.pbf new file mode 100644 index 0000000..ab2ce1a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/5888-6143.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 5888-6143 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/58880-59135.pbf b/src/frontend/public/maps/fonts/Roboto Italic/58880-59135.pbf new file mode 100644 index 0000000..4473ce9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/58880-59135.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 58880-59135 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/59136-59391.pbf b/src/frontend/public/maps/fonts/Roboto Italic/59136-59391.pbf new file mode 100644 index 0000000..7bfcf7e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/59136-59391.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 59136-59391 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/59392-59647.pbf b/src/frontend/public/maps/fonts/Roboto Italic/59392-59647.pbf new file mode 100644 index 0000000..390d616 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/59392-59647.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 59392-59647 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/59648-59903.pbf b/src/frontend/public/maps/fonts/Roboto Italic/59648-59903.pbf new file mode 100644 index 0000000..d041abe --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/59648-59903.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 59648-59903 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/59904-60159.pbf b/src/frontend/public/maps/fonts/Roboto Italic/59904-60159.pbf new file mode 100644 index 0000000..e1870cc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/59904-60159.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 59904-60159 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/60160-60415.pbf b/src/frontend/public/maps/fonts/Roboto Italic/60160-60415.pbf new file mode 100644 index 0000000..6f5ec7e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/60160-60415.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 60160-60415 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/60416-60671.pbf b/src/frontend/public/maps/fonts/Roboto Italic/60416-60671.pbf new file mode 100644 index 0000000..0a6881c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/60416-60671.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 60416-60671 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/60672-60927.pbf b/src/frontend/public/maps/fonts/Roboto Italic/60672-60927.pbf new file mode 100644 index 0000000..d5734bb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/60672-60927.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 60672-60927 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/60928-61183.pbf b/src/frontend/public/maps/fonts/Roboto Italic/60928-61183.pbf new file mode 100644 index 0000000..e28f0c1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/60928-61183.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 60928-61183 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/61184-61439.pbf b/src/frontend/public/maps/fonts/Roboto Italic/61184-61439.pbf new file mode 100644 index 0000000..fef8493 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/61184-61439.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 61184-61439 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/6144-6399.pbf b/src/frontend/public/maps/fonts/Roboto Italic/6144-6399.pbf new file mode 100644 index 0000000..39656e6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/6144-6399.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 6144-6399 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/61440-61695.pbf b/src/frontend/public/maps/fonts/Roboto Italic/61440-61695.pbf new file mode 100644 index 0000000..bcbd865 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/61440-61695.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 61440-61695 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/61696-61951.pbf b/src/frontend/public/maps/fonts/Roboto Italic/61696-61951.pbf new file mode 100644 index 0000000..3536b7c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/61696-61951.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 61696-61951 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/61952-62207.pbf b/src/frontend/public/maps/fonts/Roboto Italic/61952-62207.pbf new file mode 100644 index 0000000..56db1df --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/61952-62207.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 61952-62207 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/62208-62463.pbf b/src/frontend/public/maps/fonts/Roboto Italic/62208-62463.pbf new file mode 100644 index 0000000..70fbbe5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/62208-62463.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 62208-62463 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/62464-62719.pbf b/src/frontend/public/maps/fonts/Roboto Italic/62464-62719.pbf new file mode 100644 index 0000000..1a48c3f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/62464-62719.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 62464-62719 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/62720-62975.pbf b/src/frontend/public/maps/fonts/Roboto Italic/62720-62975.pbf new file mode 100644 index 0000000..65a63dc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/62720-62975.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 62720-62975 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/62976-63231.pbf b/src/frontend/public/maps/fonts/Roboto Italic/62976-63231.pbf new file mode 100644 index 0000000..e8afca7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/62976-63231.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 62976-63231 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/63232-63487.pbf b/src/frontend/public/maps/fonts/Roboto Italic/63232-63487.pbf new file mode 100644 index 0000000..96aee13 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/63232-63487.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 63232-63487 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/63488-63743.pbf b/src/frontend/public/maps/fonts/Roboto Italic/63488-63743.pbf new file mode 100644 index 0000000..9124238 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/63488-63743.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 63488-63743 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/63744-63999.pbf b/src/frontend/public/maps/fonts/Roboto Italic/63744-63999.pbf new file mode 100644 index 0000000..f4d4783 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/63744-63999.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 63744-63999 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/6400-6655.pbf b/src/frontend/public/maps/fonts/Roboto Italic/6400-6655.pbf new file mode 100644 index 0000000..617b98f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/6400-6655.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 6400-6655 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/64000-64255.pbf b/src/frontend/public/maps/fonts/Roboto Italic/64000-64255.pbf new file mode 100644 index 0000000..9d258ba --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/64000-64255.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 64000-64255 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/64256-64511.pbf b/src/frontend/public/maps/fonts/Roboto Italic/64256-64511.pbf new file mode 100644 index 0000000..0188f51 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/64256-64511.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 64256-64511 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/64512-64767.pbf b/src/frontend/public/maps/fonts/Roboto Italic/64512-64767.pbf new file mode 100644 index 0000000..1212724 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/64512-64767.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 64512-64767 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/64768-65023.pbf b/src/frontend/public/maps/fonts/Roboto Italic/64768-65023.pbf new file mode 100644 index 0000000..783cbe4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/64768-65023.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 64768-65023 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/65024-65279.pbf b/src/frontend/public/maps/fonts/Roboto Italic/65024-65279.pbf new file mode 100644 index 0000000..ecbb1e7 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/65024-65279.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/65280-65535.pbf b/src/frontend/public/maps/fonts/Roboto Italic/65280-65535.pbf new file mode 100644 index 0000000..624b050 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/65280-65535.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/6656-6911.pbf b/src/frontend/public/maps/fonts/Roboto Italic/6656-6911.pbf new file mode 100644 index 0000000..39f8603 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/6656-6911.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 6656-6911 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/6912-7167.pbf b/src/frontend/public/maps/fonts/Roboto Italic/6912-7167.pbf new file mode 100644 index 0000000..8ab833e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/6912-7167.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 6912-7167 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/7168-7423.pbf b/src/frontend/public/maps/fonts/Roboto Italic/7168-7423.pbf new file mode 100644 index 0000000..9b785e6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/7168-7423.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 7168-7423 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/7424-7679.pbf b/src/frontend/public/maps/fonts/Roboto Italic/7424-7679.pbf new file mode 100644 index 0000000..bdfa0b6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/7424-7679.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 7424-7679 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/768-1023.pbf b/src/frontend/public/maps/fonts/Roboto Italic/768-1023.pbf new file mode 100644 index 0000000..513906f Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/768-1023.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/7680-7935.pbf b/src/frontend/public/maps/fonts/Roboto Italic/7680-7935.pbf new file mode 100644 index 0000000..2625f95 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/7680-7935.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 7680-7935 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/7936-8191.pbf b/src/frontend/public/maps/fonts/Roboto Italic/7936-8191.pbf new file mode 100644 index 0000000..99aa324 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/7936-8191.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 7936-8191 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/8192-8447.pbf b/src/frontend/public/maps/fonts/Roboto Italic/8192-8447.pbf new file mode 100644 index 0000000..764d4e1 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Italic/8192-8447.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Italic/8448-8703.pbf b/src/frontend/public/maps/fonts/Roboto Italic/8448-8703.pbf new file mode 100644 index 0000000..7f489a5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/8448-8703.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 8448-8703 (B08RepqqqqqqqkiqqpdPe~dqov̷ͮouŻǧȨig~˶ʭľ¢cRrаŶü}^Wwʫ¾źɷxX]|ťȸǯϱrS_mMWtdFG_pwwqtwvvvvwugR8 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/8704-8959.pbf b/src/frontend/public/maps/fonts/Roboto Italic/8704-8959.pbf new file mode 100644 index 0000000..afaae2a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/8704-8959.pbf @@ -0,0 +1,4 @@ + + + Roboto Italic 8704-8959 + (D08 pOgw||||||||||yjS^{cfjlťfoahwYWlz{{{{{{{{{{ubJ \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/8960-9215.pbf b/src/frontend/public/maps/fonts/Roboto Italic/8960-9215.pbf new file mode 100644 index 0000000..52d912f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/8960-9215.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 8960-9215 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/9216-9471.pbf b/src/frontend/public/maps/fonts/Roboto Italic/9216-9471.pbf new file mode 100644 index 0000000..bf43c5d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/9216-9471.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 9216-9471 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/9472-9727.pbf b/src/frontend/public/maps/fonts/Roboto Italic/9472-9727.pbf new file mode 100644 index 0000000..92e7d7f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/9472-9727.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 9472-9727 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/9728-9983.pbf b/src/frontend/public/maps/fonts/Roboto Italic/9728-9983.pbf new file mode 100644 index 0000000..5fdae2b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/9728-9983.pbf @@ -0,0 +1,3 @@ + + + Roboto Italic 9728-9983 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Italic/9984-10239.pbf b/src/frontend/public/maps/fonts/Roboto Italic/9984-10239.pbf new file mode 100644 index 0000000..a103699 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Italic/9984-10239.pbf @@ -0,0 +1,4 @@ + + + Roboto Italic +9984-10239 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/0-255.pbf b/src/frontend/public/maps/fonts/Roboto Medium/0-255.pbf new file mode 100644 index 0000000..ae3dbda Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/0-255.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/1024-1279.pbf b/src/frontend/public/maps/fonts/Roboto Medium/1024-1279.pbf new file mode 100644 index 0000000..28d250b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/1024-1279.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 1024-1279 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/10240-10495.pbf b/src/frontend/public/maps/fonts/Roboto Medium/10240-10495.pbf new file mode 100644 index 0000000..5df6500 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/10240-10495.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 10240-10495 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/10496-10751.pbf b/src/frontend/public/maps/fonts/Roboto Medium/10496-10751.pbf new file mode 100644 index 0000000..bcd98f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/10496-10751.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 10496-10751 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/10752-11007.pbf b/src/frontend/public/maps/fonts/Roboto Medium/10752-11007.pbf new file mode 100644 index 0000000..dc68e48 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/10752-11007.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 10752-11007 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/11008-11263.pbf b/src/frontend/public/maps/fonts/Roboto Medium/11008-11263.pbf new file mode 100644 index 0000000..84f9cef --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/11008-11263.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 11008-11263 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/11264-11519.pbf b/src/frontend/public/maps/fonts/Roboto Medium/11264-11519.pbf new file mode 100644 index 0000000..87a2142 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/11264-11519.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 11264-11519 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/11520-11775.pbf b/src/frontend/public/maps/fonts/Roboto Medium/11520-11775.pbf new file mode 100644 index 0000000..e141045 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/11520-11775.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 11520-11775 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/11776-12031.pbf b/src/frontend/public/maps/fonts/Roboto Medium/11776-12031.pbf new file mode 100644 index 0000000..bc7153d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/11776-12031.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 11776-12031 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/12032-12287.pbf b/src/frontend/public/maps/fonts/Roboto Medium/12032-12287.pbf new file mode 100644 index 0000000..64fa297 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/12032-12287.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 12032-12287 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/12288-12543.pbf b/src/frontend/public/maps/fonts/Roboto Medium/12288-12543.pbf new file mode 100644 index 0000000..2bf3be5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/12288-12543.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 12288-12543 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/12544-12799.pbf b/src/frontend/public/maps/fonts/Roboto Medium/12544-12799.pbf new file mode 100644 index 0000000..d0e32ed --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/12544-12799.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 12544-12799 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/1280-1535.pbf b/src/frontend/public/maps/fonts/Roboto Medium/1280-1535.pbf new file mode 100644 index 0000000..a7183f8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/1280-1535.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 1280-1535 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/12800-13055.pbf b/src/frontend/public/maps/fonts/Roboto Medium/12800-13055.pbf new file mode 100644 index 0000000..971344d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/12800-13055.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 12800-13055 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/13056-13311.pbf b/src/frontend/public/maps/fonts/Roboto Medium/13056-13311.pbf new file mode 100644 index 0000000..18c0542 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/13056-13311.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 13056-13311 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/13312-13567.pbf b/src/frontend/public/maps/fonts/Roboto Medium/13312-13567.pbf new file mode 100644 index 0000000..986c575 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/13312-13567.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 13312-13567 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/13568-13823.pbf b/src/frontend/public/maps/fonts/Roboto Medium/13568-13823.pbf new file mode 100644 index 0000000..fb485c9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/13568-13823.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 13568-13823 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/13824-14079.pbf b/src/frontend/public/maps/fonts/Roboto Medium/13824-14079.pbf new file mode 100644 index 0000000..8185574 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/13824-14079.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 13824-14079 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/14080-14335.pbf b/src/frontend/public/maps/fonts/Roboto Medium/14080-14335.pbf new file mode 100644 index 0000000..c3e3b35 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/14080-14335.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 14080-14335 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/14336-14591.pbf b/src/frontend/public/maps/fonts/Roboto Medium/14336-14591.pbf new file mode 100644 index 0000000..84591d2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/14336-14591.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 14336-14591 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/14592-14847.pbf b/src/frontend/public/maps/fonts/Roboto Medium/14592-14847.pbf new file mode 100644 index 0000000..9e7206e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/14592-14847.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 14592-14847 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/14848-15103.pbf b/src/frontend/public/maps/fonts/Roboto Medium/14848-15103.pbf new file mode 100644 index 0000000..c9d6c75 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/14848-15103.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 14848-15103 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/15104-15359.pbf b/src/frontend/public/maps/fonts/Roboto Medium/15104-15359.pbf new file mode 100644 index 0000000..e7b6dd4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/15104-15359.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 15104-15359 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/1536-1791.pbf b/src/frontend/public/maps/fonts/Roboto Medium/1536-1791.pbf new file mode 100644 index 0000000..502904b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/1536-1791.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 1536-1791 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/15360-15615.pbf b/src/frontend/public/maps/fonts/Roboto Medium/15360-15615.pbf new file mode 100644 index 0000000..9cb3f63 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/15360-15615.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 15360-15615 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/15616-15871.pbf b/src/frontend/public/maps/fonts/Roboto Medium/15616-15871.pbf new file mode 100644 index 0000000..f76d1c3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/15616-15871.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 15616-15871 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/15872-16127.pbf b/src/frontend/public/maps/fonts/Roboto Medium/15872-16127.pbf new file mode 100644 index 0000000..5f1b697 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/15872-16127.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 15872-16127 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/16128-16383.pbf b/src/frontend/public/maps/fonts/Roboto Medium/16128-16383.pbf new file mode 100644 index 0000000..71aed82 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/16128-16383.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 16128-16383 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/16384-16639.pbf b/src/frontend/public/maps/fonts/Roboto Medium/16384-16639.pbf new file mode 100644 index 0000000..f102f6b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/16384-16639.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 16384-16639 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/16640-16895.pbf b/src/frontend/public/maps/fonts/Roboto Medium/16640-16895.pbf new file mode 100644 index 0000000..c9d06ba --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/16640-16895.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 16640-16895 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/16896-17151.pbf b/src/frontend/public/maps/fonts/Roboto Medium/16896-17151.pbf new file mode 100644 index 0000000..a3bb30f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/16896-17151.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 16896-17151 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/17152-17407.pbf b/src/frontend/public/maps/fonts/Roboto Medium/17152-17407.pbf new file mode 100644 index 0000000..6a96f57 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/17152-17407.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 17152-17407 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/17408-17663.pbf b/src/frontend/public/maps/fonts/Roboto Medium/17408-17663.pbf new file mode 100644 index 0000000..30dc7c5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/17408-17663.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 17408-17663 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/17664-17919.pbf b/src/frontend/public/maps/fonts/Roboto Medium/17664-17919.pbf new file mode 100644 index 0000000..40b1ea8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/17664-17919.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 17664-17919 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/1792-2047.pbf b/src/frontend/public/maps/fonts/Roboto Medium/1792-2047.pbf new file mode 100644 index 0000000..cc5f1bf --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/1792-2047.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 1792-2047 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/17920-18175.pbf b/src/frontend/public/maps/fonts/Roboto Medium/17920-18175.pbf new file mode 100644 index 0000000..0a1a631 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/17920-18175.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 17920-18175 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/18176-18431.pbf b/src/frontend/public/maps/fonts/Roboto Medium/18176-18431.pbf new file mode 100644 index 0000000..e550150 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/18176-18431.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 18176-18431 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/18432-18687.pbf b/src/frontend/public/maps/fonts/Roboto Medium/18432-18687.pbf new file mode 100644 index 0000000..917387d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/18432-18687.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 18432-18687 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/18688-18943.pbf b/src/frontend/public/maps/fonts/Roboto Medium/18688-18943.pbf new file mode 100644 index 0000000..abf96f3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/18688-18943.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 18688-18943 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/18944-19199.pbf b/src/frontend/public/maps/fonts/Roboto Medium/18944-19199.pbf new file mode 100644 index 0000000..c6502e1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/18944-19199.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 18944-19199 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/19200-19455.pbf b/src/frontend/public/maps/fonts/Roboto Medium/19200-19455.pbf new file mode 100644 index 0000000..ba3639f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/19200-19455.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 19200-19455 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/19456-19711.pbf b/src/frontend/public/maps/fonts/Roboto Medium/19456-19711.pbf new file mode 100644 index 0000000..cd58322 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/19456-19711.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 19456-19711 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/19712-19967.pbf b/src/frontend/public/maps/fonts/Roboto Medium/19712-19967.pbf new file mode 100644 index 0000000..de9cfcd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/19712-19967.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 19712-19967 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/19968-20223.pbf b/src/frontend/public/maps/fonts/Roboto Medium/19968-20223.pbf new file mode 100644 index 0000000..ca64682 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/19968-20223.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 19968-20223 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/20224-20479.pbf b/src/frontend/public/maps/fonts/Roboto Medium/20224-20479.pbf new file mode 100644 index 0000000..2338a10 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/20224-20479.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 20224-20479 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/2048-2303.pbf b/src/frontend/public/maps/fonts/Roboto Medium/2048-2303.pbf new file mode 100644 index 0000000..5fbee96 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/2048-2303.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 2048-2303 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/20480-20735.pbf b/src/frontend/public/maps/fonts/Roboto Medium/20480-20735.pbf new file mode 100644 index 0000000..57b73d2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/20480-20735.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 20480-20735 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/20736-20991.pbf b/src/frontend/public/maps/fonts/Roboto Medium/20736-20991.pbf new file mode 100644 index 0000000..0890d45 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/20736-20991.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 20736-20991 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/20992-21247.pbf b/src/frontend/public/maps/fonts/Roboto Medium/20992-21247.pbf new file mode 100644 index 0000000..6fa43c5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/20992-21247.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 20992-21247 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/21248-21503.pbf b/src/frontend/public/maps/fonts/Roboto Medium/21248-21503.pbf new file mode 100644 index 0000000..39b16ec --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/21248-21503.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 21248-21503 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/21504-21759.pbf b/src/frontend/public/maps/fonts/Roboto Medium/21504-21759.pbf new file mode 100644 index 0000000..993f11a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/21504-21759.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 21504-21759 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/21760-22015.pbf b/src/frontend/public/maps/fonts/Roboto Medium/21760-22015.pbf new file mode 100644 index 0000000..b5162c6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/21760-22015.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 21760-22015 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/22016-22271.pbf b/src/frontend/public/maps/fonts/Roboto Medium/22016-22271.pbf new file mode 100644 index 0000000..e177be6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/22016-22271.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 22016-22271 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/22272-22527.pbf b/src/frontend/public/maps/fonts/Roboto Medium/22272-22527.pbf new file mode 100644 index 0000000..bb1eaa9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/22272-22527.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 22272-22527 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/22528-22783.pbf b/src/frontend/public/maps/fonts/Roboto Medium/22528-22783.pbf new file mode 100644 index 0000000..30bfcba --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/22528-22783.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 22528-22783 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/22784-23039.pbf b/src/frontend/public/maps/fonts/Roboto Medium/22784-23039.pbf new file mode 100644 index 0000000..49cabc8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/22784-23039.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 22784-23039 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/2304-2559.pbf b/src/frontend/public/maps/fonts/Roboto Medium/2304-2559.pbf new file mode 100644 index 0000000..0df685b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/2304-2559.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 2304-2559 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/23040-23295.pbf b/src/frontend/public/maps/fonts/Roboto Medium/23040-23295.pbf new file mode 100644 index 0000000..2e8b205 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/23040-23295.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 23040-23295 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/23296-23551.pbf b/src/frontend/public/maps/fonts/Roboto Medium/23296-23551.pbf new file mode 100644 index 0000000..e61223b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/23296-23551.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 23296-23551 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/23552-23807.pbf b/src/frontend/public/maps/fonts/Roboto Medium/23552-23807.pbf new file mode 100644 index 0000000..5c3ce0b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/23552-23807.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 23552-23807 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/23808-24063.pbf b/src/frontend/public/maps/fonts/Roboto Medium/23808-24063.pbf new file mode 100644 index 0000000..c852a97 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/23808-24063.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 23808-24063 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/24064-24319.pbf b/src/frontend/public/maps/fonts/Roboto Medium/24064-24319.pbf new file mode 100644 index 0000000..c018599 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/24064-24319.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 24064-24319 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/24320-24575.pbf b/src/frontend/public/maps/fonts/Roboto Medium/24320-24575.pbf new file mode 100644 index 0000000..9e199f7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/24320-24575.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 24320-24575 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/24576-24831.pbf b/src/frontend/public/maps/fonts/Roboto Medium/24576-24831.pbf new file mode 100644 index 0000000..fe9e474 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/24576-24831.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 24576-24831 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/24832-25087.pbf b/src/frontend/public/maps/fonts/Roboto Medium/24832-25087.pbf new file mode 100644 index 0000000..2745b25 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/24832-25087.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 24832-25087 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/25088-25343.pbf b/src/frontend/public/maps/fonts/Roboto Medium/25088-25343.pbf new file mode 100644 index 0000000..81ee9f7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/25088-25343.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 25088-25343 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/25344-25599.pbf b/src/frontend/public/maps/fonts/Roboto Medium/25344-25599.pbf new file mode 100644 index 0000000..873708e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/25344-25599.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 25344-25599 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/256-511.pbf b/src/frontend/public/maps/fonts/Roboto Medium/256-511.pbf new file mode 100644 index 0000000..e23c33b Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/256-511.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/2560-2815.pbf b/src/frontend/public/maps/fonts/Roboto Medium/2560-2815.pbf new file mode 100644 index 0000000..f93e94f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/2560-2815.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 2560-2815 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/25600-25855.pbf b/src/frontend/public/maps/fonts/Roboto Medium/25600-25855.pbf new file mode 100644 index 0000000..e664470 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/25600-25855.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 25600-25855 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/25856-26111.pbf b/src/frontend/public/maps/fonts/Roboto Medium/25856-26111.pbf new file mode 100644 index 0000000..3fadd2e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/25856-26111.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 25856-26111 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/26112-26367.pbf b/src/frontend/public/maps/fonts/Roboto Medium/26112-26367.pbf new file mode 100644 index 0000000..ae56089 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/26112-26367.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 26112-26367 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/26368-26623.pbf b/src/frontend/public/maps/fonts/Roboto Medium/26368-26623.pbf new file mode 100644 index 0000000..5261df5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/26368-26623.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 26368-26623 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/26624-26879.pbf b/src/frontend/public/maps/fonts/Roboto Medium/26624-26879.pbf new file mode 100644 index 0000000..9779391 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/26624-26879.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 26624-26879 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/26880-27135.pbf b/src/frontend/public/maps/fonts/Roboto Medium/26880-27135.pbf new file mode 100644 index 0000000..7130152 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/26880-27135.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 26880-27135 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/27136-27391.pbf b/src/frontend/public/maps/fonts/Roboto Medium/27136-27391.pbf new file mode 100644 index 0000000..4cb9d18 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/27136-27391.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 27136-27391 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/27392-27647.pbf b/src/frontend/public/maps/fonts/Roboto Medium/27392-27647.pbf new file mode 100644 index 0000000..4d572f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/27392-27647.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 27392-27647 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/27648-27903.pbf b/src/frontend/public/maps/fonts/Roboto Medium/27648-27903.pbf new file mode 100644 index 0000000..c7f6928 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/27648-27903.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 27648-27903 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/27904-28159.pbf b/src/frontend/public/maps/fonts/Roboto Medium/27904-28159.pbf new file mode 100644 index 0000000..45beb8c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/27904-28159.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 27904-28159 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/2816-3071.pbf b/src/frontend/public/maps/fonts/Roboto Medium/2816-3071.pbf new file mode 100644 index 0000000..251513f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/2816-3071.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 2816-3071 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/28160-28415.pbf b/src/frontend/public/maps/fonts/Roboto Medium/28160-28415.pbf new file mode 100644 index 0000000..a168080 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/28160-28415.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 28160-28415 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/28416-28671.pbf b/src/frontend/public/maps/fonts/Roboto Medium/28416-28671.pbf new file mode 100644 index 0000000..4342297 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/28416-28671.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 28416-28671 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/28672-28927.pbf b/src/frontend/public/maps/fonts/Roboto Medium/28672-28927.pbf new file mode 100644 index 0000000..e4bc6db --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/28672-28927.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 28672-28927 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/28928-29183.pbf b/src/frontend/public/maps/fonts/Roboto Medium/28928-29183.pbf new file mode 100644 index 0000000..1bc79c0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/28928-29183.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 28928-29183 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/29184-29439.pbf b/src/frontend/public/maps/fonts/Roboto Medium/29184-29439.pbf new file mode 100644 index 0000000..aa67101 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/29184-29439.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 29184-29439 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/29440-29695.pbf b/src/frontend/public/maps/fonts/Roboto Medium/29440-29695.pbf new file mode 100644 index 0000000..50467c9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/29440-29695.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 29440-29695 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/29696-29951.pbf b/src/frontend/public/maps/fonts/Roboto Medium/29696-29951.pbf new file mode 100644 index 0000000..78a9084 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/29696-29951.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 29696-29951 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/29952-30207.pbf b/src/frontend/public/maps/fonts/Roboto Medium/29952-30207.pbf new file mode 100644 index 0000000..0ceedc9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/29952-30207.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 29952-30207 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/30208-30463.pbf b/src/frontend/public/maps/fonts/Roboto Medium/30208-30463.pbf new file mode 100644 index 0000000..dca00aa --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/30208-30463.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 30208-30463 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/30464-30719.pbf b/src/frontend/public/maps/fonts/Roboto Medium/30464-30719.pbf new file mode 100644 index 0000000..06955ca --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/30464-30719.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 30464-30719 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/3072-3327.pbf b/src/frontend/public/maps/fonts/Roboto Medium/3072-3327.pbf new file mode 100644 index 0000000..4f18da0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/3072-3327.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 3072-3327 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/30720-30975.pbf b/src/frontend/public/maps/fonts/Roboto Medium/30720-30975.pbf new file mode 100644 index 0000000..fca820f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/30720-30975.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 30720-30975 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/30976-31231.pbf b/src/frontend/public/maps/fonts/Roboto Medium/30976-31231.pbf new file mode 100644 index 0000000..c1b2561 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/30976-31231.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 30976-31231 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/31232-31487.pbf b/src/frontend/public/maps/fonts/Roboto Medium/31232-31487.pbf new file mode 100644 index 0000000..94c96b2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/31232-31487.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 31232-31487 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/31488-31743.pbf b/src/frontend/public/maps/fonts/Roboto Medium/31488-31743.pbf new file mode 100644 index 0000000..d95234c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/31488-31743.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 31488-31743 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/31744-31999.pbf b/src/frontend/public/maps/fonts/Roboto Medium/31744-31999.pbf new file mode 100644 index 0000000..09f96fd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/31744-31999.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 31744-31999 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/32000-32255.pbf b/src/frontend/public/maps/fonts/Roboto Medium/32000-32255.pbf new file mode 100644 index 0000000..d417950 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/32000-32255.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 32000-32255 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/32256-32511.pbf b/src/frontend/public/maps/fonts/Roboto Medium/32256-32511.pbf new file mode 100644 index 0000000..ce23194 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/32256-32511.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 32256-32511 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/32512-32767.pbf b/src/frontend/public/maps/fonts/Roboto Medium/32512-32767.pbf new file mode 100644 index 0000000..0132391 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/32512-32767.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 32512-32767 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/32768-33023.pbf b/src/frontend/public/maps/fonts/Roboto Medium/32768-33023.pbf new file mode 100644 index 0000000..44495da --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/32768-33023.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 32768-33023 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/33024-33279.pbf b/src/frontend/public/maps/fonts/Roboto Medium/33024-33279.pbf new file mode 100644 index 0000000..fe61776 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/33024-33279.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 33024-33279 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/3328-3583.pbf b/src/frontend/public/maps/fonts/Roboto Medium/3328-3583.pbf new file mode 100644 index 0000000..7298e12 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/3328-3583.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 3328-3583 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/33280-33535.pbf b/src/frontend/public/maps/fonts/Roboto Medium/33280-33535.pbf new file mode 100644 index 0000000..4822e80 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/33280-33535.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 33280-33535 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/33536-33791.pbf b/src/frontend/public/maps/fonts/Roboto Medium/33536-33791.pbf new file mode 100644 index 0000000..bd4bebd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/33536-33791.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 33536-33791 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/33792-34047.pbf b/src/frontend/public/maps/fonts/Roboto Medium/33792-34047.pbf new file mode 100644 index 0000000..773d7f3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/33792-34047.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 33792-34047 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/34048-34303.pbf b/src/frontend/public/maps/fonts/Roboto Medium/34048-34303.pbf new file mode 100644 index 0000000..b2a47f8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/34048-34303.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 34048-34303 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/34304-34559.pbf b/src/frontend/public/maps/fonts/Roboto Medium/34304-34559.pbf new file mode 100644 index 0000000..f5c860f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/34304-34559.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 34304-34559 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/34560-34815.pbf b/src/frontend/public/maps/fonts/Roboto Medium/34560-34815.pbf new file mode 100644 index 0000000..a38578c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/34560-34815.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 34560-34815 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/34816-35071.pbf b/src/frontend/public/maps/fonts/Roboto Medium/34816-35071.pbf new file mode 100644 index 0000000..37a7e0b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/34816-35071.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 34816-35071 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/35072-35327.pbf b/src/frontend/public/maps/fonts/Roboto Medium/35072-35327.pbf new file mode 100644 index 0000000..4650f86 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/35072-35327.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 35072-35327 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/35328-35583.pbf b/src/frontend/public/maps/fonts/Roboto Medium/35328-35583.pbf new file mode 100644 index 0000000..0915836 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/35328-35583.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 35328-35583 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/35584-35839.pbf b/src/frontend/public/maps/fonts/Roboto Medium/35584-35839.pbf new file mode 100644 index 0000000..0e249c1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/35584-35839.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 35584-35839 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/3584-3839.pbf b/src/frontend/public/maps/fonts/Roboto Medium/3584-3839.pbf new file mode 100644 index 0000000..85bbf60 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/3584-3839.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 3584-3839 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/35840-36095.pbf b/src/frontend/public/maps/fonts/Roboto Medium/35840-36095.pbf new file mode 100644 index 0000000..8fa541a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/35840-36095.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 35840-36095 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/36096-36351.pbf b/src/frontend/public/maps/fonts/Roboto Medium/36096-36351.pbf new file mode 100644 index 0000000..c7d0d01 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/36096-36351.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 36096-36351 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/36352-36607.pbf b/src/frontend/public/maps/fonts/Roboto Medium/36352-36607.pbf new file mode 100644 index 0000000..7917033 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/36352-36607.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 36352-36607 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/36608-36863.pbf b/src/frontend/public/maps/fonts/Roboto Medium/36608-36863.pbf new file mode 100644 index 0000000..81b0818 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/36608-36863.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 36608-36863 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/36864-37119.pbf b/src/frontend/public/maps/fonts/Roboto Medium/36864-37119.pbf new file mode 100644 index 0000000..f382d81 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/36864-37119.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 36864-37119 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/37120-37375.pbf b/src/frontend/public/maps/fonts/Roboto Medium/37120-37375.pbf new file mode 100644 index 0000000..3280de7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/37120-37375.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 37120-37375 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/37376-37631.pbf b/src/frontend/public/maps/fonts/Roboto Medium/37376-37631.pbf new file mode 100644 index 0000000..4e97d38 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/37376-37631.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 37376-37631 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/37632-37887.pbf b/src/frontend/public/maps/fonts/Roboto Medium/37632-37887.pbf new file mode 100644 index 0000000..4a20686 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/37632-37887.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 37632-37887 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/37888-38143.pbf b/src/frontend/public/maps/fonts/Roboto Medium/37888-38143.pbf new file mode 100644 index 0000000..c4f3902 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/37888-38143.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 37888-38143 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/38144-38399.pbf b/src/frontend/public/maps/fonts/Roboto Medium/38144-38399.pbf new file mode 100644 index 0000000..ed079f9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/38144-38399.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 38144-38399 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/3840-4095.pbf b/src/frontend/public/maps/fonts/Roboto Medium/3840-4095.pbf new file mode 100644 index 0000000..a824d51 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/3840-4095.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 3840-4095 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/38400-38655.pbf b/src/frontend/public/maps/fonts/Roboto Medium/38400-38655.pbf new file mode 100644 index 0000000..bf49f08 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/38400-38655.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 38400-38655 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/38656-38911.pbf b/src/frontend/public/maps/fonts/Roboto Medium/38656-38911.pbf new file mode 100644 index 0000000..53cacfd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/38656-38911.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 38656-38911 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/38912-39167.pbf b/src/frontend/public/maps/fonts/Roboto Medium/38912-39167.pbf new file mode 100644 index 0000000..2784b48 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/38912-39167.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 38912-39167 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/39168-39423.pbf b/src/frontend/public/maps/fonts/Roboto Medium/39168-39423.pbf new file mode 100644 index 0000000..358513f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/39168-39423.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 39168-39423 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/39424-39679.pbf b/src/frontend/public/maps/fonts/Roboto Medium/39424-39679.pbf new file mode 100644 index 0000000..688c791 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/39424-39679.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 39424-39679 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/39680-39935.pbf b/src/frontend/public/maps/fonts/Roboto Medium/39680-39935.pbf new file mode 100644 index 0000000..a625424 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/39680-39935.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 39680-39935 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/39936-40191.pbf b/src/frontend/public/maps/fonts/Roboto Medium/39936-40191.pbf new file mode 100644 index 0000000..dd4a908 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/39936-40191.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 39936-40191 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/40192-40447.pbf b/src/frontend/public/maps/fonts/Roboto Medium/40192-40447.pbf new file mode 100644 index 0000000..89c28de --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/40192-40447.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 40192-40447 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/40448-40703.pbf b/src/frontend/public/maps/fonts/Roboto Medium/40448-40703.pbf new file mode 100644 index 0000000..3156b15 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/40448-40703.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 40448-40703 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/40704-40959.pbf b/src/frontend/public/maps/fonts/Roboto Medium/40704-40959.pbf new file mode 100644 index 0000000..32cdf30 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/40704-40959.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 40704-40959 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/4096-4351.pbf b/src/frontend/public/maps/fonts/Roboto Medium/4096-4351.pbf new file mode 100644 index 0000000..da08890 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/4096-4351.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 4096-4351 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/40960-41215.pbf b/src/frontend/public/maps/fonts/Roboto Medium/40960-41215.pbf new file mode 100644 index 0000000..7a15e6d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/40960-41215.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 40960-41215 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/41216-41471.pbf b/src/frontend/public/maps/fonts/Roboto Medium/41216-41471.pbf new file mode 100644 index 0000000..1c388da --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/41216-41471.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 41216-41471 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/41472-41727.pbf b/src/frontend/public/maps/fonts/Roboto Medium/41472-41727.pbf new file mode 100644 index 0000000..cb817d2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/41472-41727.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 41472-41727 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/41728-41983.pbf b/src/frontend/public/maps/fonts/Roboto Medium/41728-41983.pbf new file mode 100644 index 0000000..6c3104d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/41728-41983.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 41728-41983 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/41984-42239.pbf b/src/frontend/public/maps/fonts/Roboto Medium/41984-42239.pbf new file mode 100644 index 0000000..d4072f3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/41984-42239.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 41984-42239 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/42240-42495.pbf b/src/frontend/public/maps/fonts/Roboto Medium/42240-42495.pbf new file mode 100644 index 0000000..aa6dbc8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/42240-42495.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 42240-42495 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/42496-42751.pbf b/src/frontend/public/maps/fonts/Roboto Medium/42496-42751.pbf new file mode 100644 index 0000000..8d50dff --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/42496-42751.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 42496-42751 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/42752-43007.pbf b/src/frontend/public/maps/fonts/Roboto Medium/42752-43007.pbf new file mode 100644 index 0000000..b50af98 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/42752-43007.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 42752-43007 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/43008-43263.pbf b/src/frontend/public/maps/fonts/Roboto Medium/43008-43263.pbf new file mode 100644 index 0000000..4770ce3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/43008-43263.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 43008-43263 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/43264-43519.pbf b/src/frontend/public/maps/fonts/Roboto Medium/43264-43519.pbf new file mode 100644 index 0000000..8a1f619 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/43264-43519.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 43264-43519 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/4352-4607.pbf b/src/frontend/public/maps/fonts/Roboto Medium/4352-4607.pbf new file mode 100644 index 0000000..9f4550c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/4352-4607.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 4352-4607 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/43520-43775.pbf b/src/frontend/public/maps/fonts/Roboto Medium/43520-43775.pbf new file mode 100644 index 0000000..5eae8a5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/43520-43775.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 43520-43775 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/43776-44031.pbf b/src/frontend/public/maps/fonts/Roboto Medium/43776-44031.pbf new file mode 100644 index 0000000..758da3f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/43776-44031.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 43776-44031 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/44032-44287.pbf b/src/frontend/public/maps/fonts/Roboto Medium/44032-44287.pbf new file mode 100644 index 0000000..e1362ca --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/44032-44287.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 44032-44287 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/44288-44543.pbf b/src/frontend/public/maps/fonts/Roboto Medium/44288-44543.pbf new file mode 100644 index 0000000..809dc38 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/44288-44543.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 44288-44543 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/44544-44799.pbf b/src/frontend/public/maps/fonts/Roboto Medium/44544-44799.pbf new file mode 100644 index 0000000..87a9cbc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/44544-44799.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 44544-44799 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/44800-45055.pbf b/src/frontend/public/maps/fonts/Roboto Medium/44800-45055.pbf new file mode 100644 index 0000000..0797737 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/44800-45055.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 44800-45055 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/45056-45311.pbf b/src/frontend/public/maps/fonts/Roboto Medium/45056-45311.pbf new file mode 100644 index 0000000..e959021 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/45056-45311.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 45056-45311 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/45312-45567.pbf b/src/frontend/public/maps/fonts/Roboto Medium/45312-45567.pbf new file mode 100644 index 0000000..dfc6664 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/45312-45567.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 45312-45567 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/45568-45823.pbf b/src/frontend/public/maps/fonts/Roboto Medium/45568-45823.pbf new file mode 100644 index 0000000..9060279 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/45568-45823.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 45568-45823 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/45824-46079.pbf b/src/frontend/public/maps/fonts/Roboto Medium/45824-46079.pbf new file mode 100644 index 0000000..6d541c5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/45824-46079.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 45824-46079 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/4608-4863.pbf b/src/frontend/public/maps/fonts/Roboto Medium/4608-4863.pbf new file mode 100644 index 0000000..afdde32 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/4608-4863.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 4608-4863 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/46080-46335.pbf b/src/frontend/public/maps/fonts/Roboto Medium/46080-46335.pbf new file mode 100644 index 0000000..3024d8c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/46080-46335.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 46080-46335 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/46336-46591.pbf b/src/frontend/public/maps/fonts/Roboto Medium/46336-46591.pbf new file mode 100644 index 0000000..e84d93d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/46336-46591.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 46336-46591 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/46592-46847.pbf b/src/frontend/public/maps/fonts/Roboto Medium/46592-46847.pbf new file mode 100644 index 0000000..9c14234 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/46592-46847.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 46592-46847 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/46848-47103.pbf b/src/frontend/public/maps/fonts/Roboto Medium/46848-47103.pbf new file mode 100644 index 0000000..bce0ff1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/46848-47103.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 46848-47103 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/47104-47359.pbf b/src/frontend/public/maps/fonts/Roboto Medium/47104-47359.pbf new file mode 100644 index 0000000..88e856e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/47104-47359.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 47104-47359 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/47360-47615.pbf b/src/frontend/public/maps/fonts/Roboto Medium/47360-47615.pbf new file mode 100644 index 0000000..33132bf --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/47360-47615.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 47360-47615 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/47616-47871.pbf b/src/frontend/public/maps/fonts/Roboto Medium/47616-47871.pbf new file mode 100644 index 0000000..f35c657 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/47616-47871.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 47616-47871 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/47872-48127.pbf b/src/frontend/public/maps/fonts/Roboto Medium/47872-48127.pbf new file mode 100644 index 0000000..5ba50e1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/47872-48127.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 47872-48127 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/48128-48383.pbf b/src/frontend/public/maps/fonts/Roboto Medium/48128-48383.pbf new file mode 100644 index 0000000..d7bf96f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/48128-48383.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 48128-48383 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/48384-48639.pbf b/src/frontend/public/maps/fonts/Roboto Medium/48384-48639.pbf new file mode 100644 index 0000000..d10295f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/48384-48639.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 48384-48639 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/4864-5119.pbf b/src/frontend/public/maps/fonts/Roboto Medium/4864-5119.pbf new file mode 100644 index 0000000..40a2471 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/4864-5119.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 4864-5119 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/48640-48895.pbf b/src/frontend/public/maps/fonts/Roboto Medium/48640-48895.pbf new file mode 100644 index 0000000..8cf1e9f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/48640-48895.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 48640-48895 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/48896-49151.pbf b/src/frontend/public/maps/fonts/Roboto Medium/48896-49151.pbf new file mode 100644 index 0000000..190ad5b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/48896-49151.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 48896-49151 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/49152-49407.pbf b/src/frontend/public/maps/fonts/Roboto Medium/49152-49407.pbf new file mode 100644 index 0000000..7f27361 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/49152-49407.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 49152-49407 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/49408-49663.pbf b/src/frontend/public/maps/fonts/Roboto Medium/49408-49663.pbf new file mode 100644 index 0000000..50fcf16 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/49408-49663.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 49408-49663 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/49664-49919.pbf b/src/frontend/public/maps/fonts/Roboto Medium/49664-49919.pbf new file mode 100644 index 0000000..ea34f60 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/49664-49919.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 49664-49919 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/49920-50175.pbf b/src/frontend/public/maps/fonts/Roboto Medium/49920-50175.pbf new file mode 100644 index 0000000..ce68d59 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/49920-50175.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 49920-50175 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/50176-50431.pbf b/src/frontend/public/maps/fonts/Roboto Medium/50176-50431.pbf new file mode 100644 index 0000000..a86ebce --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/50176-50431.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 50176-50431 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/50432-50687.pbf b/src/frontend/public/maps/fonts/Roboto Medium/50432-50687.pbf new file mode 100644 index 0000000..9a364e9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/50432-50687.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 50432-50687 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/50688-50943.pbf b/src/frontend/public/maps/fonts/Roboto Medium/50688-50943.pbf new file mode 100644 index 0000000..4d761cb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/50688-50943.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 50688-50943 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/50944-51199.pbf b/src/frontend/public/maps/fonts/Roboto Medium/50944-51199.pbf new file mode 100644 index 0000000..cd52a57 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/50944-51199.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 50944-51199 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/512-767.pbf b/src/frontend/public/maps/fonts/Roboto Medium/512-767.pbf new file mode 100644 index 0000000..850f857 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/512-767.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/5120-5375.pbf b/src/frontend/public/maps/fonts/Roboto Medium/5120-5375.pbf new file mode 100644 index 0000000..e10f3b3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/5120-5375.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 5120-5375 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/51200-51455.pbf b/src/frontend/public/maps/fonts/Roboto Medium/51200-51455.pbf new file mode 100644 index 0000000..9dbf195 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/51200-51455.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 51200-51455 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/51456-51711.pbf b/src/frontend/public/maps/fonts/Roboto Medium/51456-51711.pbf new file mode 100644 index 0000000..da9e170 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/51456-51711.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 51456-51711 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/51712-51967.pbf b/src/frontend/public/maps/fonts/Roboto Medium/51712-51967.pbf new file mode 100644 index 0000000..572b2de --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/51712-51967.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 51712-51967 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/51968-52223.pbf b/src/frontend/public/maps/fonts/Roboto Medium/51968-52223.pbf new file mode 100644 index 0000000..ac88d2f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/51968-52223.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 51968-52223 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/52224-52479.pbf b/src/frontend/public/maps/fonts/Roboto Medium/52224-52479.pbf new file mode 100644 index 0000000..60f982c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/52224-52479.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 52224-52479 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/52480-52735.pbf b/src/frontend/public/maps/fonts/Roboto Medium/52480-52735.pbf new file mode 100644 index 0000000..c1b81c6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/52480-52735.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 52480-52735 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/52736-52991.pbf b/src/frontend/public/maps/fonts/Roboto Medium/52736-52991.pbf new file mode 100644 index 0000000..7f0466d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/52736-52991.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 52736-52991 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/52992-53247.pbf b/src/frontend/public/maps/fonts/Roboto Medium/52992-53247.pbf new file mode 100644 index 0000000..4367f92 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/52992-53247.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 52992-53247 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/53248-53503.pbf b/src/frontend/public/maps/fonts/Roboto Medium/53248-53503.pbf new file mode 100644 index 0000000..023106b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/53248-53503.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 53248-53503 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/53504-53759.pbf b/src/frontend/public/maps/fonts/Roboto Medium/53504-53759.pbf new file mode 100644 index 0000000..6b0f0fa --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/53504-53759.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 53504-53759 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/5376-5631.pbf b/src/frontend/public/maps/fonts/Roboto Medium/5376-5631.pbf new file mode 100644 index 0000000..de4f2e1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/5376-5631.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 5376-5631 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/53760-54015.pbf b/src/frontend/public/maps/fonts/Roboto Medium/53760-54015.pbf new file mode 100644 index 0000000..835fe65 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/53760-54015.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 53760-54015 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/54016-54271.pbf b/src/frontend/public/maps/fonts/Roboto Medium/54016-54271.pbf new file mode 100644 index 0000000..fe41dde --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/54016-54271.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 54016-54271 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/54272-54527.pbf b/src/frontend/public/maps/fonts/Roboto Medium/54272-54527.pbf new file mode 100644 index 0000000..73eff12 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/54272-54527.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 54272-54527 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/54528-54783.pbf b/src/frontend/public/maps/fonts/Roboto Medium/54528-54783.pbf new file mode 100644 index 0000000..a941820 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/54528-54783.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 54528-54783 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/54784-55039.pbf b/src/frontend/public/maps/fonts/Roboto Medium/54784-55039.pbf new file mode 100644 index 0000000..a4addad --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/54784-55039.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 54784-55039 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/55040-55295.pbf b/src/frontend/public/maps/fonts/Roboto Medium/55040-55295.pbf new file mode 100644 index 0000000..5e193f8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/55040-55295.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 55040-55295 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/55296-55551.pbf b/src/frontend/public/maps/fonts/Roboto Medium/55296-55551.pbf new file mode 100644 index 0000000..5935c48 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/55296-55551.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 55296-55551 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/55552-55807.pbf b/src/frontend/public/maps/fonts/Roboto Medium/55552-55807.pbf new file mode 100644 index 0000000..1485427 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/55552-55807.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 55552-55807 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/55808-56063.pbf b/src/frontend/public/maps/fonts/Roboto Medium/55808-56063.pbf new file mode 100644 index 0000000..2a684ed --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/55808-56063.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 55808-56063 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/56064-56319.pbf b/src/frontend/public/maps/fonts/Roboto Medium/56064-56319.pbf new file mode 100644 index 0000000..2b3aa4d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/56064-56319.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 56064-56319 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/5632-5887.pbf b/src/frontend/public/maps/fonts/Roboto Medium/5632-5887.pbf new file mode 100644 index 0000000..07dc922 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/5632-5887.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 5632-5887 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/56320-56575.pbf b/src/frontend/public/maps/fonts/Roboto Medium/56320-56575.pbf new file mode 100644 index 0000000..c1bbd4c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/56320-56575.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 56320-56575 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/56576-56831.pbf b/src/frontend/public/maps/fonts/Roboto Medium/56576-56831.pbf new file mode 100644 index 0000000..c2f46ca --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/56576-56831.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 56576-56831 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/56832-57087.pbf b/src/frontend/public/maps/fonts/Roboto Medium/56832-57087.pbf new file mode 100644 index 0000000..bf23000 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/56832-57087.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 56832-57087 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/57088-57343.pbf b/src/frontend/public/maps/fonts/Roboto Medium/57088-57343.pbf new file mode 100644 index 0000000..02a5e28 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/57088-57343.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 57088-57343 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/57344-57599.pbf b/src/frontend/public/maps/fonts/Roboto Medium/57344-57599.pbf new file mode 100644 index 0000000..bd91e06 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/57344-57599.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 57344-57599 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/57600-57855.pbf b/src/frontend/public/maps/fonts/Roboto Medium/57600-57855.pbf new file mode 100644 index 0000000..d9a4ddb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/57600-57855.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 57600-57855 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/57856-58111.pbf b/src/frontend/public/maps/fonts/Roboto Medium/57856-58111.pbf new file mode 100644 index 0000000..b144bb5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/57856-58111.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 57856-58111 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/58112-58367.pbf b/src/frontend/public/maps/fonts/Roboto Medium/58112-58367.pbf new file mode 100644 index 0000000..cd4435c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/58112-58367.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 58112-58367 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/58368-58623.pbf b/src/frontend/public/maps/fonts/Roboto Medium/58368-58623.pbf new file mode 100644 index 0000000..16cf550 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/58368-58623.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 58368-58623 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/58624-58879.pbf b/src/frontend/public/maps/fonts/Roboto Medium/58624-58879.pbf new file mode 100644 index 0000000..cc49f6d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/58624-58879.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 58624-58879 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/5888-6143.pbf b/src/frontend/public/maps/fonts/Roboto Medium/5888-6143.pbf new file mode 100644 index 0000000..e451b18 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/5888-6143.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 5888-6143 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/58880-59135.pbf b/src/frontend/public/maps/fonts/Roboto Medium/58880-59135.pbf new file mode 100644 index 0000000..4605d09 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/58880-59135.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 58880-59135 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/59136-59391.pbf b/src/frontend/public/maps/fonts/Roboto Medium/59136-59391.pbf new file mode 100644 index 0000000..ed68a8a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/59136-59391.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 59136-59391 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/59392-59647.pbf b/src/frontend/public/maps/fonts/Roboto Medium/59392-59647.pbf new file mode 100644 index 0000000..10d1cb7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/59392-59647.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 59392-59647 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/59648-59903.pbf b/src/frontend/public/maps/fonts/Roboto Medium/59648-59903.pbf new file mode 100644 index 0000000..4bb7c59 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/59648-59903.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 59648-59903 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/59904-60159.pbf b/src/frontend/public/maps/fonts/Roboto Medium/59904-60159.pbf new file mode 100644 index 0000000..983ced6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/59904-60159.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 59904-60159 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/60160-60415.pbf b/src/frontend/public/maps/fonts/Roboto Medium/60160-60415.pbf new file mode 100644 index 0000000..780bd80 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/60160-60415.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 60160-60415 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/60416-60671.pbf b/src/frontend/public/maps/fonts/Roboto Medium/60416-60671.pbf new file mode 100644 index 0000000..2347204 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/60416-60671.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 60416-60671 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/60672-60927.pbf b/src/frontend/public/maps/fonts/Roboto Medium/60672-60927.pbf new file mode 100644 index 0000000..8cf29ac --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/60672-60927.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 60672-60927 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/60928-61183.pbf b/src/frontend/public/maps/fonts/Roboto Medium/60928-61183.pbf new file mode 100644 index 0000000..92766b9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/60928-61183.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 60928-61183 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/61184-61439.pbf b/src/frontend/public/maps/fonts/Roboto Medium/61184-61439.pbf new file mode 100644 index 0000000..a4bd751 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/61184-61439.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 61184-61439 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/6144-6399.pbf b/src/frontend/public/maps/fonts/Roboto Medium/6144-6399.pbf new file mode 100644 index 0000000..16c32f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/6144-6399.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 6144-6399 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/61440-61695.pbf b/src/frontend/public/maps/fonts/Roboto Medium/61440-61695.pbf new file mode 100644 index 0000000..85ecc30 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/61440-61695.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 61440-61695 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/61696-61951.pbf b/src/frontend/public/maps/fonts/Roboto Medium/61696-61951.pbf new file mode 100644 index 0000000..2e83802 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/61696-61951.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 61696-61951 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/61952-62207.pbf b/src/frontend/public/maps/fonts/Roboto Medium/61952-62207.pbf new file mode 100644 index 0000000..d08a85f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/61952-62207.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 61952-62207 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/62208-62463.pbf b/src/frontend/public/maps/fonts/Roboto Medium/62208-62463.pbf new file mode 100644 index 0000000..45232ba --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/62208-62463.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 62208-62463 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/62464-62719.pbf b/src/frontend/public/maps/fonts/Roboto Medium/62464-62719.pbf new file mode 100644 index 0000000..6ed4187 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/62464-62719.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 62464-62719 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/62720-62975.pbf b/src/frontend/public/maps/fonts/Roboto Medium/62720-62975.pbf new file mode 100644 index 0000000..90c7a97 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/62720-62975.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 62720-62975 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/62976-63231.pbf b/src/frontend/public/maps/fonts/Roboto Medium/62976-63231.pbf new file mode 100644 index 0000000..8df82c6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/62976-63231.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 62976-63231 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/63232-63487.pbf b/src/frontend/public/maps/fonts/Roboto Medium/63232-63487.pbf new file mode 100644 index 0000000..ed99179 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/63232-63487.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 63232-63487 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/63488-63743.pbf b/src/frontend/public/maps/fonts/Roboto Medium/63488-63743.pbf new file mode 100644 index 0000000..c46909b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/63488-63743.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 63488-63743 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/63744-63999.pbf b/src/frontend/public/maps/fonts/Roboto Medium/63744-63999.pbf new file mode 100644 index 0000000..670ff7c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/63744-63999.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 63744-63999 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/6400-6655.pbf b/src/frontend/public/maps/fonts/Roboto Medium/6400-6655.pbf new file mode 100644 index 0000000..c083781 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/6400-6655.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 6400-6655 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/64000-64255.pbf b/src/frontend/public/maps/fonts/Roboto Medium/64000-64255.pbf new file mode 100644 index 0000000..462bcdd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/64000-64255.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 64000-64255 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/64256-64511.pbf b/src/frontend/public/maps/fonts/Roboto Medium/64256-64511.pbf new file mode 100644 index 0000000..89526c1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/64256-64511.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 64256-64511 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/64512-64767.pbf b/src/frontend/public/maps/fonts/Roboto Medium/64512-64767.pbf new file mode 100644 index 0000000..34447f5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/64512-64767.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 64512-64767 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/64768-65023.pbf b/src/frontend/public/maps/fonts/Roboto Medium/64768-65023.pbf new file mode 100644 index 0000000..e5552f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/64768-65023.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 64768-65023 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/65024-65279.pbf b/src/frontend/public/maps/fonts/Roboto Medium/65024-65279.pbf new file mode 100644 index 0000000..8874b32 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/65024-65279.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/65280-65535.pbf b/src/frontend/public/maps/fonts/Roboto Medium/65280-65535.pbf new file mode 100644 index 0000000..865c6a7 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/65280-65535.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/6656-6911.pbf b/src/frontend/public/maps/fonts/Roboto Medium/6656-6911.pbf new file mode 100644 index 0000000..555aaf9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/6656-6911.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 6656-6911 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/6912-7167.pbf b/src/frontend/public/maps/fonts/Roboto Medium/6912-7167.pbf new file mode 100644 index 0000000..f2c0cf4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/6912-7167.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 6912-7167 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/7168-7423.pbf b/src/frontend/public/maps/fonts/Roboto Medium/7168-7423.pbf new file mode 100644 index 0000000..48e1ea9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/7168-7423.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 7168-7423 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/7424-7679.pbf b/src/frontend/public/maps/fonts/Roboto Medium/7424-7679.pbf new file mode 100644 index 0000000..0de098a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/7424-7679.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 7424-7679 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/768-1023.pbf b/src/frontend/public/maps/fonts/Roboto Medium/768-1023.pbf new file mode 100644 index 0000000..d8e9cb1 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/768-1023.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/7680-7935.pbf b/src/frontend/public/maps/fonts/Roboto Medium/7680-7935.pbf new file mode 100644 index 0000000..7d29093 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/7680-7935.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 7680-7935 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/7936-8191.pbf b/src/frontend/public/maps/fonts/Roboto Medium/7936-8191.pbf new file mode 100644 index 0000000..bdbbef2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/7936-8191.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 7936-8191 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/8192-8447.pbf b/src/frontend/public/maps/fonts/Roboto Medium/8192-8447.pbf new file mode 100644 index 0000000..58e499a Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Medium/8192-8447.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Medium/8448-8703.pbf b/src/frontend/public/maps/fonts/Roboto Medium/8448-8703.pbf new file mode 100644 index 0000000..522103c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/8448-8703.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 8448-8703 (B08I_mqqqqqqqqkkqqpeR[vfeqfδĦѲreѻΰҲrZuѻĺҲrH^qѻԺƸҲr1QqѻԴ̶Ҳr1QqѻԴ¶Ҳr1Qqr+Jgi ;UivwwnwwwwwwwvkV \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/8704-8959.pbf b/src/frontend/public/maps/fonts/Roboto Medium/8704-8959.pbf new file mode 100644 index 0000000..8eaedbf --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/8704-8959.pbf @@ -0,0 +1,4 @@ + + + Roboto Medium 8704-8959 + (D08 HYabbbbbbbbbb_S@_u~mUodu©iuɩiuũiqeaxpWK\eeeeeeeeeeecVC \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/8960-9215.pbf b/src/frontend/public/maps/fonts/Roboto Medium/8960-9215.pbf new file mode 100644 index 0000000..d053015 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/8960-9215.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 8960-9215 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/9216-9471.pbf b/src/frontend/public/maps/fonts/Roboto Medium/9216-9471.pbf new file mode 100644 index 0000000..e902fe2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/9216-9471.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 9216-9471 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/9472-9727.pbf b/src/frontend/public/maps/fonts/Roboto Medium/9472-9727.pbf new file mode 100644 index 0000000..983d7b8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/9472-9727.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 9472-9727 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/9728-9983.pbf b/src/frontend/public/maps/fonts/Roboto Medium/9728-9983.pbf new file mode 100644 index 0000000..635de04 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/9728-9983.pbf @@ -0,0 +1,3 @@ + + + Roboto Medium 9728-9983 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Medium/9984-10239.pbf b/src/frontend/public/maps/fonts/Roboto Medium/9984-10239.pbf new file mode 100644 index 0000000..38bf669 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Medium/9984-10239.pbf @@ -0,0 +1,4 @@ + + + Roboto Medium +9984-10239 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/0-255.pbf b/src/frontend/public/maps/fonts/Roboto Regular/0-255.pbf new file mode 100644 index 0000000..b85a41f Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Regular/0-255.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Regular/1024-1279.pbf b/src/frontend/public/maps/fonts/Roboto Regular/1024-1279.pbf new file mode 100644 index 0000000..a9d9cae --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/1024-1279.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 1024-1279 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/10240-10495.pbf b/src/frontend/public/maps/fonts/Roboto Regular/10240-10495.pbf new file mode 100644 index 0000000..f4761cc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/10240-10495.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 10240-10495 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/10496-10751.pbf b/src/frontend/public/maps/fonts/Roboto Regular/10496-10751.pbf new file mode 100644 index 0000000..9e0afdc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/10496-10751.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 10496-10751 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/10752-11007.pbf b/src/frontend/public/maps/fonts/Roboto Regular/10752-11007.pbf new file mode 100644 index 0000000..a4e3987 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/10752-11007.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 10752-11007 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/11008-11263.pbf b/src/frontend/public/maps/fonts/Roboto Regular/11008-11263.pbf new file mode 100644 index 0000000..88944de --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/11008-11263.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 11008-11263 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/11264-11519.pbf b/src/frontend/public/maps/fonts/Roboto Regular/11264-11519.pbf new file mode 100644 index 0000000..f61d8c5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/11264-11519.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 11264-11519 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/11520-11775.pbf b/src/frontend/public/maps/fonts/Roboto Regular/11520-11775.pbf new file mode 100644 index 0000000..b442db2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/11520-11775.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 11520-11775 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/11776-12031.pbf b/src/frontend/public/maps/fonts/Roboto Regular/11776-12031.pbf new file mode 100644 index 0000000..53e4d73 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/11776-12031.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 11776-12031 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/12032-12287.pbf b/src/frontend/public/maps/fonts/Roboto Regular/12032-12287.pbf new file mode 100644 index 0000000..c076fe9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/12032-12287.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 12032-12287 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/12288-12543.pbf b/src/frontend/public/maps/fonts/Roboto Regular/12288-12543.pbf new file mode 100644 index 0000000..6a35a8a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/12288-12543.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 12288-12543 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/12544-12799.pbf b/src/frontend/public/maps/fonts/Roboto Regular/12544-12799.pbf new file mode 100644 index 0000000..e54d055 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/12544-12799.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 12544-12799 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/1280-1535.pbf b/src/frontend/public/maps/fonts/Roboto Regular/1280-1535.pbf new file mode 100644 index 0000000..03fa54a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/1280-1535.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 1280-1535 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/12800-13055.pbf b/src/frontend/public/maps/fonts/Roboto Regular/12800-13055.pbf new file mode 100644 index 0000000..0f781aa --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/12800-13055.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 12800-13055 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/13056-13311.pbf b/src/frontend/public/maps/fonts/Roboto Regular/13056-13311.pbf new file mode 100644 index 0000000..620e3ec --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/13056-13311.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 13056-13311 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/13312-13567.pbf b/src/frontend/public/maps/fonts/Roboto Regular/13312-13567.pbf new file mode 100644 index 0000000..ffd9849 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/13312-13567.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 13312-13567 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/13568-13823.pbf b/src/frontend/public/maps/fonts/Roboto Regular/13568-13823.pbf new file mode 100644 index 0000000..f6f3f23 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/13568-13823.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 13568-13823 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/13824-14079.pbf b/src/frontend/public/maps/fonts/Roboto Regular/13824-14079.pbf new file mode 100644 index 0000000..2c5fa10 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/13824-14079.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 13824-14079 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/14080-14335.pbf b/src/frontend/public/maps/fonts/Roboto Regular/14080-14335.pbf new file mode 100644 index 0000000..ab3ca22 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/14080-14335.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 14080-14335 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/14336-14591.pbf b/src/frontend/public/maps/fonts/Roboto Regular/14336-14591.pbf new file mode 100644 index 0000000..50823f0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/14336-14591.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 14336-14591 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/14592-14847.pbf b/src/frontend/public/maps/fonts/Roboto Regular/14592-14847.pbf new file mode 100644 index 0000000..f3a38a5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/14592-14847.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 14592-14847 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/14848-15103.pbf b/src/frontend/public/maps/fonts/Roboto Regular/14848-15103.pbf new file mode 100644 index 0000000..eb8e81b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/14848-15103.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 14848-15103 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/15104-15359.pbf b/src/frontend/public/maps/fonts/Roboto Regular/15104-15359.pbf new file mode 100644 index 0000000..ef25ec5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/15104-15359.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 15104-15359 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/1536-1791.pbf b/src/frontend/public/maps/fonts/Roboto Regular/1536-1791.pbf new file mode 100644 index 0000000..0fa8abe --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/1536-1791.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 1536-1791 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/15360-15615.pbf b/src/frontend/public/maps/fonts/Roboto Regular/15360-15615.pbf new file mode 100644 index 0000000..8f4bc84 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/15360-15615.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 15360-15615 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/15616-15871.pbf b/src/frontend/public/maps/fonts/Roboto Regular/15616-15871.pbf new file mode 100644 index 0000000..9060f1e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/15616-15871.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 15616-15871 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/15872-16127.pbf b/src/frontend/public/maps/fonts/Roboto Regular/15872-16127.pbf new file mode 100644 index 0000000..5539710 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/15872-16127.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 15872-16127 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/16128-16383.pbf b/src/frontend/public/maps/fonts/Roboto Regular/16128-16383.pbf new file mode 100644 index 0000000..8f5aac2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/16128-16383.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 16128-16383 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/16384-16639.pbf b/src/frontend/public/maps/fonts/Roboto Regular/16384-16639.pbf new file mode 100644 index 0000000..31952b9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/16384-16639.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 16384-16639 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/16640-16895.pbf b/src/frontend/public/maps/fonts/Roboto Regular/16640-16895.pbf new file mode 100644 index 0000000..8ca5621 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/16640-16895.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 16640-16895 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/16896-17151.pbf b/src/frontend/public/maps/fonts/Roboto Regular/16896-17151.pbf new file mode 100644 index 0000000..464f8d0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/16896-17151.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 16896-17151 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/17152-17407.pbf b/src/frontend/public/maps/fonts/Roboto Regular/17152-17407.pbf new file mode 100644 index 0000000..c7c6b8f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/17152-17407.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 17152-17407 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/17408-17663.pbf b/src/frontend/public/maps/fonts/Roboto Regular/17408-17663.pbf new file mode 100644 index 0000000..a18009a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/17408-17663.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 17408-17663 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/17664-17919.pbf b/src/frontend/public/maps/fonts/Roboto Regular/17664-17919.pbf new file mode 100644 index 0000000..634db3e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/17664-17919.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 17664-17919 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/1792-2047.pbf b/src/frontend/public/maps/fonts/Roboto Regular/1792-2047.pbf new file mode 100644 index 0000000..82e1378 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/1792-2047.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 1792-2047 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/17920-18175.pbf b/src/frontend/public/maps/fonts/Roboto Regular/17920-18175.pbf new file mode 100644 index 0000000..e38a695 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/17920-18175.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 17920-18175 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/18176-18431.pbf b/src/frontend/public/maps/fonts/Roboto Regular/18176-18431.pbf new file mode 100644 index 0000000..26e3334 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/18176-18431.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 18176-18431 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/18432-18687.pbf b/src/frontend/public/maps/fonts/Roboto Regular/18432-18687.pbf new file mode 100644 index 0000000..e5e848d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/18432-18687.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 18432-18687 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/18688-18943.pbf b/src/frontend/public/maps/fonts/Roboto Regular/18688-18943.pbf new file mode 100644 index 0000000..6403847 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/18688-18943.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 18688-18943 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/18944-19199.pbf b/src/frontend/public/maps/fonts/Roboto Regular/18944-19199.pbf new file mode 100644 index 0000000..fb02481 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/18944-19199.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 18944-19199 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/19200-19455.pbf b/src/frontend/public/maps/fonts/Roboto Regular/19200-19455.pbf new file mode 100644 index 0000000..4486f9a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/19200-19455.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 19200-19455 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/19456-19711.pbf b/src/frontend/public/maps/fonts/Roboto Regular/19456-19711.pbf new file mode 100644 index 0000000..b803300 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/19456-19711.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 19456-19711 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/19712-19967.pbf b/src/frontend/public/maps/fonts/Roboto Regular/19712-19967.pbf new file mode 100644 index 0000000..154040a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/19712-19967.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 19712-19967 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/19968-20223.pbf b/src/frontend/public/maps/fonts/Roboto Regular/19968-20223.pbf new file mode 100644 index 0000000..e08aa3b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/19968-20223.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 19968-20223 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/20224-20479.pbf b/src/frontend/public/maps/fonts/Roboto Regular/20224-20479.pbf new file mode 100644 index 0000000..d0a0b96 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/20224-20479.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 20224-20479 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/2048-2303.pbf b/src/frontend/public/maps/fonts/Roboto Regular/2048-2303.pbf new file mode 100644 index 0000000..4c971fd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/2048-2303.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 2048-2303 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/20480-20735.pbf b/src/frontend/public/maps/fonts/Roboto Regular/20480-20735.pbf new file mode 100644 index 0000000..ea650d4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/20480-20735.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 20480-20735 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/20736-20991.pbf b/src/frontend/public/maps/fonts/Roboto Regular/20736-20991.pbf new file mode 100644 index 0000000..2534396 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/20736-20991.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 20736-20991 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/20992-21247.pbf b/src/frontend/public/maps/fonts/Roboto Regular/20992-21247.pbf new file mode 100644 index 0000000..bac89f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/20992-21247.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 20992-21247 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/21248-21503.pbf b/src/frontend/public/maps/fonts/Roboto Regular/21248-21503.pbf new file mode 100644 index 0000000..643cbcf --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/21248-21503.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 21248-21503 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/21504-21759.pbf b/src/frontend/public/maps/fonts/Roboto Regular/21504-21759.pbf new file mode 100644 index 0000000..3453bf7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/21504-21759.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 21504-21759 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/21760-22015.pbf b/src/frontend/public/maps/fonts/Roboto Regular/21760-22015.pbf new file mode 100644 index 0000000..77396ea --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/21760-22015.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 21760-22015 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/22016-22271.pbf b/src/frontend/public/maps/fonts/Roboto Regular/22016-22271.pbf new file mode 100644 index 0000000..3403989 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/22016-22271.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 22016-22271 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/22272-22527.pbf b/src/frontend/public/maps/fonts/Roboto Regular/22272-22527.pbf new file mode 100644 index 0000000..fa58b8f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/22272-22527.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 22272-22527 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/22528-22783.pbf b/src/frontend/public/maps/fonts/Roboto Regular/22528-22783.pbf new file mode 100644 index 0000000..2557ae7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/22528-22783.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 22528-22783 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/22784-23039.pbf b/src/frontend/public/maps/fonts/Roboto Regular/22784-23039.pbf new file mode 100644 index 0000000..3893ff6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/22784-23039.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 22784-23039 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/2304-2559.pbf b/src/frontend/public/maps/fonts/Roboto Regular/2304-2559.pbf new file mode 100644 index 0000000..1a08d26 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/2304-2559.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 2304-2559 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/23040-23295.pbf b/src/frontend/public/maps/fonts/Roboto Regular/23040-23295.pbf new file mode 100644 index 0000000..ce80f64 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/23040-23295.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 23040-23295 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/23296-23551.pbf b/src/frontend/public/maps/fonts/Roboto Regular/23296-23551.pbf new file mode 100644 index 0000000..340560f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/23296-23551.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 23296-23551 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/23552-23807.pbf b/src/frontend/public/maps/fonts/Roboto Regular/23552-23807.pbf new file mode 100644 index 0000000..5d09b1d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/23552-23807.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 23552-23807 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/23808-24063.pbf b/src/frontend/public/maps/fonts/Roboto Regular/23808-24063.pbf new file mode 100644 index 0000000..199868f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/23808-24063.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 23808-24063 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/24064-24319.pbf b/src/frontend/public/maps/fonts/Roboto Regular/24064-24319.pbf new file mode 100644 index 0000000..9bdd2d3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/24064-24319.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 24064-24319 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/24320-24575.pbf b/src/frontend/public/maps/fonts/Roboto Regular/24320-24575.pbf new file mode 100644 index 0000000..9ba6005 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/24320-24575.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 24320-24575 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/24576-24831.pbf b/src/frontend/public/maps/fonts/Roboto Regular/24576-24831.pbf new file mode 100644 index 0000000..cfc14fc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/24576-24831.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 24576-24831 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/24832-25087.pbf b/src/frontend/public/maps/fonts/Roboto Regular/24832-25087.pbf new file mode 100644 index 0000000..5664acd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/24832-25087.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 24832-25087 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/25088-25343.pbf b/src/frontend/public/maps/fonts/Roboto Regular/25088-25343.pbf new file mode 100644 index 0000000..91df48a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/25088-25343.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 25088-25343 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/25344-25599.pbf b/src/frontend/public/maps/fonts/Roboto Regular/25344-25599.pbf new file mode 100644 index 0000000..686f741 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/25344-25599.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 25344-25599 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/256-511.pbf b/src/frontend/public/maps/fonts/Roboto Regular/256-511.pbf new file mode 100644 index 0000000..d72b2a4 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Regular/256-511.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Regular/2560-2815.pbf b/src/frontend/public/maps/fonts/Roboto Regular/2560-2815.pbf new file mode 100644 index 0000000..d80f3aa --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/2560-2815.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 2560-2815 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/25600-25855.pbf b/src/frontend/public/maps/fonts/Roboto Regular/25600-25855.pbf new file mode 100644 index 0000000..6899711 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/25600-25855.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 25600-25855 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/25856-26111.pbf b/src/frontend/public/maps/fonts/Roboto Regular/25856-26111.pbf new file mode 100644 index 0000000..9841a6e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/25856-26111.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 25856-26111 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/26112-26367.pbf b/src/frontend/public/maps/fonts/Roboto Regular/26112-26367.pbf new file mode 100644 index 0000000..5ee5bad --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/26112-26367.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 26112-26367 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/26368-26623.pbf b/src/frontend/public/maps/fonts/Roboto Regular/26368-26623.pbf new file mode 100644 index 0000000..0ca272a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/26368-26623.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 26368-26623 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/26624-26879.pbf b/src/frontend/public/maps/fonts/Roboto Regular/26624-26879.pbf new file mode 100644 index 0000000..cc40b8d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/26624-26879.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 26624-26879 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/26880-27135.pbf b/src/frontend/public/maps/fonts/Roboto Regular/26880-27135.pbf new file mode 100644 index 0000000..6f85e2c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/26880-27135.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 26880-27135 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/27136-27391.pbf b/src/frontend/public/maps/fonts/Roboto Regular/27136-27391.pbf new file mode 100644 index 0000000..99248ff --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/27136-27391.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 27136-27391 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/27392-27647.pbf b/src/frontend/public/maps/fonts/Roboto Regular/27392-27647.pbf new file mode 100644 index 0000000..1ddc8ff --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/27392-27647.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 27392-27647 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/27648-27903.pbf b/src/frontend/public/maps/fonts/Roboto Regular/27648-27903.pbf new file mode 100644 index 0000000..0247bd6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/27648-27903.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 27648-27903 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/27904-28159.pbf b/src/frontend/public/maps/fonts/Roboto Regular/27904-28159.pbf new file mode 100644 index 0000000..6ad3804 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/27904-28159.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 27904-28159 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/2816-3071.pbf b/src/frontend/public/maps/fonts/Roboto Regular/2816-3071.pbf new file mode 100644 index 0000000..fe65a4b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/2816-3071.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 2816-3071 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/28160-28415.pbf b/src/frontend/public/maps/fonts/Roboto Regular/28160-28415.pbf new file mode 100644 index 0000000..1745623 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/28160-28415.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 28160-28415 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/28416-28671.pbf b/src/frontend/public/maps/fonts/Roboto Regular/28416-28671.pbf new file mode 100644 index 0000000..fdd2b28 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/28416-28671.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 28416-28671 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/28672-28927.pbf b/src/frontend/public/maps/fonts/Roboto Regular/28672-28927.pbf new file mode 100644 index 0000000..2d47b97 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/28672-28927.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 28672-28927 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/28928-29183.pbf b/src/frontend/public/maps/fonts/Roboto Regular/28928-29183.pbf new file mode 100644 index 0000000..c693a5c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/28928-29183.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 28928-29183 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/29184-29439.pbf b/src/frontend/public/maps/fonts/Roboto Regular/29184-29439.pbf new file mode 100644 index 0000000..a310dfe --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/29184-29439.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 29184-29439 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/29440-29695.pbf b/src/frontend/public/maps/fonts/Roboto Regular/29440-29695.pbf new file mode 100644 index 0000000..425dba7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/29440-29695.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 29440-29695 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/29696-29951.pbf b/src/frontend/public/maps/fonts/Roboto Regular/29696-29951.pbf new file mode 100644 index 0000000..6e376ce --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/29696-29951.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 29696-29951 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/29952-30207.pbf b/src/frontend/public/maps/fonts/Roboto Regular/29952-30207.pbf new file mode 100644 index 0000000..4794332 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/29952-30207.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 29952-30207 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/30208-30463.pbf b/src/frontend/public/maps/fonts/Roboto Regular/30208-30463.pbf new file mode 100644 index 0000000..d93e2fe --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/30208-30463.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 30208-30463 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/30464-30719.pbf b/src/frontend/public/maps/fonts/Roboto Regular/30464-30719.pbf new file mode 100644 index 0000000..72babe1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/30464-30719.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 30464-30719 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/3072-3327.pbf b/src/frontend/public/maps/fonts/Roboto Regular/3072-3327.pbf new file mode 100644 index 0000000..8cf0749 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/3072-3327.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 3072-3327 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/30720-30975.pbf b/src/frontend/public/maps/fonts/Roboto Regular/30720-30975.pbf new file mode 100644 index 0000000..7f7b4dd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/30720-30975.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 30720-30975 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/30976-31231.pbf b/src/frontend/public/maps/fonts/Roboto Regular/30976-31231.pbf new file mode 100644 index 0000000..121f2c2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/30976-31231.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 30976-31231 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/31232-31487.pbf b/src/frontend/public/maps/fonts/Roboto Regular/31232-31487.pbf new file mode 100644 index 0000000..4d59fa1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/31232-31487.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 31232-31487 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/31488-31743.pbf b/src/frontend/public/maps/fonts/Roboto Regular/31488-31743.pbf new file mode 100644 index 0000000..97d591a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/31488-31743.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 31488-31743 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/31744-31999.pbf b/src/frontend/public/maps/fonts/Roboto Regular/31744-31999.pbf new file mode 100644 index 0000000..4b6bdaf --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/31744-31999.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 31744-31999 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/32000-32255.pbf b/src/frontend/public/maps/fonts/Roboto Regular/32000-32255.pbf new file mode 100644 index 0000000..076e015 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/32000-32255.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 32000-32255 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/32256-32511.pbf b/src/frontend/public/maps/fonts/Roboto Regular/32256-32511.pbf new file mode 100644 index 0000000..51a1f16 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/32256-32511.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 32256-32511 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/32512-32767.pbf b/src/frontend/public/maps/fonts/Roboto Regular/32512-32767.pbf new file mode 100644 index 0000000..9d0ea29 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/32512-32767.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 32512-32767 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/32768-33023.pbf b/src/frontend/public/maps/fonts/Roboto Regular/32768-33023.pbf new file mode 100644 index 0000000..babe855 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/32768-33023.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 32768-33023 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/33024-33279.pbf b/src/frontend/public/maps/fonts/Roboto Regular/33024-33279.pbf new file mode 100644 index 0000000..6654138 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/33024-33279.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 33024-33279 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/3328-3583.pbf b/src/frontend/public/maps/fonts/Roboto Regular/3328-3583.pbf new file mode 100644 index 0000000..097dfac --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/3328-3583.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 3328-3583 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/33280-33535.pbf b/src/frontend/public/maps/fonts/Roboto Regular/33280-33535.pbf new file mode 100644 index 0000000..f309ee0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/33280-33535.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 33280-33535 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/33536-33791.pbf b/src/frontend/public/maps/fonts/Roboto Regular/33536-33791.pbf new file mode 100644 index 0000000..a4dc2af --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/33536-33791.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 33536-33791 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/33792-34047.pbf b/src/frontend/public/maps/fonts/Roboto Regular/33792-34047.pbf new file mode 100644 index 0000000..ac7a712 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/33792-34047.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 33792-34047 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/34048-34303.pbf b/src/frontend/public/maps/fonts/Roboto Regular/34048-34303.pbf new file mode 100644 index 0000000..88ff7ce --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/34048-34303.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 34048-34303 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/34304-34559.pbf b/src/frontend/public/maps/fonts/Roboto Regular/34304-34559.pbf new file mode 100644 index 0000000..e5dc3ec --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/34304-34559.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 34304-34559 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/34560-34815.pbf b/src/frontend/public/maps/fonts/Roboto Regular/34560-34815.pbf new file mode 100644 index 0000000..852be6b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/34560-34815.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 34560-34815 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/34816-35071.pbf b/src/frontend/public/maps/fonts/Roboto Regular/34816-35071.pbf new file mode 100644 index 0000000..aeb5cbb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/34816-35071.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 34816-35071 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/35072-35327.pbf b/src/frontend/public/maps/fonts/Roboto Regular/35072-35327.pbf new file mode 100644 index 0000000..3028a30 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/35072-35327.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 35072-35327 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/35328-35583.pbf b/src/frontend/public/maps/fonts/Roboto Regular/35328-35583.pbf new file mode 100644 index 0000000..1f615c5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/35328-35583.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 35328-35583 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/35584-35839.pbf b/src/frontend/public/maps/fonts/Roboto Regular/35584-35839.pbf new file mode 100644 index 0000000..4c80b87 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/35584-35839.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 35584-35839 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/3584-3839.pbf b/src/frontend/public/maps/fonts/Roboto Regular/3584-3839.pbf new file mode 100644 index 0000000..d72468b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/3584-3839.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 3584-3839 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/35840-36095.pbf b/src/frontend/public/maps/fonts/Roboto Regular/35840-36095.pbf new file mode 100644 index 0000000..0cf4a14 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/35840-36095.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 35840-36095 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/36096-36351.pbf b/src/frontend/public/maps/fonts/Roboto Regular/36096-36351.pbf new file mode 100644 index 0000000..cbe9855 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/36096-36351.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 36096-36351 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/36352-36607.pbf b/src/frontend/public/maps/fonts/Roboto Regular/36352-36607.pbf new file mode 100644 index 0000000..a865eb2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/36352-36607.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 36352-36607 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/36608-36863.pbf b/src/frontend/public/maps/fonts/Roboto Regular/36608-36863.pbf new file mode 100644 index 0000000..acb20c3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/36608-36863.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 36608-36863 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/36864-37119.pbf b/src/frontend/public/maps/fonts/Roboto Regular/36864-37119.pbf new file mode 100644 index 0000000..efbbd02 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/36864-37119.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 36864-37119 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/37120-37375.pbf b/src/frontend/public/maps/fonts/Roboto Regular/37120-37375.pbf new file mode 100644 index 0000000..2f9ffce --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/37120-37375.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 37120-37375 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/37376-37631.pbf b/src/frontend/public/maps/fonts/Roboto Regular/37376-37631.pbf new file mode 100644 index 0000000..67ecb63 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/37376-37631.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 37376-37631 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/37632-37887.pbf b/src/frontend/public/maps/fonts/Roboto Regular/37632-37887.pbf new file mode 100644 index 0000000..c096e93 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/37632-37887.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 37632-37887 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/37888-38143.pbf b/src/frontend/public/maps/fonts/Roboto Regular/37888-38143.pbf new file mode 100644 index 0000000..f1e19e9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/37888-38143.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 37888-38143 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/38144-38399.pbf b/src/frontend/public/maps/fonts/Roboto Regular/38144-38399.pbf new file mode 100644 index 0000000..5100a90 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/38144-38399.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 38144-38399 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/3840-4095.pbf b/src/frontend/public/maps/fonts/Roboto Regular/3840-4095.pbf new file mode 100644 index 0000000..67ae6ce --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/3840-4095.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 3840-4095 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/38400-38655.pbf b/src/frontend/public/maps/fonts/Roboto Regular/38400-38655.pbf new file mode 100644 index 0000000..41b5d4e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/38400-38655.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 38400-38655 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/38656-38911.pbf b/src/frontend/public/maps/fonts/Roboto Regular/38656-38911.pbf new file mode 100644 index 0000000..67a24f6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/38656-38911.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 38656-38911 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/38912-39167.pbf b/src/frontend/public/maps/fonts/Roboto Regular/38912-39167.pbf new file mode 100644 index 0000000..2e8ac27 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/38912-39167.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 38912-39167 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/39168-39423.pbf b/src/frontend/public/maps/fonts/Roboto Regular/39168-39423.pbf new file mode 100644 index 0000000..8eb5573 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/39168-39423.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 39168-39423 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/39424-39679.pbf b/src/frontend/public/maps/fonts/Roboto Regular/39424-39679.pbf new file mode 100644 index 0000000..dffb907 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/39424-39679.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 39424-39679 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/39680-39935.pbf b/src/frontend/public/maps/fonts/Roboto Regular/39680-39935.pbf new file mode 100644 index 0000000..f44e1de --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/39680-39935.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 39680-39935 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/39936-40191.pbf b/src/frontend/public/maps/fonts/Roboto Regular/39936-40191.pbf new file mode 100644 index 0000000..7ee9f4f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/39936-40191.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 39936-40191 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/40192-40447.pbf b/src/frontend/public/maps/fonts/Roboto Regular/40192-40447.pbf new file mode 100644 index 0000000..992f5b4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/40192-40447.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 40192-40447 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/40448-40703.pbf b/src/frontend/public/maps/fonts/Roboto Regular/40448-40703.pbf new file mode 100644 index 0000000..b2bb17d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/40448-40703.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 40448-40703 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/40704-40959.pbf b/src/frontend/public/maps/fonts/Roboto Regular/40704-40959.pbf new file mode 100644 index 0000000..f19fcb7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/40704-40959.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 40704-40959 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/4096-4351.pbf b/src/frontend/public/maps/fonts/Roboto Regular/4096-4351.pbf new file mode 100644 index 0000000..e057bbd --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/4096-4351.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 4096-4351 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/40960-41215.pbf b/src/frontend/public/maps/fonts/Roboto Regular/40960-41215.pbf new file mode 100644 index 0000000..7ac0785 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/40960-41215.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 40960-41215 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/41216-41471.pbf b/src/frontend/public/maps/fonts/Roboto Regular/41216-41471.pbf new file mode 100644 index 0000000..bdda576 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/41216-41471.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 41216-41471 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/41472-41727.pbf b/src/frontend/public/maps/fonts/Roboto Regular/41472-41727.pbf new file mode 100644 index 0000000..79b9381 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/41472-41727.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 41472-41727 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/41728-41983.pbf b/src/frontend/public/maps/fonts/Roboto Regular/41728-41983.pbf new file mode 100644 index 0000000..4884bfc --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/41728-41983.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 41728-41983 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/41984-42239.pbf b/src/frontend/public/maps/fonts/Roboto Regular/41984-42239.pbf new file mode 100644 index 0000000..f5636ba --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/41984-42239.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 41984-42239 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/42240-42495.pbf b/src/frontend/public/maps/fonts/Roboto Regular/42240-42495.pbf new file mode 100644 index 0000000..12e9d6a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/42240-42495.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 42240-42495 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/42496-42751.pbf b/src/frontend/public/maps/fonts/Roboto Regular/42496-42751.pbf new file mode 100644 index 0000000..07df9fb --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/42496-42751.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 42496-42751 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/42752-43007.pbf b/src/frontend/public/maps/fonts/Roboto Regular/42752-43007.pbf new file mode 100644 index 0000000..0f522e7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/42752-43007.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 42752-43007 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/43008-43263.pbf b/src/frontend/public/maps/fonts/Roboto Regular/43008-43263.pbf new file mode 100644 index 0000000..d7b326c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/43008-43263.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 43008-43263 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/43264-43519.pbf b/src/frontend/public/maps/fonts/Roboto Regular/43264-43519.pbf new file mode 100644 index 0000000..7114ac5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/43264-43519.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 43264-43519 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/4352-4607.pbf b/src/frontend/public/maps/fonts/Roboto Regular/4352-4607.pbf new file mode 100644 index 0000000..2a964b7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/4352-4607.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 4352-4607 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/43520-43775.pbf b/src/frontend/public/maps/fonts/Roboto Regular/43520-43775.pbf new file mode 100644 index 0000000..843dea6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/43520-43775.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 43520-43775 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/43776-44031.pbf b/src/frontend/public/maps/fonts/Roboto Regular/43776-44031.pbf new file mode 100644 index 0000000..ac41734 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/43776-44031.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 43776-44031 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/44032-44287.pbf b/src/frontend/public/maps/fonts/Roboto Regular/44032-44287.pbf new file mode 100644 index 0000000..08a0ac0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/44032-44287.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 44032-44287 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/44288-44543.pbf b/src/frontend/public/maps/fonts/Roboto Regular/44288-44543.pbf new file mode 100644 index 0000000..c5227a6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/44288-44543.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 44288-44543 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/44544-44799.pbf b/src/frontend/public/maps/fonts/Roboto Regular/44544-44799.pbf new file mode 100644 index 0000000..6146d67 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/44544-44799.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 44544-44799 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/44800-45055.pbf b/src/frontend/public/maps/fonts/Roboto Regular/44800-45055.pbf new file mode 100644 index 0000000..d307a68 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/44800-45055.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 44800-45055 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/45056-45311.pbf b/src/frontend/public/maps/fonts/Roboto Regular/45056-45311.pbf new file mode 100644 index 0000000..241f81b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/45056-45311.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 45056-45311 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/45312-45567.pbf b/src/frontend/public/maps/fonts/Roboto Regular/45312-45567.pbf new file mode 100644 index 0000000..6f7bef4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/45312-45567.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 45312-45567 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/45568-45823.pbf b/src/frontend/public/maps/fonts/Roboto Regular/45568-45823.pbf new file mode 100644 index 0000000..1a8925a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/45568-45823.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 45568-45823 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/45824-46079.pbf b/src/frontend/public/maps/fonts/Roboto Regular/45824-46079.pbf new file mode 100644 index 0000000..6a58014 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/45824-46079.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 45824-46079 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/4608-4863.pbf b/src/frontend/public/maps/fonts/Roboto Regular/4608-4863.pbf new file mode 100644 index 0000000..af38394 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/4608-4863.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 4608-4863 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/46080-46335.pbf b/src/frontend/public/maps/fonts/Roboto Regular/46080-46335.pbf new file mode 100644 index 0000000..2df8b9c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/46080-46335.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 46080-46335 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/46336-46591.pbf b/src/frontend/public/maps/fonts/Roboto Regular/46336-46591.pbf new file mode 100644 index 0000000..ff0e152 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/46336-46591.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 46336-46591 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/46592-46847.pbf b/src/frontend/public/maps/fonts/Roboto Regular/46592-46847.pbf new file mode 100644 index 0000000..1d80268 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/46592-46847.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 46592-46847 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/46848-47103.pbf b/src/frontend/public/maps/fonts/Roboto Regular/46848-47103.pbf new file mode 100644 index 0000000..6b9209b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/46848-47103.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 46848-47103 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/47104-47359.pbf b/src/frontend/public/maps/fonts/Roboto Regular/47104-47359.pbf new file mode 100644 index 0000000..0ebb209 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/47104-47359.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 47104-47359 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/47360-47615.pbf b/src/frontend/public/maps/fonts/Roboto Regular/47360-47615.pbf new file mode 100644 index 0000000..0eab92c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/47360-47615.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 47360-47615 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/47616-47871.pbf b/src/frontend/public/maps/fonts/Roboto Regular/47616-47871.pbf new file mode 100644 index 0000000..43d6e0c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/47616-47871.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 47616-47871 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/47872-48127.pbf b/src/frontend/public/maps/fonts/Roboto Regular/47872-48127.pbf new file mode 100644 index 0000000..5b5de9a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/47872-48127.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 47872-48127 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/48128-48383.pbf b/src/frontend/public/maps/fonts/Roboto Regular/48128-48383.pbf new file mode 100644 index 0000000..d151296 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/48128-48383.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 48128-48383 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/48384-48639.pbf b/src/frontend/public/maps/fonts/Roboto Regular/48384-48639.pbf new file mode 100644 index 0000000..6ee8193 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/48384-48639.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 48384-48639 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/4864-5119.pbf b/src/frontend/public/maps/fonts/Roboto Regular/4864-5119.pbf new file mode 100644 index 0000000..985bcb3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/4864-5119.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 4864-5119 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/48640-48895.pbf b/src/frontend/public/maps/fonts/Roboto Regular/48640-48895.pbf new file mode 100644 index 0000000..756aea4 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/48640-48895.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 48640-48895 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/48896-49151.pbf b/src/frontend/public/maps/fonts/Roboto Regular/48896-49151.pbf new file mode 100644 index 0000000..08fd70d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/48896-49151.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 48896-49151 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/49152-49407.pbf b/src/frontend/public/maps/fonts/Roboto Regular/49152-49407.pbf new file mode 100644 index 0000000..ff8a445 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/49152-49407.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 49152-49407 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/49408-49663.pbf b/src/frontend/public/maps/fonts/Roboto Regular/49408-49663.pbf new file mode 100644 index 0000000..dff6ac5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/49408-49663.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 49408-49663 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/49664-49919.pbf b/src/frontend/public/maps/fonts/Roboto Regular/49664-49919.pbf new file mode 100644 index 0000000..0653ef7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/49664-49919.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 49664-49919 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/49920-50175.pbf b/src/frontend/public/maps/fonts/Roboto Regular/49920-50175.pbf new file mode 100644 index 0000000..5abf41c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/49920-50175.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 49920-50175 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/50176-50431.pbf b/src/frontend/public/maps/fonts/Roboto Regular/50176-50431.pbf new file mode 100644 index 0000000..6a7e7ed --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/50176-50431.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 50176-50431 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/50432-50687.pbf b/src/frontend/public/maps/fonts/Roboto Regular/50432-50687.pbf new file mode 100644 index 0000000..10e3e5f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/50432-50687.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 50432-50687 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/50688-50943.pbf b/src/frontend/public/maps/fonts/Roboto Regular/50688-50943.pbf new file mode 100644 index 0000000..dc9b4c1 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/50688-50943.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 50688-50943 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/50944-51199.pbf b/src/frontend/public/maps/fonts/Roboto Regular/50944-51199.pbf new file mode 100644 index 0000000..689a16d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/50944-51199.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 50944-51199 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/512-767.pbf b/src/frontend/public/maps/fonts/Roboto Regular/512-767.pbf new file mode 100644 index 0000000..3bede64 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/512-767.pbf @@ -0,0 +1,4 @@ + + +Roboto Regular512-767{ (0 8l>Ugooom`KOkx^XxiYyʪjZzʪj`Ƨhpڼa|ʯuW{gKlpVYqbNkçgYwd_Իɲz\akP[xoY?Kcu|}{lovwrfVB+ \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/5120-5375.pbf b/src/frontend/public/maps/fonts/Roboto Regular/5120-5375.pbf new file mode 100644 index 0000000..1b2454d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/5120-5375.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 5120-5375 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/51200-51455.pbf b/src/frontend/public/maps/fonts/Roboto Regular/51200-51455.pbf new file mode 100644 index 0000000..6fd7f85 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/51200-51455.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 51200-51455 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/51456-51711.pbf b/src/frontend/public/maps/fonts/Roboto Regular/51456-51711.pbf new file mode 100644 index 0000000..0c2fd4b --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/51456-51711.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 51456-51711 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/51712-51967.pbf b/src/frontend/public/maps/fonts/Roboto Regular/51712-51967.pbf new file mode 100644 index 0000000..128b56f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/51712-51967.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 51712-51967 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/51968-52223.pbf b/src/frontend/public/maps/fonts/Roboto Regular/51968-52223.pbf new file mode 100644 index 0000000..89a96da --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/51968-52223.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 51968-52223 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/52224-52479.pbf b/src/frontend/public/maps/fonts/Roboto Regular/52224-52479.pbf new file mode 100644 index 0000000..9b6d4b0 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/52224-52479.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 52224-52479 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/52480-52735.pbf b/src/frontend/public/maps/fonts/Roboto Regular/52480-52735.pbf new file mode 100644 index 0000000..e21ee17 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/52480-52735.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 52480-52735 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/52736-52991.pbf b/src/frontend/public/maps/fonts/Roboto Regular/52736-52991.pbf new file mode 100644 index 0000000..10d50e5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/52736-52991.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 52736-52991 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/52992-53247.pbf b/src/frontend/public/maps/fonts/Roboto Regular/52992-53247.pbf new file mode 100644 index 0000000..4616c4d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/52992-53247.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 52992-53247 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/53248-53503.pbf b/src/frontend/public/maps/fonts/Roboto Regular/53248-53503.pbf new file mode 100644 index 0000000..da59e46 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/53248-53503.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 53248-53503 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/53504-53759.pbf b/src/frontend/public/maps/fonts/Roboto Regular/53504-53759.pbf new file mode 100644 index 0000000..7599038 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/53504-53759.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 53504-53759 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/5376-5631.pbf b/src/frontend/public/maps/fonts/Roboto Regular/5376-5631.pbf new file mode 100644 index 0000000..266b18d --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/5376-5631.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 5376-5631 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/53760-54015.pbf b/src/frontend/public/maps/fonts/Roboto Regular/53760-54015.pbf new file mode 100644 index 0000000..281f6b6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/53760-54015.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 53760-54015 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/54016-54271.pbf b/src/frontend/public/maps/fonts/Roboto Regular/54016-54271.pbf new file mode 100644 index 0000000..ee7e816 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/54016-54271.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 54016-54271 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/54272-54527.pbf b/src/frontend/public/maps/fonts/Roboto Regular/54272-54527.pbf new file mode 100644 index 0000000..463e7c9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/54272-54527.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 54272-54527 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/54528-54783.pbf b/src/frontend/public/maps/fonts/Roboto Regular/54528-54783.pbf new file mode 100644 index 0000000..0ddc648 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/54528-54783.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 54528-54783 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/54784-55039.pbf b/src/frontend/public/maps/fonts/Roboto Regular/54784-55039.pbf new file mode 100644 index 0000000..b0f46d2 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/54784-55039.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 54784-55039 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/55040-55295.pbf b/src/frontend/public/maps/fonts/Roboto Regular/55040-55295.pbf new file mode 100644 index 0000000..5883786 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/55040-55295.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 55040-55295 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/55296-55551.pbf b/src/frontend/public/maps/fonts/Roboto Regular/55296-55551.pbf new file mode 100644 index 0000000..6cc9097 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/55296-55551.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 55296-55551 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/55552-55807.pbf b/src/frontend/public/maps/fonts/Roboto Regular/55552-55807.pbf new file mode 100644 index 0000000..7a9bc25 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/55552-55807.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 55552-55807 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/55808-56063.pbf b/src/frontend/public/maps/fonts/Roboto Regular/55808-56063.pbf new file mode 100644 index 0000000..21fceb7 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/55808-56063.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 55808-56063 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/56064-56319.pbf b/src/frontend/public/maps/fonts/Roboto Regular/56064-56319.pbf new file mode 100644 index 0000000..5ef6235 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/56064-56319.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 56064-56319 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/5632-5887.pbf b/src/frontend/public/maps/fonts/Roboto Regular/5632-5887.pbf new file mode 100644 index 0000000..c1bf61c --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/5632-5887.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 5632-5887 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/56320-56575.pbf b/src/frontend/public/maps/fonts/Roboto Regular/56320-56575.pbf new file mode 100644 index 0000000..ca0c9a5 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/56320-56575.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 56320-56575 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/56576-56831.pbf b/src/frontend/public/maps/fonts/Roboto Regular/56576-56831.pbf new file mode 100644 index 0000000..c0c381e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/56576-56831.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 56576-56831 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/56832-57087.pbf b/src/frontend/public/maps/fonts/Roboto Regular/56832-57087.pbf new file mode 100644 index 0000000..8b4ce13 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/56832-57087.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 56832-57087 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/57088-57343.pbf b/src/frontend/public/maps/fonts/Roboto Regular/57088-57343.pbf new file mode 100644 index 0000000..9c7f012 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/57088-57343.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 57088-57343 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/57344-57599.pbf b/src/frontend/public/maps/fonts/Roboto Regular/57344-57599.pbf new file mode 100644 index 0000000..a9651f8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/57344-57599.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 57344-57599 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/57600-57855.pbf b/src/frontend/public/maps/fonts/Roboto Regular/57600-57855.pbf new file mode 100644 index 0000000..c239763 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/57600-57855.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 57600-57855 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/57856-58111.pbf b/src/frontend/public/maps/fonts/Roboto Regular/57856-58111.pbf new file mode 100644 index 0000000..3d44af8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/57856-58111.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 57856-58111 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/58112-58367.pbf b/src/frontend/public/maps/fonts/Roboto Regular/58112-58367.pbf new file mode 100644 index 0000000..65f7838 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/58112-58367.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 58112-58367 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/58368-58623.pbf b/src/frontend/public/maps/fonts/Roboto Regular/58368-58623.pbf new file mode 100644 index 0000000..77daa30 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/58368-58623.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 58368-58623 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/58624-58879.pbf b/src/frontend/public/maps/fonts/Roboto Regular/58624-58879.pbf new file mode 100644 index 0000000..7261e22 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/58624-58879.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 58624-58879 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/5888-6143.pbf b/src/frontend/public/maps/fonts/Roboto Regular/5888-6143.pbf new file mode 100644 index 0000000..22a3584 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/5888-6143.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 5888-6143 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/58880-59135.pbf b/src/frontend/public/maps/fonts/Roboto Regular/58880-59135.pbf new file mode 100644 index 0000000..7bf56be --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/58880-59135.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 58880-59135 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/59136-59391.pbf b/src/frontend/public/maps/fonts/Roboto Regular/59136-59391.pbf new file mode 100644 index 0000000..6d6cd6f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/59136-59391.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 59136-59391 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/59392-59647.pbf b/src/frontend/public/maps/fonts/Roboto Regular/59392-59647.pbf new file mode 100644 index 0000000..00a67ec --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/59392-59647.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 59392-59647 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/59648-59903.pbf b/src/frontend/public/maps/fonts/Roboto Regular/59648-59903.pbf new file mode 100644 index 0000000..0c2f300 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/59648-59903.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 59648-59903 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/59904-60159.pbf b/src/frontend/public/maps/fonts/Roboto Regular/59904-60159.pbf new file mode 100644 index 0000000..6392c99 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/59904-60159.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 59904-60159 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/60160-60415.pbf b/src/frontend/public/maps/fonts/Roboto Regular/60160-60415.pbf new file mode 100644 index 0000000..45c3c99 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/60160-60415.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 60160-60415 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/60416-60671.pbf b/src/frontend/public/maps/fonts/Roboto Regular/60416-60671.pbf new file mode 100644 index 0000000..dc26782 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/60416-60671.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 60416-60671 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/60672-60927.pbf b/src/frontend/public/maps/fonts/Roboto Regular/60672-60927.pbf new file mode 100644 index 0000000..f9ab433 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/60672-60927.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 60672-60927 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/60928-61183.pbf b/src/frontend/public/maps/fonts/Roboto Regular/60928-61183.pbf new file mode 100644 index 0000000..92825c3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/60928-61183.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 60928-61183 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/61184-61439.pbf b/src/frontend/public/maps/fonts/Roboto Regular/61184-61439.pbf new file mode 100644 index 0000000..531158e --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/61184-61439.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 61184-61439 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/6144-6399.pbf b/src/frontend/public/maps/fonts/Roboto Regular/6144-6399.pbf new file mode 100644 index 0000000..23fe130 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/6144-6399.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 6144-6399 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/61440-61695.pbf b/src/frontend/public/maps/fonts/Roboto Regular/61440-61695.pbf new file mode 100644 index 0000000..9dc4e0f --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/61440-61695.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 61440-61695 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/61696-61951.pbf b/src/frontend/public/maps/fonts/Roboto Regular/61696-61951.pbf new file mode 100644 index 0000000..b698bf8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/61696-61951.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 61696-61951 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/61952-62207.pbf b/src/frontend/public/maps/fonts/Roboto Regular/61952-62207.pbf new file mode 100644 index 0000000..e066b23 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/61952-62207.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 61952-62207 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/62208-62463.pbf b/src/frontend/public/maps/fonts/Roboto Regular/62208-62463.pbf new file mode 100644 index 0000000..10c5997 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/62208-62463.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 62208-62463 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/62464-62719.pbf b/src/frontend/public/maps/fonts/Roboto Regular/62464-62719.pbf new file mode 100644 index 0000000..ed03592 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/62464-62719.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 62464-62719 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/62720-62975.pbf b/src/frontend/public/maps/fonts/Roboto Regular/62720-62975.pbf new file mode 100644 index 0000000..38a1df9 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/62720-62975.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 62720-62975 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/62976-63231.pbf b/src/frontend/public/maps/fonts/Roboto Regular/62976-63231.pbf new file mode 100644 index 0000000..227543a --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/62976-63231.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 62976-63231 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/63232-63487.pbf b/src/frontend/public/maps/fonts/Roboto Regular/63232-63487.pbf new file mode 100644 index 0000000..3b1c656 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/63232-63487.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 63232-63487 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/63488-63743.pbf b/src/frontend/public/maps/fonts/Roboto Regular/63488-63743.pbf new file mode 100644 index 0000000..b224bc6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/63488-63743.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 63488-63743 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/63744-63999.pbf b/src/frontend/public/maps/fonts/Roboto Regular/63744-63999.pbf new file mode 100644 index 0000000..88fd2d6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/63744-63999.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 63744-63999 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/6400-6655.pbf b/src/frontend/public/maps/fonts/Roboto Regular/6400-6655.pbf new file mode 100644 index 0000000..8be5011 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/6400-6655.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 6400-6655 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/64000-64255.pbf b/src/frontend/public/maps/fonts/Roboto Regular/64000-64255.pbf new file mode 100644 index 0000000..8583e28 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/64000-64255.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 64000-64255 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/64256-64511.pbf b/src/frontend/public/maps/fonts/Roboto Regular/64256-64511.pbf new file mode 100644 index 0000000..c890258 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/64256-64511.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 64256-64511 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/64512-64767.pbf b/src/frontend/public/maps/fonts/Roboto Regular/64512-64767.pbf new file mode 100644 index 0000000..43d2357 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/64512-64767.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 64512-64767 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/64768-65023.pbf b/src/frontend/public/maps/fonts/Roboto Regular/64768-65023.pbf new file mode 100644 index 0000000..369eda3 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/64768-65023.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 64768-65023 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/65024-65279.pbf b/src/frontend/public/maps/fonts/Roboto Regular/65024-65279.pbf new file mode 100644 index 0000000..1eb753d Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Regular/65024-65279.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Regular/65280-65535.pbf b/src/frontend/public/maps/fonts/Roboto Regular/65280-65535.pbf new file mode 100644 index 0000000..f9a9634 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Regular/65280-65535.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Regular/6656-6911.pbf b/src/frontend/public/maps/fonts/Roboto Regular/6656-6911.pbf new file mode 100644 index 0000000..9202d97 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/6656-6911.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 6656-6911 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/6912-7167.pbf b/src/frontend/public/maps/fonts/Roboto Regular/6912-7167.pbf new file mode 100644 index 0000000..1b33ff6 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/6912-7167.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 6912-7167 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/7168-7423.pbf b/src/frontend/public/maps/fonts/Roboto Regular/7168-7423.pbf new file mode 100644 index 0000000..c189971 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/7168-7423.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 7168-7423 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/7424-7679.pbf b/src/frontend/public/maps/fonts/Roboto Regular/7424-7679.pbf new file mode 100644 index 0000000..c050152 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/7424-7679.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 7424-7679 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/768-1023.pbf b/src/frontend/public/maps/fonts/Roboto Regular/768-1023.pbf new file mode 100644 index 0000000..06872e4 Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Regular/768-1023.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Regular/7680-7935.pbf b/src/frontend/public/maps/fonts/Roboto Regular/7680-7935.pbf new file mode 100644 index 0000000..8f170c8 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/7680-7935.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 7680-7935 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/7936-8191.pbf b/src/frontend/public/maps/fonts/Roboto Regular/7936-8191.pbf new file mode 100644 index 0000000..9c31397 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/7936-8191.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 7936-8191 \ No newline at end of file diff --git a/src/frontend/public/maps/fonts/Roboto Regular/8192-8447.pbf b/src/frontend/public/maps/fonts/Roboto Regular/8192-8447.pbf new file mode 100644 index 0000000..c5f7fbc Binary files /dev/null and b/src/frontend/public/maps/fonts/Roboto Regular/8192-8447.pbf differ diff --git a/src/frontend/public/maps/fonts/Roboto Regular/8448-8703.pbf b/src/frontend/public/maps/fonts/Roboto Regular/8448-8703.pbf new file mode 100644 index 0000000..00a8d76 --- /dev/null +++ b/src/frontend/public/maps/fonts/Roboto Regular/8448-8703.pbf @@ -0,0 +1,3 @@ + + +Roboto Regular 8448-8703 (B08K`nqqqqqqqpdmqqm^H]x}uZgchǺѶĤdfаĤdZtа̮¼ĤdG\qаùͼĤd1QqаƸ¼Ĥd1Qqаƭ̷Ĥd1Qqd,Jhx\ OpenStreetMap contributors, © CARTO", + "tileSize": 256, + "maxzoom": 22, + "minzoom": 0 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#f0f0f0" + } + }, + { + "id": "raster", + "type": "raster", + "source": "carto", + "minzoom": 0, + "maxzoom": 22 + } + + ], + "sprite": "/maps/spritesheet/sprite", + "glyphs": "/maps/fonts/{fontstack}/{range}.pbf" +} diff --git a/src/frontend/public/maps/styles/carto-light.json b/src/frontend/public/maps/styles/carto-light.json new file mode 100644 index 0000000..957386e --- /dev/null +++ b/src/frontend/public/maps/styles/carto-light.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "name": "Light", + "sources": { + "carto": { + "type": "raster", + "tiles": ["https://d.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png"], + "attribution": "© OpenStreetMap contributors, © CARTO", + "tileSize": 256, + "maxzoom": 22, + "minzoom": 0 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#f0f0f0" + } + }, + { + "id": "raster", + "type": "raster", + "source": "carto", + "minzoom": 0, + "maxzoom": 22 + } + + ], + "sprite": "/maps/spritesheet/sprite", + "glyphs": "/maps/fonts/{fontstack}/{range}.pbf" +} diff --git a/src/frontend/react-router.config.ts b/src/frontend/react-router.config.ts new file mode 100644 index 0000000..e2d40cc --- /dev/null +++ b/src/frontend/react-router.config.ts @@ -0,0 +1,8 @@ +import type { Config } from "@react-router/dev/config"; + +export default { + ssr: false, + future: { + unstable_subResourceIntegrity: true + } +} satisfies Config; diff --git a/src/frontend/src/AppContext.tsx b/src/frontend/src/AppContext.tsx deleted file mode 100644 index ecba9e2..0000000 --- a/src/frontend/src/AppContext.tsx +++ /dev/null @@ -1,234 +0,0 @@ -/* eslint-disable react-refresh/only-export-components */ -import { createContext, useContext, useEffect, useState, type ReactNode } from 'react'; -import { type LatLngTuple } from 'leaflet'; - -type Theme = 'light' | 'dark'; -type TableStyle = 'regular'|'grouped'; -type MapPositionMode = 'gps' | 'last'; - -interface MapState { - center: LatLngTuple; - zoom: number; - userLocation: LatLngTuple | null; - hasLocationPermission: boolean; -} - -interface AppContextProps { - theme: Theme; - setTheme: React.Dispatch>; - toggleTheme: () => void; - - tableStyle: TableStyle; - setTableStyle: React.Dispatch>; - toggleTableStyle: () => void; - - mapState: MapState; - setMapCenter: (center: LatLngTuple) => void; - setMapZoom: (zoom: number) => void; - setUserLocation: (location: LatLngTuple | null) => void; - setLocationPermission: (hasPermission: boolean) => void; - updateMapState: (center: LatLngTuple, zoom: number) => void; - - mapPositionMode: MapPositionMode; - setMapPositionMode: (mode: MapPositionMode) => void; -} - -// Coordenadas por defecto centradas en Vigo -const DEFAULT_CENTER: LatLngTuple = [42.229188855975046, -8.72246955783102]; -const DEFAULT_ZOOM = 14; - -const AppContext = createContext(undefined); - -export const AppProvider = ({ children }: { children: ReactNode }) => { - //#region Theme - const [theme, setTheme] = useState(() => { - const savedTheme = localStorage.getItem('theme'); - if (savedTheme) { - return savedTheme as Theme; - } - const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; - return prefersDark ? 'dark' : 'light'; - }); - - const toggleTheme = () => { - setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light')); - }; - - useEffect(() => { - document.documentElement.setAttribute('data-theme', theme); - localStorage.setItem('theme', theme); - }, [theme]); - //#endregion - - //#region Table Style - const [tableStyle, setTableStyle] = useState(() => { - const savedTableStyle = localStorage.getItem('tableStyle'); - if (savedTableStyle) { - return savedTableStyle as TableStyle; - } - return 'regular'; - }); - - const toggleTableStyle = () => { - setTableStyle((prevTableStyle) => (prevTableStyle === 'regular' ? 'grouped' : 'regular')); - } - - useEffect(() => { - localStorage.setItem('tableStyle', tableStyle); - }, [tableStyle]); - //#endregion - - //#region Map Position Mode - const [mapPositionMode, setMapPositionMode] = useState(() => { - const saved = localStorage.getItem('mapPositionMode'); - return saved === 'last' ? 'last' : 'gps'; - }); - - useEffect(() => { - localStorage.setItem('mapPositionMode', mapPositionMode); - }, [mapPositionMode]); - //#endregion - - //#region Map State - const [mapState, setMapState] = useState(() => { - const savedMapState = localStorage.getItem('mapState'); - if (savedMapState) { - try { - const parsed = JSON.parse(savedMapState); - return { - center: parsed.center || DEFAULT_CENTER, - zoom: parsed.zoom || DEFAULT_ZOOM, - userLocation: parsed.userLocation || null, - hasLocationPermission: parsed.hasLocationPermission || false - }; - } catch (e) { - console.error('Error parsing saved map state', e); - } - } - return { - center: DEFAULT_CENTER, - zoom: DEFAULT_ZOOM, - userLocation: null, - hasLocationPermission: false - }; - }); - - // Helper: check if coordinates are within Vigo bounds - function isWithinVigo([lat, lng]: LatLngTuple): boolean { - // Rough bounding box for Vigo - return lat >= 42.18 && lat <= 42.30 && lng >= -8.78 && lng <= -8.65; - } - - // On app load, if mapPositionMode is 'gps', try to get GPS and set map center - useEffect(() => { - if (mapPositionMode === 'gps') { - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition( - (position) => { - const { latitude, longitude } = position.coords; - const coords: LatLngTuple = [latitude, longitude]; - if (isWithinVigo(coords)) { - setMapState(prev => { - const newState = { ...prev, center: coords, zoom: 16, userLocation: coords }; - localStorage.setItem('mapState', JSON.stringify(newState)); - return newState; - }); - } - }, - () => { - // Ignore error, fallback to last - } - ); - } - } - // If 'last', do nothing (already loaded from localStorage) - }, [mapPositionMode]); - - const setMapCenter = (center: LatLngTuple) => { - setMapState(prev => { - const newState = { ...prev, center }; - localStorage.setItem('mapState', JSON.stringify(newState)); - return newState; - }); - }; - - const setMapZoom = (zoom: number) => { - setMapState(prev => { - const newState = { ...prev, zoom }; - localStorage.setItem('mapState', JSON.stringify(newState)); - return newState; - }); - }; - - const setUserLocation = (userLocation: LatLngTuple | null) => { - setMapState(prev => { - const newState = { ...prev, userLocation }; - localStorage.setItem('mapState', JSON.stringify(newState)); - return newState; - }); - }; - - const setLocationPermission = (hasLocationPermission: boolean) => { - setMapState(prev => { - const newState = { ...prev, hasLocationPermission }; - localStorage.setItem('mapState', JSON.stringify(newState)); - return newState; - }); - }; - - const updateMapState = (center: LatLngTuple, zoom: number) => { - setMapState(prev => { - const newState = { ...prev, center, zoom }; - localStorage.setItem('mapState', JSON.stringify(newState)); - return newState; - }); - }; - //#endregion - - // Tratar de obtener la ubicación del usuario cuando se carga la aplicación si ya se había concedido permiso antes - useEffect(() => { - if (mapState.hasLocationPermission && !mapState.userLocation) { - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition( - (position) => { - const { latitude, longitude } = position.coords; - setUserLocation([latitude, longitude]); - }, - (error) => { - console.error('Error getting location:', error); - setLocationPermission(false); - } - ); - } - } - }, [mapState.hasLocationPermission, mapState.userLocation]); - - return ( - - {children} - - ); -}; - -export const useApp = () => { - const context = useContext(AppContext); - if (!context) { - throw new Error('useApp must be used within a AppProvider'); - } - return context; -}; diff --git a/src/frontend/src/ErrorBoundary.tsx b/src/frontend/src/ErrorBoundary.tsx deleted file mode 100644 index 5c877b7..0000000 --- a/src/frontend/src/ErrorBoundary.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import React, { Component, type ReactNode } from 'react'; - -interface ErrorBoundaryProps { - children: ReactNode; -} - -interface ErrorBoundaryState { - hasError: boolean; - error: Error | null; -} - -class ErrorBoundary extends Component { - constructor(props: ErrorBoundaryProps) { - super(props); - this.state = { - hasError: false, - error: null - }; - } - - static getDerivedStateFromError(error: Error): ErrorBoundaryState { - return { - hasError: true, - error - }; - } - - componentDidCatch(error: Error, errorInfo: React.ErrorInfo) { - console.error("Uncaught error:", error, errorInfo); - } - - render() { - if (this.state.hasError) { - return <> -

    Something went wrong.

    -
    -          {this.state.error?.stack}
    -        
    - ; - } - - return this.props.children; - } -} - -export default ErrorBoundary; diff --git a/src/frontend/src/Layout.css b/src/frontend/src/Layout.css deleted file mode 100644 index f90c5de..0000000 --- a/src/frontend/src/Layout.css +++ /dev/null @@ -1,65 +0,0 @@ -#root { - display: flex; - flex-direction: column; - height: 100vh; - width: 100%; - overflow: hidden; -} - -.main-content { - flex: 1; - overflow: auto; -} - -.navigation-bar { - display: flex; - justify-content: space-around; - align-items: center; - padding: 0.5rem 0; - - background-color: var(--background-color); - border-top: 1px solid var(--border-color); -} - -.navigation-bar__link { - flex: 1 0; - display: flex; - flex-direction: column; - align-items: center; - text-decoration: none; - color: #333; - padding: .25rem 0; - border-radius: .5rem; -} - -.navigation-bar__link svg { - width: 1.75rem; - height: 1.75rem; - margin-bottom: 5px; - fill: none; - stroke-width: 2; -} - -.navigation-bar__link span { - font-size: 14px; - line-height: 1; -} - -.navigation-bar__link.active { - color: var(--button-background-color); -} - -.theme-toggle { - background: none; - border: none; - cursor: pointer; - color: inherit; - display: flex; - align-items: center; - justify-content: center; - padding: 8px; -} - -.theme-toggle:hover { - color: var(--button-hover-background-color); -} diff --git a/src/frontend/src/Layout.tsx b/src/frontend/src/Layout.tsx deleted file mode 100644 index c361adb..0000000 --- a/src/frontend/src/Layout.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { type ReactNode } from 'react'; -import { Link, useLocation } from 'react-router'; -import { MapPin, Map, Settings } from 'lucide-react'; -import './Layout.css'; - -interface LayoutProps { - children: ReactNode; -} - -export function Layout({ children }: LayoutProps) { - const location = useLocation(); - - const navItems = [ - { - name: 'Paradas', - icon: MapPin, - path: '/stops' - }, - { - name: 'Mapa', - icon: Map, - path: '/map' - }, - { - name: 'Ajustes', - icon: Settings, - path: '/settings' - } - ]; - - return ( - <> -
    - {children} -
    -
    - -
    - - ); -} diff --git a/src/frontend/src/components/GroupedTable.tsx b/src/frontend/src/components/GroupedTable.tsx deleted file mode 100644 index b7f990d..0000000 --- a/src/frontend/src/components/GroupedTable.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { type StopDetails } from "../pages/Estimates"; -import LineIcon from "./LineIcon"; - -interface GroupedTable { - data: StopDetails; - dataDate: Date | null; -} - -export const GroupedTable: React.FC = ({ data, dataDate }) => { - const formatDistance = (meters: number) => { - if (meters > 1024) { - return `${(meters / 1000).toFixed(1)} km`; - } else { - return `${meters} m`; - } - } - - const groupedEstimates = data.estimates.reduce((acc, estimate) => { - if (!acc[estimate.line]) { - acc[estimate.line] = []; - } - acc[estimate.line].push(estimate); - return acc; - }, {} as Record); - - const sortedLines = Object.keys(groupedEstimates).sort((a, b) => { - const firstArrivalA = groupedEstimates[a][0].minutes; - const firstArrivalB = groupedEstimates[b][0].minutes; - return firstArrivalA - firstArrivalB; - }); - - return - - - - - - - - - - - - - {sortedLines.map((line) => ( - groupedEstimates[line].map((estimate, idx) => ( - - {idx === 0 && ( - - )} - - - - - )) - ))} - - - {data?.estimates.length === 0 && ( - - - - - - )} -
    Estimaciones de llegadas a las {dataDate?.toLocaleTimeString()}
    LíneaRutaLlegadaDistancia
    - - {estimate.route}{`${estimate.minutes} min`} - {estimate.meters > -1 - ? formatDistance(estimate.meters) - : "No disponible" - } -
    No hay estimaciones disponibles
    -} diff --git a/src/frontend/src/components/LineIcon.css b/src/frontend/src/components/LineIcon.css deleted file mode 100644 index e7e8949..0000000 --- a/src/frontend/src/components/LineIcon.css +++ /dev/null @@ -1,239 +0,0 @@ -:root { - --line-c1: rgb(237, 71, 19); - --line-c3d: rgb(255, 204, 0); - --line-c3i: rgb(255, 204, 0); - --line-l4a: rgb(0, 153, 0); - --line-l4c: rgb(0, 153, 0); - --line-l5a: rgb(0, 176, 240); - --line-l5b: rgb(0, 176, 240); - --line-l6: rgb(204, 51, 153); - --line-l7: rgb(150, 220, 153); - --line-l9b: rgb(244, 202, 140); - --line-l10: rgb(153, 51, 0); - --line-l11: rgb(226, 0, 38); - --line-l12a: rgb(106, 150, 190); - --line-l12b: rgb(106, 150, 190); - --line-l13: rgb(0, 176, 240); - --line-l14: rgb(129, 142, 126); - --line-l15a: rgb(216, 168, 206); - --line-l15b: rgb(216, 168, 206); - --line-l15c: rgb(216, 168, 168); - --line-l16: rgb(129, 142, 126); - --line-l17: rgb(214, 245, 31); - --line-l18a: rgb(212, 80, 168); - --line-l18b: rgb(0, 0, 0); - --line-l18h: rgb(0, 0, 0); - --line-l23: rgb(0, 70, 210); - --line-l24: rgb(191, 191, 191); - --line-l25: rgb(172, 100, 4); - --line-l27: rgb(112, 74, 42); - --line-l28: rgb(176, 189, 254); - --line-l29: rgb(248, 184, 90); - --line-l31: rgb(255, 255, 0); - --line-a: rgb(119, 41, 143); - --line-h: rgb(0, 96, 168); - --line-h1: rgb(0, 96, 168); - --line-h2: rgb(0, 96, 168); - --line-h3: rgb(0, 96, 168); - --line-lzd: rgb(61, 78, 167); - --line-n1: rgb(191, 191, 191); - --line-n4: rgb(102, 51, 102); - --line-psa1: rgb(0, 153, 0); - --line-psa4: rgb(0, 153, 0); - --line-ptl: rgb(150, 220, 153); - --line-turistico: rgb(102, 51, 102); - --line-u1: rgb(172, 100, 4); - --line-u2: rgb(172, 100, 4); -} - -.line-icon { - display: inline-block; - padding: 0.25rem 0.5rem; - margin-right: 0.5rem; - border-bottom: 3px solid; - font-size: 0.9rem; - font-weight: 600; - text-transform: uppercase; - color: inherit; - /* Prevent color change on hover */ -} - -.line-c1 { - border-color: var(--line-c1); -} - -.line-c3d { - border-color: var(--line-c3d); -} - -.line-c3i { - border-color: var(--line-c3i); -} - -.line-l4a { - border-color: var(--line-l4a); -} - -.line-l4c { - border-color: var(--line-l4c); -} - -.line-l5a { - border-color: var(--line-l5a); -} - -.line-l5b { - border-color: var(--line-l5b); -} - -.line-l6 { - border-color: var(--line-l6); -} - -.line-l7 { - border-color: var(--line-l7); -} - -.line-l9b { - border-color: var(--line-l9b); -} - -.line-l10 { - border-color: var(--line-l10); -} - -.line-l11 { - border-color: var(--line-l11); -} - -.line-l12a { - border-color: var(--line-l12a); -} - -.line-l12b { - border-color: var(--line-l12b); -} - -.line-l13 { - border-color: var(--line-l13); -} - -.line-l14 { - border-color: var(--line-l14); -} - -.line-l15a { - border-color: var(--line-l15a); -} - -.line-l15b { - border-color: var(--line-l15b); -} - -.line-l15c { - border-color: var(--line-l15c); -} - -.line-l16 { - border-color: var(--line-l16); -} - -.line-l17 { - border-color: var(--line-l17); -} - -.line-l18a { - border-color: var(--line-l18a); -} - -.line-l18b { - border-color: var(--line-l18b); -} - -.line-l18h { - border-color: var(--line-l18h); -} - -.line-l23 { - border-color: var(--line-l23); -} - -.line-l24 { - border-color: var(--line-l24); -} - -.line-l25 { - border-color: var(--line-l25); -} - -.line-l27 { - border-color: var(--line-l27); -} - -.line-l28 { - border-color: var(--line-l28); -} - -.line-l29 { - border-color: var(--line-l29); -} - -.line-l31 { - border-color: var(--line-l31); -} - -.line-a { - border-color: var(--line-a); -} - -.line-h { - border-color: var(--line-h); -} - -.line-h1 { - border-color: var(--line-h1); -} - -.line-h2 { - border-color: var(--line-h2); -} - -.line-h3 { - border-color: var(--line-h3); -} - -.line-lzd { - border-color: var(--line-lzd); -} - -.line-n1 { - border-color: var(--line-n1); -} - -.line-n4 { - border-color: var(--line-n4); -} - -.line-psa1 { - border-color: var(--line-psa1); -} - -.line-psa4 { - border-color: var(--line-psa4); -} - -.line-ptl { - border-color: var(--line-ptl); -} - -.line-turistico { - border-color: var(--line-turistico); -} - -.line-u1 { - border-color: var(--line-u1); -} - -.line-u2 { - border-color: var(--line-u2); -} \ No newline at end of file diff --git a/src/frontend/src/components/LineIcon.tsx b/src/frontend/src/components/LineIcon.tsx deleted file mode 100644 index 50fd1ec..0000000 --- a/src/frontend/src/components/LineIcon.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import './LineIcon.css'; - -interface LineIconProps { - line: string; -} - -const LineIcon: React.FC = ({ line }) => { - const formattedLine = /^[a-zA-Z]/.test(line) ? line : `L${line}`; - return ( - - {formattedLine} - - ); -}; - -export default LineIcon; \ No newline at end of file diff --git a/src/frontend/src/components/RegularTable.tsx b/src/frontend/src/components/RegularTable.tsx deleted file mode 100644 index 211a47c..0000000 --- a/src/frontend/src/components/RegularTable.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { type StopDetails } from "../pages/Estimates"; -import LineIcon from "./LineIcon"; - -interface RegularTableProps { - data: StopDetails; - dataDate: Date | null; -} - -export const RegularTable: React.FC = ({ data, dataDate }) => { - - const absoluteArrivalTime = (minutes: number) => { - const now = new Date() - const arrival = new Date(now.getTime() + minutes * 60000) - return Intl.DateTimeFormat(navigator.language, { - hour: '2-digit', - minute: '2-digit' - }).format(arrival) - } - - const formatDistance = (meters: number) => { - if (meters > 1024) { - return `${(meters / 1000).toFixed(1)} km`; - } else { - return `${meters} m`; - } - } - - return - - - - - - - - - - - - - {data.estimates - .sort((a, b) => a.minutes - b.minutes) - .map((estimate, idx) => ( - - - - - - - ))} - - - {data?.estimates.length === 0 && ( - - - - - - )} -
    Estimaciones de llegadas a las {dataDate?.toLocaleTimeString()}
    LíneaRutaLlegadaDistancia
    {estimate.route} - {estimate.minutes > 15 - ? absoluteArrivalTime(estimate.minutes) - : `${estimate.minutes} min`} - - {estimate.meters > -1 - ? formatDistance(estimate.meters) - : "No disponible" - } -
    No hay estimaciones disponibles
    -} diff --git a/src/frontend/src/components/StopItem.css b/src/frontend/src/components/StopItem.css deleted file mode 100644 index 9feb2d1..0000000 --- a/src/frontend/src/components/StopItem.css +++ /dev/null @@ -1,54 +0,0 @@ -/* Stop Item Styling */ - -.stop-notes { - font-size: 0.85rem; - font-style: italic; - color: #666; - margin: 2px 0; -} - -.stop-amenities { - display: flex; - flex-wrap: wrap; - gap: 4px; - margin-top: 4px; -} - -.amenity-tag { - font-size: 0.75rem; - background-color: #e8f4f8; - color: #0078d4; - border-radius: 4px; - padding: 2px 6px; - display: inline-block; -} - -/* Different colors for different amenity types */ -.amenity-tag[data-amenity="shelter"] { - background-color: #e3f1df; - color: #107c41; -} - -.amenity-tag[data-amenity="bench"] { - background-color: #f0e8fc; - color: #5c2e91; -} - -.amenity-tag[data-amenity="real-time display"] { - background-color: #fff4ce; - color: #986f0b; -} - -/* When there are alternate names available, show an indicator */ -.has-alternate-names { - position: relative; -} - -.has-alternate-names::after { - content: "⋯"; - position: absolute; - right: -15px; - top: 0; - color: #0078d4; - font-weight: bold; -} \ No newline at end of file diff --git a/src/frontend/src/components/StopItem.tsx b/src/frontend/src/components/StopItem.tsx deleted file mode 100644 index 29370b7..0000000 --- a/src/frontend/src/components/StopItem.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router'; -import StopDataProvider, { type Stop } from '../data/StopDataProvider'; -import LineIcon from './LineIcon'; - -interface StopItemProps { - stop: Stop; -} - -const StopItem: React.FC = ({ stop }) => { - - return ( -
  • - - {stop.favourite && } ({stop.stopId}) {StopDataProvider.getDisplayName(stop)} -
    - {stop.lines?.map(line => )} -
    - - -
  • - ); -}; - -export default StopItem; diff --git a/src/frontend/src/controls/LocateControl.ts b/src/frontend/src/controls/LocateControl.ts deleted file mode 100644 index 26effa5..0000000 --- a/src/frontend/src/controls/LocateControl.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { createControlComponent } from '@react-leaflet/core'; -import { LocateControl as LeafletLocateControl, type LocateOptions } from 'leaflet.locatecontrol'; -import "leaflet.locatecontrol/dist/L.Control.Locate.min.css"; -import { useEffect } from 'react'; -import { useMap } from 'react-leaflet'; -import { useApp } from '../AppContext'; - -interface EnhancedLocateControlProps { - options?: LocateOptions; -} - -// Componente que usa el contexto para manejar la localización -export const EnhancedLocateControl = (props: EnhancedLocateControlProps) => { - const map = useMap(); - const { mapState, setUserLocation, setLocationPermission } = useApp(); - - useEffect(() => { - // Configuración por defecto del control de localización - const defaultOptions: LocateOptions = { - position: 'topright', - strings: { - title: 'Mostrar mi ubicación', - }, - flyTo: true, - onLocationError: (err) => { - console.error('Error en la localización:', err); - setLocationPermission(false); - }, - returnToPrevBounds: true, - showPopup: false, - }; - - // Combinamos las opciones por defecto con las personalizadas - const options = { ...defaultOptions, ...props.options }; - - // Creamos la instancia del control - const locateControl = new LeafletLocateControl(options); - - // Añadimos el control al mapa - locateControl.addTo(map); - - // Si tenemos permiso de ubicación y ya conocemos la ubicación del usuario, - // podemos activarla automáticamente - if (mapState.hasLocationPermission && mapState.userLocation) { - // Esperamos a que el mapa esté listo - setTimeout(() => { - try { - locateControl.start(); - } catch (e) { - console.error('Error al iniciar la localización automática', e); - } - }, 1000); - } - - return () => { - // Limpieza al desmontar el componente - locateControl.remove(); - }; - }, [map, mapState.hasLocationPermission, mapState.userLocation, props.options, setLocationPermission, setUserLocation]); - - return null; -}; - -// Exportamos también el control base por compatibilidad -export const LocateControl = createControlComponent( - (props) => new LeafletLocateControl(props) -); diff --git a/src/frontend/src/data/StopDataProvider.ts b/src/frontend/src/data/StopDataProvider.ts deleted file mode 100644 index 0c1e46e..0000000 --- a/src/frontend/src/data/StopDataProvider.ts +++ /dev/null @@ -1,160 +0,0 @@ -export interface CachedStopList { - timestamp: number; - data: Stop[]; -} - -export type StopName = { - original: string; - intersect?: string; -} - -export interface Stop { - stopId: number; - name: StopName; - latitude?: number; - longitude?: number; - lines: string[]; - favourite?: boolean; -} - -// In-memory cache and lookup map -let cachedStops: Stop[] | null = null; -let stopsMap: Record = {}; -// Custom names loaded from localStorage -let customNames: Record = {}; - -// Initialize cachedStops and customNames once -async function initStops() { - if (!cachedStops) { - const response = await fetch('/stops.json'); - const stops = await response.json() as Stop[]; - // build array and map - stopsMap = {}; - cachedStops = stops.map(stop => { - const entry = { ...stop, favourite: false } as Stop; - stopsMap[stop.stopId] = entry; - return entry; - }); - // load custom names - const rawCustom = localStorage.getItem('customStopNames'); - if (rawCustom) customNames = JSON.parse(rawCustom) as Record; - } -} - -async function getStops(): Promise { - await initStops(); - // update favourites - const rawFav = localStorage.getItem('favouriteStops'); - const favouriteStops = rawFav ? JSON.parse(rawFav) as number[] : []; - cachedStops!.forEach(stop => stop.favourite = favouriteStops.includes(stop.stopId)); - return cachedStops!; -} - -// New: get single stop by id -async function getStopById(stopId: number): Promise { - await initStops(); - const stop = stopsMap[stopId]; - if (stop) { - const rawFav = localStorage.getItem('favouriteStops'); - const favouriteStops = rawFav ? JSON.parse(rawFav) as number[] : []; - stop.favourite = favouriteStops.includes(stopId); - } - return stop; -} - -// Updated display name to include custom names -function getDisplayName(stop: Stop): string { - if (customNames[stop.stopId]) return customNames[stop.stopId]; - const nameObj = stop.name; - return nameObj.intersect || nameObj.original; -} - -// New: set or remove custom names -function setCustomName(stopId: number, label: string) { - customNames[stopId] = label; - localStorage.setItem('customStopNames', JSON.stringify(customNames)); -} - -function removeCustomName(stopId: number) { - delete customNames[stopId]; - localStorage.setItem('customStopNames', JSON.stringify(customNames)); -} - -// New: get custom label for a stop -function getCustomName(stopId: number): string | undefined { - return customNames[stopId]; -} - -function addFavourite(stopId: number) { - const rawFavouriteStops = localStorage.getItem('favouriteStops'); - let favouriteStops: number[] = []; - if (rawFavouriteStops) { - favouriteStops = JSON.parse(rawFavouriteStops) as number[]; - } - - if (!favouriteStops.includes(stopId)) { - favouriteStops.push(stopId); - localStorage.setItem('favouriteStops', JSON.stringify(favouriteStops)); - } -} - -function removeFavourite(stopId: number) { - const rawFavouriteStops = localStorage.getItem('favouriteStops'); - let favouriteStops: number[] = []; - if (rawFavouriteStops) { - favouriteStops = JSON.parse(rawFavouriteStops) as number[]; - } - - const newFavouriteStops = favouriteStops.filter(id => id !== stopId); - localStorage.setItem('favouriteStops', JSON.stringify(newFavouriteStops)); -} - -function isFavourite(stopId: number): boolean { - const rawFavouriteStops = localStorage.getItem('favouriteStops'); - if (rawFavouriteStops) { - const favouriteStops = JSON.parse(rawFavouriteStops) as number[]; - return favouriteStops.includes(stopId); - } - return false; -} - -const RECENT_STOPS_LIMIT = 10; - -function pushRecent(stopId: number) { - const rawRecentStops = localStorage.getItem('recentStops'); - let recentStops: Set = new Set(); - if (rawRecentStops) { - recentStops = new Set(JSON.parse(rawRecentStops) as number[]); - } - - recentStops.add(stopId); - if (recentStops.size > RECENT_STOPS_LIMIT) { - const iterator = recentStops.values(); - const val = iterator.next().value as number; - recentStops.delete(val); - } - - localStorage.setItem('recentStops', JSON.stringify(Array.from(recentStops))); -} - -function getRecent(): number[] { - const rawRecentStops = localStorage.getItem('recentStops'); - if (rawRecentStops) { - return JSON.parse(rawRecentStops) as number[]; - } - return []; -} - -export default { - getStops, - getStopById, - getCustomName, - getDisplayName, - setCustomName, - removeCustomName, - addFavourite, - removeFavourite, - isFavourite, - pushRecent, - getRecent -}; diff --git a/src/frontend/src/main.tsx b/src/frontend/src/main.tsx deleted file mode 100644 index a4afa37..0000000 --- a/src/frontend/src/main.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import '@fontsource-variable/roboto' -import './styles/Pages.css' - -import { createRoot } from 'react-dom/client' -import { createBrowserRouter, Navigate, RouterProvider } from 'react-router' -import { StopList } from './pages/StopList' -import { Estimates } from './pages/Estimates' -import { StopMap } from './pages/Map' -import { Layout } from './Layout' -import { Settings } from './pages/Settings' -import { AppProvider } from './AppContext' -import ErrorBoundary from './ErrorBoundary' - -const router = createBrowserRouter([ - { - path: '/', - element: , - }, - { - path: '/stops', - element: , - }, - { - path: '/map', - element: , - }, - { - path: '/estimates/:stopId', - element: - }, - { - path: '/settings', - element: - } -]) - -createRoot(document.getElementById('root')!).render( - - - - - -) diff --git a/src/frontend/src/pages/Estimates.tsx b/src/frontend/src/pages/Estimates.tsx deleted file mode 100644 index 6a98731..0000000 --- a/src/frontend/src/pages/Estimates.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { type JSX, useEffect, useState } from "react"; -import { useParams } from "react-router"; -import StopDataProvider from "../data/StopDataProvider"; -import { Star, Edit2 } from 'lucide-react'; -import "../styles/Estimates.css"; -import { RegularTable } from "../components/RegularTable"; -import { useApp } from "../AppContext"; -import { GroupedTable } from "../components/GroupedTable"; - -export interface StopDetails { - stop: { - id: number; - name: string; - latitude: number; - longitude: number; - } - estimates: { - line: string; - route: string; - minutes: number; - meters: number; - }[] -} - -const loadData = async (stopId: string) => { - const resp = await fetch(`/api/GetStopEstimates?id=${stopId}`); - return await resp.json(); -}; - -export function Estimates() { - const params = useParams(); - const stopIdNum = parseInt(params.stopId ?? ""); - const [customName, setCustomName] = useState(undefined); - const [data, setData] = useState(null); - const [dataDate, setDataDate] = useState(null); - const [favourited, setFavourited] = useState(false); - const { tableStyle } = useApp(); - - useEffect(() => { - loadData(params.stopId!) - .then((body: StopDetails) => { - setData(body); - setDataDate(new Date()); - setCustomName(StopDataProvider.getCustomName(stopIdNum)); - }) - - - StopDataProvider.pushRecent(parseInt(params.stopId ?? "")); - - setFavourited( - StopDataProvider.isFavourite(parseInt(params.stopId ?? "")) - ); - }, [params.stopId]); - - - const toggleFavourite = () => { - if (favourited) { - StopDataProvider.removeFavourite(stopIdNum); - setFavourited(false); - } else { - StopDataProvider.addFavourite(stopIdNum); - setFavourited(true); - } - } - - const handleRename = () => { - const current = customName ?? data?.stop.name; - const input = window.prompt('Custom name for this stop:', current); - if (input === null) return; // cancelled - const trimmed = input.trim(); - if (trimmed === '') { - StopDataProvider.removeCustomName(stopIdNum); - setCustomName(undefined); - } else { - StopDataProvider.setCustomName(stopIdNum, trimmed); - setCustomName(trimmed); - } - }; - - if (data === null) return

    Cargando datos en tiempo real...

    - - return ( -
    -
    -

    - - - {(customName ?? data.stop.name)} ({data.stop.id}) -

    -
    - -
    - {tableStyle === 'grouped' ? - : - } -
    -
    - ) -} diff --git a/src/frontend/src/pages/Map.tsx b/src/frontend/src/pages/Map.tsx deleted file mode 100644 index 52c73f8..0000000 --- a/src/frontend/src/pages/Map.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import StopDataProvider, { type Stop } from "../data/StopDataProvider"; - -import 'leaflet/dist/leaflet.css' -import 'react-leaflet-markercluster/styles' - -import { useEffect, useState } from 'react'; -import LineIcon from '../components/LineIcon'; -import { Link } from 'react-router'; -import { MapContainer, TileLayer, Marker, Popup, useMapEvents } from "react-leaflet"; -import MarkerClusterGroup from "react-leaflet-markercluster"; -import { Icon, type LatLngTuple } from "leaflet"; -import { EnhancedLocateControl } from "../controls/LocateControl"; -import { useApp } from "../AppContext"; - -const icon = new Icon({ - iconUrl: '/map-pin-icon.png', - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - shadowSize: [41, 41] -}); - -// Componente auxiliar para detectar cambios en el mapa -const MapEventHandler = () => { - const { updateMapState } = useApp(); - - const map = useMapEvents({ - moveend: () => { - const center = map.getCenter(); - const zoom = map.getZoom(); - updateMapState([center.lat, center.lng], zoom); - } - }); - - return null; -}; - -// Componente principal del mapa -export function StopMap() { - const [stops, setStops] = useState([]); - const { mapState } = useApp(); - - useEffect(() => { - StopDataProvider.getStops().then(setStops); - }, []); - - return ( - - - - - - {stops.map(stop => ( - - - {StopDataProvider.getDisplayName(stop)} -
    - {stop.lines.map((line) => ( - - ))} -
    -
    - ))} -
    -
    - ); -} diff --git a/src/frontend/src/pages/Settings.tsx b/src/frontend/src/pages/Settings.tsx deleted file mode 100644 index 1ad15ab..0000000 --- a/src/frontend/src/pages/Settings.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import { useApp } from "../AppContext"; -import "../styles/Settings.css"; - -export function Settings() { - const { theme, setTheme, tableStyle, setTableStyle, mapPositionMode, setMapPositionMode } = useApp(); - - return ( -
    -

    Sobre UrbanoVigo Web

    -

    - Aplicación web para encontrar paradas y tiempos de llegada de los autobuses - urbanos de Vigo, España. -

    -
    -

    Ajustes

    -
    - - -
    -
    - - -
    -
    - - -
    -
    - ¿Qué significa esto? -

    - La tabla de horarios puede mostrarse de dos formas: -

    -
    -
    Mostrar por orden
    -
    Las paradas se muestran en el orden en que se visitan. Aplicaciones como Infobus (Vitrasa) usan este estilo.
    -
    Agrupar por línea
    -
    Las paradas se agrupan por la línea de autobús. Aplicaciones como iTranvias (A Coruña) o Moovit (más o menos) usan este estilo.
    -
    -
    -
    -

    Créditos

    -

    - - Código en GitHub - - - Desarrollado por - Ariel Costas - -

    -

    - Datos obtenidos de datos.vigo.org bajo - licencia Open Data Commons Attribution License -

    -
    - ) -} \ No newline at end of file diff --git a/src/frontend/src/pages/StopList.tsx b/src/frontend/src/pages/StopList.tsx deleted file mode 100644 index 59a1942..0000000 --- a/src/frontend/src/pages/StopList.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import { useEffect, useMemo, useRef, useState } from "react"; -import StopDataProvider, { type Stop } from "../data/StopDataProvider"; -import StopItem from "../components/StopItem"; -import Fuse from "fuse.js"; - -const placeholders = [ - "Urzaiz", - "Gran Vía", - "Castelao", - "García Barbón", - "Valladares", - "Florida", - "Pizarro", - "Estrada Madrid", - "Sanjurjo Badía" -]; - -export function StopList() { - const [data, setData] = useState(null) - const [searchResults, setSearchResults] = useState(null); - const searchTimeout = useRef(null); - - const randomPlaceholder = useMemo(() => placeholders[Math.floor(Math.random() * placeholders.length)], []); - const fuse = useMemo(() => new Fuse(data || [], { threshold: 0.3, keys: ['name.original'] }), [data]); - - useEffect(() => { - StopDataProvider.getStops().then((stops: Stop[]) => setData(stops)) - }, []); - - const handleStopSearch = (event: React.ChangeEvent) => { - const stopName = event.target.value || ""; - - if (searchTimeout.current) { - clearTimeout(searchTimeout.current); - } - - searchTimeout.current = setTimeout(() => { - if (stopName.length === 0) { - setSearchResults(null); - return; - } - - if (!data) { - console.error("No data available for search"); - return; - } - - const results = fuse.search(stopName); - const items = results.map(result => result.item); - setSearchResults(items); - }, 300); - } - - const favouritedStops = useMemo(() => { - return data?.filter(stop => stop.favourite) ?? [] - }, [data]) - - const recentStops = useMemo(() => { - // no recent items if data not loaded - if (!data) return null; - const recentIds = StopDataProvider.getRecent(); - if (recentIds.length === 0) return null; - // map and filter out missing entries - const stopsList = recentIds - .map(id => data.find(stop => stop.stopId === id)) - .filter((s): s is Stop => Boolean(s)); - return stopsList.reverse(); - }, [data]); - - if (data === null) return

    Loading...

    - - return ( -
    -

    UrbanoVigo Web

    - -
    -
    - - -
    -
    - - {searchResults && searchResults.length > 0 && ( -
    -

    Resultados de la búsqueda

    -
      - {searchResults.map((stop: Stop) => ( - - ))} -
    -
    - )} - -
    -

    Paradas favoritas

    - - {favouritedStops?.length === 0 && ( -

    - Accede a una parada y márcala como favorita para verla aquí. -

    - )} - -
      - {favouritedStops?.sort((a, b) => a.stopId - b.stopId).map((stop: Stop) => ( - - ))} -
    -
    - - {recentStops && recentStops.length > 0 && ( -
    -

    Recientes

    - -
      - {recentStops.map((stop: Stop) => ( - - ))} -
    -
    - )} - -
    -

    Paradas

    - -
      - {data?.sort((a, b) => a.stopId - b.stopId).map((stop: Stop) => ( - - ))} -
    -
    -
    - ) -} diff --git a/src/frontend/src/styles/Estimates.css b/src/frontend/src/styles/Estimates.css deleted file mode 100644 index 86ca09b..0000000 --- a/src/frontend/src/styles/Estimates.css +++ /dev/null @@ -1,105 +0,0 @@ -.table-responsive { - overflow-x: auto; - margin-bottom: 1.5rem; -} - -.table { - width: 100%; - border-collapse: collapse; -} - -.table caption { - margin-bottom: 0.5rem; - font-weight: 500; -} - -.table th, -.table td { - padding: 0.75rem; - text-align: left; - border-bottom: 1px solid #eee; -} - -.table th { - border-bottom: 2px solid #ddd; -} - -.table tfoot td { - text-align: center; -} - -/* Estimates page specific styles */ -.estimates-header { - display: flex; - align-items: center; - margin-bottom: 1rem; -} - -.estimates-stop-id { - font-size: 1rem; - color: var(--subtitle-color); - margin-left: 0.5rem; -} - -.estimates-arrival { - color: #28a745; - font-weight: 500; -} - -.estimates-delayed { - color: #dc3545; -} - -.button-group { - display: flex; - gap: 1rem; - margin-bottom: 1.5rem; - flex-wrap: wrap; -} - -.button { - padding: 0.75rem 1rem; - background-color: var(--button-background-color); - color: white; - border: none; - border-radius: 8px; - font-size: 1rem; - font-weight: 500; - cursor: pointer; - text-align: center; - text-decoration: none; - display: inline-block; -} - -.button:hover { - background-color: var(--button-hover-background-color); -} - -.button:disabled { - background-color: var(--button-disabled-background-color); - cursor: not-allowed; -} - -.star-icon { - margin-right: 0.5rem; - color: #ccc; - fill: none; -} - -.star-icon.active { - color: var(--star-color); - /* Yellow color for active star */ - fill: var(--star-color); -} - -/* Pencil (edit) icon next to header */ -.edit-icon { - margin-right: 0.5rem; - color: #ccc; - cursor: pointer; - stroke-width: 2px; -} - -.edit-icon:hover { - color: var(--star-color); -} \ No newline at end of file diff --git a/src/frontend/src/styles/Map.css b/src/frontend/src/styles/Map.css deleted file mode 100644 index 3af112a..0000000 --- a/src/frontend/src/styles/Map.css +++ /dev/null @@ -1,86 +0,0 @@ -/* Map page specific styles */ -.map-container { - height: calc(100vh - 140px); - margin: -16px; - margin-bottom: 1rem; - position: relative; -} - -/* Fullscreen map styles */ -.fullscreen-container { - position: absolute; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - padding: 0; - margin: 0; - max-width: none; - overflow: hidden; -} - -.fullscreen-map { - width: 100%; - height: 100%; -} - -.fullscreen-loading { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - width: 100vw; - font-size: 1.8rem; - font-weight: 600; - color: var(--text-color); -} - -/* Map marker and popup styles */ -.stop-marker { - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); - transition: all 0.2s ease-in-out; -} - -.stop-marker:hover { - transform: scale(1.2); -} - -.maplibregl-popup { - max-width: 250px; -} - -.maplibregl-popup-content { - padding: 12px; - border-radius: 8px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); -} - -.popup-line-icons { - display: flex; - flex-wrap: wrap; - margin: 6px 0; - gap: 5px; -} - -.popup-line { - display: inline-block; - background-color: var(--button-background-color); - color: white; - padding: 2px 6px; - margin-right: 4px; - border-radius: 4px; - font-size: 0.8rem; - font-weight: 500; -} - -.popup-link { - display: block; - margin-top: 8px; - color: var(--button-background-color); - text-decoration: none; - font-weight: 500; -} - -.popup-link:hover { - text-decoration: underline; -} \ No newline at end of file diff --git a/src/frontend/src/styles/Pages.css b/src/frontend/src/styles/Pages.css deleted file mode 100644 index 2a8943b..0000000 --- a/src/frontend/src/styles/Pages.css +++ /dev/null @@ -1,364 +0,0 @@ -:root { - --background-color: #ffffff; - --text-color: #333333; - --subtitle-color: #444444; - --border-color: #eeeeee; - --button-background-color: #007bff; - --button-hover-background-color: #0069d9; - --button-disabled-background-color: #cccccc; - --star-color: #ffcc00; - --message-background-color: #f8f9fa; - - font-family: 'Roboto Variable', Roboto, Arial, Inter, sans-serif; -} - -[data-theme='dark'] { - --background-color: #121212; - --text-color: #ffffff; - --subtitle-color: #bbbbbb; - --border-color: #444444; - --button-background-color: #1e88e5; - --button-hover-background-color: #1565c0; - --button-disabled-background-color: #555555; - --star-color: #ffcc00; - --message-background-color: #333333; -} - -body { - background-color: var(--background-color); - color: var(--text-color); -} - -/* Mobile-first page styles */ - -/* Common page styles */ -.page-container { - max-width: 100%; - padding: 0 16px; - background-color: var(--background-color); - color: var(--text-color); -} - -.page-title { - font-size: 1.8rem; - margin-bottom: 1rem; - font-weight: 600; - color: var(--text-color); -} - -.page-subtitle { - font-size: 1.4rem; - margin-top: 1.5rem; - margin-bottom: 0.75rem; - font-weight: 500; - color: var(--subtitle-color); -} - -/* Form styles */ -.search-form { - margin-bottom: 1.5rem; -} - -.form-group { - margin-bottom: 1rem; - display: flex; - flex-direction: column; -} - -.form-label { - font-size: 0.9rem; - margin-bottom: 0.25rem; - font-weight: 500; -} - -.form-input { - padding: 0.75rem; - font-size: 1rem; - border: 1px solid var(--border-color); - border-radius: 8px; -} - -.form-button { - display: inline-flex; - align-items: center; - justify-content: center; - gap: 1rem; - - padding: 0.75rem 1rem; - background-color: var(--button-background-color); - color: white; - border: none; - border-radius: 8px; - font-size: 1rem; - font-weight: 500; - cursor: pointer; - width: 100%; - margin-top: 0.5rem; -} - -.form-button:hover { - background-color: var(--button-hover-background-color); -} - -/* List styles */ -.list-container { - margin-bottom: 1.5rem; -} - -.list { - list-style: none; - padding: 0; - margin: 0; -} - -.list-item { - padding: 1rem; - border-bottom: 1px solid var(--border-color); -} - -.list-item-link { - display: block; - color: var(--text-color); - text-decoration: none; - font-size: 1.1rem; /* Increased font size for stop name */ -} - -.list-item-link:hover { - color: var(--button-background-color); -} - -.list-item-link:hover .line-icon { - color: var(--text-color); -} - -.distance-info { - font-size: 0.9rem; - color: var(--subtitle-color); -} - -/* Message styles */ -.message { - padding: 1rem; - background-color: var(--message-background-color); - border-radius: 8px; - margin-bottom: 1rem; -} - -/* About page specific styles */ -.about-page { - text-align: center; - padding: 1rem; -} - -.about-version { - color: var(--subtitle-color); - font-size: 0.9rem; - margin-top: 2rem; -} - -.about-description { - margin-top: 1rem; - line-height: 1.6; -} - -/* Map page specific styles */ -.map-container { - height: calc(100vh - 140px); - margin: -16px; - margin-bottom: 1rem; - position: relative; -} - -/* Fullscreen map styles */ -.fullscreen-container { - position: absolute; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - padding: 0; - margin: 0; - max-width: none; - overflow: hidden; -} - -.fullscreen-map { - width: 100%; - height: 100%; -} - -.fullscreen-loading { - display: flex; - justify-content: center; - align-items: center; - height: 100vh; - width: 100vw; - font-size: 1.8rem; - font-weight: 600; - color: var(--text-color); -} - -/* Map marker and popup styles */ -.stop-marker { - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); - transition: all 0.2s ease-in-out; -} - -.stop-marker:hover { - transform: scale(1.2); -} - -.maplibregl-popup { - max-width: 250px; -} - -.maplibregl-popup-content { - padding: 12px; - border-radius: 8px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); -} - -.popup-line-icons { - display: flex; - flex-wrap: wrap; - margin: 6px 0; - gap: 5px; -} - -.popup-line { - display: inline-block; - background-color: var(--button-background-color); - color: white; - padding: 2px 6px; - margin-right: 4px; - border-radius: 4px; - font-size: 0.8rem; - font-weight: 500; -} - -.popup-link { - display: block; - margin-top: 8px; - color: var(--button-background-color); - text-decoration: none; - font-weight: 500; -} - -.popup-link:hover { - text-decoration: underline; -} - -/* Estimates page specific styles */ -.estimates-header { - display: flex; - align-items: center; - margin-bottom: 1rem; -} - -.estimates-stop-id { - font-size: 1rem; - color: var(--subtitle-color); - margin-left: 0.5rem; -} - -.estimates-arrival { - color: #28a745; - font-weight: 500; -} - -.estimates-delayed { - color: #dc3545; -} - -.button-group { - display: flex; - gap: 1rem; - margin-bottom: 1.5rem; - flex-wrap: wrap; -} - -.button { - padding: 0.75rem 1rem; - background-color: var(--button-background-color); - color: white; - border: none; - border-radius: 8px; - font-size: 1rem; - font-weight: 500; - cursor: pointer; - text-align: center; - text-decoration: none; - display: inline-block; -} - -.button:hover { - background-color: var(--button-hover-background-color); -} - -.button:disabled { - background-color: var(--button-disabled-background-color); - cursor: not-allowed; -} - -.star-icon { - margin-right: 0.5rem; - color: #ccc; - fill: none; -} - -.star-icon.active { - color: var(--star-color); /* Yellow color for active star */ - fill: var(--star-color); -} - -/* Tablet and larger breakpoint */ -@media (min-width: 768px) { - .page-container { - width: 90%; - max-width: 768px; - margin: 0 auto; - } - - .page-title { - font-size: 2.2rem; - } - - .search-form { - display: flex; - align-items: flex-end; - gap: 1rem; - } - - .form-group { - flex: 1; - margin-bottom: 0; - } - - .form-button { - width: auto; - margin-top: 0; - } - - .list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: 1rem; - } - - .list-item { - border: 1px solid var(--border-color); - border-radius: 8px; - margin-bottom: 0; - } -} - -/* Desktop breakpoint */ -@media (min-width: 1024px) { - .page-container { - max-width: 1024px; - } - - .list { - grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); - } -} diff --git a/src/frontend/src/styles/Settings.css b/src/frontend/src/styles/Settings.css deleted file mode 100644 index 934577d..0000000 --- a/src/frontend/src/styles/Settings.css +++ /dev/null @@ -1,94 +0,0 @@ -/* About page specific styles */ -.about-page { - text-align: center; - padding: 1rem; -} - -.about-version { - color: var(--subtitle-color); - font-size: 0.9rem; - margin-top: 2rem; -} - -.about-description { - margin-top: 1rem; - line-height: 1.6; -} - -.settings-section { - margin-bottom: 2em; - padding: 1rem; - border: 1px solid var(--border-color); - border-radius: 8px; - background-color: var(--message-background-color); - text-align: left; -} - -.settings-section h2 { - margin-bottom: 1em; -} - -.settings-content { - display: flex; - flex-direction: column; - align-items: flex-start; - margin-bottom: 1em; -} - -.settings-content-inline { - display: flex; - align-items: center; - margin-bottom: 1em; -} - -.settings-section .form-button { - margin-bottom: 1em; - padding: 0.75rem 1.5rem; - font-size: 1.1rem; -} - -.settings-section .form-select-inline { - margin-left: 0.5em; - padding: 0.5rem; - font-size: 1rem; - border: 1px solid var(--border-color); - border-radius: 8px; -} - -.settings-section .form-label-inline { - font-weight: 500; -} - -.settings-section .form-label { - display: block; - margin-bottom: 0.5em; - font-weight: 500; -} - -.settings-section .form-description { - margin-top: 0.5em; - font-size: 0.9rem; - color: var(--subtitle-color); -} - -.settings-section .form-details { - margin-top: 0.5em; - font-size: 0.9rem; - color: var(--subtitle-color); - border: 1px solid var(--border-color); - border-radius: 8px; - padding: 0.5rem; -} - -.settings-section .form-details summary { - cursor: pointer; - font-weight: 500; -} - -.settings-section .form-details p { - margin-top: 0.5em; -} - -.settings-section p { - margin-top: 0.5em; -} \ No newline at end of file diff --git a/src/frontend/src/vite-env.d.ts b/src/frontend/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/frontend/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/frontend/tsconfig.json b/src/frontend/tsconfig.json index dc391a4..33b923b 100644 --- a/src/frontend/tsconfig.json +++ b/src/frontend/tsconfig.json @@ -6,16 +6,16 @@ ".react-router/types/**/*" ], "compilerOptions": { - "lib": ["DOM", "DOM.Iterable", "ES2022"], + "lib": ["DOM", "DOM.Iterable", "es2024"], "types": ["node", "vite/client"], - "target": "ES2022", - "module": "ES2022", + "target": "es2024", + "module": "es2022", "moduleResolution": "bundler", "jsx": "react-jsx", "rootDirs": [".", "./.react-router/types"], "baseUrl": ".", "paths": { - "~/*": ["./app/*"] + "~/*": ["app/*"] }, "esModuleInterop": true, "verbatimModuleSyntax": true, diff --git a/src/frontend/vite.config.ts b/src/frontend/vite.config.ts index e7b5a95..4dfd825 100644 --- a/src/frontend/vite.config.ts +++ b/src/frontend/vite.config.ts @@ -1,9 +1,10 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react-swc' +import { defineConfig } from 'vite'; +import { reactRouter } from "@react-router/dev/vite"; +import tsconfigPaths from "vite-tsconfig-paths"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [reactRouter(), tsconfigPaths()], server: { proxy: { '^/api': { @@ -11,16 +12,5 @@ export default defineConfig({ secure: false } } - }, - build: { - rollupOptions: { - output: { - manualChunks: { - react: ['react', 'react-dom'], - router: ['react-router'], - leaflet: ['leaflet', 'react-leaflet', 'leaflet.locatecontrol', 'leaflet.markercluster'] - } - } - } } }) -- cgit v1.3