feat(onboarding): polish setup experience
This commit is contained in:
1 parent
f4891447d3
commit
4ca02a9133
34 files changed
+1005
-1172
No files matched your search
@@ -48,7 +48,7 @@ The studio keeps related choices together:
|
||||
1. **Essentials** sets the default language, color scheme, analytics preference, and the usual host, IP address, domain, or reverse-proxy path used by your services. URL suggestions can use separate ports, subdomains, or one path per service.
|
||||
2. **Discover** checks the actual database, Docker-compatible sockets, Kubernetes configuration, Workshop, and Assistant capabilities. Unavailable sources never block manual setup.
|
||||
3. **Connect** combines explicit `homarr.*` or Homepage Docker labels with image matching. Select several integrations and apps at once, review every URL, and use the service-specific link to open its API-key settings when one is available. If a container has no published port or URL label, add its HTTP or HTTPS address before importing it.
|
||||
4. **Board** previews the protected Mobile and Base layouts, colors, widget radius, sidebars, selected apps, and widgets inferred from integrations or Docker labels. A fast setup still adds the integration-free Clock, Weather, and Bookmarks starter widgets.
|
||||
4. **Board** previews the Base layout, colors, widget radius, sidebars, selected apps, and widgets inferred from integrations or Docker labels. Choose 8 columns for a focused board, 10 for a balanced board, 12 for a wide board, or use the slider for a custom width up to 24 columns. Homarr still creates and reflows the protected Mobile layout automatically. A fast setup adds the integration-free Clock, Weather, and Bookmarks starter widgets.
|
||||
5. **Extend** explains and optionally configures Homarr Assistant, the community Workshop, and the separate Homarr MCP endpoint.
|
||||
6. **Review** tests the selected connections, then saves integrations, apps, widgets, settings, and the exact first board together. If any part fails, the database changes are rolled back and your form stays available to correct.
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ Open **Management → Assistant**.
|
||||
4. Enable the assistant and save.
|
||||
|
||||
Choose a provider preset or use **Custom endpoint** with an OpenAI-compatible Chat Completions API. The
|
||||
[Homarr provider](../workshop/homarr-provider) needs no administrator API key; users sign in to the Community Workshop
|
||||
and receive a daily allowance.
|
||||
[Homarr provider](../workshop/homarr-provider) is the default and needs no administrator API key. The Homarr team pays
|
||||
for a limited number of Assistant uses for each user every day; users sign in to the Community Workshop to use them.
|
||||
|
||||
:::info Local model servers
|
||||
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="177.0978627671541 0 1477.255343082115 1054.08" style="max-height: 500px" width="1477.255343082115" height="1054.08">
|
||||
<path transform="translate(1034.9052734375,72.854736328125)" fill="#FEFDFD" d="M0 0 C1.90977036 -0.00299597 3.81954011 -0.0063995 5.72930908 -0.01017761 C10.8947847 -0.01897723 16.06024374 -0.02135402 21.22572613 -0.0219934 C24.45916349 -0.02270619 27.69259669 -0.02484485 30.92603302 -0.02749062 C42.22412888 -0.03673067 53.52221298 -0.04082718 64.8203125 -0.04003906 C75.32327248 -0.03943863 85.82618105 -0.04998715 96.32912803 -0.06578273 C105.37066505 -0.07889205 114.41218533 -0.08422154 123.45373178 -0.08358365 C128.84309211 -0.08332966 134.23240671 -0.08612591 139.62175751 -0.0967617 C144.69435686 -0.10649996 149.76686728 -0.10648289 154.83946991 -0.09924507 C156.69126517 -0.09820632 158.54306614 -0.10051949 160.39485168 -0.10660553 C190.81015565 -0.20001982 218.21629607 5.6465 242.3203125 24.73974609 C243.90830409 25.99759799 245.51963675 27.22585109 247.13378906 28.44995117 C251.11448842 31.80770647 254.05193914 36.01535945 257.09472656 40.20776367 C257.7126709 41.05830322 258.33061523 41.90884277 258.96728516 42.78515625 C267.25641896 54.37783461 274.09472656 67.52392302 274.09472656 82.14526367 C275.67060547 81.72954102 275.67060547 81.72954102 277.27832031 81.30541992 C278.69620558 80.93921114 280.11417916 80.57334414 281.53222656 80.20776367 C282.21994141 80.02536133 282.90765625 79.84295898 283.61621094 79.6550293 C292.00942157 77.5079289 300.26755032 76.99546668 308.90625 77 C309.84253235 76.99664139 310.7788147 76.99328278 311.74346924 76.98982239 C314.81369382 76.98038716 317.88386342 76.97837299 320.95410156 76.97729492 C323.10727968 76.97407705 325.26045758 76.97071259 327.41363525 76.96720886 C331.91899115 76.96123606 336.42432792 76.95936705 340.9296875 76.95996094 C346.67333882 76.96006242 352.41686614 76.94641586 358.16048813 76.92918873 C362.60630851 76.9180133 367.05209945 76.91604343 371.49793243 76.91657066 C373.61400021 76.91539868 375.73006895 76.91102133 377.84612274 76.9032383 C388.78696205 76.86676466 399.34137412 76.90866702 410.09472656 79.14526367 C411.18622009 79.3666954 412.27771362 79.58812714 413.40228271 79.81626892 C432.38386592 83.76462074 446.16138172 89.73207108 461.3203125 101.73974609 C462.90830409 102.99759799 464.51963675 104.22585109 466.13378906 105.44995117 C470.11654504 108.80944124 473.04268299 113.01953357 476.09472656 117.20776367 C476.68511719 117.99086914 477.27550781 118.77397461 477.88378906 119.58081055 C485.73931137 130.26535905 490.00904681 140.9348598 492.90722656 153.83276367 C493.20564453 155.08637695 493.5040625 156.33999023 493.81152344 157.6315918 C496.06474791 167.3006205 497.24898625 176.48703702 497.22412109 186.40600586 C497.22587341 187.28376678 497.22762573 188.16152771 497.22943115 189.06588745 C497.23379916 191.9413252 497.23092853 194.8167004 497.22753906 197.69213867 C497.22821379 199.7107952 497.22918523 201.72945165 497.23043823 203.74810791 C497.23190858 207.97099585 497.22978289 212.19386258 497.22509766 216.41674805 C497.21941548 221.79716061 497.22267402 227.1775231 497.22867012 232.55793381 C497.2323062 236.72581348 497.23112297 240.89368154 497.22854233 245.06156158 C497.2278807 247.04365291 497.22867439 249.02574534 497.23102188 251.00783539 C497.2470895 268.39271903 497.2470895 268.39271903 496.47558594 276.44946289 C496.02568704 281.49413769 496.39616559 285.53154499 497.86816406 290.35620117 C498.16658707 291.43390022 498.16658707 291.43390022 498.47103882 292.53337097 C498.8980311 294.06927179 499.33409478 295.60267638 499.77868652 297.13357544 C500.98723851 301.30762708 502.1162583 305.50354091 503.25878906 309.69604492 C503.61517456 310.99296516 503.61517456 310.99296516 503.97875977 312.31608582 C511.53601351 339.92153582 517.03190024 367.82772374 521.09472656 396.14526367 C521.25618164 397.21325195 521.41763672 398.28124023 521.58398438 399.3815918 C521.97041755 401.96669651 522.32404689 404.55283706 522.65722656 407.14526367 C522.82351563 408.42401367 522.98980469 409.70276367 523.16113281 411.02026367 C523.34310304 414.6638355 522.47166889 417.77157403 521.53222656 421.28198242 C519.72980234 428.51359012 520.40103697 434.66467588 521.53222656 441.95776367 C522.68704481 449.69805103 523.45016027 455.63518519 521.09472656 463.14526367 C521.0772838 466.65125859 521.83044239 470.01675095 522.62988281 473.43041992 C523.98920858 481.36933932 523.37596701 490.00247857 522.32128906 497.95776367 C521.68091835 504.14065332 521.87397876 510.06948071 523.09472656 516.14526367 C526.71122469 557.88320933 510.01246656 608.92144918 495.09472656 647.14526367 C494.76359863 648.00152344 494.4324707 648.8577832 494.09130859 649.73999023 C487.64259837 666.13523828 479.18515205 680.75983049 463.09472656 689.14526367 C460.77350696 689.94325567 458.48173758 690.55450843 456.09472656 691.14526367 C456.29324219 692.42530273 456.49175781 693.7053418 456.69628906 695.02416992 C458.34338446 710.24939651 451.63250481 723.69509578 442.38378906 735.24291992 C441.29400941 736.54921416 440.19815574 737.85047861 439.09472656 739.14526367 C438.4194189Line truncated
|
||||
<path transform="translate(1034.9052734375,72.854736328125)" fill="#F93232" d="M0 0 C1.90977036 -0.00299597 3.81954011 -0.0063995 5.72930908 -0.01017761 C10.8947847 -0.01897723 16.06024374 -0.02135402 21.22572613 -0.0219934 C24.45916349 -0.02270619 27.69259669 -0.02484485 30.92603302 -0.02749062 C42.22412888 -0.03673067 53.52221298 -0.04082718 64.8203125 -0.04003906 C75.32327248 -0.03943863 85.82618105 -0.04998715 96.32912803 -0.06578273 C105.37066505 -0.07889205 114.41218533 -0.08422154 123.45373178 -0.08358365 C128.84309211 -0.08332966 134.23240671 -0.08612591 139.62175751 -0.0967617 C144.69435686 -0.10649996 149.76686728 -0.10648289 154.83946991 -0.09924507 C156.69126517 -0.09820632 158.54306614 -0.10051949 160.39485168 -0.10660553 C190.81015565 -0.20001982 218.21629607 5.6465 242.3203125 24.73974609 C243.90830409 25.99759799 245.51963675 27.22585109 247.13378906 28.44995117 C251.11448842 31.80770647 254.05193914 36.01535945 257.09472656 40.20776367 C257.7126709 41.05830322 258.33061523 41.90884277 258.96728516 42.78515625 C267.25641896 54.37783461 274.09472656 67.52392302 274.09472656 82.14526367 C275.67060547 81.72954102 275.67060547 81.72954102 277.27832031 81.30541992 C278.69620558 80.93921114 280.11417916 80.57334414 281.53222656 80.20776367 C282.21994141 80.02536133 282.90765625 79.84295898 283.61621094 79.6550293 C292.00942157 77.5079289 300.26755032 76.99546668 308.90625 77 C309.84253235 76.99664139 310.7788147 76.99328278 311.74346924 76.98982239 C314.81369382 76.98038716 317.88386342 76.97837299 320.95410156 76.97729492 C323.10727968 76.97407705 325.26045758 76.97071259 327.41363525 76.96720886 C331.91899115 76.96123606 336.42432792 76.95936705 340.9296875 76.95996094 C346.67333882 76.96006242 352.41686614 76.94641586 358.16048813 76.92918873 C362.60630851 76.9180133 367.05209945 76.91604343 371.49793243 76.91657066 C373.61400021 76.91539868 375.73006895 76.91102133 377.84612274 76.9032383 C388.78696205 76.86676466 399.34137412 76.90866702 410.09472656 79.14526367 C411.18622009 79.3666954 412.27771362 79.58812714 413.40228271 79.81626892 C432.38386592 83.76462074 446.16138172 89.73207108 461.3203125 101.73974609 C462.90830409 102.99759799 464.51963675 104.22585109 466.13378906 105.44995117 C470.11654504 108.80944124 473.04268299 113.01953357 476.09472656 117.20776367 C476.68511719 117.99086914 477.27550781 118.77397461 477.88378906 119.58081055 C485.73931137 130.26535905 490.00904681 140.9348598 492.90722656 153.83276367 C493.20564453 155.08637695 493.5040625 156.33999023 493.81152344 157.6315918 C496.06474791 167.3006205 497.24898625 176.48703702 497.22412109 186.40600586 C497.22587341 187.28376678 497.22762573 188.16152771 497.22943115 189.06588745 C497.23379916 191.9413252 497.23092853 194.8167004 497.22753906 197.69213867 C497.22821379 199.7107952 497.22918523 201.72945165 497.23043823 203.74810791 C497.23190858 207.97099585 497.22978289 212.19386258 497.22509766 216.41674805 C497.21941548 221.79716061 497.22267402 227.1775231 497.22867012 232.55793381 C497.2323062 236.72581348 497.23112297 240.89368154 497.22854233 245.06156158 C497.2278807 247.04365291 497.22867439 249.02574534 497.23102188 251.00783539 C497.2470895 268.39271903 497.2470895 268.39271903 496.47558594 276.44946289 C496.02568704 281.49413769 496.39616559 285.53154499 497.86816406 290.35620117 C498.16658707 291.43390022 498.16658707 291.43390022 498.47103882 292.53337097 C498.8980311 294.06927179 499.33409478 295.60267638 499.77868652 297.13357544 C500.98723851 301.30762708 502.1162583 305.50354091 503.25878906 309.69604492 C503.61517456 310.99296516 503.61517456 310.99296516 503.97875977 312.31608582 C511.53601351 339.92153582 517.03190024 367.82772374 521.09472656 396.14526367 C521.25618164 397.21325195 521.41763672 398.28124023 521.58398438 399.3815918 C521.97041755 401.96669651 522.32404689 404.55283706 522.65722656 407.14526367 C522.82351563 408.42401367 522.98980469 409.70276367 523.16113281 411.02026367 C523.34310304 414.6638355 522.47166889 417.77157403 521.53222656 421.28198242 C519.72980234 428.51359012 520.40103697 434.66467588 521.53222656 441.95776367 C522.68704481 449.69805103 523.45016027 455.63518519 521.09472656 463.14526367 C521.0772838 466.65125859 521.83044239 470.01675095 522.62988281 473.43041992 C523.98920858 481.36933932 523.37596701 490.00247857 522.32128906 497.95776367 C521.68091835 504.14065332 521.87397876 510.06948071 523.09472656 516.14526367 C526.71122469 557.88320933 510.01246656 608.92144918 495.09472656 647.14526367 C494.76359863 648.00152344 494.4324707 648.8577832 494.09130859 649.73999023 C487.64259837 666.13523828 479.18515205 680.75983049 463.09472656 689.14526367 C460.77350696 689.94325567 458.48173758 690.55450843 456.09472656 691.14526367 C456.29324219 692.42530273 456.49175781 693.7053418 456.69628906 695.02416992 C458.34338446 710.24939651 451.63250481 723.69509578 442.38378906 735.24291992 C441.29400941 736.54921416 440.19815574 737.85047861 439.09472656 739.14526367 C438.4194189Line truncated
|
||||
<path transform="translate(1015.7267150878906,124.73930358886719)" fill="#FA8181" d="M0 0 C0.85435461 -0.00382555 1.70870923 -0.00765109 2.58895338 -0.01159257 C5.43903484 -0.0218744 8.28891303 -0.01793953 11.13900757 -0.01396179 C13.18788844 -0.01831107 15.23676769 -0.02349494 17.28564453 -0.02944946 C22.84379522 -0.04283105 28.40187787 -0.04341879 33.96004152 -0.04088616 C38.60673676 -0.03981536 43.2534183 -0.0447029 47.9001106 -0.04949158 C58.86972733 -0.060585 69.83930982 -0.06102584 80.80892944 -0.05497742 C92.10542194 -0.04894418 103.40178969 -0.06123254 114.6982609 -0.08254749 C124.41148406 -0.10019762 134.12466765 -0.10615926 143.83790624 -0.10290974 C149.63250772 -0.10110135 155.42702032 -0.10368819 161.22160721 -0.11762428 C166.67668204 -0.13025265 172.13156353 -0.12821126 177.58663559 -0.11521339 C179.58075274 -0.11285852 181.5748837 -0.11554291 183.56898499 -0.12383652 C201.60881004 -0.19341148 217.52790379 1.37740633 231.42562866 14.27632141 C240.37020044 23.88275368 245.63375247 35.06795494 245.50033569 48.30732727 C245.50062775 49.07888153 245.5009198 49.85043579 245.5012207 50.64537048 C245.49983762 53.17221182 245.48432509 55.69875092 245.46859741 58.22554016 C245.46486364 59.98673339 245.46201839 61.7479287 245.46002197 63.50912476 C245.45241418 68.12705804 245.4327904 72.74486396 245.41061401 77.36274719 C245.3900939 82.08196795 245.3810071 86.80120945 245.37094116 91.52046204 C245.34954166 100.76726254 245.31544041 110.01396885 245.27328491 119.26069641 C246.08515259 118.62297302 246.08515259 118.62297302 246.91342163 117.97236633 C247.98487427 117.14635925 247.98487427 117.14635925 249.07797241 116.30366516 C249.78421753 115.75476624 250.49046265 115.20586731 251.21810913 114.64033508 C253.27328491 113.26069641 253.27328491 113.26069641 256.39828491 112.57319641 C260.46323596 113.54524992 262.2863616 115.34323643 265.27328491 118.26069641 C266.7076324 121.1293914 266.59317769 123.07333098 266.27328491 126.26069641 C264.48031616 129.14741516 264.48031616 129.14741516 262.08578491 131.94819641 C261.30848022 132.8801886 260.53117554 133.81218079 259.73031616 134.77241516 C257.27530391 137.25865174 255.49420437 138.91029611 252.27328491 140.26069641 C249.96328491 139.93069641 247.65328491 139.60069641 245.27328491 139.26069641 C245.60328491 150.15069641 245.93328491 161.04069641 246.27328491 172.26069641 C252.7631693 174.15233358 252.7631693 174.15233358 259.25717163 176.02973938 C260.06428589 176.26837708 260.87140015 176.50701477 261.70297241 176.75288391 C262.5303894 176.99377747 263.3578064 177.23467102 264.21029663 177.48286438 C266.27328491 178.26069641 266.27328491 178.26069641 268.27328491 180.26069641 C268.39828491 183.38569641 268.39828491 183.38569641 268.27328491 186.26069641 C260.76618907 189.75537896 253.08934659 192.54786704 245.27328491 195.26069641 C249.6277817 200.4743385 254.21213144 205.32033132 259.04281616 210.09272766 C259.76442429 210.81054916 260.48603241 211.52837067 261.22950745 212.26794434 C263.5125067 214.53882013 265.79873491 216.80640073 268.08578491 219.07319641 C271.11597504 222.07685855 274.1428824 225.08377309 277.16781616 228.09272766 C277.86566727 228.78228043 278.56351837 229.47183319 279.28251648 230.18228149 C279.92375961 230.82022141 280.56500275 231.45816132 281.22567749 232.11543274 C281.7916011 232.67611954 282.35752472 233.23680634 282.94059753 233.81448364 C285.37187527 236.45287053 286.03404596 239.23738375 286.00765991 242.81929016 C284.26703727 248.60593458 278.97089283 252.76393396 274.27328491 256.26069641 C270.8052519 257.73051075 270.10958804 257.39272028 266.27328491 256.26069641 C260.46036301 251.95813922 255.41484312 246.52716715 250.34359741 241.39350891 C249.62719086 240.67331573 248.9107843 239.95312256 248.17266846 239.21110535 C245.91206929 236.93840801 243.65478003 234.66246812 241.39828491 232.38569641 C238.40374035 229.36461791 235.40593506 226.3468305 232.40609741 223.33100891 C231.7196817 222.63629486 231.03326599 221.94158081 230.3260498 221.22581482 C229.37398148 220.26879166 229.37398148 220.26879166 228.40267944 219.29243469 C227.84500885 218.72952728 227.28733826 218.16661987 226.71276855 217.58665466 C225.29092333 216.15407829 225.29092333 216.15407829 223.27328491 215.26069641 C223.10312866 215.91554016 222.93297241 216.57038391 222.75765991 217.24507141 C220.87070522 224.3512625 218.66345053 231.30859033 216.27328491 238.26069641 C212.89828491 238.88569641 212.89828491 238.88569641 209.27328491 239.26069641 C207.08714067 237.07455217 206.59071956 235.72189693 205.64828491 232.82319641 C205.38789429 232.04073547 205.12750366 231.25827454 204.85922241 230.45210266 C204.27328491 228.26069641 204.27328491 228.26069641 204.27328491 225.26069641 C197.84974172 225.25158263 191.42765849 225.28906381 185.00448608 225.35835266 C182.82128025 225.37647727 180.63796001 225.38408762 178.4546814 225.3808136 C175.30868626 225.37794644 172.16504665 225.41336715 169.01937866 225.45600891 C168.04931381 225.44691498 167.07924896 225.43Line truncated
|
||||
<path transform="translate(1330,422)" fill="#F93333" d="M0 0 C30.03 0 60.06 0 91 0 C101.03358416 34.28141256 110.07414447 66.86020801 113.31713867 102.2199707 C113.6402111 105.5669349 114.15933974 108.65671285 115.1171875 111.8671875 C116.3857774 116.74430222 115.67418814 121.06354404 115 126 C114.79374584 127.88266587 114.58785596 129.76537871 114.38807678 131.64874268 C111.05296885 162.89540936 105.21695051 191.17444127 91.91918945 219.97631836 C86.4773853 231.99937027 86.32020354 242.44540033 90 255 C90.64392694 256.34446284 91.30558646 257.68090483 92 259 C90.1128125 258.9071875 90.1128125 258.9071875 88.1875 258.8125 C78.05892886 258.8761017 70.21119643 261.89590055 63 269 C59.93289536 272.33863684 57.02685703 275.8109245 54.125 279.29296875 C44.8979714 290.3370033 34.86964456 300.58046766 24 310 C23.05809814 310.81791016 23.05809814 310.81791016 22.09716797 311.65234375 C12.21745505 320.16441582 1.91104224 327.65129813 -9.02734375 334.74609375 C-10.68519936 335.83026517 -12.34274802 336.9149061 -14 338 C-14.88316895 338.56734863 -15.76633789 339.13469727 -16.67626953 339.71923828 C-24.64558592 345.01197273 -28.89043352 349.54564875 -30.86132812 359.01367188 C-31.01021484 359.81353516 -31.15910156 360.61339844 -31.3125 361.4375 C-31.56483398 362.67790039 -31.56483398 362.67790039 -31.82226562 363.94335938 C-32.2300974 365.95921357 -32.61723115 367.97923705 -33 370 C-37.65696023 368.1484375 -37.65696023 368.1484375 -39.88671875 367.18359375 C-51.96311696 362.18014026 -63.08481907 364.44803979 -74.9453125 369.27734375 C-77.00792633 370.1577216 -79.06770976 371.04475263 -81.125 371.9375 C-104.90607846 381.90983021 -129.33551559 390.03048908 -154.34130859 396.32568359 C-158.09375422 397.2774058 -161.82754093 398.29474642 -165.5625 399.3125 C-169.31109702 400.33021865 -172.98362787 401.17875565 -176.8125 401.8125 C-183.16291182 403.20502887 -188.73450317 407.04638498 -192.671875 412.1796875 C-195.45732207 416.91494752 -196.92687847 421.63439237 -198 427 C-198.66 427 -199.32 427 -200 427 C-201.19140625 425.4609375 -201.19140625 425.4609375 -202.5625 423.375 C-207.01025679 417.27150893 -213.12058018 412.69682346 -220.67578125 411.2421875 C-230.55190544 410.21307876 -240.23648098 411.25006301 -250.03515625 412.42578125 C-255.47320936 413.07141989 -260.92026187 413.58056267 -266.375 414.0625 C-267.23407959 414.14161621 -268.09315918 414.22073242 -268.97827148 414.30224609 C-282.93100035 415.51929861 -296.90499283 416.03925717 -310.90625 416.2109375 C-312.0153775 416.22529343 -313.124505 416.23964935 -314.26724243 416.25444031 C-318.83698078 416.31165925 -323.40659034 416.36670729 -327.9765625 416.40136719 C-331.37007624 416.42913578 -334.76297744 416.47492724 -338.15625 416.5234375 C-339.16901001 416.52669037 -340.18177002 416.52994324 -341.22521973 416.53329468 C-352.73825229 416.72879138 -362.64458414 418.66167088 -371 427 C-373.65981507 430.11268526 -375.69240113 433.07720338 -377 437 C-377.66 437 -378.32 437 -379 437 C-379.21914063 436.43152344 -379.43828125 435.86304688 -379.6640625 435.27734375 C-382.92215758 427.34401468 -387.21981049 421.03417234 -395 417 C-403.87300369 414.1099942 -412.90961664 413.20498152 -422.14221191 412.35089111 C-454.54942454 409.32625062 -487.40633994 405.13958736 -519.16015625 397.84765625 C-528.43998293 395.79910855 -536.34748404 397.02057283 -545 401 C-548.8231825 403.546572 -551.4551113 406.18266695 -554 410 C-554.66 410 -555.32 410 -556 410 C-556.13535156 409.23816406 -556.27070312 408.47632813 -556.41015625 407.69140625 C-558.52824699 397.53218061 -562.4844656 391.22327458 -571.00561523 385.22044373 C-574.24592983 383.23756575 -577.6485747 382.19781954 -581.2734375 381.125 C-582.9023079 380.61684514 -584.53113077 380.10853789 -586.15991211 379.60009766 C-587.43437698 379.20990448 -587.43437698 379.20990448 -588.73458862 378.81182861 C-616.729619 370.2043946 -643.49864499 359.43423338 -670.04566956 347.10552979 C-690.15653851 337.70813444 -690.15653851 337.70813444 -711.76171875 340.06640625 C-714.85923098 341.35838779 -717.33561139 342.9666508 -720 345 C-719.938125 343.783125 -719.87625 342.56625 -719.8125 341.3125 C-719.85491721 332.34833005 -721.55718453 323.78942337 -727.20703125 316.68359375 C-729.59390373 314.4423257 -732.24442609 312.75634209 -735 311 C-734.71125 309.87722656 -734.4225 308.75445313 -734.125 307.59765625 C-731.25007045 296.14655724 -729.98774762 288.03628917 -733.3203125 276.546875 C-734.82370129 270.91348713 -733.89004744 266.40871267 -732.5 260.875 C-730.84113124 254.16943192 -730.69624355 247.87389601 -731 241 C-730.09882446 241.10501831 -730.09882446 241.10501831 -729.17944336 241.2121582 C-722.95700431 241.89205179 -716.81987441 242.18285458 -710.5625 242.1875 C-709.26602539 242.20586914 -709.26602539 242.20586914 -707.94335938 242.22460938 C-701.42749545 242.2391429 -695.36788727 241.32619238 -689 240 C-688.1344751 239.83363037 -687.2689502 239.66726074 -686.37719727 239.49584961 C-667.10242448 235.75618477 -648.34901345 229.88081078 -633.27343Line truncated
|
||||
<path transform="translate(792.170654296875,201.70947265625)" fill="#F92222" d="M0 0 C1.81604485 -0.01007584 1.81604485 -0.01007584 3.66877747 -0.02035522 C6.97492552 -0.03605257 10.28082225 -0.04270768 13.58699012 -0.0439868 C15.65838988 -0.04541348 17.72976371 -0.04969291 19.801157 -0.05498123 C27.04453819 -0.0734609 34.28784602 -0.0816548 41.53125 -0.08007812 C48.25514845 -0.07887862 54.97872494 -0.09994839 61.70254201 -0.13156545 C67.49731775 -0.15783088 73.29198904 -0.16844108 79.08682376 -0.16716731 C82.53794973 -0.16666049 85.98878955 -0.17218564 89.43985558 -0.19352341 C93.2974106 -0.21323698 97.15414906 -0.20732276 101.01171875 -0.1953125 C102.13577118 -0.20655151 103.25982361 -0.21779053 104.41793823 -0.22937012 C118.16942362 -0.12120879 130.76945781 4.97929771 140.91137695 14.27099609 C151.00488952 24.89899202 155.1472179 36.60964974 155.08813477 51.02416992 C155.09339172 52.61094795 155.09339172 52.61094795 155.09875488 54.2297821 C155.10753243 57.71494171 155.10173571 61.19989703 155.0949707 64.68505859 C155.09631879 67.11732522 155.09826053 69.54959159 155.10076904 71.9818573 C155.10371518 77.0767168 155.09944011 82.17150609 155.09008789 87.26635742 C155.07871197 93.77937591 155.08524438 100.2922292 155.09723282 106.80524158 C155.10448069 111.82827485 155.10214973 116.85126935 155.09697723 121.87430382 C155.09564789 124.27474678 155.09726327 126.67519332 155.10193634 129.0756321 C155.10704767 132.44008237 155.09922593 135.80427029 155.08813477 139.16870117 C155.09218323 140.15033234 155.09623169 141.1319635 155.10040283 142.14334106 C155.01030648 156.98759953 150.43089315 170.53536987 139.9934082 181.39599609 C131.36889581 188.94633637 120.0712122 194.37352761 108.53883362 194.44442749 C107.49200912 194.45302795 106.44518463 194.46162842 105.36663818 194.4704895 C104.22841614 194.47474945 103.09019409 194.4790094 101.91748047 194.48339844 C100.71028854 194.49157593 99.50309662 194.49975342 98.25932312 194.50817871 C94.26313604 194.53299384 90.26698674 194.54970358 86.27075195 194.56396484 C84.8888899 194.5693295 83.50702789 194.57470702 82.12516594 194.5800972 C76.36977957 194.60171823 70.61439589 194.62044832 64.85897923 194.63171959 C56.64594906 194.64791575 48.43339513 194.68099595 40.2205444 194.73812044 C34.42749163 194.77702078 28.63456511 194.7963762 22.8413853 194.80164015 C19.39118172 194.80526817 15.94148704 194.81701173 12.49142647 194.84974289 C-8.35944312 195.02160989 -22.99128294 193.88203196 -39.15893555 179.52490234 C-43.12939228 175.47521255 -45.61117522 170.85486805 -48.0456543 165.79052734 C-48.34439453 165.17363037 -48.64313477 164.5567334 -48.95092773 163.92114258 C-52.48499093 156.11177014 -52.32682092 147.93194297 -52.36352539 139.50683594 C-52.37170288 138.45526306 -52.37988037 137.40369019 -52.38830566 136.32025146 C-52.41300157 132.85982816 -52.42963513 129.39944544 -52.4440918 125.93896484 C-52.44941547 124.75019367 -52.45473915 123.5614225 -52.46022415 122.33662796 C-52.48688721 116.04408668 -52.50628383 109.75156477 -52.52075195 103.45898438 C-52.53408203 98.27390876 -52.56192867 93.08922749 -52.6027832 87.90429688 C-52.65229546 81.61858154 -52.67689534 75.33322329 -52.68397903 69.04732132 C-52.69065824 66.66410033 -52.70579233 64.28088627 -52.72986984 61.89777756 C-52.91530686 42.43381061 -51.06169526 28.14973239 -37.29956055 13.26708984 C-26.68135238 3.15661304 -14.16529386 -0.01132016 0 0 Z"/>
|
||||
<path transform="translate(415,511)" fill="#FA5353" d="M0 0 C0.33 0 0.66 0 1 0 C1.20625 0.969375 1.4125 1.93875 1.625 2.9375 C4.17336481 11.51872845 9.23220366 16.71983227 16.6328125 21.4921875 C27.57284858 26.39108997 39.03683285 26.70001142 50.8125 27.1875 C52.55559541 27.26697386 54.29867805 27.3467285 56.04174805 27.42675781 C65.46115663 27.8440786 74.88328267 28.18960276 84.3125 28.25 C85.60474487 28.26389771 85.60474487 28.26389771 86.9230957 28.27807617 C93.82902588 28.24283831 100.44145683 27.18618106 107 25 C107.12375 25.6084375 107.2475 26.216875 107.375 26.84375 C112.61627387 49.11916394 127.20493652 67.67253809 145.9375 80.3125 C146.66445068 80.80427734 147.39140137 81.29605469 148.14038086 81.80273438 C170.93932534 96.68316434 199.62153741 100.51364451 226 95 C226.70116943 94.85433594 227.40233887 94.70867187 228.12475586 94.55859375 C253.45829936 89.04976275 274.14393938 76.80510321 292 58 C292.56847656 58.40992188 293.13695312 58.81984375 293.72265625 59.2421875 C298.41286746 62.51515626 302.34634837 64.74363297 308 66 C309.134375 66.350625 310.26875 66.70125 311.4375 67.0625 C314.11807127 67.76791349 316.49614299 68.23998362 319.22265625 68.55859375 C321.09244141 68.77708984 321.09244141 68.77708984 323 69 C323.02505615 70.01835938 323.0501123 71.03671875 323.07592773 72.0859375 C323.17071658 75.89545413 323.27075718 79.70481846 323.37231445 83.51416016 C323.41539494 85.15702734 323.45708657 86.79993159 323.49731445 88.44287109 C323.55567485 90.81619397 323.61917275 93.18933479 323.68359375 95.5625 C323.70866249 96.64893799 323.70866249 96.64893799 323.73423767 97.75732422 C323.87122347 102.56583349 324.37589734 107.23044751 325 112 C325.09749283 113.58840868 325.17244863 115.17859894 325.2109375 116.76953125 C325.20204174 132.28137785 325.20204174 132.28137785 331.375 146 C332.24125 146.66 333.1075 147.32 334 148 C335.01320313 148.81404297 335.01320313 148.81404297 336.046875 149.64453125 C340.36832892 151.62805573 344.20847976 150.98091161 348.875 150.6875 C358.01049459 150.38693687 358.01049459 150.38693687 361.515625 152.55859375 C363.125 154.625 363.125 154.625 364.5234375 156.83203125 C368.76431485 163.05871624 377.17446696 165.88664318 384.234375 167.5234375 C395.54410212 169.47228878 406.90272963 167.09869798 416.84765625 161.35546875 C422.04407662 157.51237322 426.33629372 152.92839896 428.88671875 146.90625 C430.27257792 144.53327008 431.34258164 144.15746401 433.875 143.1875 C437.39221502 141.51809722 439.46903961 139.89045547 441.2578125 136.28125 C442.86960054 131.32712256 443.37699029 126.15260401 444 121 C460.68046274 121.7278195 477.26862326 123.34511594 493.88671875 124.91870117 C497.53097509 125.2626112 501.17562122 125.6021417 504.8203125 125.94140625 C505.9256131 126.04763809 507.0309137 126.15386993 508.16970825 126.26332092 C518.59885716 127.4393477 518.59885716 127.4393477 528.875 126 C531.83442041 125.56985168 532.7456641 125.8208088 535.234375 127.57421875 C536.02328125 128.27160156 536.8121875 128.96898437 537.625 129.6875 C545.73675635 136.78062845 555.97210278 138.77986563 566.578125 138.37890625 C577.83829078 137.13206141 588.12114276 134.40704667 597 127 C598.32058121 125.33460449 598.32058121 125.33460449 599.375 123.6875 C603.12546758 119.84773558 606.77401278 120.13620282 611.9609375 119.5390625 C615.20455998 119.1839625 615.20455998 119.1839625 618.125 116.8125 C622.07635791 110.88546314 623.87042322 104.37516551 625.6875 97.5625 C625.91244141 96.73556641 626.13738281 95.90863281 626.36914062 95.05664062 C626.91728971 93.03898546 627.45928664 91.01966057 628 89 C629.16982422 90.18335938 629.16982422 90.18335938 630.36328125 91.390625 C635.87410639 96.84430085 640.43767864 97.76630854 648 98 C651.72202237 97.72131408 655.35969669 97.12753753 659.03515625 96.48828125 C660.07151718 96.31878464 661.10787811 96.14928802 662.17564392 95.97465515 C665.47338196 95.43259192 668.76785735 94.87303758 672.0625 94.3125 C674.21399505 93.95518801 676.36568704 93.59905974 678.51757812 93.24414062 C681.74491337 92.71160757 684.97153044 92.17597222 688.19644165 91.62893677 C693.78458007 90.68245441 699.37416409 89.78773545 704.98388672 88.97802734 C706.11765244 88.81022263 707.25141815 88.64241791 708.41954041 88.4695282 C710.57884871 88.15207346 712.73992925 87.8463679 714.90284729 87.55451965 C721.69426183 86.54188455 725.9051785 85.14181445 730.80078125 80.171875 C732.41956839 77.24013022 732.75711067 74.56068715 733.1875 71.25 C733.34605469 70.07953125 733.50460937 68.9090625 733.66796875 67.703125 C733.77753906 66.81109375 733.88710937 65.9190625 734 65 C734.60360352 64.98541748 735.20720703 64.97083496 735.82910156 64.95581055 C746.9650139 64.65544234 757.29606632 64.24794934 768 61 C768.66 61 769.32 61 770 61 C770.94482451 64.8489982 771.15695883 68.54593166 771.28930664 72.48461914 C771.83941742 91.08694483 771.83941742 91.08694483 780.76953125 106.9453125 C793.58631139 118.75201365 810.0116344 117.24566258 826.17858887 116.5978241 C827.9784087 116.52160138 829.77817Line truncated
|
||||
<path transform="translate(1336.68603515625,201.725341796875)" fill="#FA5252" d="M0 0 C1.05303314 -0.00511093 2.10606628 -0.01022186 3.19100952 -0.01548767 C6.66174048 -0.0293519 10.13227203 -0.02842861 13.60302734 -0.02612305 C16.02810743 -0.03001296 18.45318684 -0.03434824 20.87826538 -0.03910828 C25.96053271 -0.04656462 31.04273058 -0.04628433 36.125 -0.04101562 C42.61087307 -0.03523535 49.09645923 -0.05212022 55.58228493 -0.0753603 C60.5925765 -0.09015777 65.60280003 -0.09096093 70.61310959 -0.08785057 C73.00270529 -0.08836121 75.39230506 -0.09355012 77.78187943 -0.10366249 C97.20363443 -0.17574131 114.40804634 0.31423692 129.46630859 14.2902832 C134.66687239 19.87566674 138.74020865 26.09523304 141.31396484 33.2746582 C141.66225342 34.19931885 142.01054199 35.12397949 142.36938477 36.07666016 C144.06173112 42.12857002 143.62189654 48.52381157 143.61474609 54.75512695 C143.61864119 56.17369205 143.62297751 57.592256 143.62773132 59.01081848 C143.63517003 61.97876774 143.63492074 64.94659801 143.62963867 67.91455078 C143.62386645 71.68553396 143.64073151 75.45602237 143.66398335 79.22692394 C143.67884729 82.15693426 143.67957505 85.08682914 143.67647362 88.0168705 C143.67698114 89.4052967 143.68210977 90.79373036 143.69228554 92.18211937 C143.79629298 108.36450246 140.49245229 122.38695411 129.22412109 134.49731445 C117.60341608 145.31003589 103.7545704 148.57047388 88.30322266 148.58105469 C87.25135773 148.5893782 86.1994928 148.59770172 85.11575317 148.60627747 C81.66616018 148.63021397 78.21675686 148.63912944 74.76708984 148.64575195 C72.34869332 148.65473046 69.93029732 148.6638525 67.51190186 148.67311096 C62.45176855 148.68955897 57.39170108 148.69729348 52.33154297 148.70019531 C45.87820729 148.70557563 39.42549852 148.74326057 32.97233963 148.78893948 C27.97916454 148.81882045 22.98613847 148.82592127 17.99288177 148.82692146 C15.61525348 148.83110153 13.23762382 148.84344571 10.86008453 148.86443901 C-7.12984303 149.01065575 -21.67278373 147.91319192 -35.68603516 135.2746582 C-48.17599936 122.39972935 -50.99932257 108.02704295 -51.05712891 90.66918945 C-51.06612145 89.25827453 -51.07524365 87.84736044 -51.08448792 86.43644714 C-51.10089509 83.48885807 -51.10866246 80.54138141 -51.11157227 77.59375 C-51.11693943 73.85637849 -51.15458453 70.12009624 -51.20031643 66.38303089 C-51.23037983 63.47009128 -51.23730212 60.55740443 -51.23829842 57.64432335 C-51.24244507 56.26867385 -51.25464936 54.89301953 -51.27581596 53.51752663 C-51.48361995 38.84386992 -47.62984806 26.28076986 -37.68603516 15.2746582 C-26.72516634 4.79814856 -14.98626309 -0.03776966 0 0 Z"/>
|
||||
<path transform="translate(787.8125,410.875)" fill="#FA5252" d="M0 0 C1.44947021 0.11758667 1.44947021 0.11758667 2.92822266 0.23754883 C8.16674438 0.70702624 13.07059603 1.43800951 18.1237793 2.92236328 C20.27184305 3.30245587 20.27184305 3.30245587 22.40475464 2.15879822 C25.67589215 0.94356086 28.28800486 0.83721531 31.77514648 0.78686523 C33.09099228 0.76442245 34.40683807 0.74197968 35.76255798 0.71885681 C37.19455891 0.70583179 38.62657221 0.69411128 40.05859375 0.68359375 C40.78674852 0.67669085 41.5149033 0.66978794 42.26512337 0.66267586 C46.1262138 0.62687943 49.98715922 0.60332806 53.84838867 0.58959961 C57.79920938 0.57314417 61.74821065 0.51485099 65.69842434 0.44645596 C68.76749883 0.4012316 71.83615586 0.38807266 74.90553474 0.38298225 C76.35939718 0.37518095 77.81325304 0.35582447 79.26678276 0.32375908 C92.70507128 0.047092 102.30834257 3.68067719 112.5625 12.5 C114.12704001 14.01844881 115.66985499 15.55968028 117.1875 17.125 C118.24904297 18.19041016 118.24904297 18.19041016 119.33203125 19.27734375 C133.50520386 34.26350905 137.35729365 51.8742582 139.02441406 71.77587891 C140.25604867 85.21058216 144.36526165 95.05442626 154.578125 104 C156.78185845 106.90978398 156.59657161 108.53303021 156.1875 112.125 C154.44677734 114.57861328 154.44677734 114.57861328 152.0234375 116.9453125 C151.14816406 117.81027344 150.27289062 118.67523437 149.37109375 119.56640625 C148.44425781 120.45199219 147.51742187 121.33757812 146.5625 122.25 C145.65886719 123.14332031 144.75523437 124.03664063 143.82421875 124.95703125 C132.73725115 135.78503318 132.73725115 135.78503318 126.4375 136.625 C114.8509342 135.92145141 104.7109572 128.05858401 96.9375 120 C85.67429972 106.53966619 83.3481815 91.05313094 81.94702148 74.16381836 C80.83306895 60.35176955 80.83306895 60.35176955 74.17578125 48.52734375 C72.15164368 47.09971038 70.38155276 46.38217135 68.06323242 45.53735352 C67.33867355 45.27156998 66.61411469 45.00578644 65.86759949 44.73194885 C65.31316666 44.53165573 64.75873383 44.33136261 64.1875 44.125 C64.22508423 44.79975876 64.26266846 45.47451752 64.3013916 46.16972351 C64.6625374 52.67952665 65.01571227 59.18971439 65.36095428 65.70038128 C65.53849808 69.04374899 65.71950106 72.38683671 65.90576172 75.72973633 C66.71462946 90.28110198 67.34704691 104.82098511 67.46875 119.39453125 C67.48820679 120.63136154 67.50766357 121.86819183 67.52770996 123.14250183 C67.52952271 124.27988297 67.53133545 125.4172641 67.53320312 126.58911133 C67.54244812 128.0890136 67.54244812 128.0890136 67.55187988 129.61921692 C67.1875 132.125 67.1875 132.125 65.83273315 133.93823242 C63.38703495 135.70240507 61.27748671 135.66454039 58.2890625 135.85546875 C57.09643799 135.93643799 55.90381348 136.01740723 54.67504883 136.10083008 C52.76308716 136.20560669 52.76308716 136.20560669 50.8125 136.3125 C49.51658936 136.39072998 48.22067871 136.46895996 46.88549805 136.54956055 C38.92796864 136.99946834 30.97008807 137.34452747 23 137.4375 C22.12875488 137.45514404 21.25750977 137.47278809 20.35986328 137.4909668 C17.95703125 137.48828125 17.95703125 137.48828125 14.1875 137.125 C11.94312447 133.75843671 11.90248807 132.48132086 11.79272461 128.52709961 C11.75606186 127.37837875 11.71939911 126.2296579 11.68162537 125.04612732 C11.65133743 123.80242874 11.6210495 122.55873016 11.58984375 121.27734375 C11.52994689 119.31860185 11.47004674 117.35986005 11.40995884 115.401124 C11.32797972 112.65147652 11.25469903 109.90162217 11.18133545 107.1517334 C11.05238868 102.36966624 10.91174915 97.58793825 10.76820374 92.80628967 C10.69272922 90.26314754 10.62126852 87.71988212 10.5544281 85.17649841 C10.52526416 67.73552917 10.52526416 67.73552917 3.6484375 52.16796875 C-0.43596992 48.33533987 -4.35472206 47.0825049 -9.8125 46.125 C-9.75191406 46.81078125 -9.69132813 47.4965625 -9.62890625 48.203125 C-8.84166984 58.03752449 -8.50334818 67.87342479 -8.20532227 77.73339844 C-8.0269196 83.31267815 -7.7833208 88.86565439 -7.328125 94.4296875 C-6.74457965 101.60914608 -6.40107049 108.78749877 -6.14501953 115.98510742 C-6.08939304 117.46974223 -6.02707442 118.95413949 -5.95849609 120.43823242 C-5.85830533 122.61607571 -5.77847603 124.79382932 -5.703125 126.97265625 C-5.65188477 128.25148682 -5.60064453 129.53031738 -5.54785156 130.84790039 C-5.8125 134.125 -5.8125 134.125 -6.85327148 136.52026367 C-9.74951398 138.89247575 -12.67338866 138.83547847 -16.26953125 138.953125 C-17.00894455 138.9918573 -17.74835785 139.0305896 -18.51017761 139.07049561 C-20.88131426 139.18988307 -23.25268268 139.28239353 -25.625 139.375 C-27.17911972 139.4514507 -28.73315883 139.52955942 -30.28710938 139.609375 C-34.07341084 139.7959529 -37.85941909 139.94169501 -41.64849854 140.05834961 C-43.0743822 140.10226626 -44.50014038 140.15050126 -45.92572021 140.20336914 C-47.87053703 140.27201042 -49.81616723 140.31632407 -51.76171875 140.359375 C-52.86217529 140.38741211 -53.96263184 140.41544922 -55.09643555 140.44433594 C-58.26610844 140.07166788 -58.86241487 139.55341035 Line truncated
|
||||
<path transform="translate(464.42578125,281.7578125)" fill="#FA5252" d="M0 0 C1.0923999 0.04745361 2.1847998 0.09490723 3.31030273 0.14379883 C4.49052002 0.21751709 5.6707373 0.29123535 6.88671875 0.3671875 C8.71795288 0.46132935 8.71795288 0.46132935 10.58618164 0.55737305 C13.20659418 0.69626769 15.82520176 0.84340423 18.44433594 1.00244141 C21.96069852 1.21295373 25.47770832 1.37926338 28.9969635 1.53295898 C31.81805485 1.65899738 34.6380748 1.80253303 37.45809937 1.95037842 C38.81999367 2.01955285 40.18217562 2.0832921 41.54458618 2.14141846 C43.46029622 2.22590694 45.37477318 2.33705967 47.2890625 2.44921875 C48.383396 2.5056958 49.47772949 2.56217285 50.60522461 2.62036133 C54.54060296 3.44458702 56.06782925 4.0301409 58.57421875 7.2421875 C59.13778252 11.26409563 58.83218669 15.20066628 58.57421875 19.2421875 C58.49788712 21.01515701 58.49788712 21.01515701 58.42001343 22.82394409 C58.24469536 26.81808372 58.02859731 30.80916217 57.8046875 34.80078125 C57.7230692 36.29601345 57.64167933 37.79125813 57.5605011 39.28651428 C57.34366241 43.26134386 57.12230018 47.23590871 56.89968872 51.2104187 C56.76056799 53.7002829 56.62276518 56.19021682 56.48535156 58.68017578 C55.40701105 78.20474068 54.26826012 97.72161355 52.89981079 117.228302 C51.37159776 139.10070189 50.23260638 160.99599065 49.05872154 182.88967705 C48.933109 185.23238014 48.80721555 187.57506803 48.68130493 189.91775513 C48.52648954 192.7989331 48.37311587 195.68018211 48.22079468 198.56149292 C48.08107647 201.17347438 47.9340149 203.78507592 47.77874756 206.3961792 C47.63679587 209.0654725 47.53304074 211.71512489 47.47369385 214.38555908 C47.43817256 215.40070052 47.43817256 215.40070052 47.40193367 216.43634987 C47.33671751 218.30041948 47.29299952 220.16520593 47.25076294 222.02993774 C46.389536 226.11906608 44.77628951 227.64215629 41.57421875 230.2421875 C39.30249023 230.7722168 39.30249023 230.7722168 36.7578125 230.62890625 C35.70577637 230.5829834 34.65374023 230.53706055 33.56982422 230.48974609 C32.64614044 230.43098297 32.64614044 230.43098297 31.70379639 230.37103271 C29.22933929 230.22132136 26.75482975 230.12106129 24.27783203 230.02197266 C19.13647185 229.80707805 14.00024194 229.53239846 8.86303711 229.23510742 C6.70014235 229.11415553 4.53668306 229.00293176 2.37280273 228.90112305 C-0.77917654 228.7521152 -3.92814078 228.57275637 -7.078125 228.38671875 C-8.04274155 228.34690384 -9.00735809 228.30708893 -10.00120544 228.2660675 C-14.15804294 227.99097192 -16.90130693 227.53537064 -20.57250977 225.4831543 C-23.56981727 220.24151853 -22.7925117 215.14065307 -22.42578125 209.2421875 C-22.34265182 207.4604866 -22.34265182 207.4604866 -22.25784302 205.64279175 C-22.06662787 201.7972639 -21.83199688 197.95557078 -21.5859375 194.11328125 C-21.49840747 192.70656326 -21.41112709 191.29982971 -21.32408142 189.89308167 C-21.14256858 186.97436762 -20.95821795 184.05585135 -20.77172852 181.13745117 C-20.53325837 177.40223947 -20.30186641 173.66662781 -20.07251835 169.93084621 C-19.89423006 167.0387699 -19.71235836 164.14692757 -19.52938652 161.25514412 C-19.44259278 159.87693083 -19.3568827 158.49864883 -19.272295 157.12029839 C-19.15399093 155.20163509 -19.03036108 153.28330243 -18.90649414 151.36499023 C-18.83765518 150.27613022 -18.76881622 149.1872702 -18.69789124 148.06541443 C-18.46766719 145.6767673 -18.09348558 143.54005384 -17.42578125 141.2421875 C-18.21299561 141.22236816 -19.00020996 141.20254883 -19.8112793 141.18212891 C-34.75617202 140.79091832 -49.6905125 140.28589215 -64.61328125 139.3671875 C-66.45442505 139.26784912 -66.45442505 139.26784912 -68.33276367 139.16650391 C-69.47076416 139.09093262 -70.60876465 139.01536133 -71.78125 138.9375 C-73.27628052 138.8449292 -73.27628052 138.8449292 -74.80151367 138.75048828 C-77.79307568 138.17104535 -79.26654582 137.37783332 -81.42578125 135.2421875 C-81.80567181 132.58939241 -81.89346148 130.39376024 -81.80078125 127.7421875 C-81.78571533 126.95062256 -81.77064941 126.15905762 -81.75512695 125.34350586 C-81.67817321 122.30786137 -81.55392716 119.27611689 -81.42578125 116.2421875 C-81.3705079 114.82308322 -81.3153387 113.40397489 -81.26025391 111.98486328 C-81.10343264 108.0541246 -80.92387113 104.12488249 -80.7300415 100.19580078 C-80.65232934 98.60434667 -80.57838256 97.01270413 -80.50823975 95.42089844 C-80.40526869 93.15329022 -80.28335487 90.88746215 -80.15625 88.62109375 C-80.11380913 87.59400047 -80.11380913 87.59400047 -80.07051086 86.54615784 C-79.82555488 82.60748509 -79.43754029 79.92883723 -76.42578125 77.2421875 C-74.20288086 76.75634766 -74.20288086 76.75634766 -71.578125 76.78125 C-70.10025513 76.78499634 -70.10025513 76.78499634 -68.5925293 76.78881836 C-67.52687744 76.81468018 -66.46122559 76.84054199 -65.36328125 76.8671875 C-64.26089111 76.88080322 -63.15850098 76.89441895 -62.02270508 76.90844727 C-50.79903951 77.11695359 -39.62761003 77.96951291 -28.45068359 78.97216797 C-23.44437224 79.41905904 -18.43492936 79.8285166 -13.42578125 80.2421875 C-13.4507971Line truncated
|
||||
<path transform="translate(1040.7578125,388.29296875)" fill="#F92222" d="M0 0 C2.37310682 0.98944152 2.37310682 0.98944152 5.2421875 -0.29296875 C15.46869631 -0.75830525 25.6186488 -0.12367791 35.79150391 0.87890625 C37.90047704 1.08528894 40.01051487 1.27566293 42.12109375 1.46484375 C43.48706796 1.59411721 44.85295733 1.72429116 46.21875 1.85546875 C47.42611816 1.97067871 48.63348633 2.08588867 49.87744141 2.20458984 C53.21738894 2.7033282 56.1172344 3.43041259 59.2421875 4.70703125 C63.96285236 14.14836098 59.02055125 33.39045374 56.70703125 43.37109375 C55.13101713 51.29089578 55.05908519 59.09235799 55.0546875 67.14453125 C55.04244141 68.32080078 55.03019531 69.49707031 55.01757812 70.70898438 C55.00223324 79.85964949 55.10294019 88.43686996 61.2421875 95.70703125 C63.81521799 97.85122332 66.47901465 99.81573333 69.2421875 101.70703125 C68.32120588 108.10890349 64.97660152 113.53581925 62.03271484 119.19970703 C60.99838539 121.19507464 59.98116427 123.19853736 58.96484375 125.203125 C58.30310845 126.4862063 57.64037989 127.76877591 56.9765625 129.05078125 C56.38069336 130.20771484 55.78482422 131.36464844 55.17089844 132.55664062 C53.16946365 135.82581967 51.13709514 138.20264239 48.2421875 140.70703125 C39.28351063 142.57342226 29.47415408 136.68720866 22.1796875 132.01953125 C20.89384766 131.14748047 20.89384766 131.14748047 19.58203125 130.2578125 C18.80988281 129.74605469 18.03773437 129.23429688 17.2421875 128.70703125 C16.60152344 128.26359375 15.96085937 127.82015625 15.30078125 127.36328125 C12.14233828 126.35641518 10.34400103 127.56944094 7.3671875 128.89453125 C-13.71120333 137.46641019 -34.18620515 136.45297127 -55.1328125 128.39453125 C-71.93449884 120.92459232 -86.76384947 106.5240518 -93.76171875 89.453125 C-94.09042969 88.54691406 -94.41914062 87.64070313 -94.7578125 86.70703125 C-95.07621094 85.83175781 -95.39460937 84.95648438 -95.72265625 84.0546875 C-101.36740045 65.50767083 -97.71473268 45.93046929 -88.80078125 29.12890625 C-79.01506858 12.7383053 -65.54591388 1.29929166 -47.0703125 -4.23046875 C-31.80945989 -7.53562667 -14.31106657 -6.00894932 0 0 Z"/>
|
||||
<path transform="translate(427,586)" fill="#F92323" d="M0 0 C2.53844291 0.95480069 4.65292265 1.8984235 7 3.1875 C7.67095703 3.53917236 8.34191406 3.89084473 9.03320312 4.25317383 C11.36571937 5.4837898 13.68282676 6.7407463 16 8 C17.84352949 8.98999407 19.68729105 9.97955607 21.53125 10.96875 C26.6532199 13.72549121 31.76093684 16.50781844 36.86669922 19.29443359 C39.9287942 20.96124017 42.99635942 22.61742346 46.06640625 24.26953125 C55.77105749 29.49541644 65.42813579 34.78435133 75 40.25 C83.66732129 45.19829681 92.43937871 49.92030205 101.26623535 54.57519531 C120.98050621 64.97383126 120.98050621 64.97383126 129.25 69.75 C129.90403809 70.11955811 130.55807617 70.48911621 131.23193359 70.86987305 C135.64355902 73.47180214 138.70044942 76.40089884 141 81 C141.87336306 87.01372851 140.89333985 91.16940141 137.6796875 96.2734375 C132.78452364 101.30521059 126.48567829 101.75107412 119.875 102.5 C118.89394287 102.61964111 117.91288574 102.73928223 116.90209961 102.86254883 C104.28388445 104.37602659 91.64115189 105.69432141 79 107 C79 110.45880601 81.94418102 112.7390726 84.125 115.25 C84.65834961 115.8675415 85.19169922 116.48508301 85.74121094 117.12133789 C89.75952897 121.71312034 93.93883055 126.12044901 98.25 130.4375 C98.80316895 130.99147461 99.35633789 131.54544922 99.92626953 132.11621094 C113.22241244 145.23549117 128.02161899 156.90419324 143.390625 167.4765625 C146.36721484 169.52858203 149.21045544 171.69700391 152 174 C150.64356298 177.71710317 148.95339775 180.8054197 146.7421875 184.08203125 C146.11699219 185.01337891 145.49179687 185.94472656 144.84765625 186.90429688 C144.19667969 187.86400391 143.54570313 188.82371094 142.875 189.8125 C142.21628906 190.79154297 141.55757812 191.77058594 140.87890625 192.77929688 C139.25674211 195.18903347 137.63033154 197.59578494 136 200 C130.60306977 197.03947922 125.60563979 193.73823374 120.625 190.125 C119.84624512 189.56055176 119.06749023 188.99610352 118.26513672 188.41455078 C101.79731832 176.35010548 86.7649389 162.8136911 72.28134155 148.45556641 C70.85768427 147.0447759 69.43048541 145.63756205 68.00317383 144.23046875 C61.88712768 138.12152349 56.34303358 131.79231194 51 125 C46.63678234 132.15681922 42.50129644 139.41990984 38.4375 146.75 C33.67222637 155.27692854 28.89240922 163.79525398 24 172.25 C23.22740845 173.61463379 23.22740845 173.61463379 22.43920898 175.00683594 C19.14278263 180.65111531 15.99088409 185.00455796 10 188 C5.34951706 188.56735892 1.90269423 188.4598631 -2.3125 186.3125 C-6.71841877 182.5213606 -9.67369453 179.28211412 -10.26360416 173.34856129 C-10.32905147 172.27333053 -10.39449877 171.19809977 -10.46192932 170.09028625 C-10.53903137 168.85557587 -10.61613342 167.62086548 -10.6955719 166.34873962 C-10.77702994 164.97769657 -10.85840216 163.60664842 -10.93969727 162.2355957 C-11.02817718 160.79313118 -11.117002 159.35068778 -11.20614624 157.90826416 C-11.44754424 153.98416694 -11.68373661 150.05977229 -11.91875577 146.13528848 C-12.1159237 142.85093786 -12.31565008 139.56674491 -12.51538509 136.28254956 C-12.98747917 128.51955853 -13.45540707 120.75632409 -13.9206543 112.99291992 C-14.39869681 105.01703235 -14.88313816 97.04155256 -15.37091595 89.06625491 C-15.79061137 82.2008207 -16.2064991 75.33516301 -16.61937374 68.46931523 C-16.86545569 64.37747377 -17.11284714 60.28572339 -17.36380196 56.19417763 C-17.60046335 52.33259122 -17.83229534 48.47074228 -18.06068039 44.60865784 C-18.14448103 43.20428791 -18.22985728 41.8000108 -18.31707954 40.39584923 C-18.59372453 35.93196817 -18.81706694 31.46867798 -19 27 C-19.03230548 26.29925346 -19.06461095 25.59850692 -19.09789538 24.87652564 C-19.18896649 22.72092267 -19.24882519 20.56646147 -19.30064392 18.40959167 C-19.33973845 17.13358188 -19.37883299 15.85757208 -19.41911221 14.54289532 C-18.78574932 9.18886751 -16.34599557 6.185758 -12.375 2.6875 C-8.28747231 -0.21679599 -4.93438928 -0.52562951 0 0 Z"/>
|
||||
<path transform="translate(313.968505859375,282.595947265625)" fill="#FA5252" d="M0 0 C1.22814926 -0.01268417 2.45629852 -0.02536835 3.72166443 -0.03843689 C5.06322396 -0.03638536 6.40478234 -0.03339725 7.74633789 -0.02954102 C9.12252562 -0.03410212 10.49871106 -0.03940748 11.87489319 -0.04542542 C14.7591375 -0.05436074 17.64310499 -0.05192919 20.52734375 -0.04199219 C24.22092876 -0.03050596 27.91355724 -0.0507049 31.60701656 -0.07990932 C34.44924475 -0.09826991 37.2912437 -0.09797921 40.13351631 -0.0922718 C41.49506535 -0.09211855 42.85662987 -0.09816682 44.21812248 -0.11056328 C46.12322616 -0.12546428 48.02848709 -0.11217074 49.93359375 -0.09765625 C51.01708603 -0.09749008 52.10057831 -0.09732391 53.21690369 -0.09715271 C56.03149414 0.40405273 56.03149414 0.40405273 58.38764954 1.78535461 C60.99873703 5.94490223 60.52561451 9.99451089 60.4309082 14.80493164 C60.42596596 15.88285351 60.42102371 16.96077538 60.4159317 18.07136154 C60.39492423 21.71650285 60.34563733 25.36074389 60.29711914 29.00561523 C60.27695972 31.62747743 60.25888939 34.24935639 60.24273682 36.87124634 C60.21085775 41.8632256 60.17184409 46.85506623 60.1253221 51.84693038 C60.02972296 62.2276452 59.99953088 72.60790167 59.98657227 82.98901367 C59.96567757 98.58838998 59.91810785 114.18743153 59.84752655 129.78666306 C59.80731898 138.77876093 59.77504657 147.77076011 59.76049805 156.76293945 C59.74750816 164.78404284 59.720707 172.80495665 59.67688107 180.82595313 C59.65439315 185.02328993 59.63857672 189.22039463 59.63961029 193.41779709 C59.64035279 197.31421949 59.62257026 201.21011083 59.59032631 205.10639572 C59.58181254 206.52982157 59.58008745 207.95330685 59.58569145 209.37674713 C59.5923216 211.31835811 59.57206742 213.26000533 59.55047607 215.20150757 C59.54494532 216.82736817 59.54494532 216.82736817 59.53930283 218.48607445 C58.9094497 222.1053464 57.55380867 223.78256357 55.03149414 226.40405273 C52.39773994 227.72092983 50.40142574 227.55290903 47.4519043 227.58105469 C46.28374176 227.59388992 45.11557922 227.60672516 43.91201782 227.61994934 C42.64433563 227.62733627 41.37665344 227.63472321 40.07055664 227.64233398 C38.77330658 227.65040573 37.47605652 227.65847748 36.13949585 227.66679382 C33.39060598 227.6818192 30.64174194 227.6916583 27.89282227 227.69921875 C24.37303973 227.71028693 20.85388878 227.74469174 17.33432961 227.78439045 C13.9755969 227.81682952 10.61693394 227.82133284 7.25805664 227.82983398 C5.36260605 227.85609612 5.36260605 227.85609612 3.42886353 227.88288879 C1.66716324 227.87850044 1.66716324 227.87850044 -0.13012695 227.87402344 C-1.16334076 227.87988968 -2.19655457 227.88575592 -3.26107788 227.89179993 C-6.75591675 227.26219949 -7.76178465 226.14857096 -9.96850586 223.40405273 C-10.46349049 220.8384304 -10.46349049 220.8384304 -10.45625305 217.87826538 C-10.46320033 216.75138337 -10.47014761 215.62450136 -10.47730541 214.46347141 C-10.46449189 213.22876071 -10.45167837 211.99405001 -10.43847656 210.72192383 C-10.44063581 209.41491233 -10.44279505 208.10790083 -10.44501972 206.76128292 C-10.45038694 203.156686 -10.43080476 199.55259733 -10.40687418 195.94809175 C-10.3856611 192.12143071 -10.38714438 188.29477349 -10.38583374 184.46806335 C-10.37959054 177.10749856 -10.35182909 169.74717181 -10.31587958 162.38669807 C-10.28746778 156.48867292 -10.26714881 150.59067162 -10.25259399 144.69259644 C-10.24949737 143.44527944 -10.24949737 143.44527944 -10.24633819 142.17276412 C-10.24219024 140.49448166 -10.23805091 138.81619918 -10.23392022 137.13791668 C-10.18872109 119.33491443 -10.10405313 101.53222504 -10.00347656 83.72945923 C-9.97129298 78.00691214 -9.94354089 72.28434973 -9.91666317 66.56177521 C-9.86466152 55.62097243 -9.78889268 44.68072452 -9.67757797 33.74036407 C-9.65602515 31.4685856 -9.6391784 29.19681339 -9.6234436 26.92498779 C-9.5940399 22.86685367 -9.53960288 18.80951503 -9.48022461 14.75170898 C-9.47380951 13.61207199 -9.46739441 12.472435 -9.46078491 11.29826355 C-9.44101593 10.28266861 -9.42124695 9.26707367 -9.40087891 8.22070312 C-9.38977585 7.35312881 -9.37867279 6.4855545 -9.36723328 5.59169006 C-8.96850586 3.40405273 -8.96850586 3.40405273 -7.81451416 1.62826538 C-5.1704272 -0.12520706 -3.15904716 0.0157646 0 0 Z"/>
|
||||
<path transform="translate(577,454)" fill="#F92222" d="M0 0 C3.10766602 1.13232422 3.10766602 1.13232422 6.25390625 2.5546875 C7.42864502 3.08231689 8.60338379 3.60994629 9.8137207 4.15356445 C11.06353659 4.7268909 12.31312537 5.30071262 13.5625 5.875 C14.84907486 6.45885877 16.13577866 7.04243348 17.42260742 7.62573242 C28.76030335 12.79074487 39.92521011 18.29354415 51 24 C51 24.33 51 24.66 51 25 C49.948125 25.14695312 49.948125 25.14695312 48.875 25.296875 C40.99856987 26.53826888 34.91628845 28.08371155 29.1875 33.8125 C23.74977024 41.73604908 21.78650124 49.99733283 23.42578125 59.45703125 C25.39940451 67.33941618 29.58962531 73.22051038 36.5625 77.5 C43.16623097 80.40203021 52.33437202 80.37981199 59.0625 77.8125 C65.68603285 73.72563931 69.7319543 68.14776169 71.58984375 60.60546875 C73.03056026 51.45348862 71.92932538 44.31628303 68 36 C67.67 35.01 67.34 34.02 67 33 C69.63351665 34.29635477 72.21168709 35.65511324 74.765625 37.1015625 C89.88049612 45.61705463 104.24901438 53.28055665 121 58 C121.99 58.33 122.98 58.66 124 59 C124.62829492 73.86964636 116.50589718 88.36067634 106.875 99.1875 C91.23387858 115.95686007 68.37078473 125.70710219 45.6640625 127.22265625 C32.33652664 127.56707572 19.95156676 124.87887878 8 119 C7.02546875 118.53078125 6.0509375 118.0615625 5.046875 117.578125 C-12.34939948 108.37904792 -23.26439073 92.87388023 -29.08984375 74.41015625 C-33.96066799 56.16024399 -31.21593081 35.85892732 -23 19 C-10.80571346 -2.06449202 -10.80571346 -2.06449202 0 0 Z"/>
|
||||
<path transform="translate(1317,363)" fill="#FA5353" d="M0 0 C0.65469772 0.13957123 1.30939545 0.27914246 1.9839325 0.42294312 C13.73870754 2.59163484 25.54382126 2.35398703 37.45703125 2.4140625 C39.81500405 2.43280035 42.17297032 2.45237566 44.53092957 2.4727478 C50.69731784 2.5237986 56.8637278 2.56356821 63.0302124 2.60089111 C69.3385543 2.64110146 75.64680815 2.69211563 81.95507812 2.7421875 C94.30332332 2.838626 106.65161854 2.92313223 119 3 C118.99442581 3.68956284 118.98885162 4.37912567 118.98310852 5.08958435 C118.97877304 5.99257767 118.97443756 6.89557098 118.9699707 7.82592773 C118.96439651 8.72174057 118.95882233 9.61755341 118.95307922 10.54051208 C119.00431427 13.22614493 119.39142009 15.498331 120.1875 18.0625 C120.60515625 19.46628906 120.60515625 19.46628906 121.03125 20.8984375 C121.3509375 21.92195313 121.670625 22.94546875 122 24 C128.8670625 46.31795313 134.5676257 68.8348245 138.375 91.875 C138.49624237 92.6040152 138.61748474 93.3330304 138.74240112 94.08413696 C140.21408111 103.02718946 141.41239207 111.97110688 142.28536987 120.99349976 C142.83360905 126.40451622 143.97089713 130.97135375 146 136 C146.33 136.99 146.66 137.98 147 139 C156.37392568 144.41060318 168.4544205 142.05636326 178.6875 141.1875 C180.00572754 141.08272339 180.00572754 141.08272339 181.35058594 140.97583008 C186.52582162 140.48718748 191.12112068 139.50908387 196.00317383 137.7121582 C197.98348232 137.00589095 199.95381259 136.47766341 202 136 C202.51083558 139.31092101 203.00663214 142.62393479 203.5 145.9375 C203.64308594 146.86369141 203.78617188 147.78988281 203.93359375 148.74414062 C205.2724619 157.82931733 206.13199466 165.58843944 202 174 C200.3125 175.6875 200.3125 175.6875 198 176 C196.82050781 175.525625 195.64101562 175.05125 194.42578125 174.5625 C189.88309061 172.79649754 185.71360109 172.4502343 180.875 172.3125 C180.05040283 172.28051514 179.22580566 172.24853027 178.3762207 172.21557617 C175.91765455 172.12723447 173.45938561 172.06073807 171 172 C170.29311035 171.97808594 169.5862207 171.95617187 168.85791016 171.93359375 C160.0164761 171.67386986 153.59067563 172.08838636 146 177 C140.53569222 171.53569222 141.05065452 160.00695817 140.1875 152.75 C137.62777758 132.13035354 134.17844322 111.82030671 129 91.6875 C128.51998535 89.82061523 128.51998535 89.82061523 128.03027344 87.91601562 C125.99903329 80.24608562 123.65527145 72.73762045 121.08740234 65.23486328 C119.03784394 59.13772614 117.72778792 54.1825598 118.4609375 47.73828125 C118.55938965 46.84794189 118.6578418 45.95760254 118.75927734 45.0402832 C118.87843506 44.03034302 118.87843506 44.03034302 119 43 C117.70089188 43.00666183 116.40178375 43.01332367 115.06330872 43.02018738 C102.77940358 43.08118361 90.49552945 43.12606128 78.21150684 43.15543652 C71.89720628 43.17104663 65.58302866 43.19219957 59.26879883 43.22631836 C53.16741933 43.25907813 47.06615759 43.27688797 40.96469688 43.28463173 C38.64486528 43.29014551 36.32503961 43.30091204 34.00525856 43.31719017 C10.67080426 43.4743165 10.67080426 43.4743165 0 40 C0.061875 40.969375 0.12375 41.93875 0.1875 42.9375 C0.05242124 54.14903681 -6.43626207 60.43626207 -14 68 C-16.13574219 67.98974609 -16.13574219 67.98974609 -18.796875 67.6484375 C-36.67517261 65.68845497 -53.8621601 66.39191696 -71.26953125 70.90625 C-75.32108965 71.94075923 -78.83115485 72.22749496 -83 72 C-82.53532039 69.07845052 -82.05549029 66.16104596 -81.55078125 63.24609375 C-81.22165904 61.30637351 -80.91815743 59.36162792 -80.66796875 57.41015625 C-79.85843164 52.20598913 -78.38167533 49.6852843 -74.17578125 46.515625 C-73.45777344 46.01546875 -72.73976563 45.5153125 -72 45 C-70.24949321 43.72986484 -68.49953237 42.45897703 -66.75 41.1875 C-65.81542969 40.52234375 -64.88085938 39.8571875 -63.91796875 39.171875 C-59.90297081 36.18346957 -56.15676402 32.90606065 -52.41015625 29.58984375 C-50 28 -50 28 -47.83203125 28.16015625 C-46 29 -46 29 -43.625 30.5 C-37.40352639 34.05512778 -29.43636676 33.85243589 -22.625 32.0625 C-16.61498595 29.86853293 -12.37534882 25.52860096 -8 21 C-7.18982422 20.18208984 -7.18982422 20.18208984 -6.36328125 19.34765625 C-1.78828416 13.94833536 -1.15602655 6.77638326 0 0 Z"/>
|
||||
<path transform="translate(1277.5,457.75)" fill="#F92323" d="M0 0 C1.20398437 -0.020625 2.40796875 -0.04125 3.6484375 -0.0625 C22.637936 -0.14417526 22.637936 -0.14417526 29.36962891 4.55517578 C32.66188014 9.49141942 29.24710294 18.86106848 28.1953125 24.2734375 C27.67869472 26.72540513 27.1551589 29.17592452 26.625 31.625 C26.36847656 32.86894531 26.11195312 34.11289062 25.84765625 35.39453125 C25.59113281 36.59207031 25.33460937 37.78960937 25.0703125 39.0234375 C24.84102051 40.10028809 24.61172852 41.17713867 24.37548828 42.28662109 C23.45654319 45.39709392 22.48402721 47.68046432 20.5 50.25 C16.90084795 50.59277639 14.09590539 50.68600443 10.62963867 49.73901367 C8.46700298 49.24242313 6.60508155 49.13556756 4.390625 49.15234375 C3.25947266 49.15717773 3.25947266 49.15717773 2.10546875 49.16210938 C1.32816406 49.17048828 0.55085938 49.17886719 -0.25 49.1875 C-1.04277344 49.19201172 -1.83554688 49.19652344 -2.65234375 49.20117188 C-4.60159508 49.21291435 -6.55080738 49.23084854 -8.5 49.25 C-8.4498877 49.83861816 -8.39977539 50.42723633 -8.34814453 51.03369141 C-6.21909086 76.4230185 -4.42961942 101.95145456 -4.1875 127.4375 C-4.16993652 128.41025879 -4.15237305 129.38301758 -4.13427734 130.38525391 C-4.13508301 131.2622998 -4.13588867 132.1393457 -4.13671875 133.04296875 C-4.13373779 133.7908667 -4.13075684 134.53876465 -4.12768555 135.30932617 C-4.5 137.25 -4.5 137.25 -5.49975586 138.96728516 C-8.70084709 141.02007819 -12.17041581 140.84934061 -15.8671875 140.98046875 C-17.11304123 141.04068962 -17.11304123 141.04068962 -18.38406372 141.10212708 C-21.04729564 141.22719735 -23.7109196 141.33223751 -26.375 141.4375 C-28.13026603 141.51894823 -29.88547584 141.60161776 -31.640625 141.68554688 C-35.83509989 141.87999567 -40.02964489 142.0411488 -44.22644043 142.1762085 C-45.6837061 142.22350606 -47.14084721 142.27492909 -48.59777832 142.331604 C-50.42142528 142.39990389 -52.2459006 142.44498755 -54.0703125 142.48828125 C-55.5555542 142.52949097 -55.5555542 142.52949097 -57.07080078 142.5715332 C-60.02221143 142.18087915 -60.66601794 141.53556445 -62.5 139.25 C-62.99159145 137.36604786 -62.99159145 137.36604786 -63.15171814 135.23408508 C-63.21623106 134.4341041 -63.28074398 133.63412312 -63.34721184 132.80990028 C-63.39763193 131.96513319 -63.44805202 131.1203661 -63.5 130.25 C-63.55293276 129.42183462 -63.60586552 128.59366924 -63.6604023 127.74040794 C-63.81888199 124.99581987 -63.9488706 122.25101214 -64.07250977 119.50463867 C-64.14588058 117.95150215 -64.14588058 117.95150215 -64.22073364 116.36698914 C-64.38053202 112.9674443 -64.53610994 109.567722 -64.69140625 106.16796875 C-64.80190422 103.78818466 -64.91257906 101.40840878 -65.02342224 99.02864075 C-65.25472242 94.04839426 -65.48393977 89.06805746 -65.71166992 84.08764648 C-66.00255772 77.72945262 -66.29852426 71.37150739 -66.59605503 65.01362133 C-66.82542551 60.10042022 -67.0521226 55.18709848 -67.27802849 50.27373695 C-67.38606294 47.93073111 -67.49490185 45.5877622 -67.60458565 43.24483299 C-67.75805259 39.95785451 -67.90791623 36.67072996 -68.05688477 33.38354492 C-68.10206741 32.43094788 -68.14725006 31.47835083 -68.19380188 30.49688721 C-68.31621343 27.74822587 -68.41268227 24.99998768 -68.5 22.25 C-68.54372175 21.17630976 -68.5874435 20.10261951 -68.63249016 18.9963932 C-68.67342891 17.38529702 -68.67342891 17.38529702 -68.7151947 15.74165344 C-68.74600097 14.76317098 -68.77680723 13.78468851 -68.80854702 12.77655506 C-68.5 10.25 -68.5 10.25 -67.16982365 8.43556499 C-64.55656646 6.58016772 -62.15497706 6.77441736 -58.98828125 6.66015625 C-57.67972168 6.60013428 -56.37116211 6.5401123 -55.02294922 6.47827148 C-54.33424744 6.45159393 -53.64554565 6.42491638 -52.93597412 6.39743042 C-41.01541468 5.92065601 -29.94351347 4.81260325 -18.5 1.25 C-12.38517359 -0.19776934 -6.25215732 0.02610504 0 0 Z"/>
|
||||
<path transform="translate(1178.5,406.75)" fill="#F92323" d="M0 0 C1.20398437 -0.020625 2.40796875 -0.04125 3.6484375 -0.0625 C22.637936 -0.14417526 22.637936 -0.14417526 29.36962891 4.55517578 C32.66188014 9.49141942 29.24710294 18.86106848 28.1953125 24.2734375 C27.67869472 26.72540513 27.1551589 29.17592452 26.625 31.625 C26.36847656 32.86894531 26.11195312 34.11289062 25.84765625 35.39453125 C25.59113281 36.59207031 25.33460937 37.78960937 25.0703125 39.0234375 C24.84102051 40.10028809 24.61172852 41.17713867 24.37548828 42.28662109 C23.46824253 45.35749363 22.34918609 47.6425948 20.5 50.25 C16.66558546 51.89332052 13.95780724 50.83958038 10.08837891 49.72680664 C6.6249483 49.08880627 3.21733762 49.1374624 -0.2890625 49.18359375 C-1.33090698 49.1907843 -1.33090698 49.1907843 -2.39379883 49.19812012 C-4.09590827 49.2105603 -5.79796718 49.22961398 -7.5 49.25 C-7.46241577 49.9985022 -7.42483154 50.74700439 -7.3861084 51.51818848 C-7.0269744 58.69191039 -6.67372923 65.86588988 -6.32654572 73.04019928 C-6.14800975 76.72552718 -5.96746442 80.41073003 -5.78173828 84.09570312 C-5.06028293 98.44220688 -4.36597828 112.79018866 -4.21875 127.15625 C-4.19929321 128.14677368 -4.17983643 129.13729736 -4.15979004 130.15783691 C-4.15707092 131.50766663 -4.15707092 131.50766663 -4.15429688 132.88476562 C-4.14505188 134.04957458 -4.14505188 134.04957458 -4.13562012 135.23791504 C-4.60088224 137.80706599 -5.4460544 138.68121445 -7.5 140.25 C-12.10657025 141.11579728 -16.81989842 141.12333961 -21.5 141.25 C-22.67224121 141.28287109 -22.67224121 141.28287109 -23.86816406 141.31640625 C-26.30803801 141.3747067 -28.74708351 141.4111371 -31.1875 141.4375 C-31.96552979 141.45063232 -32.74355957 141.46376465 -33.54516602 141.47729492 C-37.39976866 141.48281423 -39.21714294 141.43857137 -42.5 139.25 C-46.73270239 138.05461869 -50.95024615 138.13323273 -55.3125 138.1875 C-56.00537109 138.19201172 -56.69824219 138.19652344 -57.41210938 138.20117188 C-59.10811068 138.21286844 -60.80406703 138.23080076 -62.5 138.25 C-63.37119532 132.00289697 -63.79315442 125.80973142 -64.07250977 119.51049805 C-64.14588058 117.94054077 -64.14588058 117.94054077 -64.22073364 116.33886719 C-64.3807571 112.89662085 -64.53621055 109.45418587 -64.69140625 106.01171875 C-64.80187495 103.60568829 -64.91255017 101.1996673 -65.02342224 98.7936554 C-65.25485306 93.75616264 -65.48407083 88.7185755 -65.71166992 83.6809082 C-66.00256592 77.24524043 -66.29850279 70.80981661 -66.59605503 64.37445354 C-66.82527715 59.40638176 -67.05202927 54.43819959 -67.27802849 49.46998024 C-67.38616719 47.09824222 -67.49500922 44.72653615 -67.60458565 42.35486412 C-67.75781897 39.02924451 -67.90777273 35.70349218 -68.05688477 32.37768555 C-68.10206741 31.41057144 -68.14725006 30.44345734 -68.19380188 29.44703674 C-68.31435149 26.71500719 -68.4108737 23.98321987 -68.5 21.25 C-68.54372175 20.25012369 -68.5874435 19.25024738 -68.63249016 18.22007179 C-68.65978266 17.23731459 -68.68707516 16.25455738 -68.7151947 15.24201965 C-68.74600097 14.35629682 -68.77680723 13.47057398 -68.80854702 12.55801105 C-68.5 10.25 -68.5 10.25 -67.16982365 8.46679211 C-64.56372115 6.5677383 -62.17310254 6.77507136 -58.98828125 6.66015625 C-57.67972168 6.60013428 -56.37116211 6.5401123 -55.02294922 6.47827148 C-54.33424744 6.45159393 -53.64554565 6.42491638 -52.93597412 6.39743042 C-41.01541468 5.92065601 -29.94351347 4.81260325 -18.5 1.25 C-12.38517359 -0.19776934 -6.25215732 0.02610504 0 0 Z"/>
|
||||
<path transform="translate(393,634)" fill="#FA5353" d="M0 0 C0.33 0 0.66 0 1 0 C1.59074545 8.39532399 2.17161517 16.79131628 2.75 25.1875 C2.88388626 27.12157715 2.88388626 27.12157715 3.02047729 29.09472656 C4.08746522 44.56480464 5.08410317 60.03591203 5.92217636 75.52022743 C6.05020204 77.88383788 6.1796031 80.24736945 6.30935669 82.61088562 C6.68660692 89.4994071 7.05890279 96.38796411 7.40417957 103.27817059 C7.55023532 106.14536597 7.70606079 109.01197632 7.86415672 111.8785305 C7.96869323 113.83218623 8.06080219 115.78649479 8.15242004 117.74079895 C8.81321786 129.48383525 10.42148258 139.47295368 19 148 C25.57805241 153.38084687 33.0626036 155.54627741 41.5078125 155.3125 C49.82458716 154.26964424 57.52368658 151.46290575 63 145 C68.84114306 136.20794596 73.91698932 126.93013707 79 117.6875 C79.68591285 116.44580603 80.37210976 115.20426893 81.05859375 113.96289062 C82.70898582 110.97704952 84.35560015 107.98914637 86 105 C89 105 89 105 91.04956055 106.72485352 C91.82082275 107.51819092 92.59208496 108.31152832 93.38671875 109.12890625 C94.6715918 110.43504883 94.6715918 110.43504883 95.98242188 111.76757812 C97.32143555 113.15106445 97.32143555 113.15106445 98.6875 114.5625 C104.60211773 120.6255288 110.50577867 126.5561528 117 132 C117.60384521 132.51022705 118.20769043 133.0204541 118.82983398 133.54614258 C128.56313795 141.70361561 138.66375539 149.27652709 149.03076172 156.60644531 C150.77719303 157.84232802 152.51693477 159.08681742 154.25390625 160.3359375 C159.4151225 164.01715433 162.83324161 166.14222903 169.3125 166.3125 C170.23675781 166.34988281 171.16101563 166.38726563 172.11328125 166.42578125 C177.30126429 165.6605713 180.23786764 162.89964247 183.5546875 158.984375 C184.32039062 157.91703125 185.08609375 156.8496875 185.875 155.75 C186.2771875 155.19570313 186.679375 154.64140625 187.09375 154.0703125 C188.0715348 152.72003825 189.03708578 151.36091876 190 150 C194.79792952 151.77066447 198.23989477 153.58907234 201 158 C202.97831665 165.74073897 201.95010142 171.86400909 197.8984375 178.69921875 C197.06519047 180.03361077 196.22369473 181.36287933 195.375 182.6875 C194.9313208 183.38649414 194.4876416 184.08548828 194.03051758 184.80566406 C182.08858364 203.45570818 182.08858364 203.45570818 175 207 C172.71484375 207.2734375 172.71484375 207.2734375 169.9375 207.375 C169.03902344 207.42398438 168.14054688 207.47296875 167.21484375 207.5234375 C159.16882071 206.21339244 152.31985334 200.27856877 145.9375 195.5 C145.11677002 194.88979004 144.29604004 194.27958008 143.45043945 193.65087891 C136.08977582 188.14015323 128.90918895 182.42827729 121.84814453 176.53955078 C120.0817755 175.06812104 118.30504169 173.61004593 116.52734375 172.15234375 C106.39210355 163.74326844 97.20273939 154.40696542 88 145 C85.23704628 148.29977103 83.01669744 151.54658696 81.01171875 155.3515625 C80.46966797 156.36863281 79.92761719 157.38570312 79.36914062 158.43359375 C78.81419922 159.48675781 78.25925781 160.53992188 77.6875 161.625 C62.92421008 189.61045349 62.92421008 189.61045349 52.296875 194.15625 C42.91731686 196.98583737 34.03462626 197.01381355 25 193 C16.1346503 187.54548437 11.27860316 181.3976186 8.6713562 171.40466309 C7.30121468 164.45623502 7.10600591 157.38633133 6.75390625 150.328125 C6.65801161 148.58639028 6.56098863 146.84471737 6.46292114 145.10310364 C6.25676684 141.4046051 6.05772105 137.70582381 5.86459351 134.00662231 C5.56192085 128.21008452 5.24428466 122.41443453 4.9230957 116.61889648 C4.86956405 115.6524631 4.81603239 114.68602972 4.76087856 113.69031048 C4.65254519 111.73477185 4.54416804 109.77923564 4.43574715 107.82370186 C4.27319671 104.8823616 4.11221063 101.94093902 3.95152283 98.99949646 C3.29041982 86.93954546 2.57495051 74.88448833 1.7890625 62.83203125 C1.74156042 62.10141102 1.69405834 61.37079079 1.64511681 60.61803055 C1.24432513 54.46135495 0.83872335 48.30501965 0.4236145 42.14929199 C-1.97529354 6.5426057 -1.97529354 6.5426057 0 0 Z"/>
|
||||
<path transform="translate(677.6875,452.8125)" fill="#FA5252" d="M0 0 C11.5940731 10.57269047 22.4009732 28.52902086 23.46679688 44.49951172 C23.63480106 49.73734949 23.52401185 54.9525817 23.3125 60.1875 C3.29927296 58.06946949 -16.27412634 46.12974911 -32.6875 35.1875 C-32.41035156 35.71859375 -32.13320313 36.2496875 -31.84765625 36.796875 C-31.30431641 37.85648437 -31.30431641 37.85648437 -30.75 38.9375 C-30.39035156 39.63359375 -30.03070312 40.3296875 -29.66015625 41.046875 C-26.04115447 49.01158574 -26.8712192 58.75101236 -29.640625 66.86328125 C-32.22876913 72.60934751 -35.82261238 77.56373449 -41.6875 80.1875 C-48.82283594 82.42635259 -57.91445672 82.63533086 -64.625 79.1875 C-71.69461931 74.48758549 -76.21895522 68.91647747 -78.25390625 60.625 C-79.77633011 52.0665091 -78.04700701 44.49970246 -73.875 36.875 C-67.62806313 29.20019185 -61.12215212 26.71388275 -51.6875 25.1875 C-64.82581373 18.46118627 -77.99383645 11.89754736 -91.5 5.9375 C-92.54792725 5.47239014 -93.59585449 5.00728027 -94.67553711 4.52807617 C-95.65530518 4.10115479 -96.63507324 3.6742334 -97.64453125 3.234375 C-98.50022705 2.86151367 -99.35592285 2.48865234 -100.23754883 2.10449219 C-102.71171819 1.17843538 -105.08703104 0.63035559 -107.6875 0.1875 C-76.52611456 -24.44995006 -31.01280089 -24.74054902 0 0 Z"/>
|
||||
<path transform="translate(363.88525390625,411.976318359375)" fill="#F92323" d="M0 0 C1.31760063 0.00256428 1.31760063 0.00256428 2.66181946 0.00518036 C4.81279928 0.00961377 6.963774 0.01640848 9.11474609 0.02368164 C9.20741533 11.93257137 9.27849566 23.84137536 9.32199478 35.75055218 C9.34287193 41.28044556 9.3711923 46.81009231 9.41650391 52.33984375 C9.45995652 57.6761041 9.48388224 63.01212718 9.49425507 68.3485508 C9.50164744 70.38474068 9.51608297 72.42091754 9.53766632 74.45700645 C9.56669226 77.30853745 9.5707024 80.1590873 9.56884766 83.01074219 C9.58322876 83.85303375 9.59760986 84.69532532 9.61242676 85.56314087 C9.58409786 89.58670041 9.41927705 91.54356811 7.21136475 95.02449036 C3.92082079 98.16212666 1.98981211 98.15817526 -2.46484375 98.20068359 C-3.63300629 98.21351883 -4.80116882 98.22635406 -6.00473022 98.23957825 C-7.27241241 98.24696518 -8.5400946 98.25435211 -9.84619141 98.26196289 C-11.14344147 98.27003464 -12.44069153 98.27810638 -13.7772522 98.28642273 C-16.52614207 98.3014481 -19.2750061 98.31128721 -22.02392578 98.31884766 C-25.54370832 98.32991584 -29.06285927 98.36432065 -32.58241844 98.40401936 C-35.94115115 98.43645843 -39.29981411 98.44096174 -42.65869141 98.44946289 C-44.554142 98.47572502 -44.554142 98.47572502 -46.48788452 98.5025177 C-47.66235138 98.49959213 -48.83681824 98.49666656 -50.046875 98.49365234 C-51.08008881 98.49951859 -52.11330261 98.50538483 -53.17782593 98.51142883 C-55.88525391 98.02368164 -55.88525391 98.02368164 -58.22177124 96.52183533 C-60.58391157 92.97446468 -60.41343353 89.69964244 -60.33935547 85.58325195 C-60.33993958 84.73410721 -60.34052368 83.88496246 -60.34112549 83.01008606 C-60.33834156 80.20690858 -60.30723536 77.40479806 -60.27587891 74.60180664 C-60.26841761 72.65696799 -60.26272415 70.71212181 -60.25872803 68.76727295 C-60.24346298 63.65101324 -60.20417351 58.5352085 -60.15991211 53.41912842 C-60.11897828 48.19753168 -60.10072104 42.97586136 -60.08056641 37.75415039 C-60.03768023 27.51046103 -59.96941823 17.26710918 -59.88525391 7.02368164 C-55.45801693 5.49187792 -51.37843899 4.5579745 -46.72119141 3.98852539 C-46.04786774 3.90494278 -45.37454407 3.82136017 -44.68081665 3.73524475 C-43.26087346 3.56017553 -41.84056347 3.38805846 -40.41992188 3.21875 C-38.28641737 2.96430197 -36.15417608 2.70089843 -34.02197266 2.43579102 C-29.97922021 1.93785618 -25.9335466 1.47446954 -21.88525391 1.02368164 C-20.88526367 0.91040527 -19.88527344 0.79712891 -18.85498047 0.68041992 C-12.55990759 0.05704776 -6.31902232 -0.02347605 0 0 Z"/>
|
||||
<path transform="translate(383,412)" fill="#F92323" d="M0 0 C42.30553129 -1.60653916 91.13389967 5.54853863 131 20 C131.33 20.33 131.66 20.66 132 21 C131.97251698 27.76082336 131.57597959 34.51229431 131.234375 41.26367188 C131.05581663 44.8113651 130.89275899 48.35955317 130.734375 51.90820312 C130.48689834 57.40455799 130.21146969 62.89904104 129.92150879 68.39331055 C129.8072564 70.62940459 129.70104171 72.86592393 129.60290527 75.1027832 C129.46078887 78.29408209 129.2884749 81.48246545 129.109375 84.671875 C129.05438843 86.12210052 129.05438843 86.12210052 128.99829102 87.60162354 C128.716492 92.09583539 128.43377696 94.40309564 125.73168945 98.12133789 C122.77053347 100.15781079 121.70549061 100.58506409 118.18359375 100.38671875 C117.13155762 100.3407959 116.07952148 100.29487305 114.99560547 100.24755859 C114.37981628 100.20838318 113.7640271 100.16920776 113.12957764 100.12884521 C110.65512054 99.97913386 108.180611 99.87887379 105.70361328 99.77978516 C100.5622531 99.56489055 95.42602319 99.29021096 90.28881836 98.99291992 C88.1259236 98.87196803 85.96246431 98.76074426 83.79858398 98.65893555 C80.64660471 98.5099277 77.49764047 98.33056887 74.34765625 98.14453125 C73.3830397 98.10471634 72.41842316 98.06490143 71.42457581 98.02388 C67.26773831 97.74878442 64.52447432 97.29318314 60.85327148 95.2409668 C57.85596398 89.99933103 58.63326955 84.89846557 59 79 C59.05541962 77.8121994 59.11083923 76.6243988 59.16793823 75.40060425 C59.35915338 71.5550764 59.59378437 67.71338328 59.83984375 63.87109375 C59.92737378 62.46437576 60.01465416 61.05764221 60.10169983 59.65089417 C60.28321267 56.73218012 60.4675633 53.81366385 60.65405273 50.89526367 C60.89252288 47.16005197 61.12391484 43.42444031 61.3532629 39.68865871 C61.53155119 36.7965824 61.71342289 33.90474007 61.89639473 31.01295662 C61.98318847 29.63474333 62.06889855 28.25646133 62.15348625 26.87811089 C62.27179032 24.95944759 62.39542017 23.04111493 62.51928711 21.12280273 C62.58812607 20.03394272 62.65696503 18.9450827 62.72789001 17.82322693 C62.95811406 15.4345798 63.33229567 13.29786634 64 11 C63.21278564 10.98018066 62.42557129 10.96036133 61.61450195 10.93994141 C46.66960923 10.54873082 31.73526875 10.04370465 16.8125 9.125 C14.9713562 9.02566162 14.9713562 9.02566162 13.09301758 8.92431641 C11.95501709 8.84874512 10.8170166 8.77317383 9.64453125 8.6953125 C8.64784424 8.63359863 7.65115723 8.57188477 6.62426758 8.50830078 C3.64622849 7.93147714 2.16107531 7.11126048 0 5 C-0.25 2.3125 -0.25 2.3125 0 0 Z"/>
|
||||
<path transform="translate(1118,904)" fill="#FA5353" d="M0 0 C0.33 0 0.66 0 1 0 C1.51104548 3.62352994 2.00675833 7.24900719 2.5 10.875 C2.64308594 11.88820313 2.78617188 12.90140625 2.93359375 13.9453125 C5.59708503 33.73124769 5.59708503 33.73124769 -1.0625 42.8125 C-24.27590338 60.09907698 -86.786558 53.3993294 -114.3125 53.5 C-115.44755981 53.51017151 -116.58261963 53.52034302 -117.7520752 53.53082275 C-120.97715239 53.5542644 -124.20069087 53.54826137 -127.42578125 53.53125 C-128.83797691 53.54313858 -128.83797691 53.54313858 -130.27870178 53.55526733 C-137.70841248 53.45121979 -144.13163729 51.86836271 -149.5 46.5 C-152.34610507 41.75649154 -152.13408205 37.1461478 -152.09765625 31.734375 C-152.0962413 30.94097717 -152.09482635 30.14757935 -152.09336853 29.33013916 C-152.08778415 26.80338728 -152.07523454 24.27672496 -152.0625 21.75 C-152.05748298 20.03385545 -152.05292043 18.31770951 -152.04882812 16.6015625 C-152.03781984 12.40100731 -152.02056596 8.20051883 -152 4 C-149 5 -149 5 -146.6875 7.4375 C-141.20580957 12.66422808 -134.97461193 12.29577065 -127.8203125 12.265625 C-126.82764877 12.26835419 -125.83498505 12.27108337 -124.8122406 12.27389526 C-121.5830245 12.27794625 -118.35417871 12.26530713 -115.125 12.25 C-114.02276093 12.24756287 -112.92052185 12.24512573 -111.78488159 12.24261475 C-94.62076946 12.19802008 -77.59998239 11.66606117 -60.49023438 10.27783203 C-57.0000943 10.00000751 -53.5091199 9.75883448 -50.015625 9.52734375 C-39.73516076 8.82808295 -29.51853988 7.93608468 -19.3125 6.5 C-18.46921143 6.38148682 -17.62592285 6.26297363 -16.75708008 6.14086914 C-7.42289741 5.05834743 -7.42289741 5.05834743 0 0 Z"/>
|
||||
<path transform="translate(785,892)" fill="#FA5353" d="M0 0 C0.88816406 0.23074219 1.77632812 0.46148438 2.69140625 0.69921875 C7.12053895 1.82996605 11.55700819 2.92515281 16 4 C16.79293457 4.19255371 17.58586914 4.38510742 18.40283203 4.58349609 C44.6458669 10.85729532 71.50865767 14.41266309 98.25 17.8125 C99.06459686 17.91763916 99.87919373 18.02277832 100.71847534 18.13110352 C109.34963412 19.23713185 117.99247221 20.18810672 126.671875 20.82421875 C127.39111145 20.88873734 128.1103479 20.95325592 128.85137939 21.01972961 C134.547713 21.37800765 140.11512165 20.47860132 144.56878662 16.65214539 C147.26376306 13.64521866 148.64545918 11.0181293 149 7 C149.99 7.495 149.99 7.495 151 8 C153.72685837 16.18057512 151.85448153 26.22512968 151.1875 34.6875 C151.08248169 36.14784668 151.08248169 36.14784668 150.9753418 37.63769531 C150.34704545 45.01187735 149.33498786 51.95154363 144.75 57.9375 C138.24753479 62.81434891 131.8384647 62.11743951 124.125 61.375 C122.51141602 61.23167236 122.51141602 61.23167236 120.86523438 61.08544922 C98.77747396 59.03855009 76.76286657 56.22343638 54.89697266 52.49121094 C52.02068613 52.00350754 49.14175141 51.53532545 46.26171875 51.0703125 C35.73488828 49.34342302 25.29046837 47.30681564 14.875 45 C13.76584229 44.76297363 12.65668457 44.52594727 11.51391602 44.28173828 C4.7489634 42.73549339 0.27028274 41.28799569 -3.8125 35.375 C-6.55381373 27.58389782 -4.7655329 19.37284416 -3.0625 11.5 C-2.88009766 10.60796875 -2.69769531 9.7159375 -2.50976562 8.796875 C-1.16071429 2.32142857 -1.16071429 2.32142857 0 0 Z"/>
|
||||
<path transform="translate(1296,860)" fill="#FA5353" d="M0 0 C0.50660156 1.35544922 0.50660156 1.35544922 1.0234375 2.73828125 C1.46945312 3.91777344 1.91546875 5.09726562 2.375 6.3125 C2.81585937 7.48425781 3.25671875 8.65601563 3.7109375 9.86328125 C4.91489648 13.08553593 4.91489648 13.08553593 7 16 C8.92692673 22.93693624 8.36279064 28.63471772 5 35 C1.42328247 39.63752877 -3.67796647 41.28102196 -8.9375 43.4375 C-9.88246338 43.83291992 -10.82742676 44.22833984 -11.80102539 44.63574219 C-22.2566375 48.98785161 -32.81401604 52.98996888 -43.49609375 56.75390625 C-45.74561034 57.55390156 -47.98858879 58.37266802 -50.22265625 59.21484375 C-60.01872552 62.86939641 -70.00837643 65.55104168 -80.10791016 68.22509766 C-82.95672091 68.98840386 -85.79737646 69.77647287 -88.63671875 70.57421875 C-125.73754637 80.97844698 -125.73754637 80.97844698 -135 78 C-142.88004192 72.08996856 -144.30796593 63.50113331 -146.27197266 54.39038086 C-146.74708323 52.20094126 -147.24561264 50.01774536 -147.74609375 47.83398438 C-148.05612797 46.42479531 -148.36476721 45.01529847 -148.671875 43.60546875 C-148.9512793 42.33856201 -149.23068359 41.07165527 -149.51855469 39.76635742 C-150.12995076 34.98339231 -150.10170426 30.37154009 -148.02734375 25.90625 C-146.51367188 23.953125 -146.51367188 23.953125 -145 22 C-143 23 -143 23 -142.18359375 24.9609375 C-141.93738281 25.75757813 -141.69117188 26.55421875 -141.4375 27.375 C-141.18871094 28.16648437 -140.93992187 28.95796875 -140.68359375 29.7734375 C-140.45800781 30.50820313 -140.23242188 31.24296875 -140 32 C-139.35120718 35.03235706 -139.35120718 35.03235706 -137.35546875 35.984375 C-126.26852595 39.89976381 -115.03997164 36.58227946 -104 33.8125 C-102.73196533 33.50006348 -101.46393066 33.18762695 -100.1574707 32.86572266 C-89.66135964 30.24385431 -79.31168097 27.26452506 -69 24 C-67.5601646 23.55122013 -66.12006515 23.10328642 -64.6796875 22.65625 C-62.01636759 21.828714 -59.3550672 20.99516904 -56.6953125 20.15625 C-53.11676366 19.03653493 -49.52828591 17.95468961 -45.9375 16.875 C-41.47448305 15.50386505 -37.26737413 13.90507774 -33 12 C-31.04470578 11.24211218 -29.08591929 10.49321262 -27.125 9.75 C-23.21769938 8.26431709 -19.33978558 6.73674869 -15.484375 5.12109375 C-14.7197998 4.80108398 -13.95522461 4.48107422 -13.16748047 4.15136719 C-11.65935905 3.51728163 -10.15310708 2.87872808 -8.64892578 2.23535156 C-5.61388902 0.96019739 -3.32705067 0 0 0 Z"/>
|
||||
<path transform="translate(611,834)" fill="#FA5353" d="M0 0 C4.10849289 0.62800168 7.33807174 1.98801846 11.0625 3.8125 C27.48310354 11.6698077 44.30172894 19.06824351 61.58203125 24.81640625 C64.40950411 25.79551971 67.0987942 26.91542821 69.83618164 28.11401367 C75.07513832 30.25913088 80.46043264 32.034918 85.8125 33.875 C86.45562134 34.09621521 87.09874268 34.31743042 87.76135254 34.54534912 C95.54597806 37.21488245 103.33869606 39.85174642 111.25 42.125 C111.9200708 42.32464355 112.5901416 42.52428711 113.28051758 42.72998047 C119.4220493 44.41607464 126.06714499 45.34403928 131.875 42.3125 C137.1773131 38.3887883 138.39981335 34.27765531 140 28 C142.48722141 28.34306502 143.79568171 28.81838374 145.6875 30.5 C149.87532638 38.47681215 147.37598101 46.79699332 145 55 C143.795149 58.85474524 142.5063694 62.67633002 141.18359375 66.4921875 C140.37216756 68.89700835 139.6331831 71.3271353 138.95703125 73.7734375 C137.53695474 78.56112402 135.42507253 81.03890457 131.3125 83.8125 C123.78307644 86.51172731 116.67349129 84.71450979 109.25 82.4375 C108.3525708 82.17155029 107.4551416 81.90560059 106.53051758 81.6315918 C90.8218324 76.91803014 75.40146864 71.51407345 60.125 65.5625 C59.33270996 65.25393066 58.54041992 64.94536133 57.72412109 64.62744141 C43.56290561 59.10529358 29.49513298 53.38525387 15.66186523 47.08081055 C14.34018517 46.48281038 13.01491511 45.89268513 11.6862793 45.31030273 C-3.49341147 38.64745427 -3.49341147 38.64745427 -8 31 C-10.64481192 22.79881071 -8.03678114 15.82068012 -4.3359375 8.49609375 C-3.86027344 7.56990234 -3.86027344 7.56990234 -3.375 6.625 C-2.88773438 5.66400391 -2.88773438 5.66400391 -2.390625 4.68359375 C-1.59742593 3.12052499 -0.79922969 1.55999378 0 0 Z"/>
|
||||
<path transform="translate(1443,753)" fill="#FA5353" d="M0 0 C5.27699074 2.46414545 9.83838971 5.62627462 12.4375 10.9375 C13.67212616 17.65935355 13.34887892 23.48270438 9.4765625 29.28125 C8.56003906 30.37953125 8.56003906 30.37953125 7.625 31.5 C6.90054687 32.36882813 6.17609375 33.23765625 5.4296875 34.1328125 C4.62789062 35.07898438 3.82609375 36.02515625 3 37 C2.17757813 38.00804687 1.35515625 39.01609375 0.5078125 40.0546875 C-5.69083966 47.57035608 -12.36567389 54.54685799 -19.25 61.4375 C-20.08950195 62.27780762 -20.92900391 63.11811523 -21.79394531 63.98388672 C-26.70581995 68.85209593 -31.7196591 73.5341653 -37 78 C-37.60457031 78.51135498 -38.20914062 79.02270996 -38.83203125 79.54956055 C-52.86963451 91.30227973 -67.65482421 101.94454666 -82.9609375 111.9765625 C-85.90658093 113.86735973 -85.90658093 113.86735973 -88.11328125 115.72265625 C-92.56590112 118.73716287 -98.56018973 118.17082495 -103.6875 117.5625 C-111.65170681 113.80579868 -116.00871335 105.11759589 -120.25 97.75 C-121.27410454 95.99366071 -122.30007993 94.23841067 -123.328125 92.484375 C-123.99183105 91.33533691 -123.99183105 91.33533691 -124.66894531 90.16308594 C-125.97807211 87.95533763 -125.97807211 87.95533763 -127.62841797 85.86328125 C-130.20387243 82.36455067 -130.0953054 78.22520585 -130 74 C-129.17666086 69.38770209 -127.53929287 66.15165837 -124 63.0625 C-121 61 -121 61 -118 60 C-117.45730469 60.83144531 -116.91460938 61.66289063 -116.35546875 62.51953125 C-115.28232422 64.14955078 -115.28232422 64.14955078 -114.1875 65.8125 C-113.47980469 66.89144531 -112.77210937 67.97039062 -112.04296875 69.08203125 C-109.11572212 73.26301257 -107.18223958 75.46608182 -102.078125 76.69921875 C-95.71025728 77.62088381 -90.68419289 76.84589653 -85.375 73.125 C-84.13556641 72.17367187 -84.13556641 72.17367187 -82.87109375 71.203125 C-80.12847209 69.09858266 -77.32639349 67.16243787 -74.45874023 65.23583984 C-47.29730887 46.94887059 -21.06490698 25.17513273 0 0 Z"/>
|
||||
<path transform="translate(1040.7578125,388.29296875)" fill="#FA5252" d="M0 0 C2.37310682 0.98944152 2.37310682 0.98944152 5.2421875 -0.29296875 C15.46869631 -0.75830525 25.6186488 -0.12367791 35.79150391 0.87890625 C37.90047704 1.08528894 40.01051487 1.27566293 42.12109375 1.46484375 C43.48706796 1.59411721 44.85295733 1.72429116 46.21875 1.85546875 C47.42611816 1.97067871 48.63348633 2.08588867 49.87744141 2.20458984 C53.21738894 2.7033282 56.1172344 3.43041259 59.2421875 4.70703125 C63.31960279 12.86186183 59.32600018 26.91073013 58.2421875 35.70703125 C57.9121875 35.70703125 57.5821875 35.70703125 57.2421875 35.70703125 C57.2421875 34.05703125 57.2421875 32.40703125 57.2421875 30.70703125 C24.98160834 31.20601987 -6.98339677 32.70704901 -38.7578125 38.70703125 C-39.90024414 38.92230469 -41.04267578 39.13757813 -42.21972656 39.359375 C-56.88680906 42.16973885 -71.34734417 45.47545863 -85.72436523 49.52270508 C-87.24525757 49.95039185 -87.24525757 49.95039185 -88.796875 50.38671875 C-90.13032959 50.76932861 -90.13032959 50.76932861 -91.49072266 51.15966797 C-93.7578125 51.70703125 -93.7578125 51.70703125 -96.7578125 51.70703125 C-93.38464035 34.16653607 -84.04147399 17.2535389 -69.515625 6.484375 C-48.58760185 -7.00323199 -23.21627783 -9.74808105 0 0 Z"/>
|
||||
<path transform="translate(275,508)" fill="#FA5353" d="M0 0 C2.30336031 2.30336031 2.23750776 2.90006211 2.625 6 C4.13428039 13.36814048 9.4932516 19.16556051 15.125 23.9375 C24.50993331 29.73579618 37.11535713 29.4492933 47.76171875 29.3984375 C49.12783462 29.40046728 50.49394941 29.40338614 51.86006165 29.40713501 C54.69628411 29.41151157 57.53221959 29.40527781 60.3684082 29.39111328 C63.97229799 29.37397425 67.57551945 29.38392165 71.17938519 29.40183067 C73.99098097 29.41275436 76.80242237 29.4091841 79.61402321 29.4014473 C81.57851735 29.3985241 83.54301795 29.40750026 85.50749207 29.4168396 C98.43408869 29.31625435 107.6016949 27.12638307 117 18 C121.9817678 12.82708523 123.46568081 6.89819928 125 0 C125.33 0 125.66 0 126 0 C126.07504832 5.17371573 126.12901911 10.34710361 126.16479492 15.52124023 C126.17973392 17.27552827 126.20009262 19.02977994 126.22631836 20.78393555 C126.62614041 48.24622274 126.62614041 48.24622274 117.1640625 58.84375 C107.86455621 68.10968407 98.52798178 70.31552375 85.50749207 70.4168396 C84.23013687 70.41076691 82.95278168 70.40469421 81.63671875 70.3984375 C80.27350205 70.40046598 78.91028641 70.4033838 77.54707336 70.40713501 C74.70551101 70.41152659 71.86423392 70.40523396 69.02270508 70.39111328 C65.42238564 70.37407227 61.82273999 70.38385004 58.22244549 70.40183067 C55.41072234 70.41279746 52.59915247 70.40916322 49.78742409 70.4014473 C47.82806068 70.39853607 45.86869075 70.40748016 43.90934753 70.4168396 C31.8328401 70.32359468 20.38433871 69.55249174 11.12109375 61.15625 C10.42113281 60.4446875 9.72117187 59.733125 9 59 C8.39285156 58.3915625 7.78570312 57.783125 7.16015625 57.15625 C-1.92041448 46.67696055 -0.3809774 31.12858269 -0.1875 18.1875 C-0.17241466 16.4160271 -0.15873312 14.64454166 -0.14648438 12.87304688 C-0.11380946 8.58171526 -0.06224392 4.29100039 0 0 Z"/>
|
||||
<path transform="translate(1229.4375,287.25)" fill="#D20707" d="M0 0 C1.3570431 0.41452619 2.71430397 0.8283401 4.07177734 1.24145508 C6.72519448 2.04933673 9.37779614 2.85980672 12.02978516 3.67236328 C16.24067914 4.9568751 20.46087808 6.20596068 24.6875 7.4375 C25.94949219 7.80875 27.21148438 8.18 28.51171875 8.5625 C30.72873262 9.21406729 32.94687627 9.86128389 35.16650391 10.50390625 C37.94605759 11.30932023 40.72311013 12.12295549 43.5 12.9375 C44.37221191 13.18781982 45.24442383 13.43813965 46.14306641 13.69604492 C46.95050293 13.93427979 47.75793945 14.17251465 48.58984375 14.41796875 C49.30906006 14.62703857 50.02827637 14.8361084 50.76928711 15.05151367 C52.5625 15.75 52.5625 15.75 54.5625 17.75 C54.6875 20.875 54.6875 20.875 54.5625 23.75 C47.05540416 27.24468255 39.37856167 30.03717063 31.5625 32.75 C35.91699678 37.96364209 40.50134653 42.80963491 45.33203125 47.58203125 C46.05363937 48.29985275 46.7752475 49.01767426 47.51872253 49.75724792 C49.80172179 52.02812372 52.08795 54.29570432 54.375 56.5625 C57.40519012 59.56616214 60.43209748 62.57307668 63.45703125 65.58203125 C64.15488235 66.27158401 64.85273346 66.96113678 65.57173157 67.67158508 C66.2129747 68.30952499 66.85421783 68.9474649 67.51489258 69.60473633 C68.08081619 70.16542313 68.64673981 70.72610992 69.22981262 71.30378723 C71.66109035 73.94217412 72.32326105 76.72668734 72.296875 80.30859375 C70.55625236 86.09523817 65.26010792 90.25323755 60.5625 93.75 C57.09446698 95.21981434 56.39880313 94.88202387 52.5625 93.75 C46.7495781 89.44744281 41.7040582 84.01647074 36.6328125 78.8828125 C35.55820267 77.80252274 35.55820267 77.80252274 34.46188354 76.70040894 C32.20128438 74.42771159 29.94399512 72.15177171 27.6875 69.875 C24.69295544 66.8539215 21.69515015 63.83613409 18.6953125 60.8203125 C18.00889679 60.12559845 17.32248108 59.4308844 16.61526489 58.71511841 C15.98055267 58.07710297 15.34584045 57.43908752 14.69189453 56.78173828 C14.13422394 56.21883087 13.57655334 55.65592346 13.00198364 55.07595825 C11.58013842 53.64338188 11.58013842 53.64338188 9.5625 52.75 C9.39234375 53.40484375 9.2221875 54.0596875 9.046875 54.734375 C7.1599203 61.84056609 4.95266561 68.79789392 2.5625 75.75 C-0.8125 76.375 -0.8125 76.375 -4.4375 76.75 C-7.3759928 73.8115072 -8.06411919 70.13800857 -9.25 66.25 C-9.64747437 64.96947754 -9.64747437 64.96947754 -10.05297852 63.66308594 C-11.97491402 57.41377002 -13.75112422 51.13060238 -15.4675293 44.82226562 C-17.73599565 36.53790219 -20.26708614 28.3350075 -22.7890625 20.125 C-23.06129639 19.23433838 -23.33353027 18.34367676 -23.61401367 17.42602539 C-24.17361121 15.60754079 -24.74180138 13.79168279 -25.31762695 11.97827148 C-25.73081177 10.65678101 -25.73081177 10.65678101 -26.15234375 9.30859375 C-26.40105225 8.52540771 -26.64976074 7.74222168 -26.90600586 6.93530273 C-27.72267626 3.57746316 -27.44078377 1.02739365 -26.4375 -2.25 C-20.98193369 -9.23312488 -6.83506892 -2.1147459 0 0 Z"/>
|
||||
<path transform="translate(920,449)" fill="#F92222" d="M0 0 C3.91812169 11.11941256 5.85566381 21.89170016 6.83520508 33.64794922 C8.073073 47.08442408 12.17462108 56.9266754 22.390625 65.875 C24.59435845 68.78478398 24.40907161 70.40803021 24 74 C22.25927734 76.45361328 22.25927734 76.45361328 19.8359375 78.8203125 C18.96066406 79.68527344 18.08539062 80.55023437 17.18359375 81.44140625 C15.79333984 82.76978516 15.79333984 82.76978516 14.375 84.125 C13.47136719 85.01832031 12.56773437 85.91164063 11.63671875 86.83203125 C0.54975115 97.66003318 0.54975115 97.66003318 -5.75 98.5 C-17.3365658 97.79645141 -27.4765428 89.93358401 -35.25 81.875 C-47.73892143 66.94984133 -49.3113687 49.20463859 -50.77832031 30.59570312 C-51.10924216 26.72085611 -51.55065709 22.86277241 -52 19 C-43.05639084 14.70069454 -33.85650231 11.14626839 -24.58178711 7.64135742 C-22.04054333 6.67918672 -19.50367287 5.70604166 -16.96679688 4.73242188 C-15.34400334 4.11651957 -13.72096518 3.50126135 -12.09765625 2.88671875 C-11.34347916 2.59617111 -10.58930206 2.30562347 -9.81227112 2.00627136 C-6.29673095 0.68898276 -3.80263249 0 0 0 Z"/>
|
||||
<path transform="translate(1004,538)" fill="#FA5454" d="M0 0 C1 1 1 1 1.09765625 3.28515625 C1.08605469 4.20167969 1.07445312 5.11820313 1.0625 6.0625 C1.05347656 6.98160156 1.04445313 7.90070312 1.03515625 8.84765625 C1.02355469 9.55792969 1.01195312 10.26820313 1 11 C2.19625 10.95875 3.3925 10.9175 4.625 10.875 C8.42960542 10.74380671 11.43492389 11.70268004 15 13 C15.02685412 15.31243792 15.04632841 17.6249627 15.0625 19.9375 C15.07410156 21.22527344 15.08570313 22.51304687 15.09765625 23.83984375 C15 27 15 27 14 28 C12.14712498 28.07226502 10.29166122 28.0838122 8.4375 28.0625 C7.42558594 28.05347656 6.41367187 28.04445313 5.37109375 28.03515625 C4.58863281 28.02355469 3.80617188 28.01195312 3 28 C3 29.65 3 31.3 3 33 C4.28197266 32.98259766 4.28197266 32.98259766 5.58984375 32.96484375 C6.69457031 32.95582031 7.79929687 32.94679688 8.9375 32.9375 C10.03964844 32.92589844 11.14179687 32.91429687 12.27734375 32.90234375 C15 33 15 33 16 34 C16.09909302 36.33160055 16.12970504 38.66629942 16.125 41 C16.12886719 42.918125 16.12886719 42.918125 16.1328125 44.875 C16 48 16 48 15 49 C13.31391034 49.07205511 11.62499341 49.08386068 9.9375 49.0625 C9.01839844 49.05347656 8.09929688 49.04445313 7.15234375 49.03515625 C6.44207031 49.02355469 5.73179687 49.01195312 5 49 C5 51.64 5 54.28 5 57 C5.71285156 56.97679687 6.42570313 56.95359375 7.16015625 56.9296875 C12.88360394 56.82184326 17.59838814 57.07942689 23 59 C22.59060025 65.76215448 21.43046191 71.67162748 19 78 C13.47322267 78.19392201 9.24385089 77.7479503 4 76 C3.9175 76.86625 3.835 77.7325 3.75 78.625 C2.39486607 84.72310267 -0.92591744 88.55888822 -6.04296875 91.8984375 C-14.8624545 96.86269894 -24.59477857 97.18205413 -34.49609375 95.6015625 C-40.19210173 93.89164977 -43.57259775 89.67914916 -47 85 C-49.00625278 80.98749445 -48.61660281 76.35145414 -48 72 C-45.42315151 66.6055594 -41.29967475 62.6998343 -36 60 C-30.39235418 58.06372768 -24.98489033 56.51473862 -19 57 C-19 54.36 -19 51.72 -19 49 C-20.14339844 49.01160156 -21.28679688 49.02320313 -22.46484375 49.03515625 C-23.95572754 49.04453288 -25.44661309 49.05363321 -26.9375 49.0625 C-27.69224609 49.07087891 -28.44699219 49.07925781 -29.22460938 49.08789062 C-31.14994313 49.09652441 -33.07535581 49.05224333 -35 49 C-36.75559942 47.24440058 -36.13221919 44.96417558 -36.13671875 42.62890625 C-36.13285156 41.92636719 -36.12898437 41.22382812 -36.125 40.5 C-36.12886719 39.79746094 -36.13273438 39.09492187 -36.13671875 38.37109375 C-36.12661378 33.12661378 -36.12661378 33.12661378 -35 32 C-32.64686445 31.92728259 -30.29166332 31.91629132 -27.9375 31.9375 C-26.64714844 31.94652344 -25.35679687 31.95554687 -24.02734375 31.96484375 C-23.02832031 31.97644531 -22.02929688 31.98804688 -21 32 C-21 30.02 -21 28.04 -21 26 C-22.09957031 25.95101562 -23.19914063 25.90203125 -24.33203125 25.8515625 C-47.27042411 24.72957589 -47.27042411 24.72957589 -50 22 C-49.93576561 19.66420391 -49.79882576 17.33020472 -49.625 15 C-49.53476562 13.72125 -49.44453125 12.4425 -49.3515625 11.125 C-49 8 -49 8 -48 7 C-39.66048138 6.51113167 -31.30196225 7.25014535 -23 8 C-23.020625 7.030625 -23.04125 6.06125 -23.0625 5.0625 C-23 2 -23 2 -22 1 C-19.43207959 0.76009048 -16.88617827 0.57655613 -14.3125 0.4375 C-13.24999023 0.37272461 -13.24999023 0.37272461 -12.16601562 0.30664062 C-8.10976791 0.07068162 -4.06342571 -0.14356189 0 0 Z"/>
|
||||
<path transform="translate(1277.5,457.75)" fill="#FA5252" d="M0 0 C1.20398437 -0.020625 2.40796875 -0.04125 3.6484375 -0.0625 C22.637936 -0.14417526 22.637936 -0.14417526 29.36962891 4.55517578 C32.66188014 9.49141942 29.24710294 18.86106848 28.1953125 24.2734375 C27.67869472 26.72540513 27.1551589 29.17592452 26.625 31.625 C26.36847656 32.86894531 26.11195312 34.11289062 25.84765625 35.39453125 C25.59113281 36.59207031 25.33460937 37.78960937 25.0703125 39.0234375 C24.84102051 40.10028809 24.61172852 41.17713867 24.37548828 42.28662109 C23.45654319 45.39709392 22.48402721 47.68046432 20.5 50.25 C16.90084795 50.59277639 14.09590539 50.68600443 10.62963867 49.73901367 C8.46700298 49.24242313 6.60508155 49.13556756 4.390625 49.15234375 C3.25947266 49.15717773 3.25947266 49.15717773 2.10546875 49.16210938 C1.32816406 49.17048828 0.55085938 49.17886719 -0.25 49.1875 C-1.04277344 49.19201172 -1.83554688 49.19652344 -2.65234375 49.20117188 C-4.60159508 49.21291435 -6.55080738 49.23084854 -8.5 49.25 C-8.25443359 50.93609375 -8.25443359 50.93609375 -8.00390625 52.65625 C-7.4150369 57.36720476 -7.38730749 62.00873841 -7.4375 66.75 C-7.44201172 67.57242188 -7.44652344 68.39484375 -7.45117188 69.2421875 C-7.46281511 71.24482396 -7.48074444 73.24742227 -7.5 75.25 C-19.76631628 69.84956429 -29.86872493 61.45289014 -39.5 52.25 C-40.09522461 51.68829102 -40.69044922 51.12658203 -41.30371094 50.54785156 C-46.55189866 45.47315765 -50.93887093 40.00541532 -55.25 34.125 C-55.89582031 33.25746094 -56.54164062 32.38992188 -57.20703125 31.49609375 C-60.42558023 27.15402665 -63.55694786 22.7834894 -66.5 18.25 C-67.16 19.57 -67.82 20.89 -68.5 22.25 C-68.58107583 20.31318839 -68.63922475 18.3754066 -68.6875 16.4375 C-68.72230469 15.35855469 -68.75710938 14.27960938 -68.79296875 13.16796875 C-68.5 10.25 -68.5 10.25 -67.38867188 8.60449219 C-64.62888152 6.62526301 -62.36025326 6.78182416 -58.98828125 6.66015625 C-57.67972168 6.60013428 -56.37116211 6.5401123 -55.02294922 6.47827148 C-54.33424744 6.45159393 -53.64554565 6.42491638 -52.93597412 6.39743042 C-41.01541468 5.92065601 -29.94351347 4.81260325 -18.5 1.25 C-12.38517359 -0.19776934 -6.25215732 0.02610504 0 0 Z"/>
|
||||
<path transform="translate(1277,817)" fill="#F92424" d="M0 0 C1.87296859 4.07496618 3.72005112 8.16115486 5.5625 12.25 C6.09552734 13.40886719 6.62855469 14.56773437 7.17773438 15.76171875 C7.67724609 16.87675781 8.17675781 17.99179687 8.69140625 19.140625 C9.39052124 20.68024902 9.39052124 20.68024902 10.10375977 22.25097656 C11.03730717 25.1144317 11.30510185 26.30487788 10 29 C7.42810506 30.4099888 5.02948234 31.50130568 2.3125 32.5625 C1.49031982 32.89548096 0.66813965 33.22846191 -0.17895508 33.5715332 C-18.15092446 40.75023075 -36.40308474 47.62671096 -55 53 C-55.76441406 53.22461914 -56.52882813 53.44923828 -57.31640625 53.68066406 C-67.56897658 56.69305855 -77.86440503 59.55179893 -88.1875 62.3125 C-89.58464233 62.69426392 -89.58464233 62.69426392 -91.01000977 63.08374023 C-96.99681137 64.66170275 -102.82348452 65.57532806 -109 66 C-110.0051621 61.56365291 -111.00324731 57.12574342 -112 52.6875 C-112.42925781 50.79354492 -112.42925781 50.79354492 -112.8671875 48.86132812 C-113.13789062 47.65283203 -113.40859375 46.44433594 -113.6875 45.19921875 C-113.93886719 44.08377686 -114.19023438 42.96833496 -114.44921875 41.8190918 C-115 39 -115 39 -115 36 C-113.97865967 35.75878418 -112.95731934 35.51756836 -111.9050293 35.26904297 C-103.71661676 33.32994531 -95.53493203 31.36409048 -87.36328125 29.35546875 C-86.57346359 29.16286469 -85.78364594 28.97026062 -84.96989441 28.77182007 C-77.14814603 26.84057851 -69.44809378 24.60610762 -61.83398438 21.97265625 C-58.90907384 20.96879309 -55.97615463 19.99164949 -53.04135132 19.01719666 C-38.12581304 14.0574506 -23.27648099 9.10797166 -8.95166016 2.59057617 C-3.25421053 0 -3.25421053 0 0 0 Z"/>
|
||||
<path transform="translate(631,791)" fill="#F92424" d="M0 0 C3.718921 0.48191792 6.6750405 1.65848652 10.0078125 3.3359375 C10.98000732 3.81748291 11.95220215 4.29902832 12.95385742 4.79516602 C14.00033447 5.31651123 15.04681152 5.83785645 16.125 6.375 C34.58395739 15.38419992 53.61452855 22.84283949 72.875 29.9375 C74.0921167 30.38617432 75.3092334 30.83484863 76.56323242 31.29711914 C83.37935234 33.77643184 90.22592695 36.05049607 97.16992188 38.14477539 C100.40598718 39.12268574 103.60945015 40.16945306 106.8125 41.25 C107.80894531 41.58515625 108.80539062 41.9203125 109.83203125 42.265625 C110.54746094 42.50796875 111.26289062 42.7503125 112 43 C109.6834524 52.77470084 106.88329377 62.38142315 104 72 C98.58652011 71.44826733 93.80298928 70.48393805 88.609375 68.76953125 C87.91970642 68.54291809 87.23003784 68.31630493 86.51947021 68.08282471 C84.2596409 67.33566923 82.00452424 66.5755045 79.75 65.8125 C78.96633057 65.54911835 78.18266113 65.28573669 77.37524414 65.01437378 C46.56851876 54.63501214 15.24988252 43.27814721 -13 27 C-12.40363334 23.23143439 -11.3155023 20.31811733 -9.53125 16.953125 C-9.04269531 16.02628906 -8.55414062 15.09945312 -8.05078125 14.14453125 C-7.53902344 13.18933594 -7.02726563 12.23414063 -6.5 11.25 C-5.98824219 10.27933594 -5.47648438 9.30867187 -4.94921875 8.30859375 C-1.15992374 1.15992374 -1.15992374 1.15992374 0 0 Z"/>
|
||||
<path transform="translate(1481,365)" fill="#F92424" d="M0 0 C0.96386719 2.14770508 0.96386719 2.14770508 1.796875 5.01953125 C2.26988037 6.62501831 2.26988037 6.62501831 2.75244141 8.26293945 C3.08163574 9.43429443 3.41083008 10.60564941 3.75 11.8125 C4.09853027 13.02574951 4.44706055 14.23899902 4.80615234 15.48901367 C12.82204894 43.72278279 19.47065186 72.269041 23.375 101.375 C23.54281982 102.62265137 23.71063965 103.87030273 23.88354492 105.15576172 C24.64665564 111.15274947 25.1950023 116.95492865 25 123 C21.33385091 123.33919096 17.6670121 123.67028081 14 124 C12.97003906 124.09539062 11.94007812 124.19078125 10.87890625 124.2890625 C5.22521274 124.79321351 -0.32414798 125.109151 -6 125 C-6.09498779 124.20754883 -6.18997559 123.41509766 -6.2878418 122.59863281 C-10.50483078 87.79158072 -16.79786006 53.83062895 -27.03515625 20.2578125 C-28.23636973 16.20189331 -29.17074246 12.14628771 -30 8 C-22.98616536 5.3575132 -15.92575769 2.99683315 -8.75 0.83203125 C-2.85480268 -0.95160089 -2.85480268 -0.95160089 0 0 Z"/>
|
||||
<path transform="translate(1098.4375,863.9375)" fill="#F92424" d="M0 0 C1.29744141 0.01353516 1.29744141 0.01353516 2.62109375 0.02734375 C3.26175781 0.03894531 3.90242188 0.05054688 4.5625 0.0625 C5.07005197 3.74900112 5.56717512 7.43683775 6.0625 11.125 C6.20558594 12.16333984 6.34867188 13.20167969 6.49609375 14.27148438 C7.20451705 19.5846591 7.74498153 24.70210518 7.5625 30.0625 C4.67669034 31.50540483 1.66141331 31.63490574 -1.5078125 31.9921875 C-2.25427032 32.07749725 -3.00072815 32.16280701 -3.76980591 32.2507019 C-14.59742353 33.45173316 -25.45162837 34.34899179 -36.3125 35.1875 C-37.46639221 35.27721069 -38.62028442 35.36692139 -39.80914307 35.45935059 C-65.36695548 37.39954025 -90.82309598 37.45157955 -116.4375 37.0625 C-116.4375 26.8325 -116.4375 16.6025 -116.4375 6.0625 C-113.11945312 6.03671875 -109.80140625 6.0109375 -106.3828125 5.984375 C-82.35375015 5.73688594 -58.45265264 5.07304419 -34.5 3.0625 C-33.42969543 2.97286987 -32.35939087 2.88323975 -31.25665283 2.79089355 C-19.93748442 1.88036656 -19.93748442 1.88036656 -8.66967773 0.5078125 C-5.72437076 0.10202355 -2.96781435 -0.04065499 0 0 Z"/>
|
||||
<path transform="translate(801,850)" fill="#F92424" d="M0 0 C4.66970739 -0.11362624 8.83444053 0.21129228 13.39453125 1.20703125 C14.59916016 1.46419922 15.80378906 1.72136719 17.04492188 1.98632812 C18.90987305 2.3952832 18.90987305 2.3952832 20.8125 2.8125 C38.57382839 6.67365835 56.36356302 9.41460186 74.39477539 11.67993164 C77.43105414 12.06168955 80.46653253 12.44937442 83.50195312 12.83789062 C95.65316685 14.3834284 107.81223218 15.7759479 120 17 C120.33326337 27.42169667 119.14291724 37.6575109 118 48 C4.06252752 38.06252752 4.06252752 38.06252752 -5 29 C-4.52364009 19.1552286 -2.11812509 9.59559922 0 0 Z"/>
|
||||
<path transform="translate(1476,550)" fill="#F92424" d="M0 0 C10.39669641 -0.1132812 20.63496744 0.08012389 31 1 C31.24179725 27.5631553 25.4273265 55.87935446 17 81 C16.66742187 82.01803711 16.33484375 83.03607422 15.9921875 84.08496094 C11.40376529 98.08542546 6.3135948 111.68468019 0 125 C-4.26700508 124.44950705 -7.57403688 123.45328701 -11.3984375 121.49609375 C-12.37167969 121.00302734 -13.34492187 120.50996094 -14.34765625 120.00195312 C-15.84619141 119.22754883 -15.84619141 119.22754883 -17.375 118.4375 C-18.39722656 117.91736328 -19.41945313 117.39722656 -20.47265625 116.86132812 C-22.98555196 115.58139526 -25.49439392 114.29412869 -28 113 C-27.37230374 109.32692174 -26.35048653 106.11543123 -24.92578125 102.67578125 C-24.5083667 101.65645508 -24.09095215 100.63712891 -23.66088867 99.58691406 C-23.21592041 98.50635742 -22.77095215 97.42580078 -22.3125 96.3125 C-15.35072636 79.10540068 -9.94369816 62.14248443 -6 44 C-5.71253906 42.71222656 -5.42507813 41.42445313 -5.12890625 40.09765625 C-2.40706458 26.88332646 -1.31884254 13.41176642 0 0 Z"/>
|
||||
<path transform="translate(1416,712)" fill="#F92323" d="M0 0 C4.88551987 2.26871931 8.88854709 5.58890461 13.125 8.875 C13.94871094 9.50019531 14.77242187 10.12539063 15.62109375 10.76953125 C16.40871094 11.37925781 17.19632813 11.98898437 18.0078125 12.6171875 C19.08506592 13.44645752 19.08506592 13.44645752 20.18408203 14.29248047 C22.08082084 16.07599637 22.99948115 17.6155494 24 20 C14.49919769 31.91705574 4.22439126 42.8705594 -6.5 53.6875 C-7.36592773 54.56647949 -8.23185547 55.44545898 -9.12402344 56.35107422 C-15.1019062 62.3368315 -21.37957613 67.74012121 -28 73 C-29.26615778 74.03682583 -30.53072394 75.07560152 -31.79296875 76.1171875 C-40.53751089 83.25016344 -49.58998078 89.77491037 -59 96 C-59.86093262 96.57186035 -59.86093262 96.57186035 -60.73925781 97.15527344 C-69.57724057 103 -69.57724057 103 -72 103 C-73.28100586 101.25927734 -73.28100586 101.25927734 -74.71484375 98.8359375 C-75.23626953 97.96066406 -75.75769531 97.08539062 -76.29492188 96.18359375 C-76.83697266 95.25675781 -77.37902344 94.32992187 -77.9375 93.375 C-78.47568359 92.47136719 -79.01386719 91.56773437 -79.56835938 90.63671875 C-82.21622804 86.16374702 -84.76281577 81.69263033 -87 77 C-81.46193767 72.90096174 -75.89398148 68.8940679 -70.125 65.125 C-43.45143593 47.45720112 -20.0745338 24.76314374 0 0 Z"/>
|
||||
<path transform="translate(853,475)" fill="#F92424" d="M0 0 C2.18781787 37.17835715 2.18781787 37.17835715 2.3125 55.75 C2.33860352 57.55730591 2.33860352 57.55730591 2.36523438 59.40112305 C2.36458984 60.50109619 2.36394531 61.60106934 2.36328125 62.734375 C2.36626221 63.68538086 2.36924316 64.63638672 2.37231445 65.61621094 C2 68 2 68 0.84594727 69.78344727 C-1.74165412 71.48877959 -3.81365896 71.53338438 -6.8984375 71.73046875 C-8.09106201 71.81143799 -9.28368652 71.89240723 -10.51245117 71.97583008 C-12.42441284 72.08060669 -12.42441284 72.08060669 -14.375 72.1875 C-16.31886597 72.30484497 -16.31886597 72.30484497 -18.30200195 72.42456055 C-26.25953136 72.87446834 -34.21741193 73.21952747 -42.1875 73.3125 C-43.05874512 73.33014404 -43.92999023 73.34778809 -44.82763672 73.3659668 C-47.23046875 73.36328125 -47.23046875 73.36328125 -51 73 C-53.32675378 69.50986933 -53.29807583 67.94757338 -53.4140625 63.8125 C-53.45281494 62.5642041 -53.49156738 61.3159082 -53.53149414 60.02978516 C-53.56305587 58.68653262 -53.5942173 57.34327062 -53.625 56 C-53.66280268 54.63979644 -53.70113451 53.27960748 -53.73999023 51.91943359 C-54.02039457 41.61301649 -54.1168595 31.30960485 -54 21 C-53.30777344 20.71914551 -52.61554687 20.43829102 -51.90234375 20.14892578 C-48.60110214 18.80874782 -45.30050176 17.46699899 -42 16.125 C-40.79150391 15.63410889 -39.58300781 15.14321777 -38.33789062 14.63745117 C-32.1999211 12.14046844 -26.07354065 9.62037399 -19.96875 7.04296875 C-18.87820313 6.58325684 -17.78765625 6.12354492 -16.6640625 5.64990234 C-14.58399723 4.77068957 -12.50580628 3.88702683 -10.4296875 2.99853516 C-9.49382813 2.60327637 -8.55796875 2.20801758 -7.59375 1.80078125 C-6.36688477 1.27738159 -6.36688477 1.27738159 -5.11523438 0.7434082 C-3 0 -3 0 0 0 Z"/>
|
||||
<path transform="translate(1519,583)" fill="#FA5555" d="M0 0 C3 2 3 2 3.69140625 4.0859375 C5.75407312 23.56377911 0.69321702 43.96173497 -3 63 C-3.30164062 64.55581787 -3.30164062 64.55581787 -3.609375 66.14306641 C-8.21088909 89.03149049 -16.59235078 130.58894484 -35 146 C-40.13693232 148.34512128 -44.97056211 148.94792089 -50.421875 147.2421875 C-57.7027479 144.4401546 -63.60792885 141.73799718 -68.58813477 135.58691406 C-70.94424946 132.93867863 -73.71958614 130.90951701 -76.5625 128.8125 C-77.40844727 128.17538086 -77.40844727 128.17538086 -78.27148438 127.52539062 C-80.60784821 125.76833572 -82.93176958 124.04392612 -85.390625 122.4609375 C-87 121 -87 121 -87.41796875 119.08203125 C-86.5319723 110.35721876 -82.72095152 102.83051417 -79 95 C-73.72429503 94.28341803 -70.16381531 96.79310985 -65.75 99.3125 C-57.93234965 103.74438677 -50.23564959 107.8712877 -41 107 C-37.80376352 106.12949221 -37.80376352 106.12949221 -35 105 C-34.01 104.67 -33.02 104.34 -32 104 C-30.87728836 102.22591506 -30.87728836 102.22591506 -30 100 C-29.63374512 99.18297607 -29.26749023 98.36595215 -28.89013672 97.52416992 C-15.14544729 65.80160413 -5.26065613 34.24190666 0 0 Z"/>
|
||||
<path transform="translate(808,595)" fill="#F92424" d="M0 0 C7.26 0 14.52 0 22 0 C22.495 1.485 22.495 1.485 23 3 C24.11375 2.95875 25.2275 2.9175 26.375 2.875 C30 3 30 3 32 5 C32.17170903 7.72697223 32.2324568 10.33906468 32.1875 13.0625 C32.18685547 13.80822266 32.18621094 14.55394531 32.18554688 15.32226562 C32.14028159 20.85971841 32.14028159 20.85971841 31 22 C28.66702567 22.04092937 26.33294775 22.04241723 24 22 C24 23.65 24 25.3 24 27 C24.71027344 26.98839844 25.42054688 26.97679687 26.15234375 26.96484375 C27.07144531 26.95582031 27.99054687 26.94679688 28.9375 26.9375 C30.31228516 26.92009766 30.31228516 26.92009766 31.71484375 26.90234375 C34 27 34 27 35 28 C35.09986975 30.84335048 35.13877881 33.65697163 35.125 36.5 C35.13080078 37.69689453 35.13080078 37.69689453 35.13671875 38.91796875 C35.12660767 44.87339233 35.12660767 44.87339233 34 46 C32.31391034 46.07205511 30.62499341 46.08386068 28.9375 46.0625 C28.01839844 46.05347656 27.09929688 46.04445313 26.15234375 46.03515625 C25.44207031 46.02355469 24.73179687 46.01195312 24 46 C23.98582031 46.556875 23.97164062 47.11375 23.95703125 47.6875 C23.57010872 53.8782604 22.02188358 58.23212189 18 63 C10.67881802 68.91925351 3.17910403 69.95566507 -6 69 C-13.06982704 67.03615916 -17.64606386 63.40914889 -21.8125 57.375 C-23.51834522 52.52680833 -23.67533289 48.08396669 -23 43 C-20.34377037 37.48321539 -16.26195276 33.30896981 -10.56640625 31.0234375 C-6.2489359 29.65057174 -2.55183957 28.84583788 2 29 C2 27.35 2 25.7 2 24 C0.78441406 24.01160156 -0.43117188 24.02320313 -1.68359375 24.03515625 C-3.26822764 24.04453278 -4.85286318 24.05363313 -6.4375 24.0625 C-7.23994141 24.07087891 -8.04238281 24.07925781 -8.86914062 24.08789062 C-10.91295221 24.0965143 -12.95683902 24.0522815 -15 24 C-16 23 -16 23 -16.09765625 19.18359375 C-16.09098089 17.60153318 -16.07901875 16.01948841 -16.0625 14.4375 C-16.05798828 13.63119141 -16.05347656 12.82488281 -16.04882812 11.99414062 C-16.03700518 9.99606244 -16.01906914 7.99802217 -16 6 C-12.32612505 5.14701624 -8.9552607 4.89210529 -5.1875 4.9375 C-3.72376953 4.95103516 -3.72376953 4.95103516 -2.23046875 4.96484375 C-1.12638672 4.98224609 -1.12638672 4.98224609 0 5 C0 3.35 0 1.7 0 0 Z"/>
|
||||
<path transform="translate(1178.5,406.75)" fill="#FA5353" d="M0 0 C1.20398437 -0.020625 2.40796875 -0.04125 3.6484375 -0.0625 C22.637936 -0.14417526 22.637936 -0.14417526 29.36962891 4.55517578 C32.66188014 9.49141942 29.24710294 18.86106848 28.1953125 24.2734375 C27.67869472 26.72540513 27.1551589 29.17592452 26.625 31.625 C26.36847656 32.86894531 26.11195312 34.11289062 25.84765625 35.39453125 C25.59113281 36.59207031 25.33460937 37.78960937 25.0703125 39.0234375 C24.84102051 40.10028809 24.61172852 41.17713867 24.37548828 42.28662109 C23.46530818 45.36742591 22.38578639 47.6533044 20.5 50.25 C17.8125 51.0625 17.8125 51.0625 15.5 51.25 C15.5 50.26 15.5 49.27 15.5 48.25 C1.56473797 28.68995948 -30.16174833 19.03571942 -52.5 15.25 C-57.48900831 14.4929408 -62.48923128 13.84652009 -67.5 13.25 C-67.5 15.89 -67.5 18.53 -67.5 21.25 C-67.83 21.25 -68.16 21.25 -68.5 21.25 C-68.58114106 19.47992286 -68.63925505 17.70877902 -68.6875 15.9375 C-68.72230469 14.95136719 -68.75710938 13.96523438 -68.79296875 12.94921875 C-68.5 10.25 -68.5 10.25 -67.38867188 8.61816406 C-64.63076711 6.62032302 -62.36907348 6.78214241 -58.98828125 6.66015625 C-57.67972168 6.60013428 -56.37116211 6.5401123 -55.02294922 6.47827148 C-54.33424744 6.45159393 -53.64554565 6.42491638 -52.93597412 6.39743042 C-41.01541468 5.92065601 -29.94351347 4.81260325 -18.5 1.25 C-12.38517359 -0.19776934 -6.25215732 0.02610504 0 0 Z"/>
|
||||
<path transform="translate(636.75,480.9453125)" fill="#FEFAFA" d="M0 0 C1.99534051 1.20173917 3.59010078 2.42644848 5.25 4.0546875 C6.36375 5.1375 6.36375 5.1375 7.5 6.2421875 C13.04025097 15.14616227 14.5898491 23.39207941 12.77734375 33.7578125 C10.962195 40.84450102 7.55129712 46.61801582 1.625 50.9921875 C-5.32543355 54.10159198 -14.18060507 54.48429352 -21.421875 52.21875 C-28.66140233 48.49913078 -34.12263209 42.82086895 -36.6875 35.0546875 C-39.01647813 25.56518654 -37.64540431 17.34628849 -32.9375 8.7421875 C-24.88075361 -1.15610092 -12.12826555 -4.16909128 0 0 Z"/>
|
||||
<path transform="translate(780,503)" fill="#F92323" d="M0 0 C1.0289687 7.83258067 1.39312788 15.67028129 1.66748047 23.55834961 C1.72283091 25.0703336 1.78508946 26.58207937 1.85400391 28.09350586 C1.95431429 30.29771965 2.03413762 32.5018362 2.109375 34.70703125 C2.16061523 36.0113208 2.21185547 37.31561035 2.26464844 38.65942383 C2 42 2 42 0.95922852 44.40405273 C-1.93921196 46.76506275 -4.86506198 46.710615 -8.45703125 46.828125 C-9.19644455 46.8668573 -9.93585785 46.9055896 -10.69767761 46.94549561 C-13.06881426 47.06488307 -15.44018268 47.15739353 -17.8125 47.25 C-19.36661972 47.3264507 -20.92065883 47.40455942 -22.47460938 47.484375 C-26.26091084 47.6709529 -30.04691909 47.81669501 -33.83599854 47.93334961 C-35.2618822 47.97726626 -36.68764038 48.02550126 -38.11322021 48.07836914 C-40.05803703 48.14701042 -42.00366723 48.19132407 -43.94921875 48.234375 C-45.04967529 48.26241211 -46.15013184 48.29044922 -47.28393555 48.31933594 C-50 48 -50 48 -51.83544922 46.79321289 C-53.33791087 44.47967393 -53.50334156 42.82350702 -53.68359375 40.07421875 C-53.74788574 39.09630371 -53.81217773 38.11838867 -53.87841797 37.11083984 C-54.0778286 32.00865063 -54.10507211 26.91787805 -54.0625 21.8125 C-54.05798828 20.76513672 -54.05347656 19.71777344 -54.04882812 18.63867188 C-54.03720124 16.09238464 -54.02086281 13.5462254 -54 11 C-53.11441406 10.89042969 -52.22882812 10.78085937 -51.31640625 10.66796875 C-47.20630279 10.14190972 -43.10214692 9.58458338 -39 9 C-38.32130859 8.90348145 -37.64261719 8.80696289 -36.94335938 8.70751953 C-25.54252677 7.03044053 -14.75170361 4.04224952 -3.79321289 0.50317383 C-2 0 -2 0 0 0 Z"/>
|
||||
<path transform="translate(864.8280029296875,589.9763336181641)" fill="#F92424" d="M0 0 C0.76252075 0.10392563 1.5250415 0.20785126 2.31066895 0.31492615 C6.70993233 0.85155721 11.10035995 1.29190896 15.5177002 1.65623474 C16.88559729 1.77076265 18.25347601 1.88551004 19.62133789 2.00045776 C20.68071312 2.08905469 20.68071312 2.08905469 21.76148987 2.17944145 C26.33746114 2.56374177 30.91265446 2.95722511 35.4879837 3.34908199 C39.49752667 3.69196151 43.50730307 4.03149115 47.5177002 4.36424255 C51.42024865 4.68822919 55.32196193 5.02095966 59.22325134 5.35975838 C60.7061826 5.48693943 62.18939349 5.61090221 63.67286682 5.73159599 C65.73654279 5.89995888 67.7989593 6.07947274 69.8614502 6.26170349 C71.03485962 6.36083542 72.20826904 6.45996735 73.41723633 6.56210327 C76.17199707 7.02366638 76.17199707 7.02366638 78.17199707 9.02366638 C78.20743114 11.9883167 78.12267206 14.82421075 77.92199707 17.77366638 C77.88203613 18.57288513 77.8420752 19.37210388 77.80090332 20.19554138 C77.5195755 24.81844184 76.73809423 28.62818523 75.17199707 33.02366638 C59.83874781 32.45530477 44.5882178 31.31643964 29.30895996 29.92185974 C25.5563854 29.58134697 21.80276765 29.25445616 18.0489502 28.92796326 C15.65108986 28.71198508 13.25330037 28.49521845 10.85559082 28.27757263 C9.73905624 28.18166336 8.62252167 28.08575409 7.47215271 27.98693848 C5.92256615 27.84185097 5.92256615 27.84185097 4.3416748 27.6938324 C3.43682846 27.61246536 2.53198212 27.53109833 1.59971619 27.44726562 C-0.87733533 27.01505865 -2.65527784 26.26507953 -4.82800293 25.02366638 C-4.85523963 22.5027586 -4.874955 19.98215182 -4.89050293 17.46116638 C-4.89888184 16.75669373 -4.90726074 16.05222107 -4.91589355 15.32640076 C-4.93672293 10.8064255 -4.72059288 6.47538859 -3.82800293 2.02366638 C-1.82800293 0.02366638 -1.82800293 0.02366638 0 0 Z"/>
|
||||
<path transform="translate(1130,560)" fill="#F92424" d="M0 0 C2.25944458 7.38085229 3.13532678 14.2863738 3 22 C-0.19879574 23.81846054 -3.05266947 24.48618151 -6.6796875 25.03735352 C-7.82187744 25.21416153 -8.96406738 25.39096954 -10.14086914 25.57313538 C-11.37313232 25.75653976 -12.60539551 25.93994415 -13.875 26.12890625 C-15.15044678 26.32346909 -16.42589355 26.51803192 -17.73999023 26.7184906 C-20.44273645 27.13029922 -23.14612651 27.53747645 -25.85009766 27.94116211 C-29.28245843 28.45378021 -32.7133045 28.97578526 -36.14373779 29.5011301 C-39.44933696 30.00641228 -42.75593521 30.50498111 -46.0625 31.00390625 C-47.27856934 31.18933487 -48.49463867 31.37476349 -49.74755859 31.56581116 C-57.15305664 32.66740455 -64.53084514 33.48022326 -72 34 C-73.60850387 28.85684266 -74.52795025 23.91147849 -75.125 18.5625 C-75.21136719 17.83095703 -75.29773437 17.09941406 -75.38671875 16.34570312 C-75.59628393 14.56439906 -75.79887868 12.78227719 -76 11 C-71.81178441 9.48461812 -67.87059533 8.57225286 -63.45703125 8 C-62.21759766 7.835 -60.97816406 7.67 -59.70117188 7.5 C-58.41791016 7.335 -57.13464844 7.17 -55.8125 7 C-47.95976979 5.97486031 -40.14877854 4.90831281 -32.3659668 3.4375 C-29.2558558 2.86239744 -26.13421544 2.42191362 -23 2 C-17.75142099 1.27983274 -12.58226557 0.3789444 -7.40234375 -0.73046875 C-4.71340558 -1.0321545 -2.61143708 -0.6563505 0 0 Z"/>
|
||||
<path transform="translate(1032.625,429.875)" fill="#FEFBFB" d="M0 0 C3.375 2.125 3.375 2.125 5.375 4.125 C5.61550903 5.95999146 5.61550903 5.95999146 5.60205078 8.20751953 C5.60189972 9.04824005 5.60174866 9.88896057 5.60159302 10.75515747 C5.59127045 11.66353363 5.58094788 12.57190979 5.5703125 13.5078125 C5.5674826 14.43721649 5.56465271 15.36662048 5.56173706 16.32418823 C5.55052069 19.2995885 5.5254136 22.27469035 5.5 25.25 C5.48997208 27.26431858 5.4808459 29.27864186 5.47265625 31.29296875 C5.45057661 36.23709456 5.41603693 41.18099665 5.375 46.125 C-1.64502399 49.02252668 -9.59181439 50.70452004 -17.02734375 48.37109375 C-24.60328372 45.15667663 -28.94993249 41.47513502 -32.625 34.125 C-35.09202899 26.309982 -34.52703834 18.0724125 -31.125 10.6875 C-24.81404531 -0.64523573 -12.25765286 -6.05010756 0 0 Z"/>
|
||||
<path transform="translate(759.875,577.8671875)" fill="#F92525" d="M0 0 C0.98484375 -0.00128906 1.9696875 -0.00257813 2.984375 -0.00390625 C4.02078125 -0.00003906 5.0571875 0.00382813 6.125 0.0078125 C7.67960938 0.00201172 7.67960938 0.00201172 9.265625 -0.00390625 C10.25046875 -0.00261719 11.2353125 -0.00132812 12.25 0 C13.16007813 0.00112793 14.07015625 0.00225586 15.0078125 0.00341797 C17.125 0.1328125 17.125 0.1328125 18.125 1.1328125 C19.20882896 8.48856453 19.28591996 15.76648241 19.29296875 23.19140625 C19.29629715 24.41690689 19.29962555 25.64240753 19.30305481 26.90504456 C19.30809381 29.47925442 19.31046408 32.05347075 19.31030273 34.62768555 C19.3125065 38.58197523 19.33074115 42.53599333 19.34960938 46.49023438 C19.35254039 48.99479071 19.35452714 51.49934837 19.35546875 54.00390625 C19.36265427 55.19028183 19.36983978 56.37665741 19.37724304 57.59898376 C19.37416641 58.69094559 19.37108978 59.78290741 19.36791992 60.90795898 C19.36934494 61.8712059 19.37076996 62.83445282 19.37223816 63.82688904 C19.125 66.1328125 19.125 66.1328125 17.125 68.1328125 C15.15380859 68.54345703 15.15380859 68.54345703 12.7734375 68.765625 C11.92265625 68.84941406 11.071875 68.93320312 10.1953125 69.01953125 C9.30585937 69.09816406 8.41640625 69.17679688 7.5 69.2578125 C6.6028125 69.34417969 5.705625 69.43054688 4.78125 69.51953125 C2.5631252 69.7319049 0.34454931 69.93598335 -1.875 70.1328125 C-4.22758055 64.37986341 -4.5614724 58.63998782 -5 52.5078125 C-5.08419189 51.35877441 -5.16838379 50.20973633 -5.25512695 49.02587891 C-5.93827908 38.52042499 -6.06328672 28.03235402 -6.0625 17.5078125 C-6.06340637 16.69834167 -6.06431274 15.88887085 -6.06524658 15.05487061 C-6.0649543 12.75523563 -6.05611011 10.45584414 -6.04296875 8.15625 C-6.04176529 7.45959229 -6.04056183 6.76293457 -6.0393219 6.04516602 C-5.9826754 0.33062705 -5.62514591 0.00697168 0 0 Z"/>
|
||||
<path transform="translate(1332,490)" fill="#FA5555" d="M0 0 C2 1 2 1 2.88671875 3.58984375 C3.28310547 5.24693359 3.28310547 5.24693359 3.6875 6.9375 C3.95949219 8.01902344 4.23148438 9.10054688 4.51171875 10.21484375 C5.82109393 20.36512018 2.77615326 30.65807935 0.67138672 40.55029297 C0.12515944 43.12424867 -0.40860381 45.70057979 -0.94140625 48.27734375 C-1.29091963 49.93765743 -1.64115557 51.59781921 -1.9921875 53.2578125 C-2.14855682 54.01635529 -2.30492615 54.77489807 -2.46603394 55.556427 C-4.84673311 66.61449238 -9.26949732 76.61222425 -19.0234375 83.0703125 C-22.81346773 84.85297494 -26.87634753 85.44409514 -31 86 C-31.85439108 72.65013933 -32.11978427 59.37590974 -32 46 C-30.96552734 45.79697266 -30.96552734 45.79697266 -29.91015625 45.58984375 C-20.71582285 43.48359728 -14.05477924 39.72047781 -8.94921875 31.60546875 C-5.40959031 25.51574336 -4.02215252 19.22333776 -2.625 12.375 C-2.36589844 11.18003906 -2.10679688 9.98507812 -1.83984375 8.75390625 C-1.21022427 5.83900127 -0.59739161 2.92164836 0 0 Z"/>
|
||||
<path transform="translate(576,692)" fill="#FA5454" d="M0 0 C5.09378692 4.39119562 7.42845232 10.35266149 8.23828125 16.9375 C8.55681268 25.78932073 6.10842189 34.03598709 0.25 40.75 C-0.81528149 41.85108927 -1.89205517 42.94185045 -3 44 C-11.4306951 38.91481883 -18.64414726 32.48633142 -26 26 C-26.51369141 25.55092285 -27.02738281 25.1018457 -27.55664062 24.63916016 C-36.02046163 17.23756568 -36.02046163 17.23756568 -39 13 C-38.42145264 12.93006836 -37.84290527 12.86013672 -37.24682617 12.78808594 C-16.89105973 10.63871252 -16.89105973 10.63871252 0 0 Z"/>
|
||||
<path transform="translate(789,572)" fill="#FA5353" d="M0 0 C9.26753222 -0.20750451 18.33295314 0.31906953 27.54272461 1.22680664 C29.72246982 1.44093528 31.90306622 1.64390567 34.08398438 1.84570312 C44.72022716 2.86011358 44.72022716 2.86011358 47 4 C47.054138 6.24973447 47.09285491 8.49984383 47.125 10.75 C47.14820313 12.00296875 47.17140625 13.2559375 47.1953125 14.546875 C47.00941381 17.83356378 46.54014637 19.21814393 45 22 C36.37741473 22.24337942 27.95979994 21.45712947 19.40185547 20.51074219 C16.97900916 20.24772126 14.55439661 20.01066598 12.12890625 19.7734375 C10.5857637 19.60575851 9.04278703 19.4365442 7.5 19.265625 C6.77611084 19.19877502 6.05222168 19.13192505 5.30639648 19.06304932 C0.37804924 18.47470744 0.37804924 18.47470744 -1.48388672 16.13671875 C-2.27569745 12.85860733 -1.67581964 10.05491786 -1.125 6.75 C-0.92132812 5.48671875 -0.71765625 4.2234375 -0.5078125 2.921875 C-0.34023438 1.95765625 -0.17265625 0.9934375 0 0 Z"/>
|
||||
<path transform="translate(1114,562)" fill="#FA5454" d="M0 0 C-11.69732219 9.41140183 -24.15157829 17.26394225 -37 25 C-37.62600098 25.3805957 -38.25200195 25.76119141 -38.89697266 26.15332031 C-44.66305725 29.63414056 -49.21954247 31.74413368 -56 32 C-57.60850387 26.85684266 -58.52795025 21.91147849 -59.125 16.5625 C-59.21136719 15.83095703 -59.29773437 15.09941406 -59.38671875 14.34570312 C-59.59628393 12.56439906 -59.79887868 10.78227719 -60 9 C-55.81178441 7.48461812 -51.87059533 6.57225286 -47.45703125 6 C-45.59788086 5.7525 -45.59788086 5.7525 -43.70117188 5.5 C-42.41791016 5.335 -41.13464844 5.17 -39.8125 5 C-31.95877788 3.97473082 -24.14044998 2.9295287 -16.36157227 1.42822266 C-10.95124676 0.44717118 -5.50355215 -0.17753394 0 0 Z"/>
|
||||
<path transform="translate(877,592)" fill="#FA5252" d="M0 0 C15.50193948 0.95199342 30.99556758 2.0062149 46.472229 3.30966187 C47.99032124 3.43651871 49.50867883 3.56023923 51.02728271 3.68081665 C53.15968163 3.85115483 55.29074562 4.03328359 57.421875 4.21875 C58.64487305 4.32123047 59.86787109 4.42371094 61.12792969 4.52929688 C64 5 64 5 66 7 C66.15112305 8.83178711 66.15112305 8.83178711 66.01171875 11.02734375 C65.96466797 11.81947266 65.91761719 12.61160156 65.86914062 13.42773438 C65.80919922 14.25595703 65.74925781 15.08417969 65.6875 15.9375 C65.63916016 16.76185547 65.59082031 17.58621094 65.54101562 18.43554688 C65.32077651 21.86737413 65.09447428 24.71657717 64 28 C52.27730755 26.32532965 41.99636412 19.80539608 31.9375 13.875 C21.90712469 8.05349369 11.19666834 4.00334162 0 1 C0 0.67 0 0.34 0 0 Z"/>
|
||||
<path transform="translate(402,450)" fill="#FA5454" d="M0 0 C4.62 0 9.24 0 14 0 C14.32477132 13.44192422 13.31966308 26.62662861 12 40 C8.04 39.67 4.08 39.34 0 39 C0 26.13 0 13.26 0 0 Z"/>
|
||||
<path transform="translate(1217.1875,219.625)" fill="#D30A0A" d="M0 0 C4.99503071 0.4913145 6.31841769 1.88091769 9.8125 5.375 C11.32828428 8.40656857 11.06221927 11.25466614 11.125 14.625 C11.16238281 15.92953125 11.19976563 17.2340625 11.23828125 18.578125 C10.75090983 22.92422608 9.5546195 25.01730265 6.8125 28.375 C3.60832279 29.9770886 0.28910568 29.86785215 -3.1875 29.375 C-6.63062714 27.2505173 -7.90367547 26.22647359 -9.1875 22.375 C-9.38728883 19.73207914 -9.51007043 17.14530994 -9.5625 14.5 C-9.59988281 13.79230469 -9.63726563 13.08460938 -9.67578125 12.35546875 C-9.74438462 8.26213452 -9.38585401 6.61239512 -6.7265625 3.4296875 C-5.88867188 2.75164062 -5.05078125 2.07359375 -4.1875 1.375 C-3.1875 0.375 -3.1875 0.375 0 0 Z"/>
|
||||
<path transform="translate(1275,238)" fill="#D30B0B" d="M0 0 C2.92937654 1.81310142 5.43647949 3.87295899 7 7 C7.44842827 10.83054991 7.26577069 12.5721034 5.20703125 15.88671875 C4.41683594 16.81097656 3.62664062 17.73523438 2.8125 18.6875 C2.03519531 19.61949219 1.25789063 20.55148437 0.45703125 21.51171875 C-1.92835313 23.92744188 -3.95152234 25.52747202 -7 27 C-11.24773336 27 -13.42070506 26.39441358 -16.9375 24 C-19.27200157 20.60436135 -20.07743559 18.64410541 -19.8984375 14.5546875 C-17.18036607 6.82591047 -8.26098154 -0.95319018 0 0 Z"/>
|
||||
<path transform="translate(1165.65625,238.37890625)" fill="#D20808" d="M0 0 C4.47399358 1.1856083 7.2703561 4.31181861 10.34375 7.62109375 C11.58125 8.85859375 11.58125 8.85859375 12.84375 10.12109375 C14.9256257 13.59088659 14.97260479 15.63834674 14.34375 19.62109375 C12.54479326 22.58837664 10.49674143 25.04459803 7.34375 26.62109375 C4.09384823 27.24012266 2.11983127 27.14658126 -0.65234375 25.26953125 C-2.75173702 23.46778353 -4.71232217 21.58897141 -6.65625 19.62109375 C-7.19121094 19.11964844 -7.72617188 18.61820312 -8.27734375 18.1015625 C-10.86785975 15.43766078 -12.02226736 13.19798143 -12.28125 9.55859375 C-11.65625 5.62109375 -11.65625 5.62109375 -9.71875 2.62109375 C-6.20233621 0.32466026 -4.14272118 -0.22784966 0 0 Z"/>
|
||||
<path transform="translate(1173,331)" fill="#D20808" d="M0 0 C5.53846154 3.07692308 5.53846154 3.07692308 7 6 C7.56986966 9.56168535 7.66760622 11.98122519 5.6484375 15.0625 C3.85231743 17.15137973 1.9794468 19.08466483 0 21 C-0.76957031 21.80050781 -0.76957031 21.80050781 -1.5546875 22.6171875 C-4.1919032 25.14036144 -5.94123775 25.99072175 -9.5625 26.5625 C-13.54253862 25.91122095 -15.21071286 24.871325 -18 22 C-19.22666504 18.32000489 -19.42756803 15.87254472 -19 12 C-17.48632851 9.48109353 -15.55943916 7.57821574 -13.4375 5.5625 C-12.92380859 5.02173828 -12.41011719 4.48097656 -11.88085938 3.92382812 C-8.0592081 0.16864035 -5.52096596 -0.7756729 0 0 Z"/>
|
||||
<path transform="translate(1007,617)" fill="#F92424" d="M0 0 C-0.41806057 4.87737336 -2.4066564 6.8149909 -6 10 C-6.7425 10.70125 -7.485 11.4025 -8.25 12.125 C-16.87272419 18.00413013 -27.43949427 18.40009365 -37.53125 16.53125 C-42.59139542 14.89643379 -45.64121793 11.94656894 -49 8 C-49 7.34 -49 6.68 -49 6 C-47.59427734 5.96132813 -47.59427734 5.96132813 -46.16015625 5.921875 C-30.72799286 5.33057456 -15.11357692 0 0 0 Z"/>
|
||||
<path transform="translate(1152,288)" fill="#D20707" d="M0 0 C2.86781815 1.42010252 4.74412617 2.74412617 7 5 C7.37109375 6.98828125 7.37109375 6.98828125 7.4375 9.3125 C7.47746094 10.07175781 7.51742188 10.83101563 7.55859375 11.61328125 C6.68237273 15.35713469 5.06564973 16.73134029 2 19 C-1.02428471 19.71170402 -3.90534282 19.70035691 -7 19.625 C-8.19109375 19.65400391 -8.19109375 19.65400391 -9.40625 19.68359375 C-13.6621846 19.64812763 -15.51848608 19.36004534 -19.01953125 16.7421875 C-21.55342476 13.23371956 -21.82450133 11.36508633 -21.515625 7.16015625 C-20.84250971 4.34021115 -19.71361057 2.47667297 -17.3125 0.80859375 C-11.88494897 -1.08921548 -5.62295419 -0.74067454 0 0 Z"/>
|
||||
<path transform="translate(1495,307)" fill="#FA5858" d="M0 0 C0.33 0 0.66 0 1 0 C1.0497499 5.53180661 1.08588418 11.06348052 1.10986328 16.59545898 C1.11986873 18.47406282 1.13347733 20.35265129 1.15087891 22.23120117 C1.1753688 24.94453748 1.1865379 27.65766638 1.1953125 30.37109375 C1.20563507 31.19959335 1.21595764 32.02809296 1.22659302 32.88169861 C1.22765235 38.49282417 0.4324465 43.57723935 -1 49 C-1.66 48.67 -2.32 48.34 -3 48 C-3 47.34 -3 46.68 -3 46 C-5.99686226 44.33816687 -8.69647371 43.54165857 -12.0625 42.9375 C-14.8314017 42.4336848 -17.32213764 41.89262079 -20 41 C-19.43152344 40.44054687 -18.86304688 39.88109375 -18.27734375 39.3046875 C-8.79075095 29.45383488 -3.58898828 18.36316257 -1 5 C-0.81179688 4.06285156 -0.62359375 3.12570312 -0.4296875 2.16015625 C-0.21699219 1.09087891 -0.21699219 1.09087891 0 0 Z"/>
|
||||
<path transform="translate(804.43359375,584.8046875)" fill="#F92828" d="M0 0 C0.87793716 0.0028299 1.75587433 0.00565979 2.66041565 0.00857544 C5.4417227 0.01969652 8.22269789 0.04478578 11.00390625 0.0703125 C12.89908386 0.08035275 14.79426657 0.08947677 16.68945312 0.09765625 C21.31523042 0.11960935 25.94076223 0.1540829 30.56640625 0.1953125 C30.6640625 6.34765625 30.6640625 6.34765625 30.56640625 8.1953125 C29.56640625 9.1953125 29.56640625 9.1953125 25.63671875 9.3828125 C17.52463395 9.30189395 9.48485988 8.16377682 1.44140625 7.1953125 C-0.19915665 7.00207624 -1.83978133 6.80936364 -3.48046875 6.6171875 C-7.4655816 6.14926376 -11.44979144 5.67426044 -15.43359375 5.1953125 C-15.76359375 4.2053125 -16.09359375 3.2153125 -16.43359375 2.1953125 C-10.81684178 0.28898094 -5.906282 -0.07268288 0 0 Z"/>
|
||||
<path transform="translate(759.875,577.8671875)" fill="#FA5555" d="M0 0 C0.98484375 -0.00128906 1.9696875 -0.00257813 2.984375 -0.00390625 C4.02078125 -0.00003906 5.0571875 0.00382813 6.125 0.0078125 C7.67960938 0.00201172 7.67960938 0.00201172 9.265625 -0.00390625 C10.25046875 -0.00261719 11.2353125 -0.00132812 12.25 0 C13.16007813 0.00112793 14.07015625 0.00225586 15.0078125 0.00341797 C17.125 0.1328125 17.125 0.1328125 18.125 1.1328125 C18.19679964 2.65209288 18.20892007 4.17448732 18.1875 5.6953125 C18.17847656 6.52160156 18.16945313 7.34789062 18.16015625 8.19921875 C18.14855469 8.83730469 18.13695312 9.47539063 18.125 10.1328125 C15.22996617 10.63786513 12.33412047 11.1370147 9.4375 11.6328125 C8.62087891 11.77589844 7.80425781 11.91898438 6.96289062 12.06640625 C5.76889648 12.26943359 5.76889648 12.26943359 4.55078125 12.4765625 C3.82286377 12.60224609 3.09494629 12.72792969 2.3449707 12.85742188 C0.125 13.1328125 0.125 13.1328125 -4.875 13.1328125 C-4.875 21.0528125 -4.875 28.9728125 -4.875 37.1328125 C-5.205 37.1328125 -5.535 37.1328125 -5.875 37.1328125 C-5.8996501 32.02417354 -5.91783607 26.91556891 -5.92993164 21.80688477 C-5.93497204 20.06762082 -5.9418043 18.32836114 -5.95043945 16.58911133 C-5.96251792 14.09455313 -5.96823108 11.60005077 -5.97265625 9.10546875 C-5.97781754 8.32317398 -5.98297882 7.54087921 -5.98829651 6.73487854 C-5.98849226 4.86714136 -5.93699694 2.99952046 -5.875 1.1328125 C-4.22105883 -0.52112867 -2.27184587 0.00281567 0 0 Z"/>
|
||||
<path transform="translate(393,634)" fill="#FA6868" d="M0 0 C0.33 0 0.66 0 1 0 C3.0242942 29.16001775 5.01308175 58.32123587 6.75 87.5 C6.81466461 88.56828033 6.87932922 89.63656067 6.94595337 90.73721313 C7.12902524 93.77252543 7.30749239 96.80807144 7.484375 99.84375 C7.53730209 100.71533249 7.59022919 101.58691498 7.64476013 102.48490906 C7.9959079 108.66122941 8.05471789 114.81448354 8 121 C7.34 121 6.68 121 6 121 C4.87617828 116.28665873 4.62808542 111.58545113 4.33569336 106.76611328 C4.27702591 105.8433812 4.21835846 104.92064911 4.15791321 103.96995544 C3.96502725 100.92028452 3.7772273 97.87032612 3.58984375 94.8203125 C3.45691809 92.68861876 3.32382324 90.55693556 3.19056702 88.42526245 C2.91175766 83.95161705 2.63556111 79.47781946 2.36108398 75.00390625 C2.01129786 69.30711484 1.65426121 63.61080529 1.2950964 57.91459846 C1.01813294 53.50664224 0.74553773 49.09842362 0.47415352 44.6901207 C0.34441799 42.59236692 0.21327 40.49469995 0.08061028 38.39712906 C-1.94076705 6.33696471 -1.94076705 6.33696471 0 0 Z"/>
|
||||
<path transform="translate(550,325)" fill="#FA6767" d="M0 0 C2.58166757 2.58166757 2.25875282 4.33385279 2.27807617 7.85449219 C2.26881104 8.68625977 2.2595459 9.51802734 2.25 10.375 C2.24395752 11.27379883 2.23791504 12.17259766 2.23168945 13.09863281 C2.11944655 21.11753804 1.55942587 29.08068338 0.92285156 37.07250977 C0.22997653 46.04382261 -0.27894967 55.01715289 -0.73046875 64.00390625 C-0.79385941 65.2527359 -0.85725006 66.50156555 -0.92256165 67.78823853 C-1.18128743 72.9038443 -1.43884765 78.01943491 -1.68081665 83.13586426 C-1.8531006 86.77455341 -2.03521472 90.41264478 -2.21875 94.05078125 C-2.2677092 95.15079971 -2.3166684 96.25081818 -2.36711121 97.38417053 C-2.65340346 102.90021889 -3.19327114 107.77041032 -5 113 C-5.33 113 -5.66 113 -6 113 C-6.35414837 97.02270432 -5.30734667 81.16766908 -4.20404053 65.23687744 C-3.78522487 59.17280957 -3.37898197 53.10788383 -2.97265625 47.04296875 C-2.88529205 45.74769257 -2.79792786 44.45241638 -2.70791626 43.1178894 C-2.13341 34.45368972 -1.66077297 25.79068543 -1.33839417 17.11332703 C-1.11457898 11.37996473 -0.6282615 5.7030618 0 0 Z"/>
|
||||
<path transform="translate(724,352)" fill="#FA5858" d="M0 0 C0.33 0 0.66 0 1 0 C1.15855469 0.94359375 1.31710937 1.8871875 1.48046875 2.859375 C3.5367747 14.17473814 6.94685741 24.13561948 13 34 C6.565 34.495 6.565 34.495 0 35 C0 23.45 0 11.9 0 0 Z"/>
|
||||
<path transform="translate(986,609)" fill="#FEF4F4" d="M0 0 C-0.75 5.75 -0.75 5.75 -3 8 C-6.625 8.125 -6.625 8.125 -10 8 C-10.25 5.6875 -10.25 5.6875 -10 3 C-7.00198322 -0.3439418 -4.3216814 -0.2946601 0 0 Z"/>
|
||||
<path transform="translate(811,639)" fill="#FDD7D7" d="M0 0 C-0.75 5.75 -0.75 5.75 -3 8 C-5.625 7.625 -5.625 7.625 -8 7 C-8 5.35 -8 3.7 -8 2 C-4.91190305 0.23537317 -3.76687864 0 0 0 Z"/>
|
||||
<path transform="translate(1023,611)" fill="#F92C2C" d="M0 0 C0.33 1.32 0.66 2.64 1 4 C0 5 0 5 -1.84765625 5.09765625 C-3.8984375 5.06510417 -5.94921875 5.03255208 -8 5 C-8.33 4.34 -8.66 3.68 -9 3 C-6.03 2.01 -3.06 1.02 0 0 Z"/>
|
||||
<path transform="translate(1011,430)" fill="#FDCDCD" d="M0 0 C0.66 0.33 1.32 0.66 2 1 C-0.97 3.97 -3.94 6.94 -7 10 C-7 6.04435836 -5.59478606 4.89133304 -3 2 C-2.01 1.34 -1.02 0.68 0 0 Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 205 KiB |
@@ -21,6 +21,7 @@ import { IconX } from "@tabler/icons-react";
|
||||
|
||||
import type { UseFormReturnType } from "@homarr/form";
|
||||
import { useI18n } from "@homarr/translation/client";
|
||||
import { BoardColorInput } from "@homarr/ui";
|
||||
|
||||
import { SectionCard } from "~/components/manage/section-card";
|
||||
import { generateColors } from "../../(content)/_theme";
|
||||
@@ -44,21 +45,11 @@ export const ColorSettingsContent = ({ form }: Props) => {
|
||||
<Grid>
|
||||
<Grid.Col span={{ sm: 12, md: 6 }}>
|
||||
<Stack gap="xs">
|
||||
<ColorInput
|
||||
label={t("board.field.primaryColor.label")}
|
||||
format="hex"
|
||||
swatches={Object.values(theme.colors).map((color) => color[6])}
|
||||
{...form.getInputProps("primaryColor")}
|
||||
/>
|
||||
<BoardColorInput label={t("board.field.primaryColor.label")} {...form.getInputProps("primaryColor")} />
|
||||
</Stack>
|
||||
</Grid.Col>
|
||||
<Grid.Col span={{ sm: 12, md: 6 }}>
|
||||
<ColorInput
|
||||
label={t("board.field.secondaryColor.label")}
|
||||
format="hex"
|
||||
swatches={Object.values(theme.colors).map((color) => color[6])}
|
||||
{...form.getInputProps("secondaryColor")}
|
||||
/>
|
||||
<BoardColorInput label={t("board.field.secondaryColor.label")} {...form.getInputProps("secondaryColor")} />
|
||||
</Grid.Col>
|
||||
<Grid.Col span={12}>
|
||||
<Anchor onClick={toggle}>{showPreview ? t("common.preview.hide") : t("common.preview.show")}</Anchor>
|
||||
|
||||
@@ -15,6 +15,7 @@ import { resolveHomarrUrlConfig } from "@homarr/workshop/schema";
|
||||
|
||||
import { DatabaseRestoreFlow } from "~/components/backup";
|
||||
import { env } from "~/env";
|
||||
import { AssistantConfiguration } from "../manage/assistant/_components/assistant-configuration";
|
||||
|
||||
export default async function InitPage() {
|
||||
const [state, session, requestHeaders, firstUser] = await Promise.all([
|
||||
@@ -68,6 +69,7 @@ export default async function InitPage() {
|
||||
availableBoards,
|
||||
}}
|
||||
sqliteRestore={databaseDriver === "sqlite" ? <DatabaseRestoreFlow variant="standalone" /> : undefined}
|
||||
assistantConfiguration={canConfigurePrivileged ? <AssistantConfiguration /> : undefined}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import "@gfazioli/mantine-onboarding-tour/styles.css";
|
||||
import "@homarr/notifications/styles.css";
|
||||
import "@homarr/spotlight/styles.css";
|
||||
import "@homarr/ui/styles.css";
|
||||
import "flag-icons/css/flag-icons.min.css";
|
||||
import "mantine-datatable/styles.css";
|
||||
import "~/styles/color-scheme.scss";
|
||||
import "~/styles/scroll-area.scss";
|
||||
|
||||
+9
-4
@@ -142,8 +142,8 @@ export const AssistantConfiguration = () => {
|
||||
const t = useScopedI18n("management.page.settings.section.assistant");
|
||||
const utils = clientApi.useUtils();
|
||||
const { data: configuration, isLoading } = clientApi.assistant.getAdminConfiguration.useQuery();
|
||||
const [provider, setProvider] = useState<AssistantProvider>("openrouter");
|
||||
const [baseUrl, setBaseUrl] = useState<string>(assistantProviderPresets.openrouter.baseUrl);
|
||||
const [provider, setProvider] = useState<AssistantProvider>("homarr");
|
||||
const [baseUrl, setBaseUrl] = useState<string>(assistantProviderPresets.homarr.baseUrl);
|
||||
const [modelDiscoveryPath, setModelDiscoveryPath] = useState<string>("/models");
|
||||
const [apiKey, setApiKey] = useState("");
|
||||
const [credentialFlow, setCredentialFlow] = useState<CredentialFlow>("idle");
|
||||
@@ -155,7 +155,7 @@ export const AssistantConfiguration = () => {
|
||||
const [webSearchEnabled, setWebSearchEnabled] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const configuredProvider = configuration?.provider ?? "openrouter";
|
||||
const configuredProvider = configuration?.provider ?? "homarr";
|
||||
setProvider(configuredProvider);
|
||||
setBaseUrl(
|
||||
configuredProvider === "homarr"
|
||||
@@ -201,7 +201,7 @@ export const AssistantConfiguration = () => {
|
||||
);
|
||||
const providerOptions = useMemo(
|
||||
() =>
|
||||
(["hosted", "local", "custom"] satisfies AssistantProviderCategory[]).map((category) => {
|
||||
(["free", "hosted", "local", "custom"] satisfies AssistantProviderCategory[]).map((category) => {
|
||||
const items = assistantProviderIds
|
||||
.filter((providerId) => assistantProviderPresets[providerId].category === category)
|
||||
.map((providerId) => ({
|
||||
@@ -438,6 +438,11 @@ export const AssistantConfiguration = () => {
|
||||
{option.label}
|
||||
</Text>
|
||||
</Group>
|
||||
{option.value === "homarr" && (
|
||||
<Text size="xs" c="dimmed" lineClamp={2}>
|
||||
{t("provider.options.homarr.description")}
|
||||
</Text>
|
||||
)}
|
||||
</Box>
|
||||
</Group>
|
||||
)}
|
||||
|
||||
@@ -1,94 +1,3 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { Combobox, Group, InputBase, Text, useCombobox } from "@mantine/core";
|
||||
import { IconCheck, IconDeviceDesktop, IconMoon, IconSun } from "@tabler/icons-react";
|
||||
|
||||
import type { ColorScheme } from "@homarr/definitions";
|
||||
import { colorSchemes } from "@homarr/definitions";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
|
||||
const schemeIcons: Record<ColorScheme, React.ElementType> = {
|
||||
auto: IconDeviceDesktop,
|
||||
light: IconSun,
|
||||
dark: IconMoon,
|
||||
};
|
||||
|
||||
interface ColorSchemeComboboxProps {
|
||||
value: ColorScheme;
|
||||
onChange: (value: ColorScheme) => void;
|
||||
width?: string;
|
||||
}
|
||||
|
||||
export const ColorSchemeCombobox = ({ value, onChange, width }: ColorSchemeComboboxProps) => {
|
||||
const tOptions = useScopedI18n("common.colorScheme.options");
|
||||
|
||||
const combobox = useCombobox({
|
||||
onDropdownClose: () => combobox.resetSelectedOption(),
|
||||
});
|
||||
|
||||
const handleOnOptionSubmit = React.useCallback(
|
||||
(val: string) => {
|
||||
if (!val) return;
|
||||
onChange(val as ColorScheme);
|
||||
combobox.closeDropdown();
|
||||
},
|
||||
[onChange, combobox],
|
||||
);
|
||||
|
||||
const handleOnClick = React.useCallback(() => {
|
||||
combobox.toggleDropdown();
|
||||
}, [combobox]);
|
||||
|
||||
return (
|
||||
<Combobox store={combobox} onOptionSubmit={handleOnOptionSubmit}>
|
||||
<Combobox.Target>
|
||||
<InputBase
|
||||
component="button"
|
||||
type="button"
|
||||
pointer
|
||||
rightSection={<Combobox.Chevron />}
|
||||
rightSectionPointerEvents="none"
|
||||
onClick={handleOnClick}
|
||||
variant="filled"
|
||||
w={width}
|
||||
>
|
||||
<OptionItem scheme={value} currentScheme={value} tOptions={tOptions} />
|
||||
</InputBase>
|
||||
</Combobox.Target>
|
||||
<Combobox.Dropdown>
|
||||
<Combobox.Options>
|
||||
{colorSchemes.map((scheme) => (
|
||||
<Combobox.Option value={scheme} key={scheme}>
|
||||
<OptionItem scheme={scheme} currentScheme={value} tOptions={tOptions} showCheck />
|
||||
</Combobox.Option>
|
||||
))}
|
||||
</Combobox.Options>
|
||||
</Combobox.Dropdown>
|
||||
</Combobox>
|
||||
);
|
||||
};
|
||||
|
||||
const OptionItem = ({
|
||||
scheme,
|
||||
currentScheme,
|
||||
tOptions,
|
||||
showCheck,
|
||||
}: {
|
||||
scheme: ColorScheme;
|
||||
currentScheme: ColorScheme;
|
||||
tOptions: (key: ColorScheme) => string;
|
||||
showCheck?: boolean;
|
||||
}) => {
|
||||
const Icon = schemeIcons[scheme];
|
||||
|
||||
return (
|
||||
<Group wrap="nowrap" justify="space-between">
|
||||
<Group wrap="nowrap">
|
||||
<Icon size={16} stroke={1.5} />
|
||||
<Text>{tOptions(scheme)}</Text>
|
||||
</Group>
|
||||
{showCheck && scheme === currentScheme && <IconCheck color="currentColor" size={16} />}
|
||||
</Group>
|
||||
);
|
||||
};
|
||||
export { ColorSchemeCombobox } from "@homarr/ui";
|
||||
@@ -1,105 +1,3 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { Combobox, Group, InputBase, Loader, ScrollArea, Text, useCombobox } from "@mantine/core";
|
||||
import { IconCheck } from "@tabler/icons-react";
|
||||
|
||||
import type { SupportedLanguage } from "@homarr/translation";
|
||||
import { localeConfigurations, supportedLanguages } from "@homarr/translation";
|
||||
import { LanguageIcon } from "@homarr/ui";
|
||||
|
||||
import "flag-icons/css/flag-icons.min.css";
|
||||
|
||||
interface LanguageComboboxProps {
|
||||
label?: string;
|
||||
value: SupportedLanguage;
|
||||
onChange: (value: SupportedLanguage) => void;
|
||||
isPending?: boolean;
|
||||
width?: string;
|
||||
withinPortal?: boolean;
|
||||
}
|
||||
|
||||
export const LanguageCombobox = ({
|
||||
label,
|
||||
value,
|
||||
onChange,
|
||||
isPending,
|
||||
width,
|
||||
withinPortal = false,
|
||||
}: LanguageComboboxProps) => {
|
||||
const combobox = useCombobox({
|
||||
onDropdownClose: () => combobox.resetSelectedOption(),
|
||||
});
|
||||
|
||||
const handleOnOptionSubmit = React.useCallback(
|
||||
(value: string) => {
|
||||
if (!value) {
|
||||
return;
|
||||
}
|
||||
onChange(value as SupportedLanguage);
|
||||
combobox.closeDropdown();
|
||||
},
|
||||
[onChange, combobox],
|
||||
);
|
||||
|
||||
const handleOnClick = React.useCallback(() => {
|
||||
combobox.toggleDropdown();
|
||||
}, [combobox]);
|
||||
|
||||
return (
|
||||
<Combobox store={combobox} withinPortal={withinPortal} onOptionSubmit={handleOnOptionSubmit}>
|
||||
<Combobox.Target>
|
||||
<InputBase
|
||||
component="button"
|
||||
type="button"
|
||||
pointer
|
||||
label={label}
|
||||
leftSection={isPending ? <Loader size={16} /> : null}
|
||||
rightSection={<Combobox.Chevron />}
|
||||
rightSectionPointerEvents="none"
|
||||
onClick={handleOnClick}
|
||||
variant="filled"
|
||||
w={width}
|
||||
>
|
||||
<OptionItem currentLocale={value} localeKey={value} />
|
||||
</InputBase>
|
||||
</Combobox.Target>
|
||||
<Combobox.Dropdown>
|
||||
<ScrollArea h={300}>
|
||||
<Combobox.Options>
|
||||
{supportedLanguages.map((languageKey) => (
|
||||
<Combobox.Option value={languageKey} key={languageKey}>
|
||||
<OptionItem currentLocale={value} localeKey={languageKey} showCheck />
|
||||
</Combobox.Option>
|
||||
))}
|
||||
</Combobox.Options>
|
||||
</ScrollArea>
|
||||
</Combobox.Dropdown>
|
||||
</Combobox>
|
||||
);
|
||||
};
|
||||
|
||||
const OptionItem = ({
|
||||
currentLocale,
|
||||
localeKey,
|
||||
showCheck,
|
||||
}: {
|
||||
currentLocale: SupportedLanguage;
|
||||
localeKey: SupportedLanguage;
|
||||
showCheck?: boolean;
|
||||
}) => {
|
||||
return (
|
||||
<Group wrap="nowrap" justify="space-between">
|
||||
<Group wrap="nowrap">
|
||||
<LanguageIcon icon={localeConfigurations[localeKey].icon} />
|
||||
<Group wrap="nowrap" gap="xs">
|
||||
<Text>{localeConfigurations[localeKey].name}</Text>
|
||||
<Text size="xs" c="dimmed" inherit>
|
||||
({localeConfigurations[localeKey].translatedName})
|
||||
</Text>
|
||||
</Group>
|
||||
</Group>
|
||||
{showCheck && localeKey === currentLocale && <IconCheck color="currentColor" size={16} />}
|
||||
</Group>
|
||||
);
|
||||
};
|
||||
export { LanguageCombobox } from "@homarr/ui";
|
||||
@@ -141,11 +141,9 @@ describe("Onboarding", () => {
|
||||
const boardPreview = page.locator('figure[aria-label="Live preview of the first board layout"]');
|
||||
expect(await boardPreview.getAttribute("data-layout-role")).toBe("base");
|
||||
expect(await boardPreview.getAttribute("data-layout-columns")).toBe("10");
|
||||
await page.getByText("Mobile", { exact: true }).click();
|
||||
expect(await boardPreview.getAttribute("data-layout-role")).toBe("mobile");
|
||||
expect(await boardPreview.getAttribute("data-layout-columns")).toBe("3");
|
||||
await page.getByText("Wide", { exact: true }).click();
|
||||
await page.getByText("Base", { exact: true }).click();
|
||||
const columnSlider = page.getByRole("slider", { name: "Board columns" });
|
||||
await columnSlider.press("ArrowRight");
|
||||
await columnSlider.press("ArrowRight");
|
||||
expect(await boardPreview.getAttribute("data-layout-columns")).toBe("12");
|
||||
|
||||
await page.getByRole("button", { name: /^Connect/ }).click();
|
||||
|
||||
@@ -534,8 +534,8 @@ export const assistantRouter = createTRPCRouter({
|
||||
connectionConfigured: Boolean(configuration),
|
||||
enabled: configuration?.enabled ?? false,
|
||||
webSearchEnabled: configuration?.webSearchEnabled ?? false,
|
||||
provider: configuration?.provider ?? "openrouter",
|
||||
baseUrl: configuration?.baseUrl ?? "https://openrouter.ai/api/v1",
|
||||
provider: configuration?.provider ?? "homarr",
|
||||
baseUrl: configuration?.baseUrl ?? getHomarrProviderBaseUrl(),
|
||||
modelDiscoveryPath: configuration?.modelDiscoveryPath ?? "/models",
|
||||
apiKeyConfigured: Boolean(configuration?.encryptedApiKey),
|
||||
customHeadersConfigured: Boolean(configuration?.encryptedHeaders),
|
||||
|
||||
@@ -585,7 +585,7 @@ export const onboardRouter = createTRPCRouter({
|
||||
);
|
||||
let leftGutterColumnCount = requestedGutters.left;
|
||||
let rightGutterColumnCount = requestedGutters.right;
|
||||
const desiredColumns = getLayoutPresetColumnCount(input.board.layoutPreset);
|
||||
const desiredColumns = input.board.columnCount ?? getLayoutPresetColumnCount(input.board.layoutPreset);
|
||||
if (requiredColumns + leftGutterColumnCount + rightGutterColumnCount > 24) rightGutterColumnCount = 0;
|
||||
if (requiredColumns + leftGutterColumnCount + rightGutterColumnCount > 24) leftGutterColumnCount = 0;
|
||||
const baseColumnCount = Math.min(
|
||||
|
||||
@@ -59,6 +59,18 @@ const createConfiguredAssistantAsync = async () => {
|
||||
return db;
|
||||
};
|
||||
|
||||
describe("assistantRouter.getAdminConfiguration", () => {
|
||||
test("defaults an unconfigured Assistant to the Homarr provider", async () => {
|
||||
const caller = assistantRouter.createCaller({ db: createDb(), deviceType: undefined, session: adminSession });
|
||||
|
||||
await expect(caller.getAdminConfiguration()).resolves.toMatchObject({
|
||||
connectionConfigured: false,
|
||||
provider: "homarr",
|
||||
baseUrl: "https://homarr.dev/api/ai/v1",
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("assistantRouter.updateConnection", () => {
|
||||
test("clears the persisted model when the discovery path changes without clearing credentials", async () => {
|
||||
const db = await createConfiguredAssistantAsync();
|
||||
|
||||
@@ -307,6 +307,7 @@ describe("onboard.completeSetup", () => {
|
||||
...completionInput("missing").board,
|
||||
id: undefined,
|
||||
name: "Recovered-board",
|
||||
columnCount: 14,
|
||||
leftSidebar: true,
|
||||
rightSidebar: true,
|
||||
},
|
||||
@@ -328,7 +329,7 @@ describe("onboard.completeSetup", () => {
|
||||
expect.objectContaining({ role: "mobile", columnCount: 3, breakpoint: 0 }),
|
||||
expect.objectContaining({
|
||||
role: "base",
|
||||
columnCount: 10,
|
||||
columnCount: 14,
|
||||
breakpoint: 768,
|
||||
leftGutterColumnCount: 1,
|
||||
rightGutterColumnCount: 1,
|
||||
|
||||
@@ -15,7 +15,7 @@ export const assistantProviderIds = [
|
||||
] as const;
|
||||
|
||||
export type AssistantProvider = (typeof assistantProviderIds)[number];
|
||||
export type AssistantProviderCategory = "hosted" | "local" | "custom";
|
||||
export type AssistantProviderCategory = "free" | "hosted" | "local" | "custom";
|
||||
export const assistantHomarrProviderTokenHeader = "X-Homarr-Provider-Token";
|
||||
|
||||
export const assistantReasoningModes = ["auto", "none", "minimal", "low", "medium", "high"] as const;
|
||||
@@ -50,7 +50,7 @@ export const assistantProviderPresets = {
|
||||
baseUrl: "https://homarr.dev/api/ai/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: false,
|
||||
category: "hosted",
|
||||
category: "free",
|
||||
discoveryAuthentication: "bearer",
|
||||
iconUrl: "https://homarr.dev/img/logo.png",
|
||||
},
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
"@mantine/core": "catalog:",
|
||||
"@mantine/hooks": "catalog:",
|
||||
"@tabler/icons-react": "catalog:",
|
||||
"motion": "catalog:",
|
||||
"react": "catalog:",
|
||||
"zod": "catalog:"
|
||||
},
|
||||
|
||||
@@ -126,6 +126,9 @@ const CredentialsSetup = () => {
|
||||
passwordInputProps={{ ...form.getInputProps("password"), autoComplete: "new-password" }}
|
||||
confirmPasswordInputProps={{ ...form.getInputProps("confirmPassword"), autoComplete: "new-password" }}
|
||||
/>
|
||||
<Text size="sm" c="dimmed" my="xs">
|
||||
{t("passwordHint")}
|
||||
</Text>
|
||||
{submitError ? (
|
||||
<Alert color="red" title={t("errorTitle")}>
|
||||
{submitError}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import { isHttpUrl, normalizeServiceUrl, resolveDiscoveredAppUrl, takeNewSourceIds } from "./discovery-selection";
|
||||
import {
|
||||
isHttpUrl,
|
||||
normalizeServiceUrl,
|
||||
resolveDiscoveredAppUrl,
|
||||
resolveIntegrationDraftUrl,
|
||||
takeNewSourceIds,
|
||||
} from "./discovery-selection";
|
||||
|
||||
describe("takeNewSourceIds", () => {
|
||||
it("keeps same-kind service instances independent and does not reselect them after refresh", () => {
|
||||
@@ -22,6 +28,25 @@ describe("takeNewSourceIds", () => {
|
||||
expect(resolveDiscoveredAppUrl(undefined, null, null)).toBe("");
|
||||
});
|
||||
|
||||
it("regenerates integration URLs from the usual server address without replacing manual edits", () => {
|
||||
expect(
|
||||
resolveIntegrationDraftUrl({
|
||||
currentUrl: "http://docker-host:8989",
|
||||
overridden: false,
|
||||
serverUrl: "http://home.lan:8989",
|
||||
fallbackUrl: "http://docker-host:8989",
|
||||
}),
|
||||
).toBe("http://home.lan:8989");
|
||||
expect(
|
||||
resolveIntegrationDraftUrl({
|
||||
currentUrl: "https://sonarr.custom.example",
|
||||
overridden: true,
|
||||
serverUrl: "http://home.lan:8989",
|
||||
fallbackUrl: "http://docker-host:8989",
|
||||
}),
|
||||
).toBe("https://sonarr.custom.example");
|
||||
});
|
||||
|
||||
it("normalizes HTTP, HTTPS, and bare self-hosted service addresses", () => {
|
||||
expect(isHttpUrl("http://home.lan:8989")).toBe(true);
|
||||
expect(isHttpUrl("https://home.example/sonarr")).toBe(true);
|
||||
|
||||
@@ -11,6 +11,18 @@ export const resolveDiscoveredAppUrl = (
|
||||
generatedUrl: string | null,
|
||||
) => override ?? suggestedUrl ?? generatedUrl ?? "";
|
||||
|
||||
export const resolveIntegrationDraftUrl = ({
|
||||
currentUrl,
|
||||
overridden,
|
||||
serverUrl,
|
||||
fallbackUrl,
|
||||
}: {
|
||||
currentUrl: string;
|
||||
overridden: boolean;
|
||||
serverUrl: string | null;
|
||||
fallbackUrl: string | null;
|
||||
}) => (overridden ? currentUrl : serverUrl || fallbackUrl || "");
|
||||
|
||||
export const normalizeServiceUrl = (value: string) => {
|
||||
try {
|
||||
const trimmed = value.trim();
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
"use client";
|
||||
|
||||
import { Alert, Button, Group, Paper, SimpleGrid, Stack, Text, ThemeIcon, Title } from "@mantine/core";
|
||||
import { IconArrowRight, IconBook2, IconLayoutDashboard, IconSparkles, IconTool } from "@tabler/icons-react";
|
||||
import { motion, useReducedMotion } from "motion/react";
|
||||
import { Button, Group, Paper, SimpleGrid, Stack, Text, ThemeIcon, Title } from "@mantine/core";
|
||||
import { IconArrowRight, IconBook2, IconSparkles, IconTool } from "@tabler/icons-react";
|
||||
|
||||
import { createDocumentationLink } from "@homarr/definitions";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
@@ -13,7 +12,6 @@ import classes from "./onboarding-studio.module.css";
|
||||
|
||||
export const Finish = ({ environment }: OnboardingStudioProps) => {
|
||||
const t = useScopedI18n("init.studio.finish");
|
||||
const reduceMotion = useReducedMotion();
|
||||
const boardHref = `/boards/${encodeURIComponent(environment.initialBoard?.name ?? "dashboard")}`;
|
||||
const destination = environment.canConfigurePrivileged ? boardHref : "/auth/login?callbackUrl=%2Finit";
|
||||
|
||||
@@ -21,22 +19,14 @@ export const Finish = ({ environment }: OnboardingStudioProps) => {
|
||||
<main className={classes.page}>
|
||||
<div className={classes.shell}>
|
||||
<Stack mih="calc(100dvh - 6rem)" justify="center" align="center">
|
||||
<motion.div
|
||||
initial={reduceMotion ? false : { opacity: 0, y: 22, scale: 0.97 }}
|
||||
animate={{ opacity: 1, y: 0, scale: 1 }}
|
||||
transition={{ duration: 0.4 }}
|
||||
style={{ width: "100%", maxWidth: "52rem" }}
|
||||
>
|
||||
<div style={{ width: "100%", maxWidth: "52rem" }}>
|
||||
<Paper className={classes.studio} radius="lg" p={{ base: "lg", sm: "xl" }}>
|
||||
<Stack gap="xl" align="center">
|
||||
<motion.div
|
||||
animate={reduceMotion ? undefined : { rotate: [0, 7, -7, 0], scale: [1, 1.08, 1] }}
|
||||
transition={{ duration: 2.8, repeat: Infinity, repeatDelay: 1.4 }}
|
||||
>
|
||||
<div>
|
||||
<ThemeIcon size={78} radius="xl" variant="light" color="green">
|
||||
<IconSparkles size={36} />
|
||||
</ThemeIcon>
|
||||
</motion.div>
|
||||
</div>
|
||||
<Stack gap="xs" align="center">
|
||||
<Title ta="center">{t("title")}</Title>
|
||||
<Text c="dimmed" ta="center" maw="42rem">
|
||||
@@ -46,9 +36,6 @@ export const Finish = ({ environment }: OnboardingStudioProps) => {
|
||||
<Button component={Link} href={destination} size="lg" rightSection={<IconArrowRight size={18} />}>
|
||||
{t("openBoard")}
|
||||
</Button>
|
||||
<Alert variant="light" w="100%" icon={<IconLayoutDashboard size={18} />}>
|
||||
{t("tutorial")}
|
||||
</Alert>
|
||||
<SimpleGrid cols={{ base: 1, sm: 3 }} w="100%">
|
||||
<NextCard
|
||||
icon={IconTool}
|
||||
@@ -72,7 +59,7 @@ export const Finish = ({ environment }: OnboardingStudioProps) => {
|
||||
</SimpleGrid>
|
||||
</Stack>
|
||||
</Paper>
|
||||
</motion.div>
|
||||
</div>
|
||||
</Stack>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
.page {
|
||||
--studio-surface: color-mix(in srgb, var(--mantine-color-body) 92%, transparent);
|
||||
--studio-glow-color: var(--mantine-primary-color-filled);
|
||||
--studio-secondary-glow-color: var(--mantine-color-orange-6);
|
||||
min-height: 100dvh;
|
||||
overflow-x: clip;
|
||||
position: relative;
|
||||
background:
|
||||
radial-gradient(
|
||||
circle at 10% 10%,
|
||||
color-mix(in srgb, var(--mantine-primary-color-filled) 14%, transparent),
|
||||
color-mix(in srgb, var(--studio-glow-color) 14%, transparent),
|
||||
transparent 34rem
|
||||
),
|
||||
radial-gradient(
|
||||
circle at 90% 5%,
|
||||
color-mix(in srgb, var(--mantine-color-orange-6) 10%, transparent),
|
||||
color-mix(in srgb, var(--studio-secondary-glow-color) 10%, transparent),
|
||||
transparent 30rem
|
||||
),
|
||||
var(--mantine-color-body);
|
||||
@@ -20,19 +22,22 @@
|
||||
.page::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
inset: -2rem;
|
||||
pointer-events: none;
|
||||
opacity: 0.22;
|
||||
background-image: radial-gradient(circle, var(--mantine-color-dimmed) 0.7px, transparent 0.7px);
|
||||
background-size: 24px 24px;
|
||||
mask-image: linear-gradient(to bottom, black, transparent 75%);
|
||||
opacity: 0.28;
|
||||
background-image:
|
||||
linear-gradient(color-mix(in srgb, var(--mantine-color-dimmed) 28%, transparent) 1px, transparent 1px),
|
||||
linear-gradient(90deg, color-mix(in srgb, var(--mantine-color-dimmed) 28%, transparent) 1px, transparent 1px);
|
||||
background-size: 32px 32px;
|
||||
filter: blur(0.35px);
|
||||
mask-image: radial-gradient(ellipse 66% 86% at center, transparent 22%, black 88%);
|
||||
}
|
||||
|
||||
.shell {
|
||||
position: relative;
|
||||
width: min(100% - 2rem, 76rem);
|
||||
margin-inline: auto;
|
||||
padding-block: clamp(1rem, 3vw, 2.5rem) 5rem;
|
||||
padding-block: clamp(1rem, 3vw, 2.5rem) calc(6rem + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
.topbar {
|
||||
@@ -42,31 +47,33 @@
|
||||
|
||||
.wordmark {
|
||||
display: block;
|
||||
width: clamp(9.5rem, 22vw, 14rem);
|
||||
height: auto;
|
||||
padding: 0.4rem 0.55rem;
|
||||
border-radius: var(--mantine-radius-md);
|
||||
background: rgba(12, 12, 14, 0.86);
|
||||
filter: drop-shadow(0 0.8rem 1.6rem color-mix(in srgb, black 22%, transparent));
|
||||
width: auto;
|
||||
height: 3.5rem;
|
||||
}
|
||||
|
||||
.onboardingWordmark {
|
||||
height: clamp(5rem, 12vw, 7rem);
|
||||
max-width: min(70vw, 28rem);
|
||||
}
|
||||
|
||||
:global([data-mantine-color-scheme="light"]) .wordmark {
|
||||
filter: brightness(0);
|
||||
}
|
||||
|
||||
.hero {
|
||||
min-height: calc(100dvh - 8rem);
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
|
||||
align-items: center;
|
||||
gap: clamp(2rem, 6vw, 6rem);
|
||||
margin-inline: auto;
|
||||
max-width: 42rem;
|
||||
padding-block: 5rem 3rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.heroTitle {
|
||||
font-size: clamp(2.5rem, 7vw, 5.8rem);
|
||||
line-height: 0.94;
|
||||
letter-spacing: -0.04em;
|
||||
font-size: 3.5rem;
|
||||
line-height: 1.05;
|
||||
letter-spacing: -0.03em;
|
||||
text-wrap: balance;
|
||||
max-width: 11ch;
|
||||
}
|
||||
|
||||
.heroPanel,
|
||||
.studio {
|
||||
background: var(--studio-surface);
|
||||
backdrop-filter: blur(18px);
|
||||
@@ -74,54 +81,13 @@
|
||||
box-shadow: var(--mantine-shadow-sm);
|
||||
}
|
||||
|
||||
.heroPanel {
|
||||
position: relative;
|
||||
min-height: 27rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.orbit {
|
||||
position: absolute;
|
||||
inset: 50% auto auto 50%;
|
||||
width: 18rem;
|
||||
height: 18rem;
|
||||
margin: -9rem;
|
||||
border-radius: 50%;
|
||||
border: 1px solid color-mix(in srgb, var(--mantine-primary-color-filled) 35%, transparent);
|
||||
}
|
||||
|
||||
.orbitItem {
|
||||
position: absolute;
|
||||
width: 3.25rem;
|
||||
height: 3.25rem;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
border-radius: var(--mantine-radius-lg);
|
||||
background: var(--mantine-color-body);
|
||||
border: 1px solid var(--mantine-color-default-border);
|
||||
box-shadow: var(--mantine-shadow-md);
|
||||
}
|
||||
|
||||
.orbitItem:nth-child(1) {
|
||||
inset: -1.6rem auto auto calc(50% - 1.6rem);
|
||||
}
|
||||
.orbitItem:nth-child(2) {
|
||||
inset: calc(50% - 1.6rem) -1.6rem auto auto;
|
||||
}
|
||||
.orbitItem:nth-child(3) {
|
||||
inset: auto auto -1.6rem calc(50% - 1.6rem);
|
||||
}
|
||||
.orbitItem:nth-child(4) {
|
||||
inset: calc(50% - 1.6rem) auto auto -1.6rem;
|
||||
}
|
||||
|
||||
.studio {
|
||||
overflow: clip;
|
||||
}
|
||||
|
||||
.studioGrid {
|
||||
display: grid;
|
||||
grid-template-columns: 17rem minmax(0, 1fr);
|
||||
grid-template-columns: 15rem minmax(0, 1fr);
|
||||
min-height: 40rem;
|
||||
}
|
||||
|
||||
@@ -131,30 +97,38 @@
|
||||
background: color-mix(in srgb, var(--mantine-color-default) 40%, transparent);
|
||||
}
|
||||
|
||||
.railButton {
|
||||
.timeline {
|
||||
width: 100%;
|
||||
min-height: 3.25rem;
|
||||
padding: 0.65rem 0.75rem;
|
||||
}
|
||||
|
||||
.timelineBullet {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.timelineButton {
|
||||
width: calc(100% + 2.75rem);
|
||||
min-height: 2.75rem;
|
||||
margin-inline-start: -2.75rem;
|
||||
padding: 0.15rem 0.25rem;
|
||||
padding-inline-start: 2.75rem;
|
||||
border-radius: var(--mantine-radius-md);
|
||||
color: var(--mantine-color-dimmed);
|
||||
transition:
|
||||
background-color 150ms ease,
|
||||
color 150ms ease,
|
||||
transform 150ms ease;
|
||||
}
|
||||
|
||||
.railButton[data-active="true"] {
|
||||
.timelineButton[data-active="true"] {
|
||||
color: var(--mantine-color-text);
|
||||
background: var(--mantine-color-default-hover);
|
||||
}
|
||||
|
||||
.railButton:focus-visible {
|
||||
.timelineButton:focus-visible {
|
||||
outline: 2px solid var(--mantine-primary-color-filled);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
min-height: 100%;
|
||||
padding: clamp(1rem, 3vw, 2rem);
|
||||
}
|
||||
|
||||
@@ -163,12 +137,6 @@
|
||||
border: 1px solid color-mix(in srgb, var(--mantine-color-default-border) 76%, transparent);
|
||||
}
|
||||
|
||||
.discoveryChoice {
|
||||
transition:
|
||||
border-color 150ms ease,
|
||||
background-color 150ms ease;
|
||||
}
|
||||
|
||||
.discoveryChoice[data-checked] {
|
||||
border-color: var(--mantine-primary-color-filled);
|
||||
background: color-mix(in srgb, var(--mantine-primary-color-light) 62%, var(--mantine-color-body));
|
||||
@@ -179,6 +147,10 @@
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.integrationStatus {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.choiceGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
@@ -192,10 +164,6 @@
|
||||
border: 1px solid var(--mantine-color-default-border);
|
||||
background: var(--mantine-color-body);
|
||||
padding: var(--mantine-spacing-md);
|
||||
transition:
|
||||
border-color 150ms ease,
|
||||
background-color 150ms ease,
|
||||
transform 150ms ease;
|
||||
}
|
||||
|
||||
.choice[data-selected="true"] {
|
||||
@@ -203,10 +171,6 @@
|
||||
background: color-mix(in srgb, var(--mantine-primary-color-light) 70%, var(--mantine-color-body));
|
||||
}
|
||||
|
||||
.choice:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.choice:focus-visible {
|
||||
outline: 3px solid var(--mantine-primary-color-light-color);
|
||||
outline-offset: 2px;
|
||||
@@ -220,21 +184,15 @@
|
||||
padding: 0.6rem;
|
||||
overflow: hidden;
|
||||
border-radius: var(--mantine-radius-lg);
|
||||
background: color-mix(in srgb, var(--mantine-color-default) 66%, transparent);
|
||||
background: var(--mantine-color-default);
|
||||
border: 1px solid var(--mantine-color-default-border);
|
||||
}
|
||||
|
||||
.preview[data-layout-role="mobile"] {
|
||||
width: min(100%, 28rem);
|
||||
margin-inline: auto;
|
||||
aspect-ratio: 4 / 3;
|
||||
}
|
||||
|
||||
.previewLane {
|
||||
min-width: 0;
|
||||
border-radius: calc(var(--mantine-radius-lg) * 0.65);
|
||||
background: color-mix(in srgb, var(--mantine-color-body) 88%, transparent);
|
||||
border: 1px solid color-mix(in srgb, var(--mantine-color-default-border) 70%, transparent);
|
||||
background: var(--mantine-color-body);
|
||||
border: 1px solid var(--mantine-color-default-border);
|
||||
padding: 0.35rem;
|
||||
}
|
||||
|
||||
@@ -248,62 +206,28 @@
|
||||
|
||||
.previewTile {
|
||||
border-radius: calc(var(--mantine-radius-lg) * 0.45);
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
var(--mantine-primary-color-light),
|
||||
color-mix(in srgb, var(--mantine-color-orange-light) 60%, transparent)
|
||||
);
|
||||
border: 1px solid color-mix(in srgb, var(--mantine-primary-color-filled) 22%, transparent);
|
||||
}
|
||||
|
||||
.assistantStage {
|
||||
position: relative;
|
||||
min-height: 13rem;
|
||||
overflow: hidden;
|
||||
border-radius: var(--mantine-radius-lg);
|
||||
background: color-mix(in srgb, var(--mantine-primary-color-light) 44%, var(--mantine-color-body));
|
||||
}
|
||||
|
||||
.assistantGlow {
|
||||
position: absolute;
|
||||
inset: 50% auto auto 50%;
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
margin: -6rem;
|
||||
border-radius: 50%;
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
color-mix(in srgb, var(--mantine-primary-color-filled) 35%, transparent),
|
||||
transparent 68%
|
||||
);
|
||||
background: var(--mantine-color-default);
|
||||
border: 1px solid var(--mantine-color-default-border);
|
||||
}
|
||||
|
||||
.stickyActions {
|
||||
position: sticky;
|
||||
z-index: 2;
|
||||
bottom: 0;
|
||||
margin: 1.5rem -2rem -2rem;
|
||||
margin: auto -2rem -2rem;
|
||||
padding: 1rem 2rem;
|
||||
background: color-mix(in srgb, var(--mantine-color-body) 92%, transparent);
|
||||
border-top: 1px solid var(--mantine-color-default-border);
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
|
||||
.applyError {
|
||||
margin-top: var(--mantine-spacing-lg);
|
||||
}
|
||||
|
||||
.nextCard {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
transition:
|
||||
background-color 150ms ease,
|
||||
transform 150ms ease;
|
||||
}
|
||||
|
||||
.nextCard:hover {
|
||||
background: var(--mantine-color-default-hover);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.nextCard:focus-visible {
|
||||
@@ -312,12 +236,54 @@
|
||||
}
|
||||
|
||||
.content :global(.mantine-Button-root),
|
||||
.content :global(.mantine-SegmentedControl-label),
|
||||
.page :global(.mantine-Input-input),
|
||||
.page :global(.mantine-Tabs-tab) {
|
||||
min-height: 2.75rem;
|
||||
}
|
||||
|
||||
.floatingControlScroller {
|
||||
max-width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.floatingControlRoot {
|
||||
position: relative;
|
||||
display: flex;
|
||||
width: max-content;
|
||||
min-width: 100%;
|
||||
padding: 0.2rem;
|
||||
border-radius: var(--mantine-radius-md);
|
||||
background: var(--mantine-color-default);
|
||||
}
|
||||
|
||||
.floatingControlIndicator {
|
||||
border: 1px solid var(--mantine-color-default-border);
|
||||
border-radius: calc(var(--mantine-radius-md) - 0.2rem);
|
||||
background: var(--mantine-color-body);
|
||||
box-shadow: var(--mantine-shadow-xs);
|
||||
}
|
||||
|
||||
.floatingControl {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
flex: 1 0 auto;
|
||||
min-height: 2.25rem;
|
||||
padding-inline: var(--mantine-spacing-sm);
|
||||
border-radius: calc(var(--mantine-radius-md) - 0.2rem);
|
||||
color: var(--mantine-color-dimmed);
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.floatingControl[data-active="true"] {
|
||||
color: var(--mantine-color-text);
|
||||
}
|
||||
|
||||
.floatingControl:focus-visible {
|
||||
outline: 2px solid var(--mantine-primary-color-filled);
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
.page :global(.mantine-Switch-body) {
|
||||
min-height: 2.75rem;
|
||||
align-items: center;
|
||||
@@ -325,32 +291,15 @@
|
||||
|
||||
@media (max-width: 62em) {
|
||||
.hero {
|
||||
grid-template-columns: 1fr;
|
||||
padding-block: 3rem;
|
||||
}
|
||||
|
||||
.heroPanel {
|
||||
min-height: 22rem;
|
||||
}
|
||||
|
||||
.studioGrid {
|
||||
grid-template-columns: 1fr;
|
||||
grid-template-columns: 12rem minmax(0, 1fr);
|
||||
}
|
||||
|
||||
.rail {
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid var(--mantine-color-default-border);
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.railList {
|
||||
min-width: max-content;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.railButton {
|
||||
width: auto;
|
||||
min-width: 10rem;
|
||||
padding-inline: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -360,7 +309,7 @@
|
||||
}
|
||||
|
||||
.heroTitle {
|
||||
font-size: clamp(2.35rem, 14vw, 4.5rem);
|
||||
font-size: 2.75rem;
|
||||
}
|
||||
|
||||
.choiceGrid {
|
||||
@@ -371,8 +320,25 @@
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.studioGrid {
|
||||
grid-template-columns: 3.75rem minmax(0, 1fr);
|
||||
}
|
||||
|
||||
.rail {
|
||||
padding: 1rem 0.5rem;
|
||||
}
|
||||
|
||||
.timelineLabel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.timelineButton {
|
||||
min-height: 2rem;
|
||||
padding-inline-start: 2.75rem;
|
||||
}
|
||||
|
||||
.stickyActions {
|
||||
margin: 1rem -1rem -1rem;
|
||||
margin: auto -1rem -1rem;
|
||||
padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
|
||||
}
|
||||
|
||||
@@ -384,10 +350,6 @@
|
||||
flex: 1 1 12rem;
|
||||
}
|
||||
|
||||
.content :global(.mantine-SegmentedControl-root) {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.content :global(.mantine-Tabs-list) {
|
||||
flex-wrap: nowrap;
|
||||
overflow-x: auto;
|
||||
@@ -406,31 +368,13 @@
|
||||
}
|
||||
|
||||
.wordmark {
|
||||
width: 9.5rem;
|
||||
height: 3rem;
|
||||
}
|
||||
|
||||
.hero {
|
||||
min-height: auto;
|
||||
gap: 2rem;
|
||||
padding-block: 2rem 3rem;
|
||||
}
|
||||
|
||||
.heroPanel {
|
||||
min-height: 19rem;
|
||||
}
|
||||
|
||||
.orbit {
|
||||
scale: 0.78;
|
||||
}
|
||||
|
||||
.rail {
|
||||
padding: 0.75rem;
|
||||
}
|
||||
|
||||
.railButton {
|
||||
min-width: 8.5rem;
|
||||
}
|
||||
|
||||
.stickyActions {
|
||||
gap: var(--mantine-spacing-xs);
|
||||
}
|
||||
@@ -459,12 +403,6 @@
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.fastAction {
|
||||
flex: 1.15 1 0;
|
||||
min-width: 0;
|
||||
padding-inline: 0.25rem;
|
||||
}
|
||||
|
||||
.primaryActions > :global(.mantine-Button-root):last-child {
|
||||
flex: 1 1 0;
|
||||
min-width: 0;
|
||||
@@ -475,36 +413,20 @@
|
||||
font-size: var(--mantine-font-size-sm);
|
||||
}
|
||||
|
||||
.content :global(.mantine-SegmentedControl-label) {
|
||||
min-width: 0;
|
||||
height: auto;
|
||||
padding: 0.45rem 0.3rem;
|
||||
line-height: 1.15;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.sectionCard :global(.mantine-Group-root) {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.page {
|
||||
scroll-behavior: auto;
|
||||
.page * {
|
||||
animation: none !important;
|
||||
}
|
||||
|
||||
.choice,
|
||||
.railButton,
|
||||
.nextCard,
|
||||
.discoveryChoice {
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.choice:hover {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.nextCard:hover {
|
||||
transform: none;
|
||||
.page *:not(.integrationAccordion *),
|
||||
.page *:not(.integrationAccordion *)::before,
|
||||
.page *:not(.integrationAccordion *)::after {
|
||||
transition: none !important;
|
||||
scroll-behavior: auto !important;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import { Alert, Button, Center, Loader, Paper, Stack, Text, Title } from "@mantine/core";
|
||||
import { Alert, Button, Center, Paper, Stack, Text, Title } from "@mantine/core";
|
||||
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
import { Link } from "@homarr/ui";
|
||||
@@ -61,7 +61,6 @@ export const OnboardingStudio = (props: OnboardingStudioProps) => {
|
||||
<Center mih="100dvh" p="md">
|
||||
<Paper withBorder radius="lg" p="xl" maw="32rem" w="100%">
|
||||
<Stack align="center">
|
||||
{claimState === "checking" ? <Loader aria-label={t("checking")} /> : null}
|
||||
<Title order={1} size="h2" ta="center">
|
||||
{claimState === "checking"
|
||||
? t("checkingTitle")
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
import classes from "./onboarding-studio.module.css";
|
||||
|
||||
export const OnboardingWordmark = () => (
|
||||
<img
|
||||
src="/logo/homarr-wordmark-light.svg"
|
||||
alt="Homarr"
|
||||
className={`${classes.wordmark} ${classes.onboardingWordmark}`}
|
||||
/>
|
||||
);
|
||||
File diff suppressed because it is too large.
Load diff
@@ -20,4 +20,5 @@ export interface OnboardingEnvironment {
|
||||
export interface OnboardingStudioProps {
|
||||
environment: OnboardingEnvironment;
|
||||
sqliteRestore?: ReactNode;
|
||||
assistantConfiguration?: ReactNode;
|
||||
}
|
||||
@@ -2,21 +2,20 @@
|
||||
|
||||
import { useState } from "react";
|
||||
import { Alert, Badge, Button, Group, Paper, Stack, Text, ThemeIcon, Title } from "@mantine/core";
|
||||
import { IconArrowRight, IconDatabaseImport, IconLayoutDashboard, IconSparkles } from "@tabler/icons-react";
|
||||
import { motion, useReducedMotion } from "motion/react";
|
||||
import { IconArrowRight, IconDatabaseImport } from "@tabler/icons-react";
|
||||
|
||||
import { clientApi } from "@homarr/api/client";
|
||||
import { revalidatePathActionAsync } from "@homarr/common/client";
|
||||
import { showErrorNotification } from "@homarr/notifications";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
|
||||
import { OnboardingWordmark } from "./onboarding-wordmark";
|
||||
import type { OnboardingStudioProps } from "./types";
|
||||
import classes from "./onboarding-studio.module.css";
|
||||
|
||||
export const Welcome = ({ environment, sqliteRestore }: OnboardingStudioProps) => {
|
||||
const t = useScopedI18n("init.studio.welcome");
|
||||
const claimT = useScopedI18n("init.studio.claim");
|
||||
const reduceMotion = useReducedMotion();
|
||||
const [showRestore, setShowRestore] = useState(false);
|
||||
const [claimPending, setClaimPending] = useState(false);
|
||||
const [claimError, setClaimError] = useState<string | null>(null);
|
||||
@@ -78,29 +77,19 @@ export const Welcome = ({ environment, sqliteRestore }: OnboardingStudioProps) =
|
||||
<main className={classes.page}>
|
||||
<div className={classes.shell}>
|
||||
<Group className={classes.topbar} justify="space-between">
|
||||
<motion.img
|
||||
src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/homarr-wordmark-light.svg"
|
||||
alt="Homarr"
|
||||
className={classes.wordmark}
|
||||
initial={reduceMotion ? false : { opacity: 0, y: -10 }}
|
||||
animate={{ opacity: 1, y: 0 }}
|
||||
transition={{ duration: 0.45 }}
|
||||
/>
|
||||
<OnboardingWordmark />
|
||||
<Badge variant="light" size="lg">
|
||||
{t("badge")}
|
||||
</Badge>
|
||||
</Group>
|
||||
|
||||
<section className={classes.hero} aria-labelledby="onboarding-welcome-title">
|
||||
<Stack gap="xl" align="flex-start">
|
||||
<Stack gap="md">
|
||||
<Text c="dimmed" fw={650} size="sm">
|
||||
{t("eyebrow")}
|
||||
</Text>
|
||||
<Title id="onboarding-welcome-title" className={classes.heroTitle}>
|
||||
<Stack gap="xl" align="center">
|
||||
<Stack gap="sm" align="center">
|
||||
<Title id="onboarding-welcome-title" className={classes.heroTitle} ta="center">
|
||||
{t("title")}
|
||||
</Title>
|
||||
<Text size="lg" c="dimmed" maw="38rem">
|
||||
<Text size="lg" c="dimmed" maw="38rem" ta="center">
|
||||
{t("description")}
|
||||
</Text>
|
||||
</Stack>
|
||||
@@ -152,48 +141,6 @@ export const Welcome = ({ environment, sqliteRestore }: OnboardingStudioProps) =
|
||||
</Alert>
|
||||
) : null}
|
||||
</Stack>
|
||||
|
||||
<motion.div
|
||||
initial={reduceMotion ? false : { opacity: 0, scale: 0.96, y: 24 }}
|
||||
animate={{ opacity: 1, scale: 1, y: 0 }}
|
||||
transition={{ duration: 0.55, delay: 0.08 }}
|
||||
>
|
||||
<Paper className={classes.heroPanel} radius="lg" p="xl">
|
||||
<div className={classes.orbit} aria-hidden>
|
||||
{[IconLayoutDashboard, IconSparkles, IconDatabaseImport, IconLayoutDashboard].map((Icon, index) => (
|
||||
<motion.div
|
||||
key={index}
|
||||
className={classes.orbitItem}
|
||||
animate={reduceMotion ? undefined : { y: [0, index % 2 === 0 ? -6 : 6, 0] }}
|
||||
transition={{ duration: 3.4 + index * 0.35, repeat: Infinity, ease: "easeInOut" }}
|
||||
>
|
||||
<Icon size={22} />
|
||||
</motion.div>
|
||||
))}
|
||||
</div>
|
||||
<Stack h="100%" justify="space-between" pos="relative">
|
||||
<Badge variant="dot" color="green">
|
||||
{t("ready")}
|
||||
</Badge>
|
||||
<Stack gap={4} align="center">
|
||||
<ThemeIcon size={72} radius="xl" variant="light">
|
||||
<IconLayoutDashboard size={34} />
|
||||
</ThemeIcon>
|
||||
<Text fw={700} size="lg">
|
||||
{t("panelTitle")}
|
||||
</Text>
|
||||
<Text size="sm" c="dimmed" ta="center" maw="19rem">
|
||||
{t("panelDescription")}
|
||||
</Text>
|
||||
</Stack>
|
||||
<Group gap="xs" justify="center">
|
||||
<Badge variant="light">{t("chipDiscover")}</Badge>
|
||||
<Badge variant="light">{t("chipConnect")}</Badge>
|
||||
<Badge variant="light">{t("chipBuild")}</Badge>
|
||||
</Group>
|
||||
</Stack>
|
||||
</Paper>
|
||||
</motion.div>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
{
|
||||
"init": {
|
||||
"studio": {
|
||||
"setupBadge": "First-time setup",
|
||||
"navigationLabel": "Onboarding sections",
|
||||
"title": "Setup studio",
|
||||
"subtitle": "Configure the essentials, let Homarr infer the rest.",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"buildBoard": "Build my board",
|
||||
@@ -31,8 +28,7 @@
|
||||
"review": "Review"
|
||||
},
|
||||
"welcome": {
|
||||
"badge": "New Homarr",
|
||||
"eyebrow": "Your homelab, one useful board away",
|
||||
"badge": "Homarr v2",
|
||||
"title": "Make home feel organized.",
|
||||
"description": "Homarr can discover your services, connect the right integrations, and build a responsive first board. You only decide what cannot be inferred.",
|
||||
"start": "Get started",
|
||||
@@ -40,18 +36,13 @@
|
||||
"restoreTitle": "Restore this Homarr",
|
||||
"restoreDescription": "A full SQLite backup restores boards, people, apps, integrations, and settings. Homarr validates it before replacing anything.",
|
||||
"errorTitle": "Setup could not start",
|
||||
"errorDescription": "Your setup choices are still here. Try again, or reload the page if this continues.",
|
||||
"ready": "Ready to configure",
|
||||
"panelTitle": "From services to a useful board",
|
||||
"panelDescription": "Discovery, secure connections, layouts, widgets, Assistant, Workshop, and MCP stay connected in one flow.",
|
||||
"chipDiscover": "Discover",
|
||||
"chipConnect": "Connect",
|
||||
"chipBuild": "Build"
|
||||
"errorDescription": "Your setup choices are still here. Try again, or reload the page if this continues."
|
||||
},
|
||||
"account": {
|
||||
"title": "Create your administrator",
|
||||
"description": "This account owns the first setup and protects integration, Assistant, and MCP credentials.",
|
||||
"description": "Specify the credentials for your administrator user.",
|
||||
"username": "Administrator username",
|
||||
"passwordHint": "Only the 8-character minimum is required. The other password-strength checks are suggestions.",
|
||||
"create": "Create administrator",
|
||||
"errorTitle": "Administrator could not be created",
|
||||
"recoveryTitle": "Administrator account created",
|
||||
@@ -77,9 +68,11 @@
|
||||
"themeLight": "Light",
|
||||
"themeDark": "Dark",
|
||||
"serverTitle": "Usual server address",
|
||||
"serverOriginHelp": "Homarr uses this address to prefill detected service URLs. You can still edit every service individually.",
|
||||
"serverDescription": "This is a shortcut, not a restriction. Every detected service remains editable.",
|
||||
"serverOrigin": "Domain, IP, or reverse-proxy path",
|
||||
"serverOriginDescription": "Examples: home.lan, 192.168.1.10, or https://home.example.com/services. Choose how each service is appended below.",
|
||||
"urlModeLabel": "Service address pattern",
|
||||
"hostPort": "Same host, different ports",
|
||||
"subdomain": "One subdomain per service",
|
||||
"path": "One path per service",
|
||||
@@ -94,7 +87,6 @@
|
||||
"kubernetes": "Kubernetes",
|
||||
"assistantWorkshop": "Assistant and Workshop",
|
||||
"found": "Found {integrations} integrations and {apps} additional apps",
|
||||
"retryDocker": "Scan Docker again",
|
||||
"retryKubernetes": "Check Kubernetes again",
|
||||
"retryWorkshop": "Check Workshop again",
|
||||
"unknownVersion": "unknown version",
|
||||
@@ -105,8 +97,6 @@
|
||||
"workshopUnavailable": "Local and custom Assistant providers remain available",
|
||||
"partialTitle": "Some sources could not be scanned",
|
||||
"partialDescription": "Results from reachable hosts are kept. Check socket permissions or add services manually in the next section.",
|
||||
"platformTitle": "Docker, Synology, Kubernetes, and bare metal are all welcome",
|
||||
"platformDescription": "Homarr uses capabilities rather than guessing your platform. Detected values are suggestions you can review before anything is created.",
|
||||
"status": {
|
||||
"checking": "Checking availability…",
|
||||
"available": "Available",
|
||||
@@ -134,9 +124,13 @@
|
||||
"url": "Service URL",
|
||||
"noCredentials": "No credentials",
|
||||
"noCredentialsDescription": "This integration does not need credentials.",
|
||||
"credentialMethod": "Credential method",
|
||||
"getApiKey": "Open the API key settings for this service",
|
||||
"openGuide": "Open Homarr's setup guide for this service",
|
||||
"validationError": "Complete the URL and required credentials for {name}, or remove it from the selection."
|
||||
"needsConfiguration": "Needs configuration",
|
||||
"configured": "Configured",
|
||||
"validationError": "Complete the URL and required credentials for {name}, or remove it from the selection.",
|
||||
"incompleteConfirmation": "Some integrations need to be configured, are you sure?"
|
||||
},
|
||||
"board": {
|
||||
"title": "Shape the board before it is built",
|
||||
@@ -150,54 +144,23 @@
|
||||
"primaryColor": "Primary color",
|
||||
"secondaryColor": "Secondary color",
|
||||
"radius": "Widget corner radius",
|
||||
"layoutPreset": "Board width preset",
|
||||
"layoutFocused": "Focused",
|
||||
"layoutBalanced": "Balanced",
|
||||
"layoutWide": "Wide",
|
||||
"columns": "Board columns",
|
||||
"columnsDescription": "Columns define the horizontal grid used to size and position items. 12 is plenty for most people.",
|
||||
"columnCount": "{count, plural, one {# column} other {# columns}}",
|
||||
"leftSidebar": "Left sidebar",
|
||||
"rightSidebar": "Right sidebar",
|
||||
"previewLabel": "Live preview of the first board layout",
|
||||
"previewLayout": "Layout to preview",
|
||||
"previewMobile": "Mobile",
|
||||
"previewBase": "Base",
|
||||
"widgetPrimer": "A 30-second Homarr primer",
|
||||
"primerAppsTitle": "Apps open things",
|
||||
"primerAppsDescription": "App tiles are fast links with icons, status, and optional ping checks.",
|
||||
"primerWidgetsTitle": "Widgets explain things",
|
||||
"primerWidgetsDescription": "Integrations power focused views such as downloads, calendars, requests, and health.",
|
||||
"primerEditTitle": "Everything stays editable",
|
||||
"primerEditDescription": "Enter edit mode to move, resize, group, or add items independently on Mobile and Base layouts."
|
||||
"previewLabel": "Live preview of the first board layout"
|
||||
},
|
||||
"extend": {
|
||||
"title": "Add intelligence when it helps",
|
||||
"description": "Assistant, Workshop, and MCP work together but remain independent. Configure any now or return later.",
|
||||
"title": "Advanced features",
|
||||
"tabsLabel": "Assistant, Workshop, and MCP setup",
|
||||
"assistant": "Assistant",
|
||||
"workshop": "Workshop",
|
||||
"mcp": "MCP",
|
||||
"assistantSetup": {
|
||||
"title": "Homarr Assistant",
|
||||
"description": "Ask about this Homarr, create and edit apps or boards with approval, inspect integrations, and use the same conversations in the Assistant widget.",
|
||||
"loginTitle": "Administrator sign-in required",
|
||||
"loginDescription": "Provider keys and model access are privileged. Finish setup, sign in, and Homarr will open the Assistant configuration directly.",
|
||||
"loginAction": "Sign in to configure Assistant",
|
||||
"provider": "Provider",
|
||||
"baseUrl": "Provider URL",
|
||||
"apiKey": "API key",
|
||||
"connect": "Save connection and discover models",
|
||||
"connectHint": "Keys are encrypted and never returned by the API.",
|
||||
"model": "Default model",
|
||||
"modelPlaceholder": "Connect a provider first",
|
||||
"manualModelPlaceholder": "Enter a model ID",
|
||||
"manualModelDescription": "Model discovery is unavailable. Enter the exact model ID exposed by your provider.",
|
||||
"discovering": "Discovering models…",
|
||||
"enable": "Enable Assistant",
|
||||
"webSearch": "Allow supported web search",
|
||||
"advanced": "Advanced headers and provider settings",
|
||||
"save": "Save Assistant",
|
||||
"savedTitle": "Assistant is ready",
|
||||
"savedDescription": "The selected model is available from the header and Assistant widget.",
|
||||
"errorTitle": "Assistant could not be configured"
|
||||
"loginAction": "Sign in to configure Assistant"
|
||||
},
|
||||
"workshopSetup": {
|
||||
"title": "Homarr Workshop",
|
||||
@@ -232,18 +195,29 @@
|
||||
"review": {
|
||||
"title": "One board, built around your services",
|
||||
"description": "Homarr tests unsaved connections, imports the selected apps, applies appearance and layouts, then opens the exact board it configured.",
|
||||
"appearance": "Language and appearance",
|
||||
"services": "Selected services",
|
||||
"servicesValue": "{integrations} integrations · {apps} apps",
|
||||
"board": "First board",
|
||||
"columns": "Board columns",
|
||||
"columnsValue": "{count, plural, one {# column} other {# columns}}",
|
||||
"sidebars": "Sidebars",
|
||||
"sidebarsValue": "{count, plural, =0 {None} one {# sidebar} other {# sidebars}}",
|
||||
"layouts": "Responsive layouts",
|
||||
"layoutsValue": "Mobile + Base",
|
||||
"previewLabel": "Preview of the board being created",
|
||||
"automaticTitle": "What Homarr will infer",
|
||||
"integrations": "Integrations",
|
||||
"integrationsValue": "{count, plural, =0 {None selected} one {# integration} other {# integrations}}",
|
||||
"apps": "App tiles",
|
||||
"appsValue": "{count, plural, =0 {Starter apps only} one {# app tile} other {# app tiles}}",
|
||||
"language": "Language",
|
||||
"theme": "Theme",
|
||||
"themeAuto": "System preference",
|
||||
"themeLight": "Light",
|
||||
"themeDark": "Dark",
|
||||
"colors": "Board colors",
|
||||
"radius": "Widget radius",
|
||||
"automaticTitle": "What Homarr will create",
|
||||
"automaticDescription": "Compatible widgets, icons, app links, integration relationships, and responsive placement come from the shared Homarr catalog. You can edit every result later.",
|
||||
"dockerWarningTitle": "Some Docker labels changed during setup",
|
||||
"dockerWarningDescription": "{count, plural, one {# selected Docker result could not be applied because its service changed, targeted another board, or its widget was incompatible} other {# selected Docker results could not be applied because services changed, targeted another board, or their widgets were incompatible}}.",
|
||||
"errorTitle": "Setup paused safely",
|
||||
"errorTitle": "Board could not be built",
|
||||
"progress": {
|
||||
"applying": "Testing connections and building your board",
|
||||
"done": "Your board is ready"
|
||||
@@ -253,7 +227,6 @@
|
||||
"title": "Your first board is ready.",
|
||||
"description": "Homarr connected the pieces you selected and kept the rest editable. Open the board now; the short in-product tour can show you edit mode, widgets, layouts, and search.",
|
||||
"openBoard": "Open my board",
|
||||
"tutorial": "Tip: use edit mode to move or resize widgets. Mobile and Base layouts keep independent positions, so every screen can feel intentional.",
|
||||
"manageTitle": "Manage",
|
||||
"manageDescription": "Fine-tune apps, integrations, boards, users, and server settings.",
|
||||
"workshopTitle": "Workshop",
|
||||
@@ -6355,6 +6328,7 @@
|
||||
"provider": {
|
||||
"title": "Provider",
|
||||
"groups": {
|
||||
"free": "Free with Homarr",
|
||||
"hosted": "Hosted providers",
|
||||
"local": "Local providers",
|
||||
"custom": "Custom"
|
||||
@@ -6362,7 +6336,7 @@
|
||||
"options": {
|
||||
"homarr": {
|
||||
"label": "Homarr",
|
||||
"description": "Community-funded access to the model selected by the Homarr team. Each user signs in with the Community Workshop and receives a daily allowance."
|
||||
"description": "A limited number of Assistant uses are free each day, paid for by the Homarr team. Sign in with the Community Workshop to use your allowance."
|
||||
},
|
||||
"openrouter": {
|
||||
"label": "OpenRouter",
|
||||
@@ -6414,8 +6388,8 @@
|
||||
}
|
||||
},
|
||||
"homarrAuth": {
|
||||
"title": "No administrator API key required",
|
||||
"description": "Homarr keeps the upstream OpenRouter credential on the Community Workshop server. Each user authorizes requests with their own Workshop GitHub session, so their daily allowance stays separate."
|
||||
"title": "Free daily Assistant uses included",
|
||||
"description": "No API key is needed. The Homarr team covers a limited number of Assistant uses for you each day. Sign in with the Community Workshop to keep your allowance separate."
|
||||
}
|
||||
},
|
||||
"baseUrl": {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
"use client";
|
||||
|
||||
import { ColorInput, useMantineTheme } from "@mantine/core";
|
||||
import type { ColorInputProps } from "@mantine/core";
|
||||
|
||||
export const BoardColorInput = (props: ColorInputProps) => {
|
||||
const theme = useMantineTheme();
|
||||
|
||||
return <ColorInput {...props} format="hex" swatches={Object.values(theme.colors).map((color) => color[6])} />;
|
||||
};
|
||||
@@ -0,0 +1,86 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { Combobox, Group, InputBase, Text, useCombobox } from "@mantine/core";
|
||||
import { IconCheck, IconDeviceDesktop, IconMoon, IconSun } from "@tabler/icons-react";
|
||||
|
||||
import type { ColorScheme } from "@homarr/definitions";
|
||||
import { colorSchemes } from "@homarr/definitions";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
|
||||
const schemeIcons: Record<ColorScheme, React.ElementType> = {
|
||||
auto: IconDeviceDesktop,
|
||||
light: IconSun,
|
||||
dark: IconMoon,
|
||||
};
|
||||
|
||||
interface ColorSchemeComboboxProps {
|
||||
label?: string;
|
||||
value: ColorScheme;
|
||||
onChange: (value: ColorScheme) => void;
|
||||
width?: string;
|
||||
}
|
||||
|
||||
export const ColorSchemeCombobox = ({ label, value, onChange, width }: ColorSchemeComboboxProps) => {
|
||||
const tOptions = useScopedI18n("common.colorScheme.options");
|
||||
const combobox = useCombobox({ onDropdownClose: () => combobox.resetSelectedOption() });
|
||||
|
||||
return (
|
||||
<Combobox
|
||||
store={combobox}
|
||||
onOptionSubmit={(nextValue) => {
|
||||
onChange(nextValue as ColorScheme);
|
||||
combobox.closeDropdown();
|
||||
}}
|
||||
>
|
||||
<Combobox.Target>
|
||||
<InputBase
|
||||
component="button"
|
||||
type="button"
|
||||
pointer
|
||||
label={label}
|
||||
rightSection={<Combobox.Chevron />}
|
||||
rightSectionPointerEvents="none"
|
||||
onClick={() => combobox.toggleDropdown()}
|
||||
variant="filled"
|
||||
w={width}
|
||||
>
|
||||
<OptionItem scheme={value} currentScheme={value} tOptions={tOptions} />
|
||||
</InputBase>
|
||||
</Combobox.Target>
|
||||
<Combobox.Dropdown>
|
||||
<Combobox.Options>
|
||||
{colorSchemes.map((scheme) => (
|
||||
<Combobox.Option value={scheme} key={scheme}>
|
||||
<OptionItem scheme={scheme} currentScheme={value} tOptions={tOptions} showCheck />
|
||||
</Combobox.Option>
|
||||
))}
|
||||
</Combobox.Options>
|
||||
</Combobox.Dropdown>
|
||||
</Combobox>
|
||||
);
|
||||
};
|
||||
|
||||
const OptionItem = ({
|
||||
scheme,
|
||||
currentScheme,
|
||||
tOptions,
|
||||
showCheck,
|
||||
}: {
|
||||
scheme: ColorScheme;
|
||||
currentScheme: ColorScheme;
|
||||
tOptions: (key: ColorScheme) => string;
|
||||
showCheck?: boolean;
|
||||
}) => {
|
||||
const Icon = schemeIcons[scheme];
|
||||
|
||||
return (
|
||||
<Group wrap="nowrap" justify="space-between">
|
||||
<Group wrap="nowrap">
|
||||
<Icon size={16} stroke={1.5} />
|
||||
<Text>{tOptions(scheme)}</Text>
|
||||
</Group>
|
||||
{showCheck && scheme === currentScheme && <IconCheck color="currentColor" size={16} />}
|
||||
</Group>
|
||||
);
|
||||
};
|
||||
@@ -15,6 +15,9 @@ export { BetaBadge } from "./beta-badge";
|
||||
export { MaskedImage } from "./masked-image";
|
||||
export { MaskedOrNormalImage } from "./masked-or-normal-image";
|
||||
export { LanguageIcon } from "./language-icon";
|
||||
export { LanguageCombobox } from "./language-combobox";
|
||||
export { ColorSchemeCombobox } from "./color-scheme-combobox";
|
||||
export { BoardColorInput } from "./board-color-input";
|
||||
export { Link } from "./link";
|
||||
export {
|
||||
SelectGridLayout,
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { Combobox, Group, InputBase, Loader, ScrollArea, Text, useCombobox } from "@mantine/core";
|
||||
import { IconCheck } from "@tabler/icons-react";
|
||||
|
||||
import type { SupportedLanguage } from "@homarr/translation";
|
||||
import { localeConfigurations, supportedLanguages } from "@homarr/translation";
|
||||
|
||||
import { LanguageIcon } from "./language-icon";
|
||||
|
||||
interface LanguageComboboxProps {
|
||||
label?: string;
|
||||
value: SupportedLanguage;
|
||||
onChange: (value: SupportedLanguage) => void;
|
||||
isPending?: boolean;
|
||||
width?: string;
|
||||
withinPortal?: boolean;
|
||||
}
|
||||
|
||||
export const LanguageCombobox = ({
|
||||
label,
|
||||
value,
|
||||
onChange,
|
||||
isPending,
|
||||
width,
|
||||
withinPortal = false,
|
||||
}: LanguageComboboxProps) => {
|
||||
const combobox = useCombobox({ onDropdownClose: () => combobox.resetSelectedOption() });
|
||||
|
||||
return (
|
||||
<Combobox
|
||||
store={combobox}
|
||||
withinPortal={withinPortal}
|
||||
onOptionSubmit={(nextValue) => {
|
||||
onChange(nextValue as SupportedLanguage);
|
||||
combobox.closeDropdown();
|
||||
}}
|
||||
>
|
||||
<Combobox.Target>
|
||||
<InputBase
|
||||
component="button"
|
||||
type="button"
|
||||
pointer
|
||||
label={label}
|
||||
leftSection={isPending ? <Loader size={16} /> : null}
|
||||
rightSection={<Combobox.Chevron />}
|
||||
rightSectionPointerEvents="none"
|
||||
onClick={() => combobox.toggleDropdown()}
|
||||
variant="filled"
|
||||
w={width}
|
||||
>
|
||||
<OptionItem currentLocale={value} localeKey={value} />
|
||||
</InputBase>
|
||||
</Combobox.Target>
|
||||
<Combobox.Dropdown>
|
||||
<ScrollArea h={300}>
|
||||
<Combobox.Options>
|
||||
{supportedLanguages.map((locale) => (
|
||||
<Combobox.Option value={locale} key={locale}>
|
||||
<OptionItem currentLocale={value} localeKey={locale} showCheck />
|
||||
</Combobox.Option>
|
||||
))}
|
||||
</Combobox.Options>
|
||||
</ScrollArea>
|
||||
</Combobox.Dropdown>
|
||||
</Combobox>
|
||||
);
|
||||
};
|
||||
|
||||
const OptionItem = ({
|
||||
currentLocale,
|
||||
localeKey,
|
||||
showCheck,
|
||||
}: {
|
||||
currentLocale: SupportedLanguage;
|
||||
localeKey: SupportedLanguage;
|
||||
showCheck?: boolean;
|
||||
}) => (
|
||||
<Group wrap="nowrap" justify="space-between">
|
||||
<Group wrap="nowrap">
|
||||
<LanguageIcon icon={localeConfigurations[localeKey].icon} />
|
||||
<Group wrap="nowrap" gap="xs">
|
||||
<Text>{localeConfigurations[localeKey].name}</Text>
|
||||
<Text size="xs" c="dimmed" inherit>
|
||||
({localeConfigurations[localeKey].translatedName})
|
||||
</Text>
|
||||
</Group>
|
||||
</Group>
|
||||
{showCheck && localeKey === currentLocale && <IconCheck color="currentColor" size={16} />}
|
||||
</Group>
|
||||
);
|
||||
@@ -102,4 +102,28 @@ describe("onboarding URL validation", () => {
|
||||
onboardingCompleteSetupSchema.safeParse({ ...input, selectedDockerSourceIds: ["x".repeat(513)] }).success,
|
||||
).toBe(false);
|
||||
});
|
||||
|
||||
test("accepts board column counts from 8 through 24", () => {
|
||||
const input = {
|
||||
server: { defaultLocale: "en", defaultColorScheme: "dark" },
|
||||
board: {
|
||||
name: "dashboard",
|
||||
primaryColor: "#228BE6",
|
||||
secondaryColor: "#15AABF",
|
||||
itemRadius: "md",
|
||||
columnCount: 8,
|
||||
},
|
||||
};
|
||||
|
||||
expect(onboardingCompleteSetupSchema.safeParse(input).success).toBe(true);
|
||||
expect(
|
||||
onboardingCompleteSetupSchema.safeParse({ ...input, board: { ...input.board, columnCount: 24 } }).success,
|
||||
).toBe(true);
|
||||
expect(
|
||||
onboardingCompleteSetupSchema.safeParse({ ...input, board: { ...input.board, columnCount: 7 } }).success,
|
||||
).toBe(false);
|
||||
expect(
|
||||
onboardingCompleteSetupSchema.safeParse({ ...input, board: { ...input.board, columnCount: 25 } }).success,
|
||||
).toBe(false);
|
||||
});
|
||||
});
|
||||
@@ -85,6 +85,7 @@ export const onboardingCompleteSetupSchema = z
|
||||
secondaryColor: hexColorSchema,
|
||||
itemRadius: z.enum(["xs", "sm", "md", "lg", "xl"]),
|
||||
layoutPreset: z.enum(onboardingLayoutPresets).default("balanced"),
|
||||
columnCount: z.number().int().min(8).max(24).optional(),
|
||||
leftSidebar: z.boolean().default(false),
|
||||
rightSidebar: z.boolean().default(false),
|
||||
}),
|
||||
|
||||
Generated
-3
@@ -2444,9 +2444,6 @@ importers:
|
||||
'@tabler/icons-react':
|
||||
specifier: 'catalog:'
|
||||
version: 3.44.0(react@19.2.7)
|
||||
motion:
|
||||
specifier: 'catalog:'
|
||||
version: 13.0.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
|
||||
react:
|
||||
specifier: 'catalog:'
|
||||
version: 19.2.7
|
||||
|
||||
Reference in new issue
Block a user