openvibers/openvibe.network Commits
Ring icons (ov-icons.js): solid Font Awesome glyphs inside the OV ring
Changes
@@@ -380,6 +380,19 @@'fa-satellite-dish': [512, 'M192 43Q192 29 201 20Q210 11 224 11Q304 12 369 50Q434 89 473 154Q511 219 512 299Q512 313 503 322Q494 331 480 331Q466 331 457 322Q448 313 448 299Q447 236 417 186Q388 135 337 106Q287 76 224 75Q210 75 201 66Q192 57 192 43ZM61 232 165 336 61 232 165 336 193 307Q192 303 192 299Q192 285 201 276Q210 267 224 267Q238 267 247 276Q256 285 256 299Q256 313 247 322Q238 331 224 331Q220 331 216 330L187 358L291 462Q302 474 300 488Q298 502 284 509Q249 523 208 523Q120 521 61 462Q2 403 0 315Q0 274 14 239Q21 225 35 223Q49 221 61 232ZM224 107Q306 109 360 163Q414 217 416 299Q416 313 407 322Q398 331 384 331Q370 331 361 322Q352 313 352 299Q351 245 315 208Q278 172 224 171Q210 171 201 162Q192 153 192 139Q192 125 201 116Q210 107 224 107Z'],'fa-brain': [512, 'M184 11Q208 12 224 27Q239 43 240 67V467Q239 491 224 507Q208 522 184 523Q162 523 146 509Q131 495 128 473Q120 475 112 475Q85 474 67 456Q49 438 48 411Q48 400 52 390Q29 381 14 361Q0 341 0 315Q0 291 13 272Q25 253 46 243Q32 226 32 203Q32 180 46 163Q60 146 82 140Q80 132 80 123Q80 100 94 83Q107 67 128 61Q131 39 146 25Q162 11 184 11ZM328 11Q350 11 366 25Q381 39 384 61Q405 67 418 83Q432 100 432 123Q432 132 430 140Q452 146 466 163Q480 180 480 203Q480 226 466 243Q487 253 499 272Q512 291 512 315Q512 341 498 361Q483 381 460 390Q464 400 464 411Q463 438 445 456Q427 474 400 475Q392 475 384 473Q381 495 366 509Q350 523 328 523Q304 522 288 507Q273 491 272 467V67Q273 43 288 27Q304 12 328 11Z'],'fa-microchip': [512, 'M176 35Q174 13 152 11Q130 13 128 35V75Q101 76 83 94Q65 112 64 139H24Q2 141 0 163Q2 185 24 187H64V243H24Q2 245 0 267Q2 289 24 291H64V347H24Q2 349 0 371Q2 393 24 395H64Q65 422 83 440Q101 458 128 459V499Q130 521 152 523Q174 521 176 499V459H232V499Q234 521 256 523Q278 521 280 499V459H336V499Q338 521 360 523Q382 521 384 499V459Q411 458 429 440Q447 422 448 395H488Q510 393 512 371Q510 349 488 347H448V291H488Q510 289 512 267Q510 245 488 243H448V187H488Q510 185 512 163Q510 141 488 139H448Q447 112 429 94Q411 76 384 75V35Q382 13 360 11Q338 13 336 35V75H280V35Q278 13 256 11Q234 13 232 35V75H176V35ZM160 139H352H160H352Q366 139 375 148Q384 157 384 171V363Q384 377 375 386Q366 395 352 395H160Q146 395 137 386Q128 377 128 363V171Q128 157 137 148Q146 139 160 139ZM352 171H160H352H160V363H352V171Z'],++ 'fa-circle-nodes': [512, 'M418 169Q445 162 462 141Q479 120 480 91Q479 57 457 34Q434 12 400 11Q367 12 344 34Q322 55 320 88L136 162Q114 140 80 139Q46 140 23 162Q1 185 0 219Q1 253 23 276Q46 298 80 299Q98 299 114 291L260 419Q256 430 256 443Q257 477 279 500Q302 522 336 523Q370 522 393 500Q415 477 416 443Q414 400 381 377L418 169ZM156 243Q160 233 160 222L344 148Q349 153 355 158L318 365Q309 367 302 371L156 243Z'],++ 'fa-download': [512, 'M288 43Q288 29 279 20Q270 11 256 11Q242 11 233 20Q224 29 224 43V286L151 212Q141 203 128 203Q115 203 105 212Q96 222 96 235Q96 248 105 258L233 386Q243 395 256 395Q269 395 279 386L407 258Q416 248 416 235Q416 222 407 212Q397 203 384 203Q371 203 361 212L288 286V43ZM64 363Q37 364 19 382Q1 400 0 427V459Q1 486 19 504Q37 522 64 523H448Q475 522 493 504Q511 486 512 459V427Q511 400 493 382Q475 364 448 363H347L301 408Q281 427 256 427Q230 427 211 408L166 363H64ZM432 419Q454 421 456 443Q454 465 432 467Q410 465 408 443Q410 421 432 419Z'],++ 'fa-upload': [512, 'M288 120V363V120V363Q288 377 279 386Q270 395 256 395Q242 395 233 386Q224 377 224 363V120L151 194Q141 203 128 203Q115 203 105 194Q96 184 96 171Q96 158 105 148L233 20Q243 11 256 11Q269 11 279 20L407 148Q416 158 416 171Q416 184 407 194Q397 203 384 203Q371 203 361 194L288 120ZM64 363H192H64H192Q193 390 211 408Q229 426 256 427Q283 426 301 408Q319 390 320 363H448Q475 364 493 382Q511 400 512 427V459Q511 486 493 504Q475 522 448 523H64Q37 522 19 504Q1 486 0 459V427Q1 400 19 382Q37 364 64 363ZM432 467Q454 465 456 443Q454 421 432 419Q410 421 408 443Q410 465 432 467Z'],++ 'fa-image': [512, 'M0 107Q1 80 19 62Q37 44 64 43H448Q475 44 493 62Q511 80 512 107V427Q511 454 493 472Q475 490 448 491H64Q37 490 19 472Q1 454 0 427V107ZM324 214Q316 203 304 203Q291 203 284 214L197 341L171 308Q163 299 152 299Q141 299 133 308L69 388Q61 400 66 413Q73 426 88 427H184H424Q438 427 445 414Q451 401 444 390L324 214ZM112 203Q139 202 154 179Q166 155 154 131Q139 108 112 107Q85 108 70 131Q58 155 70 179Q85 202 112 203Z'],++ 'fa-music': [512, 'M499 17Q512 27 512 43V115V379Q511 413 484 436Q457 458 416 459Q375 458 348 436Q321 413 320 379Q321 345 348 322Q375 300 416 299Q433 299 448 304V158L192 235V443Q191 477 164 500Q137 522 96 523Q55 522 28 500Q1 477 0 443Q1 409 28 386Q55 364 96 363Q113 363 128 368V211V139Q129 116 151 108L471 12Q486 8 499 17Z'],++ 'fa-file-lines': [384, 'M64 11Q37 12 19 30Q1 48 0 75V459Q1 486 19 504Q37 522 64 523H320Q347 522 365 504Q383 486 384 459V171H256Q242 171 233 162Q224 153 224 139V11H64ZM256 11V139V11V139H384L256 11ZM112 267H272H112H272Q287 268 288 283Q287 298 272 299H112Q97 298 96 283Q97 268 112 267ZM112 331H272H112H272Q287 332 288 347Q287 362 272 363H112Q97 362 96 347Q97 332 112 331ZM112 395H272H112H272Q287 396 288 411Q287 426 272 427H112Q97 426 96 411Q97 396 112 395Z'],++ 'fa-font': [448, 'M254 64Q245 44 224 43Q203 44 194 64L58 427H32Q18 427 9 436Q0 445 0 459Q0 473 9 482Q18 491 32 491H128Q142 491 151 482Q160 473 160 459Q160 445 151 436Q142 427 128 427H126L144 379H304L322 427H320Q306 427 297 436Q288 445 288 459Q288 473 297 482Q306 491 320 491H416Q430 491 439 482Q448 473 448 459Q448 445 439 436Q430 427 416 427H390L254 64ZM280 315H168H280H168L224 166L280 315Z'],++ 'fa-location-dot': [384, 'M216 510Q243 477 282 421Q321 366 352 307Q382 248 384 203Q382 121 328 67Q274 13 192 11Q110 13 56 67Q2 121 0 203Q2 248 32 307Q63 366 102 421Q141 477 168 510Q178 522 192 522Q206 522 216 510ZM192 139Q228 140 247 171Q265 203 247 235Q228 266 192 267Q156 266 137 235Q119 203 137 171Q156 140 192 139Z'],++ 'fa-lock': [448, 'M144 155V203V155V203H304V155Q303 121 281 98Q258 76 224 75Q190 76 167 98Q145 121 144 155ZM80 203V155V203V155Q82 94 122 53Q163 13 224 11Q285 13 326 53Q366 94 368 155V203H384Q411 204 429 222Q447 240 448 267V459Q447 486 429 504Q411 522 384 523H64Q37 522 19 504Q1 486 0 459V267Q1 240 19 222Q37 204 64 203H80Z'],++ 'fa-wave-square': [640, 'M128 75Q128 61 137 52Q146 43 160 43H320Q334 43 343 52Q352 61 352 75V427H448V267Q448 253 457 244Q466 235 480 235H608Q622 235 631 244Q640 253 640 267Q640 281 631 290Q622 299 608 299H512V459Q512 473 503 482Q494 491 480 491H320Q306 491 297 482Q288 473 288 459V107H192V267Q192 281 183 290Q174 299 160 299H32Q18 299 9 290Q0 281 0 267Q0 253 9 244Q18 235 32 235H128V75Z'],++ 'fa-map': [576, 'M384 487 192 432 384 487 192 432V47L384 102V487ZM416 486V99V486V99L543 49Q556 44 565 51Q575 58 576 71V406Q575 421 561 428L416 486ZM15 106 160 48 15 106 160 48V435L33 486Q20 490 11 483Q1 476 0 463V128Q1 113 15 106Z'],++ 'fa-utensils': [448, 'M416 11Q406 10 376 25Q345 39 318 77Q290 116 288 187V299Q289 326 307 344Q325 362 352 363H384V491Q384 505 393 514Q402 523 416 523Q430 523 439 514Q448 505 448 491V363V251V43Q448 29 439 20Q430 11 416 11ZM64 27Q63 14 50 11Q36 11 32 24L2 160Q0 169 0 179Q1 214 23 238Q46 263 80 267V491Q80 505 89 514Q98 523 112 523Q126 523 135 514Q144 505 144 491V267Q178 263 201 238Q223 214 224 179Q224 169 222 160L192 24Q188 11 174 11Q161 14 160 27V161Q159 170 150 171Q142 170 140 162L128 26Q126 12 112 11Q98 12 96 26L84 162Q82 170 74 171Q65 170 64 161V27ZM112 179V178V179Z'],++ 'fa-user-shield': [640, 'M224 267Q259 267 288 250Q317 233 335 203Q352 173 352 139Q352 105 335 75Q317 45 288 28Q259 11 224 11Q189 11 160 28Q131 45 113 75Q96 105 96 139Q96 173 113 203Q131 233 160 250Q189 267 224 267ZM178 315Q103 317 52 367Q2 418 0 493Q0 506 9 514Q17 523 30 523H418Q421 523 424 523Q367 479 345 424Q322 368 320 322Q296 315 270 315H178ZM487 237 367 285 487 237 367 285Q353 291 352 307Q351 340 363 381Q374 422 403 460Q433 498 487 521Q496 525 505 521Q559 498 589 460Q618 422 629 381Q641 340 640 307Q639 291 625 285L505 237Q496 233 487 237ZM591 323Q589 363 568 404Q546 446 496 473V285L591 323Z'],};// END generated// Icons are solid filled paths generated from the Font Awesome Free solid font (see the@@@ -88,6 +88,7 @@.ov-icon .ovi-comet{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:26 100;transform-origin:24px 24px;animation:oviSpin 3.6s linear infinite}.ov-icon .ovi-prog{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:24px 24px;stroke-dasharray:125.7;stroke-dashoffset:125.7;transition:stroke-dashoffset .35s cubic-bezier(.2,.8,.2,1),opacity .2s;opacity:0}.ov-icon .ovi-glyph{fill:none;stroke:var(--ovi-glyph,var(--text-primary,#e6edf7));stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transform-box:view-box;transform-origin:12px 12px;transition:transform .25s cubic-bezier(.2,1.4,.3,1),stroke .2s}++.ov-icon .ovi-glyph--solid{fill:var(--ovi-glyph,var(--text-primary,#e6edf7));stroke:none;transition:transform .25s cubic-bezier(.2,1.4,.3,1),fill .2s}.ov-icon .ovi-glyph circle[r=".6"],.ov-icon .ovi-glyph circle[r=".7"]{fill:currentColor;stroke:none}.ov-icon[style*="--ovi-size:2"] .ovi-glyph,.ov-icon[data-size^="2"] .ovi-glyph{stroke-width:2.3}.ov-icon[style*="--ovi-size:2"] .ovi-ring,.ov-icon[data-size^="2"] .ovi-ring{stroke-width:3;opacity:.34}@@@ -116,6 +117,65 @@@keyframes oviShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6%)}75%{transform:translateX(6%)}}@media (prefers-reduced-motion:reduce){.ov-icon *, .ov-icon svg{animation:none!important;transition:none!important}.ov-icon .ovi-comet{display:none}}`;++ // BEGIN generated solid glyphs (scripts/build-nav-icons.py)++ // Font Awesome Free 6 solid glyphs (CC BY 4.0) for the ring icons; viewBox 0 0 <w> 512.++ const SOLID = {++ network: [512, 'M418 169Q445 162 462 141Q479 120 480 91Q479 57 457 34Q434 12 400 11Q367 12 344 34Q322 55 320 88L136 162Q114 140 80 139Q46 140 23 162Q1 185 0 219Q1 253 23 276Q46 298 80 299Q98 299 114 291L260 419Q256 430 256 443Q257 477 279 500Q302 522 336 523Q370 522 393 500Q415 477 416 443Q414 400 381 377L418 169ZM156 243Q160 233 160 222L344 148Q349 153 355 158L318 365Q309 367 302 371L156 243Z'],++ live: [576, 'M80 55Q64 94 64 139Q64 184 80 223Q85 236 80 247Q75 259 63 265Q50 270 38 265Q26 259 21 247Q0 197 0 139Q0 81 21 31Q26 19 38 14Q50 9 63 13Q75 19 80 30Q85 42 80 55ZM555 31Q576 81 576 139Q576 197 555 247Q550 259 538 264Q526 269 513 265Q501 259 496 248Q491 236 496 223Q512 184 512 139Q512 94 496 55Q491 42 496 31Q501 19 513 13Q526 8 538 13Q550 19 555 31ZM352 139Q350 176 320 194V491Q320 505 311 514Q302 523 288 523Q274 523 265 514Q256 505 256 491V194Q226 176 224 139Q225 112 243 94Q261 76 288 75Q315 76 333 94Q351 112 352 139ZM171 88Q160 111 160 139Q160 167 171 190Q176 203 171 215Q166 227 154 232Q141 237 130 233Q118 228 112 216Q96 180 96 139Q96 98 112 62Q118 50 130 45Q142 41 154 46Q166 51 171 63Q176 75 171 88ZM464 62Q480 98 480 139Q480 180 464 216Q458 228 446 233Q434 237 422 232Q410 227 405 215Q400 203 405 190Q416 167 416 139Q416 111 405 88Q400 75 405 63Q410 51 422 46Q435 41 446 45Q458 50 464 62Z'],++ tools: [512, 'M79 16Q62 5 47 18L7 58Q-6 73 5 90L85 194Q92 203 104 203H158L267 312Q256 334 260 359Q263 383 281 402L393 514Q403 523 416 523Q429 523 439 514L503 450Q512 440 512 427Q512 414 503 404L391 292Q372 274 348 271Q323 267 301 278L192 169V115Q192 103 183 96L79 16ZM20 407Q0 427 0 455Q1 484 20 503Q39 522 68 523Q96 523 116 503L234 385Q222 353 230 320L168 258L20 407ZM512 155Q512 139 509 125Q506 116 499 114Q491 113 485 119L421 182Q416 187 409 187H352Q337 186 336 171V114Q336 107 341 102L405 38Q411 32 409 24Q407 17 399 14Q384 11 368 11Q307 13 266 53Q226 94 224 155V156L309 241Q337 234 364 241Q392 249 413 270L429 286Q466 268 489 233Q511 199 512 155ZM56 443Q58 421 80 419Q102 421 104 443Q102 465 80 467Q58 465 56 443Z'],++ media: [640, 'M256 11H576H256H576Q603 12 621 30Q639 48 640 75V299Q639 326 621 344Q603 362 576 363H256Q229 362 211 344Q193 326 192 299V75Q193 48 211 30Q229 12 256 11ZM476 118Q469 107 456 107Q443 107 436 118L380 202L363 180Q355 171 344 171Q333 171 325 180L261 260Q252 272 258 285Q265 298 280 299H360H552Q566 299 573 286Q579 274 572 262L476 118ZM336 107Q336 93 327 84Q318 75 304 75Q290 75 281 84Q272 93 272 107Q272 121 281 130Q290 139 304 139Q318 139 327 130Q336 121 336 107ZM64 139H160H64H160V395V427Q160 441 169 450Q178 459 192 459H320Q334 459 343 450Q352 441 352 427V395H512V459Q511 486 493 504Q475 522 448 523H64Q37 522 19 504Q1 486 0 459V203Q1 176 19 158Q37 140 64 139ZM72 203Q57 204 56 219V235Q57 250 72 251H88Q103 250 104 235V219Q103 204 88 203H72ZM72 307Q57 308 56 323V339Q57 354 72 355H88Q103 354 104 339V323Q103 308 88 307H72ZM72 411Q57 412 56 427V443Q57 458 72 459H88Q103 458 104 443V427Q103 412 88 411H72ZM408 427V443V427V443Q409 458 424 459H440Q455 458 456 443V427Q455 412 440 411H424Q409 412 408 427Z'],++ games: [640, 'M192 75Q110 77 56 131Q2 185 0 267Q2 349 56 403Q110 457 192 459H448Q530 457 584 403Q638 349 640 267Q638 185 584 131Q530 77 448 75H192ZM496 179Q519 180 531 199Q541 219 531 239Q519 258 496 259Q473 258 461 239Q451 219 461 199Q473 180 496 179ZM392 315Q393 292 412 280Q432 270 452 280Q471 292 472 315Q471 338 452 350Q432 360 412 350Q393 338 392 315ZM168 211Q170 189 192 187Q214 189 216 211V243H248Q270 245 272 267Q270 289 248 291H216V323Q214 345 192 347Q170 345 168 323V291H136Q114 289 112 267Q114 245 136 243H168V211Z'],++ community: [640, 'M72 99Q73 67 100 51Q128 35 156 51Q183 67 184 99Q183 131 156 147Q128 163 100 147Q73 131 72 99ZM64 257Q49 274 48 299Q49 324 64 341V257ZM208 207Q162 249 160 315Q161 367 192 406V427Q192 441 183 450Q174 459 160 459H96Q82 459 73 450Q64 441 64 427V400Q35 386 18 360Q0 333 0 299Q1 251 33 220Q64 188 112 187H144Q181 188 208 207ZM448 427V406V427V406Q479 367 480 315Q478 249 432 207Q459 188 496 187H528Q576 188 607 220Q639 251 640 299Q640 333 622 360Q605 386 576 400V427Q576 441 567 450Q558 459 544 459H480Q466 459 457 450Q448 441 448 427ZM456 99Q457 67 484 51Q512 35 540 51Q567 67 568 99Q567 131 540 147Q512 163 484 147Q457 131 456 99ZM576 257V341V257V341Q592 324 592 299Q592 274 576 257ZM320 43Q356 44 375 75Q393 107 375 139Q356 170 320 171Q284 170 265 139Q247 107 265 75Q284 44 320 43ZM240 315Q241 340 256 357V273Q241 290 240 315ZM384 273V357V273V357Q400 340 400 315Q400 290 384 273ZM448 315Q448 349 430 376Q413 402 384 416V459Q384 473 375 482Q366 491 352 491H288Q274 491 265 482Q256 473 256 459V416Q227 402 210 376Q192 349 192 315Q193 267 225 236Q256 204 304 203H336Q384 204 415 236Q447 267 448 315Z'],++ chat: [640, 'M208 363Q296 361 355 311Q414 262 416 187Q414 112 355 63Q296 13 208 11Q120 13 61 63Q2 112 0 187Q1 246 40 290Q34 305 25 315Q18 324 12 329Q9 332 8 333Q7 334 7 334H6Q-2 341 1 352Q5 362 16 363Q50 362 78 351Q92 345 103 339Q150 362 208 363ZM448 187Q445 273 384 329Q322 385 232 394Q251 451 305 486Q359 522 432 523Q490 522 537 499Q548 505 562 511Q590 522 624 523Q635 522 639 512Q642 501 633 494Q633 494 633 493Q632 493 632 493Q631 492 628 489Q622 484 615 475Q606 464 600 450Q639 406 640 347Q638 276 584 227Q530 178 447 171Q448 179 448 187Z'],++ codes: [640, 'M393 12Q380 9 368 15Q357 21 353 34L225 482Q222 495 228 507Q234 518 247 522Q260 525 272 519Q283 513 287 500L415 52Q418 39 412 27Q406 16 393 12ZM473 132Q464 142 464 155Q464 168 473 178L563 267L473 356Q464 366 464 379Q464 392 473 402Q483 411 496 411Q509 411 519 402L631 290Q640 280 640 267Q640 254 631 244L519 132Q509 123 496 123Q483 123 473 132ZM167 132Q157 123 144 123Q131 123 121 132L9 244Q0 254 0 267Q0 280 9 290L121 402Q131 411 144 411Q157 411 167 402Q176 392 176 379Q176 366 167 356L77 267L167 178Q176 168 176 155Q176 142 167 132Z'],++ code: [640, 'M393 12Q380 9 368 15Q357 21 353 34L225 482Q222 495 228 507Q234 518 247 522Q260 525 272 519Q283 513 287 500L415 52Q418 39 412 27Q406 16 393 12ZM473 132Q464 142 464 155Q464 168 473 178L563 267L473 356Q464 366 464 379Q464 392 473 402Q483 411 496 411Q509 411 519 402L631 290Q640 280 640 267Q640 254 631 244L519 132Q509 123 496 123Q483 123 473 132ZM167 132Q157 123 144 123Q131 123 121 132L9 244Q0 254 0 267Q0 280 9 290L121 402Q131 411 144 411Q157 411 167 402Q176 392 176 379Q176 366 167 356L77 267L167 178Q176 168 176 155Q176 142 167 132Z'],++ blog: [512, 'M368 29 313 85 368 29 313 85 438 210 494 155Q510 137 510 115Q510 93 494 75L448 29Q430 13 408 13Q386 13 368 29ZM288 106 279 108 288 106 279 108 135 152Q104 162 92 193L4 457Q-2 475 11 489L165 336Q160 326 160 315Q161 295 174 281Q188 268 208 267Q228 268 242 281Q255 295 256 315Q255 335 242 349Q228 362 208 363Q197 363 187 358L34 512Q48 525 66 519L330 431Q361 419 371 388L415 244L417 235L288 106Z'],++ wiki: [448, 'M96 11Q55 12 28 39Q1 66 0 107V427Q1 468 28 495Q55 522 96 523H384H416Q430 523 439 514Q448 505 448 491Q448 477 439 468Q430 459 416 459V395Q430 395 439 386Q448 377 448 363V43Q448 29 439 20Q430 11 416 11H384ZM96 395H352H96H352V459H96Q82 459 73 450Q64 441 64 427Q64 413 73 404Q82 395 96 395ZM128 155Q129 140 144 139H336Q351 140 352 155Q351 170 336 171H144Q129 170 128 155ZM144 203H336H144H336Q351 204 352 219Q351 234 336 235H144Q129 234 128 219Q129 204 144 203Z'],++ news: [512, 'M96 107Q97 80 115 62Q133 44 160 43H448Q475 44 493 62Q511 80 512 107V427Q511 454 493 472Q475 490 448 491H80Q46 490 23 468Q1 445 0 411V139Q0 125 9 116Q18 107 32 107Q46 107 55 116Q64 125 64 139V411Q65 426 80 427Q95 426 96 411V107ZM160 131V211V131V211Q162 233 184 235H296Q318 233 320 211V131Q318 109 296 107H184Q162 109 160 131ZM368 123Q369 138 384 139H432Q447 138 448 123Q447 108 432 107H384Q369 108 368 123ZM368 219Q369 234 384 235H432Q447 234 448 219Q447 204 432 203H384Q369 204 368 219ZM160 315Q161 330 176 331H432Q447 330 448 315Q447 300 432 299H176Q161 300 160 315ZM160 411Q161 426 176 427H432Q447 426 448 411Q447 396 432 395H176Q161 396 160 411Z'],++ reviews: [576, 'M317 29Q308 12 288 11Q269 12 259 29L195 161L51 183Q32 186 26 204Q20 223 34 237L138 340L113 486Q111 505 126 517Q142 528 160 519L288 451L417 519Q434 528 450 517Q466 505 463 486L439 340L543 237Q556 223 551 204Q544 186 525 183L381 161L317 29Z'],++ tips: [512, 'M512 91Q511 118 474 139Q428 164 351 170Q346 167 340 165Q279 140 192 139Q180 139 168 140L166 139Q129 118 128 91Q130 57 184 34Q238 12 320 11Q402 12 456 34Q510 57 512 91ZM161 172Q176 171 192 171Q239 171 278 180Q318 188 345 202Q383 223 384 251Q384 257 382 263Q374 283 347 298Q347 298 347 298Q347 298 347 298Q347 298 347 298Q347 298 347 298Q346 299 346 299Q346 299 346 299Q319 314 279 322Q240 331 192 331Q100 330 44 302Q41 300 38 299Q1 278 0 251Q1 224 36 204Q71 184 128 176Q144 173 161 172ZM416 251Q414 218 392 198Q435 191 468 177Q493 167 512 152V187Q511 217 468 238Q446 249 416 256Q416 256 416 256Q416 254 416 251ZM384 347Q383 374 346 395Q344 396 342 397Q341 397 340 398Q284 426 192 427Q144 427 105 418Q65 410 38 395Q1 374 0 347V312Q19 327 44 337Q105 362 192 363Q279 362 340 337Q352 332 363 326Q372 321 380 315Q381 314 383 313Q383 312 384 312V315V321V347ZM416 347V315V347V315V289Q445 283 468 273Q493 263 512 248V283Q512 299 497 314Q471 339 416 352Q416 350 416 347ZM192 459Q279 458 340 433Q365 423 384 408V443Q382 477 328 500Q274 522 192 523Q110 522 56 500Q2 477 0 443V408Q19 423 44 433Q105 458 192 459Z'],++ vip: [576, 'M309 117Q327 105 328 83Q328 66 316 55Q305 43 288 43Q271 43 260 55Q248 66 248 83Q249 106 267 117L210 232Q202 245 188 249Q174 252 161 242L72 171Q80 161 80 147Q80 130 68 119Q57 107 40 107Q23 107 12 119Q0 130 0 147Q0 164 12 175Q23 187 40 187Q40 187 40 187Q41 187 41 187L86 438Q91 462 108 476Q126 491 149 491H427Q450 491 468 476Q485 462 490 438L535 187Q535 187 536 187Q536 187 536 187Q553 187 564 175Q576 164 576 147Q576 130 564 119Q553 107 536 107Q519 107 508 119Q496 130 496 147Q496 161 504 171L415 242Q402 252 388 249Q374 245 366 232L309 117Z'],++ trade: [512, 'M64 75Q64 61 55 52Q46 43 32 43Q18 43 9 52Q0 61 0 75V411Q1 445 23 468Q46 490 80 491H480Q494 491 503 482Q512 473 512 459Q512 445 503 436Q494 427 480 427H80Q65 426 64 411V75ZM471 162Q480 152 480 139Q480 126 471 116Q461 107 448 107Q435 107 425 116L320 222L263 164Q253 155 240 155Q227 155 217 164L105 276Q96 286 96 299Q96 312 105 322Q115 331 128 331Q141 331 151 322L240 232L297 290Q307 299 320 299Q333 299 343 290L471 162Z'],++ host: [512, 'M64 43Q37 44 19 62Q1 80 0 107V171Q1 198 19 216Q37 234 64 235H448Q475 234 493 216Q511 198 512 171V107Q511 80 493 62Q475 44 448 43H64ZM344 115Q366 117 368 139Q366 161 344 163Q322 161 320 139Q322 117 344 115ZM392 139Q394 117 416 115Q438 117 440 139Q438 161 416 163Q394 161 392 139ZM64 299Q37 300 19 318Q1 336 0 363V427Q1 454 19 472Q37 490 64 491H448Q475 490 493 472Q511 454 512 427V363Q511 336 493 318Q475 300 448 299H64ZM344 371Q366 373 368 395Q366 417 344 419Q322 417 320 395Q322 373 344 371ZM400 395Q402 373 424 371Q446 373 448 395Q446 417 424 419Q402 417 400 395Z'],++ deals: [448, 'M0 91V241V91V241Q0 267 19 286L195 462Q214 481 240 481Q265 481 285 462L419 328Q437 309 437 283Q437 258 419 238L243 62Q224 43 197 43H48Q28 44 14 57Q1 71 0 91ZM112 123Q126 123 135 132Q144 141 144 155Q144 169 135 178Q126 187 112 187Q98 187 89 178Q80 169 80 155Q80 141 89 132Q98 123 112 123Z'],++ coupons: [576, 'M64 75Q37 76 19 94Q1 112 0 139V203Q2 217 16 222Q46 233 48 267Q46 301 16 312Q2 317 0 331V395Q1 422 19 440Q37 458 64 459H512Q539 458 557 440Q575 422 576 395V331Q574 317 560 312Q530 301 528 267Q530 233 560 222Q574 217 576 203V139Q575 112 557 94Q539 76 512 75H64ZM128 187V347V187V347Q129 362 144 363H432Q447 362 448 347V187Q447 172 432 171H144Q129 172 128 187ZM96 171Q96 157 105 148Q114 139 128 139H448Q462 139 471 148Q480 157 480 171V363Q480 377 471 386Q462 395 448 395H128Q114 395 105 386Q96 377 96 363V171Z'],++ stream: [512, 'M192 43Q192 29 201 20Q210 11 224 11Q304 12 369 50Q434 89 473 154Q511 219 512 299Q512 313 503 322Q494 331 480 331Q466 331 457 322Q448 313 448 299Q447 236 417 186Q388 135 337 106Q287 76 224 75Q210 75 201 66Q192 57 192 43ZM61 232 165 336 61 232 165 336 193 307Q192 303 192 299Q192 285 201 276Q210 267 224 267Q238 267 247 276Q256 285 256 299Q256 313 247 322Q238 331 224 331Q220 331 216 330L187 358L291 462Q302 474 300 488Q298 502 284 509Q249 523 208 523Q120 521 61 462Q2 403 0 315Q0 274 14 239Q21 225 35 223Q49 221 61 232ZM224 107Q306 109 360 163Q414 217 416 299Q416 313 407 322Q398 331 384 331Q370 331 361 322Q352 313 352 299Q351 245 315 208Q278 172 224 171Q210 171 201 162Q192 153 192 139Q192 125 201 116Q210 107 224 107Z'],++ video: [576, 'M0 139Q1 112 19 94Q37 76 64 75H320Q347 76 365 94Q383 112 384 139V395Q383 422 365 440Q347 458 320 459H64Q37 458 19 440Q1 422 0 395V139ZM559 111Q575 120 576 139V395Q575 414 559 423Q542 432 526 422L430 358L416 348V331V203V186L430 176L526 112Q542 103 559 111Z'],++ download: [512, 'M288 43Q288 29 279 20Q270 11 256 11Q242 11 233 20Q224 29 224 43V286L151 212Q141 203 128 203Q115 203 105 212Q96 222 96 235Q96 248 105 258L233 386Q243 395 256 395Q269 395 279 386L407 258Q416 248 416 235Q416 222 407 212Q397 203 384 203Q371 203 361 212L288 286V43ZM64 363Q37 364 19 382Q1 400 0 427V459Q1 486 19 504Q37 522 64 523H448Q475 522 493 504Q511 486 512 459V427Q511 400 493 382Q475 364 448 363H347L301 408Q281 427 256 427Q230 427 211 408L166 363H64ZM432 419Q454 421 456 443Q454 465 432 467Q410 465 408 443Q410 421 432 419Z'],++ upload: [512, 'M288 120V363V120V363Q288 377 279 386Q270 395 256 395Q242 395 233 386Q224 377 224 363V120L151 194Q141 203 128 203Q115 203 105 194Q96 184 96 171Q96 158 105 148L233 20Q243 11 256 11Q269 11 279 20L407 148Q416 158 416 171Q416 184 407 194Q397 203 384 203Q371 203 361 194L288 120ZM64 363H192H64H192Q193 390 211 408Q229 426 256 427Q283 426 301 408Q319 390 320 363H448Q475 364 493 382Q511 400 512 427V459Q511 486 493 504Q475 522 448 523H64Q37 522 19 504Q1 486 0 459V427Q1 400 19 382Q37 364 64 363ZM432 467Q454 465 456 443Q454 421 432 419Q410 421 408 443Q410 465 432 467Z'],++ image: [512, 'M0 107Q1 80 19 62Q37 44 64 43H448Q475 44 493 62Q511 80 512 107V427Q511 454 493 472Q475 490 448 491H64Q37 490 19 472Q1 454 0 427V107ZM324 214Q316 203 304 203Q291 203 284 214L197 341L171 308Q163 299 152 299Q141 299 133 308L69 388Q61 400 66 413Q73 426 88 427H184H424Q438 427 445 414Q451 401 444 390L324 214ZM112 203Q139 202 154 179Q166 155 154 131Q139 108 112 107Q85 108 70 131Q58 155 70 179Q85 202 112 203Z'],++ audio: [512, 'M499 17Q512 27 512 43V115V379Q511 413 484 436Q457 458 416 459Q375 458 348 436Q321 413 320 379Q321 345 348 322Q375 300 416 299Q433 299 448 304V158L192 235V443Q191 477 164 500Q137 522 96 523Q55 522 28 500Q1 477 0 443Q1 409 28 386Q55 364 96 363Q113 363 128 368V211V139Q129 116 151 108L471 12Q486 8 499 17Z'],++ pdf: [512, 'M0 75Q1 48 19 30Q37 12 64 11H224V139Q224 153 233 162Q242 171 256 171H384V315H176Q149 316 131 334Q113 352 112 379V523H64Q37 522 19 504Q1 486 0 459V75ZM384 139H256H384H256V11L384 139ZM176 363H208H176H208Q232 364 248 379Q263 395 264 419Q263 443 248 459Q232 474 208 475H192V507Q191 522 176 523Q161 522 160 507V459V379Q161 364 176 363ZM208 443Q230 441 232 419Q230 397 208 395H192V443H208ZM304 363H336H304H336Q356 364 370 377Q383 391 384 411V475Q383 495 370 509Q356 522 336 523H304Q289 522 288 507V379Q289 364 304 363ZM336 491Q351 490 352 475V411Q351 396 336 395H320V491H336ZM416 379Q417 364 432 363H480Q495 364 496 379Q495 394 480 395H448V427H480Q495 428 496 443Q495 458 480 459H448V507Q447 522 432 523Q417 522 416 507V443V379Z'],++ docs: [384, 'M64 11Q37 12 19 30Q1 48 0 75V459Q1 486 19 504Q37 522 64 523H320Q347 522 365 504Q383 486 384 459V171H256Q242 171 233 162Q224 153 224 139V11H64ZM256 11V139V11V139H384L256 11ZM112 267H272H112H272Q287 268 288 283Q287 298 272 299H112Q97 298 96 283Q97 268 112 267ZM112 331H272H112H272Q287 332 288 347Q287 362 272 363H112Q97 362 96 347Q97 332 112 331ZM112 395H272H112H272Q287 396 288 411Q287 426 272 427H112Q97 426 96 411Q97 396 112 395Z'],++ text: [448, 'M254 64Q245 44 224 43Q203 44 194 64L58 427H32Q18 427 9 436Q0 445 0 459Q0 473 9 482Q18 491 32 491H128Q142 491 151 482Q160 473 160 459Q160 445 151 436Q142 427 128 427H126L144 379H304L322 427H320Q306 427 297 436Q288 445 288 459Q288 473 297 482Q306 491 320 491H416Q430 491 439 482Q448 473 448 459Q448 445 439 436Q430 427 416 427H390L254 64ZM280 315H168H280H168L224 166L280 315Z'],++ dns: [512, 'M352 267Q352 300 349 331H163Q160 300 160 267Q160 234 163 203H349Q352 234 352 267ZM381 203H504H381H504Q512 234 512 267Q512 300 504 331H381Q384 300 384 267Q384 234 381 203ZM493 171H377H493H377Q361 73 321 19Q381 36 426 75Q470 115 493 171ZM344 171H168H344H168Q177 116 195 76Q211 41 228 25Q245 10 256 11Q267 10 284 25Q301 41 317 76Q335 116 344 171ZM135 171H19H135H19Q42 115 86 75Q131 36 191 19Q151 73 135 171ZM8 203H131H8H131Q128 234 128 267Q128 300 131 331H8Q0 300 0 267Q0 234 8 203ZM195 458Q177 418 168 363H344Q335 418 317 458Q301 493 284 509Q267 524 256 523Q245 524 228 509Q211 493 195 458ZM135 363Q151 461 191 515Q131 498 86 459Q42 419 19 363H135ZM493 363Q470 419 426 459Q381 498 322 515Q361 461 377 363H493Z'],++ ip: [384, 'M216 510Q243 477 282 421Q321 366 352 307Q382 248 384 203Q382 121 328 67Q274 13 192 11Q110 13 56 67Q2 121 0 203Q2 248 32 307Q63 366 102 421Q141 477 168 510Q178 522 192 522Q206 522 216 510ZM192 139Q228 140 247 171Q265 203 247 235Q228 266 192 267Q156 266 137 235Q119 203 137 171Q156 140 192 139Z'],++ ssl: [448, 'M144 155V203V155V203H304V155Q303 121 281 98Q258 76 224 75Q190 76 167 98Q145 121 144 155ZM80 203V155V203V155Q82 94 122 53Q163 13 224 11Q285 13 326 53Q366 94 368 155V203H384Q411 204 429 222Q447 240 448 267V459Q447 486 429 504Q411 522 384 523H64Q37 522 19 504Q1 486 0 459V267Q1 240 19 222Q37 204 64 203H80Z'],++ ping: [640, 'M128 75Q128 61 137 52Q146 43 160 43H320Q334 43 343 52Q352 61 352 75V427H448V267Q448 253 457 244Q466 235 480 235H608Q622 235 631 244Q640 253 640 267Q640 281 631 290Q622 299 608 299H512V459Q512 473 503 482Q494 491 480 491H320Q306 491 297 482Q288 473 288 459V107H192V267Q192 281 183 290Q174 299 160 299H32Q18 299 9 290Q0 281 0 267Q0 253 9 244Q18 235 32 235H128V75Z'],++ whois: [512, 'M416 219Q415 289 376 342L503 468Q512 478 512 491Q512 504 503 514Q493 523 480 523Q467 523 457 514L331 387Q278 426 208 427Q120 425 61 366Q2 307 0 219Q2 131 61 72Q120 13 208 11Q296 13 355 72Q414 131 416 219ZM208 363Q247 363 280 344Q313 325 333 291Q352 257 352 219Q352 181 333 147Q313 113 280 94Q247 75 208 75Q169 75 136 94Q103 113 83 147Q64 181 64 219Q64 257 83 291Q103 325 136 344Q169 363 208 363Z'],++ search: [512, 'M416 219Q415 289 376 342L503 468Q512 478 512 491Q512 504 503 514Q493 523 480 523Q467 523 457 514L331 387Q278 426 208 427Q120 425 61 366Q2 307 0 219Q2 131 61 72Q120 13 208 11Q296 13 355 72Q414 131 416 219ZM208 363Q247 363 280 344Q313 325 333 291Q352 257 352 219Q352 181 333 147Q313 113 280 94Q247 75 208 75Q169 75 136 94Q103 113 83 147Q64 181 64 219Q64 257 83 291Q103 325 136 344Q169 363 208 363Z'],++ map: [576, 'M384 487 192 432 384 487 192 432V47L384 102V487ZM416 486V99V486V99L543 49Q556 44 565 51Q575 58 576 71V406Q575 421 561 428L416 486ZM15 106 160 48 15 106 160 48V435L33 486Q20 490 11 483Q1 476 0 463V128Q1 113 15 106Z'],++ food: [448, 'M416 11Q406 10 376 25Q345 39 318 77Q290 116 288 187V299Q289 326 307 344Q325 362 352 363H384V491Q384 505 393 514Q402 523 416 523Q430 523 439 514Q448 505 448 491V363V251V43Q448 29 439 20Q430 11 416 11ZM64 27Q63 14 50 11Q36 11 32 24L2 160Q0 169 0 179Q1 214 23 238Q46 263 80 267V491Q80 505 89 514Q98 523 112 523Q126 523 135 514Q144 505 144 491V267Q178 263 201 238Q223 214 224 179Q224 169 222 160L192 24Q188 11 174 11Q161 14 160 27V161Q159 170 150 171Q142 170 140 162L128 26Q126 12 112 11Q98 12 96 26L84 162Q82 170 74 171Q65 170 64 161V27ZM112 179V178V179Z'],++ paste: [512, 'M160 11Q123 13 105 43H48Q28 44 14 57Q1 71 0 91V411Q1 431 14 445Q28 458 48 459H192V187Q193 153 215 130Q238 108 272 107H320V91Q319 71 306 57Q292 44 272 43H215Q197 13 160 11ZM272 139Q252 140 238 153Q225 167 224 187V459V475Q225 495 238 509Q252 522 272 523H464Q484 522 498 509Q511 495 512 475V255Q512 235 498 221L430 153Q416 139 396 139H320ZM160 51Q182 53 184 75Q182 97 160 99Q138 97 136 75Q138 53 160 51Z'],++ account: [448, 'M224 267Q259 267 288 250Q317 233 335 203Q352 173 352 139Q352 105 335 75Q317 45 288 28Q259 11 224 11Q189 11 160 28Q131 45 113 75Q96 105 96 139Q96 173 113 203Q131 233 160 250Q189 267 224 267ZM178 315Q103 317 52 367Q2 418 0 493Q0 506 9 514Q17 523 30 523H418Q431 523 439 514Q448 506 448 493Q446 418 396 367Q345 317 270 315H178Z'],++ bell: [448, 'M224 11Q210 11 201 20Q192 29 192 43V62Q136 74 101 117Q65 160 64 219V238Q63 310 16 365L8 374Q-5 389 3 408Q12 426 32 427H416Q436 426 445 408Q453 389 440 374L433 365Q385 311 384 238V219Q383 160 347 117Q312 74 256 62V43Q256 29 247 20Q238 11 224 11ZM269 504Q288 485 288 459H224H160Q160 485 179 504Q198 523 224 523Q250 523 269 504Z'],++ history: [512, 'M75 86 41 52 75 86 41 52Q29 41 15 47Q1 52 0 69V179Q2 201 24 203H134Q151 202 156 188Q162 174 151 162L120 131Q174 77 256 75Q338 77 392 131Q446 185 448 267Q446 349 392 403Q338 457 256 459Q194 458 146 425Q135 417 122 419Q110 422 102 433Q94 444 96 456Q99 469 110 477Q173 522 256 523Q328 522 385 488Q443 454 477 396Q511 339 512 267Q511 195 477 138Q443 80 385 46Q328 12 256 11Q203 11 156 31Q110 51 75 86ZM256 139Q234 141 232 163V267Q232 277 239 284L311 356Q328 370 345 356Q359 339 345 322L280 257V163Q278 141 256 139Z'],++ theme: [512, 'M512 267Q512 268 512 268Q512 269 512 270Q511 297 490 314Q470 331 442 331H344Q324 332 310 345Q297 359 296 379Q296 384 297 389Q300 403 307 417Q307 418 308 419Q318 439 320 461Q320 485 305 503Q291 521 267 523Q261 523 256 523Q184 522 127 488Q69 454 35 396Q1 339 0 267Q1 195 35 138Q69 80 127 46Q184 12 256 11Q328 12 385 46Q443 80 477 138Q511 195 512 267ZM128 299Q128 285 119 276Q110 267 96 267Q82 267 73 276Q64 285 64 299Q64 313 73 322Q82 331 96 331Q110 331 119 322Q128 313 128 299ZM128 203Q142 203 151 194Q160 185 160 171Q160 157 151 148Q142 139 128 139Q114 139 105 148Q96 157 96 171Q96 185 105 194Q114 203 128 203ZM288 107Q288 93 279 84Q270 75 256 75Q242 75 233 84Q224 93 224 107Q224 121 233 130Q242 139 256 139Q270 139 279 130Q288 121 288 107ZM384 203Q398 203 407 194Q416 185 416 171Q416 157 407 148Q398 139 384 139Q370 139 361 148Q352 157 352 171Q352 185 361 194Q370 203 384 203Z'],++ check: [448, 'M439 116Q448 126 448 139Q448 152 439 162L183 418Q173 427 160 427Q147 427 137 418L9 290Q0 280 0 267Q0 254 9 244Q19 235 32 235Q45 235 55 244L160 350L393 116Q403 107 416 107Q429 107 439 116Z'],++ error: [512, 'M256 43Q279 44 291 63L507 431Q517 451 507 471Q495 490 472 491H40Q17 490 5 471Q-5 451 5 431L222 63Q234 44 256 43ZM256 171Q234 173 232 195V307Q234 329 256 331Q278 329 280 307V195Q278 173 256 171ZM288 395Q288 381 279 372Q270 363 256 363Q242 363 233 372Q224 381 224 395Q224 409 233 418Q242 427 256 427Q270 427 279 418Q288 409 288 395Z'],++ clip: [512, 'M256 203 217 164 256 203 217 164Q224 145 224 123Q223 75 191 44Q160 12 112 11Q64 12 33 44Q1 75 0 123Q1 171 33 202Q64 234 112 235Q134 235 153 228L192 267L153 307Q134 299 112 299Q64 300 33 332Q1 363 0 411Q1 459 33 490Q64 522 112 523Q160 522 191 490Q223 459 224 411Q224 389 217 371L499 88Q510 75 499 62Q477 41 448 41Q419 41 397 62L256 203ZM279 354 397 472 279 354 397 472Q419 493 448 493Q477 493 499 472Q510 459 499 446L343 290L279 354ZM64 123Q65 96 88 81Q112 69 136 81Q159 96 160 123Q159 150 136 165Q112 177 88 165Q65 150 64 123ZM112 363Q139 364 154 387Q166 411 154 435Q139 458 112 459Q85 458 70 435Q58 411 70 387Q85 364 112 363Z'],++ };++ // END generated solid glyphs++ // A glyph drawn as a solid Font Awesome path, fitted to the 24-box the stroke glyphs use.++ // Names without a solid twin keep their stroke glyph (the brand "V", YouTube, logo, ...).++ function glyphMarkup(key, def, forSprite) {++ const solid = SOLID[key];++ if (!solid) return forSprite ? def.glyph : `<g class="ovi-glyph">${def.glyph}</g>`;++ const [w, d] = solid; const sc = 18 / 512; const tx = (24 - w * sc) / 2, ty = 3;++ const paint = forSprite ? ' fill="currentColor" stroke="none" style="fill:var(--ovi-glyph,var(--text-primary,#e6edf7))"' : '';++ return `<g class="ovi-glyph ovi-glyph--solid"${paint} transform="translate(${tx.toFixed(2)} ${ty}) scale(${sc.toFixed(5)})"><path d="${d}"/></g>`;++ }++function resolve(name) {const n = String(name || 'ov').toLowerCase();return registry[n] ? n : (registry[ALIASES[n]] ? ALIASES[n] : 'ov');@@@ -126,7 +186,7 @@const key = resolve(name); const def = registry[key];const off = def.offset || OFFSETS[key] || [0, 0]; // measured optical centring, see scripts/measure-icons.jsconst s = size ? ` width="${size}" height="${size}"` : '';-- return `<svg viewBox="0 0 48 48"${s} aria-hidden="true" focusable="false"><circle class="ovi-bg" cx="24" cy="24" r="21"/><circle class="ovi-ring" cx="24" cy="24" r="20"/><circle class="ovi-comet" cx="24" cy="24" r="20"/><circle class="ovi-prog" cx="24" cy="24" r="20"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)"><g class="ovi-glyph">${def.glyph}</g></g></svg>`;++ return `<svg viewBox="0 0 48 48"${s} aria-hidden="true" focusable="false"><circle class="ovi-bg" cx="24" cy="24" r="21"/><circle class="ovi-ring" cx="24" cy="24" r="20"/><circle class="ovi-comet" cx="24" cy="24" r="20"/><circle class="ovi-prog" cx="24" cy="24" r="20"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)">${glyphMarkup(key, def, false)}</g></svg>`;}// ── Sprite mode (server-rendered lists) ──────────────────────────────────────────────@@@ -138,7 +198,7 @@const seen = new Set();const symbols = (names || []).map(resolve).filter(n => !seen.has(n) && seen.add(n)).map((key) => {const def = registry[key]; const off = def.offset || OFFSETS[key] || [0, 0];-- return `<symbol id="ovi-${key}" viewBox="0 0 48 48"><circle cx="24" cy="24" r="21" fill="currentColor" opacity=".1"/><circle cx="24" cy="24" r="20" fill="none" stroke="currentColor" stroke-width="2.4" opacity=".3"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)" fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" style="stroke:var(--ovi-glyph,var(--text-primary,#e6edf7))">${def.glyph}</g></symbol>`;++ return `<symbol id="ovi-${key}" viewBox="0 0 48 48"><circle cx="24" cy="24" r="21" fill="currentColor" opacity=".1"/><circle cx="24" cy="24" r="20" fill="none" stroke="currentColor" stroke-width="2.4" opacity=".3"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)" fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" style="stroke:var(--ovi-glyph,var(--text-primary,#e6edf7))">${glyphMarkup(key, def, true)}</g></symbol>`;}).join('');return `<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">${symbols}</svg>`;}@@@ -27,7 +27,23 @@ fa-arrow-up-right-from-square fa-chevron-down fa-chevron-right fa-bars fa-xmarkfa-circle-half-stroke fa-moon fa-sun fa-file-pdf fa-arrow-down fa-arrow-right fa-clock fa-envelope fa-starfa-heart fa-play fa-circle-info fa-triangle-exclamation fa-check fa-globe fa-code fa-robot fa-photo-filmfa-tower-cell fa-diagram-project fa-toolbox fa-comment-dots fa-money-bill-wave fa-crown fa-server fa-newspaper--fa-tag fa-ticket fa-chart-line fa-pen-nib fa-key fa-plug fa-bolt fa-satellite-dish fa-brain fa-microchip""".split()++fa-tag fa-ticket fa-chart-line fa-pen-nib fa-key fa-plug fa-bolt fa-satellite-dish fa-brain fa-microchip++fa-circle-nodes fa-download fa-upload fa-image fa-music fa-file-lines fa-font fa-location-dot fa-lock fa-wave-square++fa-map fa-utensils fa-user-shield""".split()++# ov-icons.js glyph name -> Font Awesome solid icon (names without a twin keep their stroke glyph)++OV_SOLID = {++ 'network': 'fa-circle-nodes', 'live': 'fa-tower-broadcast', 'tools': 'fa-screwdriver-wrench', 'media': 'fa-photo-film',++ 'games': 'fa-gamepad', 'community': 'fa-people-group', 'chat': 'fa-comments', 'codes': 'fa-code', 'code': 'fa-code',++ 'blog': 'fa-pen-nib', 'wiki': 'fa-book', 'news': 'fa-newspaper', 'reviews': 'fa-star', 'tips': 'fa-coins', 'vip': 'fa-crown',++ 'trade': 'fa-chart-line', 'host': 'fa-server', 'deals': 'fa-tag', 'coupons': 'fa-ticket', 'stream': 'fa-satellite-dish',++ 'video': 'fa-video', 'download': 'fa-download', 'upload': 'fa-upload', 'image': 'fa-image', 'audio': 'fa-music',++ 'pdf': 'fa-file-pdf', 'docs': 'fa-file-lines', 'text': 'fa-font', 'dns': 'fa-globe', 'ip': 'fa-location-dot',++ 'ssl': 'fa-lock', 'ping': 'fa-wave-square', 'whois': 'fa-magnifying-glass', 'search': 'fa-magnifying-glass', 'map': 'fa-map',++ 'food': 'fa-utensils', 'paste': 'fa-paste', 'account': 'fa-user', 'bell': 'fa-bell', 'history': 'fa-clock-rotate-left',++ 'theme': 'fa-palette', 'check': 'fa-check', 'error': 'fa-triangle-exclamation', 'clip': 'fa-scissors',++}++OVICONS = HERE.parent / 'ov-icons.js'++OV_START, OV_END = ' // BEGIN generated solid glyphs (scripts/build-nav-icons.py)', ' // END generated solid glyphs'def main():ap = argparse.ArgumentParser()@@@ -60,5 +76,13 @@ def main():i, j = src.index(START), src.index(END) + len(END)NAVBAR.write_text(src[:i] + '\n'.join(js) + src[j:], encoding='utf-8')print(f'wrote {len(out)} icons; missing: {missing or "none"}')++ ov = [OV_START, " // Font Awesome Free 6 solid glyphs (CC BY 4.0) for the ring icons; viewBox 0 0 <w> 512.", " const SOLID = {"]++ for name, fa in OV_SOLID.items():++ if fa in out: w, d = out[fa]; ov.append(f" {name}: [{w}, '{d}'],")++ ov += [" };", OV_END]++ src = OVICONS.read_text(encoding='utf-8')++ i, j = src.index(OV_START), src.index(OV_END) + len(OV_END)++ OVICONS.write_text(src[:i] + '\n'.join(ov) + src[j:], encoding='utf-8')++ print(f'ov-icons: {sum(1 for fa in OV_SOLID.values() if fa in out)} solid glyphs')if __name__ == '__main__': main()
@@ -380,6 +380,19 @@
@@ -380,6 +380,19 @@
'fa-satellite-dish': [512, 'M192 43Q192 29 201 20Q210 11 224 11Q304 12 369 50Q434 89 473 154Q511 219 512 299Q512 313 503 322Q494 331 480 331Q466 331 457 322Q448 313 448 299Q447 236 417 186Q388 135 337 106Q287 76 224 75Q210 75 201 66Q192 57 192 43ZM61 232 165 336 61 232 165 336 193 307Q192 303 192 299Q192 285 201 276Q210 267 224 267Q238 267 247 276Q256 285 256 299Q256 313 247 322Q238 331 224 331Q220 331 216 330L187 358L291 462Q302 474 300 488Q298 502 284 509Q249 523 208 523Q120 521 61 462Q2 403 0 315Q0 274 14 239Q21 225 35 223Q49 221 61 232ZM224 107Q306 109 360 163Q414 217 416 299Q416 313 407 322Q398 331 384 331Q370 331 361 322Q352 313 352 299Q351 245 315 208Q278 172 224 171Q210 171 201 162Q192 153 192 139Q192 125 201 116Q210 107 224 107Z'],
'fa-satellite-dish': [512, 'M192 43Q192 29 201 20Q210 11 224 11Q304 12 369 50Q434 89 473 154Q511 219 512 299Q512 313 503 322Q494 331 480 331Q466 331 457 322Q448 313 448 299Q447 236 417 186Q388 135 337 106Q287 76 224 75Q210 75 201 66Q192 57 192 43ZM61 232 165 336 61 232 165 336 193 307Q192 303 192 299Q192 285 201 276Q210 267 224 267Q238 267 247 276Q256 285 256 299Q256 313 247 322Q238 331 224 331Q220 331 216 330L187 358L291 462Q302 474 300 488Q298 502 284 509Q249 523 208 523Q120 521 61 462Q2 403 0 315Q0 274 14 239Q21 225 35 223Q49 221 61 232ZM224 107Q306 109 360 163Q414 217 416 299Q416 313 407 322Q398 331 384 331Q370 331 361 322Q352 313 352 299Q351 245 315 208Q278 172 224 171Q210 171 201 162Q192 153 192 139Q192 125 201 116Q210 107 224 107Z'],
'fa-brain': [512, 'M184 11Q208 12 224 27Q239 43 240 67V467Q239 491 224 507Q208 522 184 523Q162 523 146 509Q131 495 128 473Q120 475 112 475Q85 474 67 456Q49 438 48 411Q48 400 52 390Q29 381 14 361Q0 341 0 315Q0 291 13 272Q25 253 46 243Q32 226 32 203Q32 180 46 163Q60 146 82 140Q80 132 80 123Q80 100 94 83Q107 67 128 61Q131 39 146 25Q162 11 184 11ZM328 11Q350 11 366 25Q381 39 384 61Q405 67 418 83Q432 100 432 123Q432 132 430 140Q452 146 466 163Q480 180 480 203Q480 226 466 243Q487 253 499 272Q512 291 512 315Q512 341 498 361Q483 381 460 390Q464 400 464 411Q463 438 445 456Q427 474 400 475Q392 475 384 473Q381 495 366 509Q350 523 328 523Q304 522 288 507Q273 491 272 467V67Q273 43 288 27Q304 12 328 11Z'],
'fa-brain': [512, 'M184 11Q208 12 224 27Q239 43 240 67V467Q239 491 224 507Q208 522 184 523Q162 523 146 509Q131 495 128 473Q120 475 112 475Q85 474 67 456Q49 438 48 411Q48 400 52 390Q29 381 14 361Q0 341 0 315Q0 291 13 272Q25 253 46 243Q32 226 32 203Q32 180 46 163Q60 146 82 140Q80 132 80 123Q80 100 94 83Q107 67 128 61Q131 39 146 25Q162 11 184 11ZM328 11Q350 11 366 25Q381 39 384 61Q405 67 418 83Q432 100 432 123Q432 132 430 140Q452 146 466 163Q480 180 480 203Q480 226 466 243Q487 253 499 272Q512 291 512 315Q512 341 498 361Q483 381 460 390Q464 400 464 411Q463 438 445 456Q427 474 400 475Q392 475 384 473Q381 495 366 509Q350 523 328 523Q304 522 288 507Q273 491 272 467V67Q273 43 288 27Q304 12 328 11Z'],
'fa-microchip': [512, 'M176 35Q174 13 152 11Q130 13 128 35V75Q101 76 83 94Q65 112 64 139H24Q2 141 0 163Q2 185 24 187H64V243H24Q2 245 0 267Q2 289 24 291H64V347H24Q2 349 0 371Q2 393 24 395H64Q65 422 83 440Q101 458 128 459V499Q130 521 152 523Q174 521 176 499V459H232V499Q234 521 256 523Q278 521 280 499V459H336V499Q338 521 360 523Q382 521 384 499V459Q411 458 429 440Q447 422 448 395H488Q510 393 512 371Q510 349 488 347H448V291H488Q510 289 512 267Q510 245 488 243H448V187H488Q510 185 512 163Q510 141 488 139H448Q447 112 429 94Q411 76 384 75V35Q382 13 360 11Q338 13 336 35V75H280V35Q278 13 256 11Q234 13 232 35V75H176V35ZM160 139H352H160H352Q366 139 375 148Q384 157 384 171V363Q384 377 375 386Q366 395 352 395H160Q146 395 137 386Q128 377 128 363V171Q128 157 137 148Q146 139 160 139ZM352 171H160H352H160V363H352V171Z'],
'fa-microchip': [512, 'M176 35Q174 13 152 11Q130 13 128 35V75Q101 76 83 94Q65 112 64 139H24Q2 141 0 163Q2 185 24 187H64V243H24Q2 245 0 267Q2 289 24 291H64V347H24Q2 349 0 371Q2 393 24 395H64Q65 422 83 440Q101 458 128 459V499Q130 521 152 523Q174 521 176 499V459H232V499Q234 521 256 523Q278 521 280 499V459H336V499Q338 521 360 523Q382 521 384 499V459Q411 458 429 440Q447 422 448 395H488Q510 393 512 371Q510 349 488 347H448V291H488Q510 289 512 267Q510 245 488 243H448V187H488Q510 185 512 163Q510 141 488 139H448Q447 112 429 94Q411 76 384 75V35Q382 13 360 11Q338 13 336 35V75H280V35Q278 13 256 11Q234 13 232 35V75H176V35ZM160 139H352H160H352Q366 139 375 148Q384 157 384 171V363Q384 377 375 386Q366 395 352 395H160Q146 395 137 386Q128 377 128 363V171Q128 157 137 148Q146 139 160 139ZM352 171H160H352H160V363H352V171Z'],
+ 'fa-circle-nodes': [512, 'M418 169Q445 162 462 141Q479 120 480 91Q479 57 457 34Q434 12 400 11Q367 12 344 34Q322 55 320 88L136 162Q114 140 80 139Q46 140 23 162Q1 185 0 219Q1 253 23 276Q46 298 80 299Q98 299 114 291L260 419Q256 430 256 443Q257 477 279 500Q302 522 336 523Q370 522 393 500Q415 477 416 443Q414 400 381 377L418 169ZM156 243Q160 233 160 222L344 148Q349 153 355 158L318 365Q309 367 302 371L156 243Z'],
+ 'fa-download': [512, 'M288 43Q288 29 279 20Q270 11 256 11Q242 11 233 20Q224 29 224 43V286L151 212Q141 203 128 203Q115 203 105 212Q96 222 96 235Q96 248 105 258L233 386Q243 395 256 395Q269 395 279 386L407 258Q416 248 416 235Q416 222 407 212Q397 203 384 203Q371 203 361 212L288 286V43ZM64 363Q37 364 19 382Q1 400 0 427V459Q1 486 19 504Q37 522 64 523H448Q475 522 493 504Q511 486 512 459V427Q511 400 493 382Q475 364 448 363H347L301 408Q281 427 256 427Q230 427 211 408L166 363H64ZM432 419Q454 421 456 443Q454 465 432 467Q410 465 408 443Q410 421 432 419Z'],
+ 'fa-upload': [512, 'M288 120V363V120V363Q288 377 279 386Q270 395 256 395Q242 395 233 386Q224 377 224 363V120L151 194Q141 203 128 203Q115 203 105 194Q96 184 96 171Q96 158 105 148L233 20Q243 11 256 11Q269 11 279 20L407 148Q416 158 416 171Q416 184 407 194Q397 203 384 203Q371 203 361 194L288 120ZM64 363H192H64H192Q193 390 211 408Q229 426 256 427Q283 426 301 408Q319 390 320 363H448Q475 364 493 382Q511 400 512 427V459Q511 486 493 504Q475 522 448 523H64Q37 522 19 504Q1 486 0 459V427Q1 400 19 382Q37 364 64 363ZM432 467Q454 465 456 443Q454 421 432 419Q410 421 408 443Q410 465 432 467Z'],
+ 'fa-image': [512, 'M0 107Q1 80 19 62Q37 44 64 43H448Q475 44 493 62Q511 80 512 107V427Q511 454 493 472Q475 490 448 491H64Q37 490 19 472Q1 454 0 427V107ZM324 214Q316 203 304 203Q291 203 284 214L197 341L171 308Q163 299 152 299Q141 299 133 308L69 388Q61 400 66 413Q73 426 88 427H184H424Q438 427 445 414Q451 401 444 390L324 214ZM112 203Q139 202 154 179Q166 155 154 131Q139 108 112 107Q85 108 70 131Q58 155 70 179Q85 202 112 203Z'],
+ 'fa-music': [512, 'M499 17Q512 27 512 43V115V379Q511 413 484 436Q457 458 416 459Q375 458 348 436Q321 413 320 379Q321 345 348 322Q375 300 416 299Q433 299 448 304V158L192 235V443Q191 477 164 500Q137 522 96 523Q55 522 28 500Q1 477 0 443Q1 409 28 386Q55 364 96 363Q113 363 128 368V211V139Q129 116 151 108L471 12Q486 8 499 17Z'],
+ 'fa-file-lines': [384, 'M64 11Q37 12 19 30Q1 48 0 75V459Q1 486 19 504Q37 522 64 523H320Q347 522 365 504Q383 486 384 459V171H256Q242 171 233 162Q224 153 224 139V11H64ZM256 11V139V11V139H384L256 11ZM112 267H272H112H272Q287 268 288 283Q287 298 272 299H112Q97 298 96 283Q97 268 112 267ZM112 331H272H112H272Q287 332 288 347Q287 362 272 363H112Q97 362 96 347Q97 332 112 331ZM112 395H272H112H272Q287 396 288 411Q287 426 272 427H112Q97 426 96 411Q97 396 112 395Z'],
+ 'fa-font': [448, 'M254 64Q245 44 224 43Q203 44 194 64L58 427H32Q18 427 9 436Q0 445 0 459Q0 473 9 482Q18 491 32 491H128Q142 491 151 482Q160 473 160 459Q160 445 151 436Q142 427 128 427H126L144 379H304L322 427H320Q306 427 297 436Q288 445 288 459Q288 473 297 482Q306 491 320 491H416Q430 491 439 482Q448 473 448 459Q448 445 439 436Q430 427 416 427H390L254 64ZM280 315H168H280H168L224 166L280 315Z'],
+ 'fa-location-dot': [384, 'M216 510Q243 477 282 421Q321 366 352 307Q382 248 384 203Q382 121 328 67Q274 13 192 11Q110 13 56 67Q2 121 0 203Q2 248 32 307Q63 366 102 421Q141 477 168 510Q178 522 192 522Q206 522 216 510ZM192 139Q228 140 247 171Q265 203 247 235Q228 266 192 267Q156 266 137 235Q119 203 137 171Q156 140 192 139Z'],
+ 'fa-lock': [448, 'M144 155V203V155V203H304V155Q303 121 281 98Q258 76 224 75Q190 76 167 98Q145 121 144 155ZM80 203V155V203V155Q82 94 122 53Q163 13 224 11Q285 13 326 53Q366 94 368 155V203H384Q411 204 429 222Q447 240 448 267V459Q447 486 429 504Q411 522 384 523H64Q37 522 19 504Q1 486 0 459V267Q1 240 19 222Q37 204 64 203H80Z'],
+ 'fa-wave-square': [640, 'M128 75Q128 61 137 52Q146 43 160 43H320Q334 43 343 52Q352 61 352 75V427H448V267Q448 253 457 244Q466 235 480 235H608Q622 235 631 244Q640 253 640 267Q640 281 631 290Q622 299 608 299H512V459Q512 473 503 482Q494 491 480 491H320Q306 491 297 482Q288 473 288 459V107H192V267Q192 281 183 290Q174 299 160 299H32Q18 299 9 290Q0 281 0 267Q0 253 9 244Q18 235 32 235H128V75Z'],
+ 'fa-map': [576, 'M384 487 192 432 384 487 192 432V47L384 102V487ZM416 486V99V486V99L543 49Q556 44 565 51Q575 58 576 71V406Q575 421 561 428L416 486ZM15 106 160 48 15 106 160 48V435L33 486Q20 490 11 483Q1 476 0 463V128Q1 113 15 106Z'],
+ 'fa-utensils': [448, 'M416 11Q406 10 376 25Q345 39 318 77Q290 116 288 187V299Q289 326 307 344Q325 362 352 363H384V491Q384 505 393 514Q402 523 416 523Q430 523 439 514Q448 505 448 491V363V251V43Q448 29 439 20Q430 11 416 11ZM64 27Q63 14 50 11Q36 11 32 24L2 160Q0 169 0 179Q1 214 23 238Q46 263 80 267V491Q80 505 89 514Q98 523 112 523Q126 523 135 514Q144 505 144 491V267Q178 263 201 238Q223 214 224 179Q224 169 222 160L192 24Q188 11 174 11Q161 14 160 27V161Q159 170 150 171Q142 170 140 162L128 26Q126 12 112 11Q98 12 96 26L84 162Q82 170 74 171Q65 170 64 161V27ZM112 179V178V179Z'],
+ 'fa-user-shield': [640, 'M224 267Q259 267 288 250Q317 233 335 203Q352 173 352 139Q352 105 335 75Q317 45 288 28Q259 11 224 11Q189 11 160 28Q131 45 113 75Q96 105 96 139Q96 173 113 203Q131 233 160 250Q189 267 224 267ZM178 315Q103 317 52 367Q2 418 0 493Q0 506 9 514Q17 523 30 523H418Q421 523 424 523Q367 479 345 424Q322 368 320 322Q296 315 270 315H178ZM487 237 367 285 487 237 367 285Q353 291 352 307Q351 340 363 381Q374 422 403 460Q433 498 487 521Q496 525 505 521Q559 498 589 460Q618 422 629 381Q641 340 640 307Q639 291 625 285L505 237Q496 233 487 237ZM591 323Q589 363 568 404Q546 446 496 473V285L591 323Z'],
};
};
// END generated
// END generated
// Icons are solid filled paths generated from the Font Awesome Free solid font (see the
// Icons are solid filled paths generated from the Font Awesome Free solid font (see the
@@ -88,6 +88,7 @@
@@ -88,6 +88,7 @@
.ov-icon .ovi-comet{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:26 100;transform-origin:24px 24px;animation:oviSpin 3.6s linear infinite}
.ov-icon .ovi-comet{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:26 100;transform-origin:24px 24px;animation:oviSpin 3.6s linear infinite}
.ov-icon .ovi-prog{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:24px 24px;stroke-dasharray:125.7;stroke-dashoffset:125.7;transition:stroke-dashoffset .35s cubic-bezier(.2,.8,.2,1),opacity .2s;opacity:0}
.ov-icon .ovi-prog{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:24px 24px;stroke-dasharray:125.7;stroke-dashoffset:125.7;transition:stroke-dashoffset .35s cubic-bezier(.2,.8,.2,1),opacity .2s;opacity:0}
.ov-icon .ovi-glyph{fill:none;stroke:var(--ovi-glyph,var(--text-primary,#e6edf7));stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transform-box:view-box;transform-origin:12px 12px;transition:transform .25s cubic-bezier(.2,1.4,.3,1),stroke .2s}
.ov-icon .ovi-glyph{fill:none;stroke:var(--ovi-glyph,var(--text-primary,#e6edf7));stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transform-box:view-box;transform-origin:12px 12px;transition:transform .25s cubic-bezier(.2,1.4,.3,1),stroke .2s}
+.ov-icon .ovi-glyph--solid{fill:var(--ovi-glyph,var(--text-primary,#e6edf7));stroke:none;transition:transform .25s cubic-bezier(.2,1.4,.3,1),fill .2s}
.ov-icon .ovi-glyph circle[r=".6"],.ov-icon .ovi-glyph circle[r=".7"]{fill:currentColor;stroke:none}
.ov-icon .ovi-glyph circle[r=".6"],.ov-icon .ovi-glyph circle[r=".7"]{fill:currentColor;stroke:none}
.ov-icon[style*="--ovi-size:2"] .ovi-glyph,.ov-icon[data-size^="2"] .ovi-glyph{stroke-width:2.3}
.ov-icon[style*="--ovi-size:2"] .ovi-glyph,.ov-icon[data-size^="2"] .ovi-glyph{stroke-width:2.3}
.ov-icon[style*="--ovi-size:2"] .ovi-ring,.ov-icon[data-size^="2"] .ovi-ring{stroke-width:3;opacity:.34}
.ov-icon[style*="--ovi-size:2"] .ovi-ring,.ov-icon[data-size^="2"] .ovi-ring{stroke-width:3;opacity:.34}
@@ -116,6 +117,65 @@
@@ -116,6 +117,65 @@
@keyframes oviShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6%)}75%{transform:translateX(6%)}}
@keyframes oviShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6%)}75%{transform:translateX(6%)}}
@media (prefers-reduced-motion:reduce){.ov-icon *, .ov-icon svg{animation:none!important;transition:none!important}.ov-icon .ovi-comet{display:none}}`;
@media (prefers-reduced-motion:reduce){.ov-icon *, .ov-icon svg{animation:none!important;transition:none!important}.ov-icon .ovi-comet{display:none}}`;
+ // BEGIN generated solid glyphs (scripts/build-nav-icons.py)
+ // Font Awesome Free 6 solid glyphs (CC BY 4.0) for the ring icons; viewBox 0 0 <w> 512.
+ const SOLID = {
+ network: [512, 'M418 169Q445 162 462 141Q479 120 480 91Q479 57 457 34Q434 12 400 11Q367 12 344 34Q322 55 320 88L136 162Q114 140 80 139Q46 140 23 162Q1 185 0 219Q1 253 23 276Q46 298 80 299Q98 299 114 291L260 419Q256 430 256 443Q257 477 279 500Q302 522 336 523Q370 522 393 500Q415 477 416 443Q414 400 381 377L418 169ZM156 243Q160 233 160 222L344 148Q349 153 355 158L318 365Q309 367 302 371L156 243Z'],
+ live: [576, 'M80 55Q64 94 64 139Q64 184 80 223Q85 236 80 247Q75 259 63 265Q50 270 38 265Q26 259 21 247Q0 197 0 139Q0 81 21 31Q26 19 38 14Q50 9 63 13Q75 19 80 30Q85 42 80 55ZM555 31Q576 81 576 139Q576 197 555 247Q550 259 538 264Q526 269 513 265Q501 259 496 248Q491 236 496 223Q512 184 512 139Q512 94 496 55Q491 42 496 31Q501 19 513 13Q526 8 538 13Q550 19 555 31ZM352 139Q350 176 320 194V491Q320 505 311 514Q302 523 288 523Q274 523 265 514Q256 505 256 491V194Q226 176 224 139Q225 112 243 94Q261 76 288 75Q315 76 333 94Q351 112 352 139ZM171 88Q160 111 160 139Q160 167 171 190Q176 203 171 215Q166 227 154 232Q141 237 130 233Q118 228 112 216Q96 180 96 139Q96 98 112 62Q118 50 130 45Q142 41 154 46Q166 51 171 63Q176 75 171 88ZM464 62Q480 98 480 139Q480 180 464 216Q458 228 446 233Q434 237 422 232Q410 227 405 215Q400 203 405 190Q416 167 416 139Q416 111 405 88Q400 75 405 63Q410 51 422 46Q435 41 446 45Q458 50 464 62Z'],
+ tools: [512, 'M79 16Q62 5 47 18L7 58Q-6 73 5 90L85 194Q92 203 104 203H158L267 312Q256 334 260 359Q263 383 281 402L393 514Q403 523 416 523Q429 523 439 514L503 450Q512 440 512 427Q512 414 503 404L391 292Q372 274 348 271Q323 267 301 278L192 169V115Q192 103 183 96L79 16ZM20 407Q0 427 0 455Q1 484 20 503Q39 522 68 523Q96 523 116 503L234 385Q222 353 230 320L168 258L20 407ZM512 155Q512 139 509 125Q506 116 499 114Q491 113 485 119L421 182Q416 187 409 187H352Q337 186 336 171V114Q336 107 341 102L405 38Q411 32 409 24Q407 17 399 14Q384 11 368 11Q307 13 266 53Q226 94 224 155V156L309 241Q337 234 364 241Q392 249 413 270L429 286Q466 268 489 233Q511 199 512 155ZM56 443Q58 421 80 419Q102 421 104 443Q102 465 80 467Q58 465 56 443Z'],
+ media: [640, 'M256 11H576H256H576Q603 12 621 30Q639 48 640 75V299Q639 326 621 344Q603 362 576 363H256Q229 362 211 344Q193 326 192 299V75Q193 48 211 30Q229 12 256 11ZM476 118Q469 107 456 107Q443 107 436 118L380 202L363 180Q355 171 344 171Q333 171 325 180L261 260Q252 272 258 285Q265 298 280 299H360H552Q566 299 573 286Q579 274 572 262L476 118ZM336 107Q336 93 327 84Q318 75 304 75Q290 75 281 84Q272 93 272 107Q272 121 281 130Q290 139 304 139Q318 139 327 130Q336 121 336 107ZM64 139H160H64H160V395V427Q160 441 169 450Q178 459 192 459H320Q334 459 343 450Q352 441 352 427V395H512V459Q511 486 493 504Q475 522 448 523H64Q37 522 19 504Q1 486 0 459V203Q1 176 19 158Q37 140 64 139ZM72 203Q57 204 56 219V235Q57 250 72 251H88Q103 250 104 235V219Q103 204 88 203H72ZM72 307Q57 308 56 323V339Q57 354 72 355H88Q103 354 104 339V323Q103 308 88 307H72ZM72 411Q57 412 56 427V443Q57 458 72 459H88Q103 458 104 443V427Q103 412 88 411H72ZM408 427V443V427V443Q409 458 424 459H440Q455 458 456 443V427Q455 412 440 411H424Q409 412 408 427Z'],
+ games: [640, 'M192 75Q110 77 56 131Q2 185 0 267Q2 349 56 403Q110 457 192 459H448Q530 457 584 403Q638 349 640 267Q638 185 584 131Q530 77 448 75H192ZM496 179Q519 180 531 199Q541 219 531 239Q519 258 496 259Q473 258 461 239Q451 219 461 199Q473 180 496 179ZM392 315Q393 292 412 280Q432 270 452 280Q471 292 472 315Q471 338 452 350Q432 360 412 350Q393 338 392 315ZM168 211Q170 189 192 187Q214 189 216 211V243H248Q270 245 272 267Q270 289 248 291H216V323Q214 345 192 347Q170 345 168 323V291H136Q114 289 112 267Q114 245 136 243H168V211Z'],
+ community: [640, 'M72 99Q73 67 100 51Q128 35 156 51Q183 67 184 99Q183 131 156 147Q128 163 100 147Q73 131 72 99ZM64 257Q49 274 48 299Q49 324 64 341V257ZM208 207Q162 249 160 315Q161 367 192 406V427Q192 441 183 450Q174 459 160 459H96Q82 459 73 450Q64 441 64 427V400Q35 386 18 360Q0 333 0 299Q1 251 33 220Q64 188 112 187H144Q181 188 208 207ZM448 427V406V427V406Q479 367 480 315Q478 249 432 207Q459 188 496 187H528Q576 188 607 220Q639 251 640 299Q640 333 622 360Q605 386 576 400V427Q576 441 567 450Q558 459 544 459H480Q466 459 457 450Q448 441 448 427ZM456 99Q457 67 484 51Q512 35 540 51Q567 67 568 99Q567 131 540 147Q512 163 484 147Q457 131 456 99ZM576 257V341V257V341Q592 324 592 299Q592 274 576 257ZM320 43Q356 44 375 75Q393 107 375 139Q356 170 320 171Q284 170 265 139Q247 107 265 75Q284 44 320 43ZM240 315Q241 340 256 357V273Q241 290 240 315ZM384 273V357V273V357Q400 340 400 315Q400 290 384 273ZM448 315Q448 349 430 376Q413 402 384 416V459Q384 473 375 482Q366 491 352 491H288Q274 491 265 482Q256 473 256 459V416Q227 402 210 376Q192 349 192 315Q193 267 225 236Q256 204 304 203H336Q384 204 415 236Q447 267 448 315Z'],
+ chat: [640, 'M208 363Q296 361 355 311Q414 262 416 187Q414 112 355 63Q296 13 208 11Q120 13 61 63Q2 112 0 187Q1 246 40 290Q34 305 25 315Q18 324 12 329Q9 332 8 333Q7 334 7 334H6Q-2 341 1 352Q5 362 16 363Q50 362 78 351Q92 345 103 339Q150 362 208 363ZM448 187Q445 273 384 329Q322 385 232 394Q251 451 305 486Q359 522 432 523Q490 522 537 499Q548 505 562 511Q590 522 624 523Q635 522 639 512Q642 501 633 494Q633 494 633 493Q632 493 632 493Q631 492 628 489Q622 484 615 475Q606 464 600 450Q639 406 640 347Q638 276 584 227Q530 178 447 171Q448 179 448 187Z'],
+ codes: [640, 'M393 12Q380 9 368 15Q357 21 353 34L225 482Q222 495 228 507Q234 518 247 522Q260 525 272 519Q283 513 287 500L415 52Q418 39 412 27Q406 16 393 12ZM473 132Q464 142 464 155Q464 168 473 178L563 267L473 356Q464 366 464 379Q464 392 473 402Q483 411 496 411Q509 411 519 402L631 290Q640 280 640 267Q640 254 631 244L519 132Q509 123 496 123Q483 123 473 132ZM167 132Q157 123 144 123Q131 123 121 132L9 244Q0 254 0 267Q0 280 9 290L121 402Q131 411 144 411Q157 411 167 402Q176 392 176 379Q176 366 167 356L77 267L167 178Q176 168 176 155Q176 142 167 132Z'],
+ code: [640, 'M393 12Q380 9 368 15Q357 21 353 34L225 482Q222 495 228 507Q234 518 247 522Q260 525 272 519Q283 513 287 500L415 52Q418 39 412 27Q406 16 393 12ZM473 132Q464 142 464 155Q464 168 473 178L563 267L473 356Q464 366 464 379Q464 392 473 402Q483 411 496 411Q509 411 519 402L631 290Q640 280 640 267Q640 254 631 244L519 132Q509 123 496 123Q483 123 473 132ZM167 132Q157 123 144 123Q131 123 121 132L9 244Q0 254 0 267Q0 280 9 290L121 402Q131 411 144 411Q157 411 167 402Q176 392 176 379Q176 366 167 356L77 267L167 178Q176 168 176 155Q176 142 167 132Z'],
+ blog: [512, 'M368 29 313 85 368 29 313 85 438 210 494 155Q510 137 510 115Q510 93 494 75L448 29Q430 13 408 13Q386 13 368 29ZM288 106 279 108 288 106 279 108 135 152Q104 162 92 193L4 457Q-2 475 11 489L165 336Q160 326 160 315Q161 295 174 281Q188 268 208 267Q228 268 242 281Q255 295 256 315Q255 335 242 349Q228 362 208 363Q197 363 187 358L34 512Q48 525 66 519L330 431Q361 419 371 388L415 244L417 235L288 106Z'],
+ wiki: [448, 'M96 11Q55 12 28 39Q1 66 0 107V427Q1 468 28 495Q55 522 96 523H384H416Q430 523 439 514Q448 505 448 491Q448 477 439 468Q430 459 416 459V395Q430 395 439 386Q448 377 448 363V43Q448 29 439 20Q430 11 416 11H384ZM96 395H352H96H352V459H96Q82 459 73 450Q64 441 64 427Q64 413 73 404Q82 395 96 395ZM128 155Q129 140 144 139H336Q351 140 352 155Q351 170 336 171H144Q129 170 128 155ZM144 203H336H144H336Q351 204 352 219Q351 234 336 235H144Q129 234 128 219Q129 204 144 203Z'],
+ news: [512, 'M96 107Q97 80 115 62Q133 44 160 43H448Q475 44 493 62Q511 80 512 107V427Q511 454 493 472Q475 490 448 491H80Q46 490 23 468Q1 445 0 411V139Q0 125 9 116Q18 107 32 107Q46 107 55 116Q64 125 64 139V411Q65 426 80 427Q95 426 96 411V107ZM160 131V211V131V211Q162 233 184 235H296Q318 233 320 211V131Q318 109 296 107H184Q162 109 160 131ZM368 123Q369 138 384 139H432Q447 138 448 123Q447 108 432 107H384Q369 108 368 123ZM368 219Q369 234 384 235H432Q447 234 448 219Q447 204 432 203H384Q369 204 368 219ZM160 315Q161 330 176 331H432Q447 330 448 315Q447 300 432 299H176Q161 300 160 315ZM160 411Q161 426 176 427H432Q447 426 448 411Q447 396 432 395H176Q161 396 160 411Z'],
+ reviews: [576, 'M317 29Q308 12 288 11Q269 12 259 29L195 161L51 183Q32 186 26 204Q20 223 34 237L138 340L113 486Q111 505 126 517Q142 528 160 519L288 451L417 519Q434 528 450 517Q466 505 463 486L439 340L543 237Q556 223 551 204Q544 186 525 183L381 161L317 29Z'],
+ tips: [512, 'M512 91Q511 118 474 139Q428 164 351 170Q346 167 340 165Q279 140 192 139Q180 139 168 140L166 139Q129 118 128 91Q130 57 184 34Q238 12 320 11Q402 12 456 34Q510 57 512 91ZM161 172Q176 171 192 171Q239 171 278 180Q318 188 345 202Q383 223 384 251Q384 257 382 263Q374 283 347 298Q347 298 347 298Q347 298 347 298Q347 298 347 298Q347 298 347 298Q346 299 346 299Q346 299 346 299Q319 314 279 322Q240 331 192 331Q100 330 44 302Q41 300 38 299Q1 278 0 251Q1 224 36 204Q71 184 128 176Q144 173 161 172ZM416 251Q414 218 392 198Q435 191 468 177Q493 167 512 152V187Q511 217 468 238Q446 249 416 256Q416 256 416 256Q416 254 416 251ZM384 347Q383 374 346 395Q344 396 342 397Q341 397 340 398Q284 426 192 427Q144 427 105 418Q65 410 38 395Q1 374 0 347V312Q19 327 44 337Q105 362 192 363Q279 362 340 337Q352 332 363 326Q372 321 380 315Q381 314 383 313Q383 312 384 312V315V321V347ZM416 347V315V347V315V289Q445 283 468 273Q493 263 512 248V283Q512 299 497 314Q471 339 416 352Q416 350 416 347ZM192 459Q279 458 340 433Q365 423 384 408V443Q382 477 328 500Q274 522 192 523Q110 522 56 500Q2 477 0 443V408Q19 423 44 433Q105 458 192 459Z'],
+ vip: [576, 'M309 117Q327 105 328 83Q328 66 316 55Q305 43 288 43Q271 43 260 55Q248 66 248 83Q249 106 267 117L210 232Q202 245 188 249Q174 252 161 242L72 171Q80 161 80 147Q80 130 68 119Q57 107 40 107Q23 107 12 119Q0 130 0 147Q0 164 12 175Q23 187 40 187Q40 187 40 187Q41 187 41 187L86 438Q91 462 108 476Q126 491 149 491H427Q450 491 468 476Q485 462 490 438L535 187Q535 187 536 187Q536 187 536 187Q553 187 564 175Q576 164 576 147Q576 130 564 119Q553 107 536 107Q519 107 508 119Q496 130 496 147Q496 161 504 171L415 242Q402 252 388 249Q374 245 366 232L309 117Z'],
+ trade: [512, 'M64 75Q64 61 55 52Q46 43 32 43Q18 43 9 52Q0 61 0 75V411Q1 445 23 468Q46 490 80 491H480Q494 491 503 482Q512 473 512 459Q512 445 503 436Q494 427 480 427H80Q65 426 64 411V75ZM471 162Q480 152 480 139Q480 126 471 116Q461 107 448 107Q435 107 425 116L320 222L263 164Q253 155 240 155Q227 155 217 164L105 276Q96 286 96 299Q96 312 105 322Q115 331 128 331Q141 331 151 322L240 232L297 290Q307 299 320 299Q333 299 343 290L471 162Z'],
+ host: [512, 'M64 43Q37 44 19 62Q1 80 0 107V171Q1 198 19 216Q37 234 64 235H448Q475 234 493 216Q511 198 512 171V107Q511 80 493 62Q475 44 448 43H64ZM344 115Q366 117 368 139Q366 161 344 163Q322 161 320 139Q322 117 344 115ZM392 139Q394 117 416 115Q438 117 440 139Q438 161 416 163Q394 161 392 139ZM64 299Q37 300 19 318Q1 336 0 363V427Q1 454 19 472Q37 490 64 491H448Q475 490 493 472Q511 454 512 427V363Q511 336 493 318Q475 300 448 299H64ZM344 371Q366 373 368 395Q366 417 344 419Q322 417 320 395Q322 373 344 371ZM400 395Q402 373 424 371Q446 373 448 395Q446 417 424 419Q402 417 400 395Z'],
+ deals: [448, 'M0 91V241V91V241Q0 267 19 286L195 462Q214 481 240 481Q265 481 285 462L419 328Q437 309 437 283Q437 258 419 238L243 62Q224 43 197 43H48Q28 44 14 57Q1 71 0 91ZM112 123Q126 123 135 132Q144 141 144 155Q144 169 135 178Q126 187 112 187Q98 187 89 178Q80 169 80 155Q80 141 89 132Q98 123 112 123Z'],
+ coupons: [576, 'M64 75Q37 76 19 94Q1 112 0 139V203Q2 217 16 222Q46 233 48 267Q46 301 16 312Q2 317 0 331V395Q1 422 19 440Q37 458 64 459H512Q539 458 557 440Q575 422 576 395V331Q574 317 560 312Q530 301 528 267Q530 233 560 222Q574 217 576 203V139Q575 112 557 94Q539 76 512 75H64ZM128 187V347V187V347Q129 362 144 363H432Q447 362 448 347V187Q447 172 432 171H144Q129 172 128 187ZM96 171Q96 157 105 148Q114 139 128 139H448Q462 139 471 148Q480 157 480 171V363Q480 377 471 386Q462 395 448 395H128Q114 395 105 386Q96 377 96 363V171Z'],
+ stream: [512, 'M192 43Q192 29 201 20Q210 11 224 11Q304 12 369 50Q434 89 473 154Q511 219 512 299Q512 313 503 322Q494 331 480 331Q466 331 457 322Q448 313 448 299Q447 236 417 186Q388 135 337 106Q287 76 224 75Q210 75 201 66Q192 57 192 43ZM61 232 165 336 61 232 165 336 193 307Q192 303 192 299Q192 285 201 276Q210 267 224 267Q238 267 247 276Q256 285 256 299Q256 313 247 322Q238 331 224 331Q220 331 216 330L187 358L291 462Q302 474 300 488Q298 502 284 509Q249 523 208 523Q120 521 61 462Q2 403 0 315Q0 274 14 239Q21 225 35 223Q49 221 61 232ZM224 107Q306 109 360 163Q414 217 416 299Q416 313 407 322Q398 331 384 331Q370 331 361 322Q352 313 352 299Q351 245 315 208Q278 172 224 171Q210 171 201 162Q192 153 192 139Q192 125 201 116Q210 107 224 107Z'],
+ video: [576, 'M0 139Q1 112 19 94Q37 76 64 75H320Q347 76 365 94Q383 112 384 139V395Q383 422 365 440Q347 458 320 459H64Q37 458 19 440Q1 422 0 395V139ZM559 111Q575 120 576 139V395Q575 414 559 423Q542 432 526 422L430 358L416 348V331V203V186L430 176L526 112Q542 103 559 111Z'],
+ download: [512, 'M288 43Q288 29 279 20Q270 11 256 11Q242 11 233 20Q224 29 224 43V286L151 212Q141 203 128 203Q115 203 105 212Q96 222 96 235Q96 248 105 258L233 386Q243 395 256 395Q269 395 279 386L407 258Q416 248 416 235Q416 222 407 212Q397 203 384 203Q371 203 361 212L288 286V43ZM64 363Q37 364 19 382Q1 400 0 427V459Q1 486 19 504Q37 522 64 523H448Q475 522 493 504Q511 486 512 459V427Q511 400 493 382Q475 364 448 363H347L301 408Q281 427 256 427Q230 427 211 408L166 363H64ZM432 419Q454 421 456 443Q454 465 432 467Q410 465 408 443Q410 421 432 419Z'],
+ upload: [512, 'M288 120V363V120V363Q288 377 279 386Q270 395 256 395Q242 395 233 386Q224 377 224 363V120L151 194Q141 203 128 203Q115 203 105 194Q96 184 96 171Q96 158 105 148L233 20Q243 11 256 11Q269 11 279 20L407 148Q416 158 416 171Q416 184 407 194Q397 203 384 203Q371 203 361 194L288 120ZM64 363H192H64H192Q193 390 211 408Q229 426 256 427Q283 426 301 408Q319 390 320 363H448Q475 364 493 382Q511 400 512 427V459Q511 486 493 504Q475 522 448 523H64Q37 522 19 504Q1 486 0 459V427Q1 400 19 382Q37 364 64 363ZM432 467Q454 465 456 443Q454 421 432 419Q410 421 408 443Q410 465 432 467Z'],
+ image: [512, 'M0 107Q1 80 19 62Q37 44 64 43H448Q475 44 493 62Q511 80 512 107V427Q511 454 493 472Q475 490 448 491H64Q37 490 19 472Q1 454 0 427V107ZM324 214Q316 203 304 203Q291 203 284 214L197 341L171 308Q163 299 152 299Q141 299 133 308L69 388Q61 400 66 413Q73 426 88 427H184H424Q438 427 445 414Q451 401 444 390L324 214ZM112 203Q139 202 154 179Q166 155 154 131Q139 108 112 107Q85 108 70 131Q58 155 70 179Q85 202 112 203Z'],
+ audio: [512, 'M499 17Q512 27 512 43V115V379Q511 413 484 436Q457 458 416 459Q375 458 348 436Q321 413 320 379Q321 345 348 322Q375 300 416 299Q433 299 448 304V158L192 235V443Q191 477 164 500Q137 522 96 523Q55 522 28 500Q1 477 0 443Q1 409 28 386Q55 364 96 363Q113 363 128 368V211V139Q129 116 151 108L471 12Q486 8 499 17Z'],
+ pdf: [512, 'M0 75Q1 48 19 30Q37 12 64 11H224V139Q224 153 233 162Q242 171 256 171H384V315H176Q149 316 131 334Q113 352 112 379V523H64Q37 522 19 504Q1 486 0 459V75ZM384 139H256H384H256V11L384 139ZM176 363H208H176H208Q232 364 248 379Q263 395 264 419Q263 443 248 459Q232 474 208 475H192V507Q191 522 176 523Q161 522 160 507V459V379Q161 364 176 363ZM208 443Q230 441 232 419Q230 397 208 395H192V443H208ZM304 363H336H304H336Q356 364 370 377Q383 391 384 411V475Q383 495 370 509Q356 522 336 523H304Q289 522 288 507V379Q289 364 304 363ZM336 491Q351 490 352 475V411Q351 396 336 395H320V491H336ZM416 379Q417 364 432 363H480Q495 364 496 379Q495 394 480 395H448V427H480Q495 428 496 443Q495 458 480 459H448V507Q447 522 432 523Q417 522 416 507V443V379Z'],
+ docs: [384, 'M64 11Q37 12 19 30Q1 48 0 75V459Q1 486 19 504Q37 522 64 523H320Q347 522 365 504Q383 486 384 459V171H256Q242 171 233 162Q224 153 224 139V11H64ZM256 11V139V11V139H384L256 11ZM112 267H272H112H272Q287 268 288 283Q287 298 272 299H112Q97 298 96 283Q97 268 112 267ZM112 331H272H112H272Q287 332 288 347Q287 362 272 363H112Q97 362 96 347Q97 332 112 331ZM112 395H272H112H272Q287 396 288 411Q287 426 272 427H112Q97 426 96 411Q97 396 112 395Z'],
+ text: [448, 'M254 64Q245 44 224 43Q203 44 194 64L58 427H32Q18 427 9 436Q0 445 0 459Q0 473 9 482Q18 491 32 491H128Q142 491 151 482Q160 473 160 459Q160 445 151 436Q142 427 128 427H126L144 379H304L322 427H320Q306 427 297 436Q288 445 288 459Q288 473 297 482Q306 491 320 491H416Q430 491 439 482Q448 473 448 459Q448 445 439 436Q430 427 416 427H390L254 64ZM280 315H168H280H168L224 166L280 315Z'],
+ dns: [512, 'M352 267Q352 300 349 331H163Q160 300 160 267Q160 234 163 203H349Q352 234 352 267ZM381 203H504H381H504Q512 234 512 267Q512 300 504 331H381Q384 300 384 267Q384 234 381 203ZM493 171H377H493H377Q361 73 321 19Q381 36 426 75Q470 115 493 171ZM344 171H168H344H168Q177 116 195 76Q211 41 228 25Q245 10 256 11Q267 10 284 25Q301 41 317 76Q335 116 344 171ZM135 171H19H135H19Q42 115 86 75Q131 36 191 19Q151 73 135 171ZM8 203H131H8H131Q128 234 128 267Q128 300 131 331H8Q0 300 0 267Q0 234 8 203ZM195 458Q177 418 168 363H344Q335 418 317 458Q301 493 284 509Q267 524 256 523Q245 524 228 509Q211 493 195 458ZM135 363Q151 461 191 515Q131 498 86 459Q42 419 19 363H135ZM493 363Q470 419 426 459Q381 498 322 515Q361 461 377 363H493Z'],
+ ip: [384, 'M216 510Q243 477 282 421Q321 366 352 307Q382 248 384 203Q382 121 328 67Q274 13 192 11Q110 13 56 67Q2 121 0 203Q2 248 32 307Q63 366 102 421Q141 477 168 510Q178 522 192 522Q206 522 216 510ZM192 139Q228 140 247 171Q265 203 247 235Q228 266 192 267Q156 266 137 235Q119 203 137 171Q156 140 192 139Z'],
+ ssl: [448, 'M144 155V203V155V203H304V155Q303 121 281 98Q258 76 224 75Q190 76 167 98Q145 121 144 155ZM80 203V155V203V155Q82 94 122 53Q163 13 224 11Q285 13 326 53Q366 94 368 155V203H384Q411 204 429 222Q447 240 448 267V459Q447 486 429 504Q411 522 384 523H64Q37 522 19 504Q1 486 0 459V267Q1 240 19 222Q37 204 64 203H80Z'],
+ ping: [640, 'M128 75Q128 61 137 52Q146 43 160 43H320Q334 43 343 52Q352 61 352 75V427H448V267Q448 253 457 244Q466 235 480 235H608Q622 235 631 244Q640 253 640 267Q640 281 631 290Q622 299 608 299H512V459Q512 473 503 482Q494 491 480 491H320Q306 491 297 482Q288 473 288 459V107H192V267Q192 281 183 290Q174 299 160 299H32Q18 299 9 290Q0 281 0 267Q0 253 9 244Q18 235 32 235H128V75Z'],
+ whois: [512, 'M416 219Q415 289 376 342L503 468Q512 478 512 491Q512 504 503 514Q493 523 480 523Q467 523 457 514L331 387Q278 426 208 427Q120 425 61 366Q2 307 0 219Q2 131 61 72Q120 13 208 11Q296 13 355 72Q414 131 416 219ZM208 363Q247 363 280 344Q313 325 333 291Q352 257 352 219Q352 181 333 147Q313 113 280 94Q247 75 208 75Q169 75 136 94Q103 113 83 147Q64 181 64 219Q64 257 83 291Q103 325 136 344Q169 363 208 363Z'],
+ search: [512, 'M416 219Q415 289 376 342L503 468Q512 478 512 491Q512 504 503 514Q493 523 480 523Q467 523 457 514L331 387Q278 426 208 427Q120 425 61 366Q2 307 0 219Q2 131 61 72Q120 13 208 11Q296 13 355 72Q414 131 416 219ZM208 363Q247 363 280 344Q313 325 333 291Q352 257 352 219Q352 181 333 147Q313 113 280 94Q247 75 208 75Q169 75 136 94Q103 113 83 147Q64 181 64 219Q64 257 83 291Q103 325 136 344Q169 363 208 363Z'],
+ map: [576, 'M384 487 192 432 384 487 192 432V47L384 102V487ZM416 486V99V486V99L543 49Q556 44 565 51Q575 58 576 71V406Q575 421 561 428L416 486ZM15 106 160 48 15 106 160 48V435L33 486Q20 490 11 483Q1 476 0 463V128Q1 113 15 106Z'],
+ food: [448, 'M416 11Q406 10 376 25Q345 39 318 77Q290 116 288 187V299Q289 326 307 344Q325 362 352 363H384V491Q384 505 393 514Q402 523 416 523Q430 523 439 514Q448 505 448 491V363V251V43Q448 29 439 20Q430 11 416 11ZM64 27Q63 14 50 11Q36 11 32 24L2 160Q0 169 0 179Q1 214 23 238Q46 263 80 267V491Q80 505 89 514Q98 523 112 523Q126 523 135 514Q144 505 144 491V267Q178 263 201 238Q223 214 224 179Q224 169 222 160L192 24Q188 11 174 11Q161 14 160 27V161Q159 170 150 171Q142 170 140 162L128 26Q126 12 112 11Q98 12 96 26L84 162Q82 170 74 171Q65 170 64 161V27ZM112 179V178V179Z'],
+ paste: [512, 'M160 11Q123 13 105 43H48Q28 44 14 57Q1 71 0 91V411Q1 431 14 445Q28 458 48 459H192V187Q193 153 215 130Q238 108 272 107H320V91Q319 71 306 57Q292 44 272 43H215Q197 13 160 11ZM272 139Q252 140 238 153Q225 167 224 187V459V475Q225 495 238 509Q252 522 272 523H464Q484 522 498 509Q511 495 512 475V255Q512 235 498 221L430 153Q416 139 396 139H320ZM160 51Q182 53 184 75Q182 97 160 99Q138 97 136 75Q138 53 160 51Z'],
+ account: [448, 'M224 267Q259 267 288 250Q317 233 335 203Q352 173 352 139Q352 105 335 75Q317 45 288 28Q259 11 224 11Q189 11 160 28Q131 45 113 75Q96 105 96 139Q96 173 113 203Q131 233 160 250Q189 267 224 267ZM178 315Q103 317 52 367Q2 418 0 493Q0 506 9 514Q17 523 30 523H418Q431 523 439 514Q448 506 448 493Q446 418 396 367Q345 317 270 315H178Z'],
+ bell: [448, 'M224 11Q210 11 201 20Q192 29 192 43V62Q136 74 101 117Q65 160 64 219V238Q63 310 16 365L8 374Q-5 389 3 408Q12 426 32 427H416Q436 426 445 408Q453 389 440 374L433 365Q385 311 384 238V219Q383 160 347 117Q312 74 256 62V43Q256 29 247 20Q238 11 224 11ZM269 504Q288 485 288 459H224H160Q160 485 179 504Q198 523 224 523Q250 523 269 504Z'],
+ history: [512, 'M75 86 41 52 75 86 41 52Q29 41 15 47Q1 52 0 69V179Q2 201 24 203H134Q151 202 156 188Q162 174 151 162L120 131Q174 77 256 75Q338 77 392 131Q446 185 448 267Q446 349 392 403Q338 457 256 459Q194 458 146 425Q135 417 122 419Q110 422 102 433Q94 444 96 456Q99 469 110 477Q173 522 256 523Q328 522 385 488Q443 454 477 396Q511 339 512 267Q511 195 477 138Q443 80 385 46Q328 12 256 11Q203 11 156 31Q110 51 75 86ZM256 139Q234 141 232 163V267Q232 277 239 284L311 356Q328 370 345 356Q359 339 345 322L280 257V163Q278 141 256 139Z'],
+ theme: [512, 'M512 267Q512 268 512 268Q512 269 512 270Q511 297 490 314Q470 331 442 331H344Q324 332 310 345Q297 359 296 379Q296 384 297 389Q300 403 307 417Q307 418 308 419Q318 439 320 461Q320 485 305 503Q291 521 267 523Q261 523 256 523Q184 522 127 488Q69 454 35 396Q1 339 0 267Q1 195 35 138Q69 80 127 46Q184 12 256 11Q328 12 385 46Q443 80 477 138Q511 195 512 267ZM128 299Q128 285 119 276Q110 267 96 267Q82 267 73 276Q64 285 64 299Q64 313 73 322Q82 331 96 331Q110 331 119 322Q128 313 128 299ZM128 203Q142 203 151 194Q160 185 160 171Q160 157 151 148Q142 139 128 139Q114 139 105 148Q96 157 96 171Q96 185 105 194Q114 203 128 203ZM288 107Q288 93 279 84Q270 75 256 75Q242 75 233 84Q224 93 224 107Q224 121 233 130Q242 139 256 139Q270 139 279 130Q288 121 288 107ZM384 203Q398 203 407 194Q416 185 416 171Q416 157 407 148Q398 139 384 139Q370 139 361 148Q352 157 352 171Q352 185 361 194Q370 203 384 203Z'],
+ check: [448, 'M439 116Q448 126 448 139Q448 152 439 162L183 418Q173 427 160 427Q147 427 137 418L9 290Q0 280 0 267Q0 254 9 244Q19 235 32 235Q45 235 55 244L160 350L393 116Q403 107 416 107Q429 107 439 116Z'],
+ error: [512, 'M256 43Q279 44 291 63L507 431Q517 451 507 471Q495 490 472 491H40Q17 490 5 471Q-5 451 5 431L222 63Q234 44 256 43ZM256 171Q234 173 232 195V307Q234 329 256 331Q278 329 280 307V195Q278 173 256 171ZM288 395Q288 381 279 372Q270 363 256 363Q242 363 233 372Q224 381 224 395Q224 409 233 418Q242 427 256 427Q270 427 279 418Q288 409 288 395Z'],
+ clip: [512, 'M256 203 217 164 256 203 217 164Q224 145 224 123Q223 75 191 44Q160 12 112 11Q64 12 33 44Q1 75 0 123Q1 171 33 202Q64 234 112 235Q134 235 153 228L192 267L153 307Q134 299 112 299Q64 300 33 332Q1 363 0 411Q1 459 33 490Q64 522 112 523Q160 522 191 490Q223 459 224 411Q224 389 217 371L499 88Q510 75 499 62Q477 41 448 41Q419 41 397 62L256 203ZM279 354 397 472 279 354 397 472Q419 493 448 493Q477 493 499 472Q510 459 499 446L343 290L279 354ZM64 123Q65 96 88 81Q112 69 136 81Q159 96 160 123Q159 150 136 165Q112 177 88 165Q65 150 64 123ZM112 363Q139 364 154 387Q166 411 154 435Q139 458 112 459Q85 458 70 435Q58 411 70 387Q85 364 112 363Z'],
+ };
+ // END generated solid glyphs
+ // A glyph drawn as a solid Font Awesome path, fitted to the 24-box the stroke glyphs use.
+ // Names without a solid twin keep their stroke glyph (the brand "V", YouTube, logo, ...).
+ function glyphMarkup(key, def, forSprite) {
+ const solid = SOLID[key];
+ if (!solid) return forSprite ? def.glyph : `<g class="ovi-glyph">${def.glyph}</g>`;
+ const [w, d] = solid; const sc = 18 / 512; const tx = (24 - w * sc) / 2, ty = 3;
+ const paint = forSprite ? ' fill="currentColor" stroke="none" style="fill:var(--ovi-glyph,var(--text-primary,#e6edf7))"' : '';
+ return `<g class="ovi-glyph ovi-glyph--solid"${paint} transform="translate(${tx.toFixed(2)} ${ty}) scale(${sc.toFixed(5)})"><path d="${d}"/></g>`;
+ }
+
function resolve(name) {
function resolve(name) {
const n = String(name || 'ov').toLowerCase();
const n = String(name || 'ov').toLowerCase();
return registry[n] ? n : (registry[ALIASES[n]] ? ALIASES[n] : 'ov');
return registry[n] ? n : (registry[ALIASES[n]] ? ALIASES[n] : 'ov');
@@ -126,7 +186,7 @@
@@ -126,7 +186,7 @@
const key = resolve(name); const def = registry[key];
const key = resolve(name); const def = registry[key];
const off = def.offset || OFFSETS[key] || [0, 0]; // measured optical centring, see scripts/measure-icons.js
const off = def.offset || OFFSETS[key] || [0, 0]; // measured optical centring, see scripts/measure-icons.js
const s = size ? ` width="${size}" height="${size}"` : '';
const s = size ? ` width="${size}" height="${size}"` : '';
- return `<svg viewBox="0 0 48 48"${s} aria-hidden="true" focusable="false"><circle class="ovi-bg" cx="24" cy="24" r="21"/><circle class="ovi-ring" cx="24" cy="24" r="20"/><circle class="ovi-comet" cx="24" cy="24" r="20"/><circle class="ovi-prog" cx="24" cy="24" r="20"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)"><g class="ovi-glyph">${def.glyph}</g></g></svg>`;
+ return `<svg viewBox="0 0 48 48"${s} aria-hidden="true" focusable="false"><circle class="ovi-bg" cx="24" cy="24" r="21"/><circle class="ovi-ring" cx="24" cy="24" r="20"/><circle class="ovi-comet" cx="24" cy="24" r="20"/><circle class="ovi-prog" cx="24" cy="24" r="20"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)">${glyphMarkup(key, def, false)}</g></svg>`;
}
}
// ── Sprite mode (server-rendered lists) ──────────────────────────────────────────────
// ── Sprite mode (server-rendered lists) ──────────────────────────────────────────────
@@ -138,7 +198,7 @@
@@ -138,7 +198,7 @@
const seen = new Set();
const seen = new Set();
const symbols = (names || []).map(resolve).filter(n => !seen.has(n) && seen.add(n)).map((key) => {
const symbols = (names || []).map(resolve).filter(n => !seen.has(n) && seen.add(n)).map((key) => {
const def = registry[key]; const off = def.offset || OFFSETS[key] || [0, 0];
const def = registry[key]; const off = def.offset || OFFSETS[key] || [0, 0];
- return `<symbol id="ovi-${key}" viewBox="0 0 48 48"><circle cx="24" cy="24" r="21" fill="currentColor" opacity=".1"/><circle cx="24" cy="24" r="20" fill="none" stroke="currentColor" stroke-width="2.4" opacity=".3"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)" fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" style="stroke:var(--ovi-glyph,var(--text-primary,#e6edf7))">${def.glyph}</g></symbol>`;
+ return `<symbol id="ovi-${key}" viewBox="0 0 48 48"><circle cx="24" cy="24" r="21" fill="currentColor" opacity=".1"/><circle cx="24" cy="24" r="20" fill="none" stroke="currentColor" stroke-width="2.4" opacity=".3"/><g transform="translate(${(13 + off[0] * .9167).toFixed(2)} ${(13 + off[1] * .9167).toFixed(2)}) scale(.9167)" fill="none" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" style="stroke:var(--ovi-glyph,var(--text-primary,#e6edf7))">${glyphMarkup(key, def, true)}</g></symbol>`;
}).join('');
}).join('');
return `<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">${symbols}</svg>`;
return `<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">${symbols}</svg>`;
}
}
@@ -27,7 +27,23 @@ fa-arrow-up-right-from-square fa-chevron-down fa-chevron-right fa-bars fa-xmark
@@ -27,7 +27,23 @@ fa-arrow-up-right-from-square fa-chevron-down fa-chevron-right fa-bars fa-xmark
fa-circle-half-stroke fa-moon fa-sun fa-file-pdf fa-arrow-down fa-arrow-right fa-clock fa-envelope fa-star
fa-circle-half-stroke fa-moon fa-sun fa-file-pdf fa-arrow-down fa-arrow-right fa-clock fa-envelope fa-star
fa-heart fa-play fa-circle-info fa-triangle-exclamation fa-check fa-globe fa-code fa-robot fa-photo-film
fa-heart fa-play fa-circle-info fa-triangle-exclamation fa-check fa-globe fa-code fa-robot fa-photo-film
fa-tower-cell fa-diagram-project fa-toolbox fa-comment-dots fa-money-bill-wave fa-crown fa-server fa-newspaper
fa-tower-cell fa-diagram-project fa-toolbox fa-comment-dots fa-money-bill-wave fa-crown fa-server fa-newspaper
-fa-tag fa-ticket fa-chart-line fa-pen-nib fa-key fa-plug fa-bolt fa-satellite-dish fa-brain fa-microchip""".split()
+fa-tag fa-ticket fa-chart-line fa-pen-nib fa-key fa-plug fa-bolt fa-satellite-dish fa-brain fa-microchip
+fa-circle-nodes fa-download fa-upload fa-image fa-music fa-file-lines fa-font fa-location-dot fa-lock fa-wave-square
+fa-map fa-utensils fa-user-shield""".split()
+# ov-icons.js glyph name -> Font Awesome solid icon (names without a twin keep their stroke glyph)
+OV_SOLID = {
+ 'network': 'fa-circle-nodes', 'live': 'fa-tower-broadcast', 'tools': 'fa-screwdriver-wrench', 'media': 'fa-photo-film',
+ 'games': 'fa-gamepad', 'community': 'fa-people-group', 'chat': 'fa-comments', 'codes': 'fa-code', 'code': 'fa-code',
+ 'blog': 'fa-pen-nib', 'wiki': 'fa-book', 'news': 'fa-newspaper', 'reviews': 'fa-star', 'tips': 'fa-coins', 'vip': 'fa-crown',
+ 'trade': 'fa-chart-line', 'host': 'fa-server', 'deals': 'fa-tag', 'coupons': 'fa-ticket', 'stream': 'fa-satellite-dish',
+ 'video': 'fa-video', 'download': 'fa-download', 'upload': 'fa-upload', 'image': 'fa-image', 'audio': 'fa-music',
+ 'pdf': 'fa-file-pdf', 'docs': 'fa-file-lines', 'text': 'fa-font', 'dns': 'fa-globe', 'ip': 'fa-location-dot',
+ 'ssl': 'fa-lock', 'ping': 'fa-wave-square', 'whois': 'fa-magnifying-glass', 'search': 'fa-magnifying-glass', 'map': 'fa-map',
+ 'food': 'fa-utensils', 'paste': 'fa-paste', 'account': 'fa-user', 'bell': 'fa-bell', 'history': 'fa-clock-rotate-left',
+ 'theme': 'fa-palette', 'check': 'fa-check', 'error': 'fa-triangle-exclamation', 'clip': 'fa-scissors',
+}
+OVICONS = HERE.parent / 'ov-icons.js'
+OV_START, OV_END = ' // BEGIN generated solid glyphs (scripts/build-nav-icons.py)', ' // END generated solid glyphs'
def main():
def main():
ap = argparse.ArgumentParser()
ap = argparse.ArgumentParser()
@@ -60,5 +76,13 @@ def main():
@@ -60,5 +76,13 @@ def main():
i, j = src.index(START), src.index(END) + len(END)
i, j = src.index(START), src.index(END) + len(END)
NAVBAR.write_text(src[:i] + '\n'.join(js) + src[j:], encoding='utf-8')
NAVBAR.write_text(src[:i] + '\n'.join(js) + src[j:], encoding='utf-8')
print(f'wrote {len(out)} icons; missing: {missing or "none"}')
print(f'wrote {len(out)} icons; missing: {missing or "none"}')
+ ov = [OV_START, " // Font Awesome Free 6 solid glyphs (CC BY 4.0) for the ring icons; viewBox 0 0 <w> 512.", " const SOLID = {"]
+ for name, fa in OV_SOLID.items():
+ if fa in out: w, d = out[fa]; ov.append(f" {name}: [{w}, '{d}'],")
+ ov += [" };", OV_END]
+ src = OVICONS.read_text(encoding='utf-8')
+ i, j = src.index(OV_START), src.index(OV_END) + len(OV_END)
+ OVICONS.write_text(src[:i] + '\n'.join(ov) + src[j:], encoding='utf-8')
+ print(f'ov-icons: {sum(1 for fa in OV_SOLID.values() if fa in out)} solid glyphs')
if __name__ == '__main__': main()
if __name__ == '__main__': main()