Compare commits

...

7 Commits

Author SHA1 Message Date
429Enjoyer 0c3a7b70af v7.1.7 2026-05-20 05:56:51 +07:00
429Enjoyer 254022d81d .clean up the code 2026-05-20 05:56:16 +07:00
429Enjoyer b3ebef5ab9 v7.1.1 2026-05-20 05:53:45 +07:00
afkarxyz 0093df6016 v7.1.6 2026-04-26 07:33:40 +07:00
afkarxyz 30cbcf8ab1 v7.1.5 2026-04-19 23:16:15 +07:00
afkarxyz 7346730be9 v7.1.4 2026-04-14 07:36:41 +07:00
afkarxyz 59a057b14a Update README 2026-04-03 12:46:16 +07:00
364 changed files with 18138 additions and 2723 deletions
+1
View File
@@ -1 +1,2 @@
ko_fi: afkarxyz
patreon: afkarxyz
+42 -14
View File
@@ -175,8 +175,28 @@ jobs:
retention-days: 7
build-linux:
name: Build Linux
runs-on: ubuntu-24.04
name: Build Linux (${{ matrix.display_name }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- display_name: amd64
runner: ubuntu-24.04
wails_platform: linux/amd64
artifact_name: linux-portable
output_name: SpotiFLAC.AppImage
appimage_arch: x86_64
appimagetool_arch: x86_64
pkgconfig_dir: /usr/lib/x86_64-linux-gnu/pkgconfig
- display_name: arm64
runner: ubuntu-24.04-arm
wails_platform: linux/arm64
artifact_name: linux-portable-arm
output_name: SpotiFLAC-ARM.AppImage
appimage_arch: aarch64
appimagetool_arch: aarch64
pkgconfig_dir: /usr/lib/aarch64-linux-gnu/pkgconfig
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -225,7 +245,7 @@ jobs:
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libfuse2 imagemagick upx-ucl
# Create symlink for webkit2gtk-4.0 -> webkit2gtk-4.1 (Ubuntu 24.04 compatibility)
sudo ln -sf /usr/lib/x86_64-linux-gnu/pkgconfig/webkit2gtk-4.1.pc /usr/lib/x86_64-linux-gnu/pkgconfig/webkit2gtk-4.0.pc
sudo ln -sf "${{ matrix.pkgconfig_dir }}/webkit2gtk-4.1.pc" "${{ matrix.pkgconfig_dir }}/webkit2gtk-4.0.pc"
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest
@@ -237,7 +257,7 @@ jobs:
pnpm run generate-icon
- name: Build application
run: wails build -platform linux/amd64
run: wails build -platform ${{ matrix.wails_platform }}
- name: Compress with UPX
run: |
@@ -248,13 +268,13 @@ jobs:
uses: actions/cache@v4
with:
path: appimagetool
key: appimagetool-x86_64-v1
key: appimagetool-${{ matrix.appimagetool_arch }}-v2
- name: Download appimagetool
if: steps.cache-appimagetool.outputs.cache-hit != 'true'
run: |
wget --timeout=30 --tries=5 --retry-connrefused --waitretry=5 -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage || \
wget --timeout=30 --tries=5 --retry-connrefused --waitretry=5 -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
wget --timeout=30 --tries=5 --retry-connrefused --waitretry=5 -O appimagetool "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-${{ matrix.appimagetool_arch }}.AppImage" || \
wget --timeout=30 --tries=5 --retry-connrefused --waitretry=5 -O appimagetool "https://github.com/AppImage/appimagetool/releases/download/1.9.1/appimagetool-${{ matrix.appimagetool_arch }}.AppImage"
- name: Make appimagetool executable
run: chmod +x appimagetool
@@ -309,13 +329,13 @@ jobs:
# Create AppImage
mkdir -p dist
ARCH=x86_64 ./appimagetool --no-appstream AppDir dist/SpotiFLAC.AppImage
ARCH=${{ matrix.appimage_arch }} ./appimagetool --no-appstream AppDir "dist/${{ matrix.output_name }}"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: linux-portable
path: dist/SpotiFLAC.AppImage
name: ${{ matrix.artifact_name }}
path: dist/${{ matrix.output_name }}
retention-days: 7
create-release:
@@ -356,7 +376,8 @@ jobs:
- `SpotiFLAC.exe` - Windows
- `SpotiFLAC.dmg` - macOS
- `SpotiFLAC.AppImage` - Linux
- `SpotiFLAC.AppImage` - Linux AMD64
- `SpotiFLAC-ARM.AppImage` - Linux ARM64
<details>
<summary><b>Linux Requirements</b></summary>
@@ -384,10 +405,17 @@ jobs:
./SpotiFLAC.AppImage
```
For ARM64:
```bash
chmod +x SpotiFLAC-ARM.AppImage
./SpotiFLAC-ARM.AppImage
```
</details>
files: |
artifacts/windows-portable/*.exe
artifacts/macos-portable/*.dmg
artifacts/linux-portable/*.AppImage
artifacts/windows-portable/SpotiFLAC.exe
artifacts/macos-portable/SpotiFLAC.dmg
artifacts/linux-portable/SpotiFLAC.AppImage
artifacts/linux-portable-arm/SpotiFLAC-ARM.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+6 -12
View File
@@ -10,32 +10,26 @@ Get Spotify tracks in true FLAC from Tidal, Qobuz & Amazon Music — no account
[![Announcements](https://img.shields.io/badge/ANNOUNCEMENTS-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/spotiflac)
[![Chat](https://img.shields.io/badge/CHAT-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/spotiflac_chat)
### [Download](https://github.com/afkarxyz/SpotiFLAC/releases)
### [Download](https://github.com/spotbye/SpotiFLAC/releases)
![Image](https://github.com/user-attachments/assets/c2624ca5-8569-49f0-950e-4410b523cea1)
## Other projects
### [SpotiFLAC Next](https://github.com/afkarxyz/SpotiFLAC-Next)
### [SpotiFLAC Next](https://github.com/spotbye/SpotiFLAC-Next)
Get Spotify tracks in true Lossless from Tidal, Qobuz, Amazon Music, Deezer & Apple Music — no account required.
### [SpotiDownloader](https://github.com/afkarxyz/SpotiDownloader)
### [SpotubeDL.com](https://spotubedl.com)
Get Spotify tracks, albums, playlists and discography in MP3 and FLAC.
Download Spotify Tracks, Albums, Playlists & Discography as MP3/OGG/Opus.
### [SpotubeDL](https://spotubedl.com)
Download Spotify Tracks, Albums, Playlists as MP3/OGG/Opus with High Quality.
## Related projects
### [SpotiFLAC (Mobile)](https://github.com/zarzet/SpotiFLAC-Mobile)
SpotiFLAC for Android & iOS — maintained by [@zarzet](https://github.com/zarzet)
### [SpotiFLAC (CLI)](https://github.com/Nizarberyan/SpotiFLAC)
SpotiFLAC for command-line environments — maintained by [@Nizarberyan](https://github.com/Nizarberyan)
### [SpotiFLAC (Python Module)](https://github.com/ShuShuzinhuu/SpotiFLAC-Module-Version)
SpotiFLAC Python library for SpotiFLAC integration — maintained by [@ShuShuzinhuu](https://github.com/ShuShuzinhuu)
@@ -112,7 +106,7 @@ The software is provided "as is", without warranty of any kind. The author assum
## API Credits
[MusicBrainz](https://musicbrainz.org) · [LRCLIB](https://lrclib.net) · [Songlink/Odesli](https://song.link) · [Songstats](https://songstats.com) · [hifi-api](https://github.com/binimum/hifi-api) · [dabmusic.xyz](https://dabmusic.xyz)
[MusicBrainz](https://musicbrainz.org) · [LRCLIB](https://lrclib.net) · [Songlink/Odesli](https://song.link) · [hifi-api](https://github.com/binimum/hifi-api) · [WJHE](https://music.wjhe.top) · [GDStudio](https://music.gdstudio.xyz) · [MusicDL](https://musicdl.me)
> [!TIP]
>
+899 -156
View File
File diff suppressed because it is too large Load Diff
+117 -11
View File
@@ -1,6 +1,9 @@
package backend
import (
"crypto/aes"
"crypto/cipher"
"crypto/sha256"
"encoding/json"
"fmt"
"io"
@@ -10,6 +13,7 @@ import (
"path/filepath"
"regexp"
"strings"
"sync"
"time"
)
@@ -23,6 +27,76 @@ type AmazonStreamResponse struct {
DecryptionKey string `json:"decryptionKey"`
}
var (
amazonMusicDebugKeyOnce sync.Once
amazonMusicDebugKey string
amazonMusicDebugKeyErr error
)
var amazonMusicDebugKeySeedParts = [][]byte{
[]byte("spotif"),
[]byte("lac:am"),
[]byte("azon:spotbye:api:v1"),
}
var amazonMusicDebugKeyAAD = []byte{
0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x7c, 0x73, 0x70, 0x6f, 0x74, 0x62,
0x79, 0x65, 0x7c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x7c, 0x76, 0x31,
}
var amazonMusicDebugKeyNonce = []byte{
0x52, 0x1f, 0xa4, 0x9c, 0x13, 0x77, 0x5b, 0xe2, 0x81, 0x44, 0x90, 0x6d,
}
var amazonMusicDebugKeyCiphertext = []byte{
0x5b, 0xf9, 0xc1, 0x2e, 0x58, 0xf8, 0x5b, 0xc0, 0x04, 0x68, 0x7e, 0xff,
0x3d, 0xd6, 0x8b, 0xe3, 0x86, 0x49, 0x6c, 0xfd, 0xc1, 0x49, 0x0b, 0xfb,
}
var amazonMusicDebugKeyTag = []byte{
0x6c, 0x21, 0x98, 0x51, 0xf2, 0x38, 0x4b, 0x4a, 0x23, 0xe1, 0xc6, 0xd7,
0x65, 0x7f, 0xfb, 0xa1,
}
func getAmazonMusicDebugKey() (string, error) {
amazonMusicDebugKeyOnce.Do(func() {
hasher := sha256.New()
for _, part := range amazonMusicDebugKeySeedParts {
hasher.Write(part)
}
block, err := aes.NewCipher(hasher.Sum(nil))
if err != nil {
amazonMusicDebugKeyErr = err
return
}
gcm, err := cipher.NewGCM(block)
if err != nil {
amazonMusicDebugKeyErr = err
return
}
sealed := make([]byte, 0, len(amazonMusicDebugKeyCiphertext)+len(amazonMusicDebugKeyTag))
sealed = append(sealed, amazonMusicDebugKeyCiphertext...)
sealed = append(sealed, amazonMusicDebugKeyTag...)
plaintext, err := gcm.Open(nil, amazonMusicDebugKeyNonce, sealed, amazonMusicDebugKeyAAD)
if err != nil {
amazonMusicDebugKeyErr = err
return
}
amazonMusicDebugKey = string(plaintext)
})
if amazonMusicDebugKeyErr != nil {
return "", amazonMusicDebugKeyErr
}
return amazonMusicDebugKey, nil
}
func NewAmazonDownloader() *AmazonDownloader {
return &AmazonDownloader{
client: &http.Client{
@@ -56,12 +130,17 @@ func (a *AmazonDownloader) DownloadFromAfkarXYZ(amazonURL, outputDir, quality st
return "", fmt.Errorf("failed to extract ASIN from URL: %s", amazonURL)
}
apiURL := fmt.Sprintf("https://amzn.afkarxyz.qzz.io/api/track/%s", asin)
req, err := http.NewRequest("GET", apiURL, nil)
apiURL := fmt.Sprintf("%s/api/track/%s", amazonMusicAPIBaseURL, asin)
req, err := NewRequestWithDefaultHeaders(http.MethodGet, apiURL, nil)
if err != nil {
return "", err
}
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36")
debugKey, err := getAmazonMusicDebugKey()
if err != nil {
return "", fmt.Errorf("failed to decrypt Amazon debug key: %w", err)
}
req.Header.Set("X-Debug-Key", debugKey)
fmt.Printf("Fetching from Amazon API (ASIN: %s)...\n", asin)
resp, err := a.client.Do(req)
@@ -98,8 +177,10 @@ func (a *AmazonDownloader) DownloadFromAfkarXYZ(amazonURL, outputDir, quality st
}
defer out.Close()
dlReq, _ := http.NewRequest("GET", downloadURL, nil)
dlReq.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36")
dlReq, err := NewRequestWithDefaultHeaders(http.MethodGet, downloadURL, nil)
if err != nil {
return "", err
}
dlResp, err := a.client.Do(dlReq)
if err != nil {
@@ -204,7 +285,7 @@ func (a *AmazonDownloader) DownloadFromService(amazonURL, outputDir, quality str
return a.DownloadFromAfkarXYZ(amazonURL, outputDir, quality)
}
func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filenameFormat, playlistName, playlistOwner string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL string, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, embedMaxQualityCover bool, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filenameFormat, playlistName, playlistOwner string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL string, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, embedMaxQualityCover bool, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL string, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
if outputDir != "." {
if err := os.MkdirAll(outputDir, 0755); err != nil {
@@ -219,14 +300,16 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
filenameArtist = GetFirstArtist(spotifyArtistName)
filenameAlbumArtist = GetFirstArtist(spotifyAlbumArtist)
}
expectedFilename := BuildExpectedFilename(spotifyTrackName, filenameArtist, spotifyAlbumName, filenameAlbumArtist, spotifyReleaseDate, filenameFormat, playlistName, playlistOwner, includeTrackNumber, position, spotifyDiscNumber, false)
expectedFilename := BuildExpectedFilename(spotifyTrackName, filenameArtist, spotifyAlbumName, filenameAlbumArtist, spotifyReleaseDate, filenameFormat, playlistName, playlistOwner, includeTrackNumber, position, spotifyDiscNumber, false, isrcOverride)
expectedPath := filepath.Join(outputDir, expectedFilename)
if !GetRedownloadWithSuffixSetting() {
if fileInfo, err := os.Stat(expectedPath); err == nil && fileInfo.Size() > 0 {
fmt.Printf("File already exists: %s (%.2f MB)\n", expectedPath, float64(fileInfo.Size())/(1024*1024))
return "EXISTS:" + expectedPath, nil
}
}
}
type mbResult struct {
ISRC string
@@ -250,6 +333,9 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
}
res.ISRC = isrc
if isrc != "" {
if ShouldSkipMusicBrainzMetadataFetch() {
fmt.Println("Skipping MusicBrainz metadata fetch because status check is offline.")
} else {
fmt.Println("Fetching MusicBrainz metadata...")
if fetchedMeta, err := FetchMusicBrainzMetadata(isrc, spotifyTrackName, spotifyArtistName, spotifyAlbumName, useSingleGenre, embedGenre); err == nil {
res.Metadata = fetchedMeta
@@ -258,6 +344,7 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
fmt.Printf("Warning: Failed to fetch MusicBrainz metadata: %v\n", err)
}
}
}
metaChan <- res
}()
} else {
@@ -271,14 +358,26 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
return "", err
}
var isrc string
isrc := strings.TrimSpace(isrcOverride)
var mbMeta Metadata
if spotifyURL != "" {
result := <-metaChan
if isrc == "" {
isrc = result.ISRC
}
mbMeta = result.Metadata
}
upc := ""
if spotifyURL != "" {
if identifiers, err := GetSpotifyTrackIdentifiersDirect(spotifyURL); err == nil || identifiers.ISRC != "" || identifiers.UPC != "" {
if strings.TrimSpace(isrc) == "" && strings.TrimSpace(identifiers.ISRC) != "" {
isrc = strings.TrimSpace(identifiers.ISRC)
}
upc = strings.TrimSpace(identifiers.UPC)
}
}
originalFileDir := filepath.Dir(filePath)
originalFileBase := strings.TrimSuffix(filepath.Base(filePath), filepath.Ext(filePath))
@@ -309,6 +408,7 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
newFilename = strings.ReplaceAll(newFilename, "{album_artist}", safeAlbumArtist)
newFilename = strings.ReplaceAll(newFilename, "{year}", year)
newFilename = strings.ReplaceAll(newFilename, "{date}", SanitizeFilename(spotifyReleaseDate))
newFilename = strings.ReplaceAll(newFilename, "{isrc}", SanitizeOptionalFilename(isrc))
if spotifyDiscNumber > 0 {
newFilename = strings.ReplaceAll(newFilename, "{disc}", fmt.Sprintf("%d", spotifyDiscNumber))
@@ -346,6 +446,9 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
}
newFilename = newFilename + ext
newFilePath := filepath.Join(outputDir, newFilename)
if GetRedownloadWithSuffixSetting() {
newFilePath, _ = ResolveOutputPathForDownload(newFilePath, true)
}
if err := os.Rename(filePath, newFilePath); err != nil {
fmt.Printf("Warning: Failed to rename file: %v\n", err)
@@ -390,8 +493,11 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
Comment: spotifyURL,
Copyright: spotifyCopyright,
Publisher: spotifyPublisher,
Description: "https://github.com/afkarxyz/SpotiFLAC",
Composer: spotifyComposer,
Separator: metadataSeparator,
Description: "https://github.com/spotbye/SpotiFLAC",
ISRC: isrc,
UPC: upc,
Genre: mbMeta.Genre,
}
@@ -418,7 +524,7 @@ func (a *AmazonDownloader) DownloadByURL(amazonURL, outputDir, quality, filename
return filePath, nil
}
func (a *AmazonDownloader) DownloadBySpotifyID(spotifyTrackID, outputDir, quality, filenameFormat, playlistName, playlistOwner string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL string, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, embedMaxQualityCover bool, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string,
func (a *AmazonDownloader) DownloadBySpotifyID(spotifyTrackID, outputDir, quality, filenameFormat, playlistName, playlistOwner string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL string, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, embedMaxQualityCover bool, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL string,
useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool,
) (string, error) {
@@ -427,5 +533,5 @@ func (a *AmazonDownloader) DownloadBySpotifyID(spotifyTrackID, outputDir, qualit
return "", err
}
return a.DownloadByURL(amazonURL, outputDir, quality, filenameFormat, playlistName, playlistOwner, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, embedMaxQualityCover, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyURL, useFirstArtistOnly, useSingleGenre, embedGenre)
return a.DownloadByURL(amazonURL, outputDir, quality, filenameFormat, playlistName, playlistOwner, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, embedMaxQualityCover, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL, useFirstArtistOnly, useSingleGenre, embedGenre)
}
+90
View File
@@ -0,0 +1,90 @@
package backend
import "strings"
func normalizeArtistSeparator(separator string) string {
separator = strings.TrimSpace(separator)
if separator == "," || separator == ";" {
return separator
}
return ""
}
func splitArtistSegment(segment string, separator string) []string {
segment = strings.TrimSpace(segment)
if segment == "" {
return nil
}
if strings.Contains(segment, "|||SEP|||") {
return strings.Split(segment, "|||SEP|||")
}
parts := []string{segment}
if separator = normalizeArtistSeparator(separator); separator != "" {
var separated []string
for _, part := range parts {
for _, item := range strings.Split(part, separator) {
separated = append(separated, item)
}
}
parts = separated
} else if strings.Contains(segment, ";") {
var separated []string
for _, part := range parts {
for _, item := range strings.Split(part, ";") {
separated = append(separated, item)
}
}
parts = separated
}
return parts
}
func SplitArtistCredits(artistStr, separator string) []string {
rawParts := splitArtistSegment(artistStr, separator)
if len(rawParts) == 0 {
return nil
}
seen := make(map[string]struct{}, len(rawParts))
result := make([]string, 0, len(rawParts))
for _, part := range rawParts {
part = strings.TrimSpace(part)
if part == "" {
continue
}
if _, exists := seen[part]; exists {
continue
}
seen[part] = struct{}{}
result = append(result, part)
}
return result
}
func SplitMetadataValues(value, separator string) []string {
rawParts := splitArtistSegment(value, separator)
if len(rawParts) == 0 {
return nil
}
seen := make(map[string]struct{}, len(rawParts))
result := make([]string, 0, len(rawParts))
for _, part := range rawParts {
part = strings.TrimSpace(part)
if part == "" {
continue
}
if _, exists := seen[part]; exists {
continue
}
seen[part] = struct{}{}
result = append(result, part)
}
return result
}
+156 -10
View File
@@ -2,11 +2,138 @@ package backend
import (
"encoding/json"
"errors"
"os"
"path/filepath"
"strings"
)
const legacyTidalAPICacheFile = "tidal-api-urls.json"
func normalizeCustomTidalAPIValue(value interface{}) string {
customAPI, _ := value.(string)
customAPI = strings.TrimRight(strings.TrimSpace(customAPI), "/")
if strings.HasPrefix(customAPI, "https://") {
return customAPI
}
return ""
}
func sanitizeDownloaderValue(value interface{}, allowTidal bool) string {
downloader, _ := value.(string)
switch strings.TrimSpace(strings.ToLower(downloader)) {
case "tidal":
if allowTidal {
return "tidal"
}
return "auto"
case "qobuz":
return "qobuz"
case "amazon":
return "amazon"
default:
return "auto"
}
}
func sanitizeAutoOrderValue(value interface{}, allowTidal bool) string {
autoOrder, _ := value.(string)
allowed := map[string]struct{}{
"qobuz": {},
"amazon": {},
}
fallback := "qobuz-amazon"
if allowTidal {
allowed["tidal"] = struct{}{}
fallback = "tidal-qobuz-amazon"
}
seen := make(map[string]struct{})
parts := make([]string, 0, 3)
for _, rawPart := range strings.Split(strings.TrimSpace(strings.ToLower(autoOrder)), "-") {
part := strings.TrimSpace(rawPart)
if part == "" {
continue
}
if _, ok := allowed[part]; !ok {
continue
}
if _, ok := seen[part]; ok {
continue
}
seen[part] = struct{}{}
parts = append(parts, part)
}
if len(parts) < 2 {
return fallback
}
return strings.Join(parts, "-")
}
func SanitizeSettingsMap(settings map[string]interface{}) map[string]interface{} {
if settings == nil {
return nil
}
sanitized := make(map[string]interface{}, len(settings))
for key, value := range settings {
sanitized[key] = value
}
customAPI := normalizeCustomTidalAPIValue(sanitized["customTidalApi"])
sanitized["customTidalApi"] = customAPI
allowTidal := customAPI != ""
sanitized["downloader"] = sanitizeDownloaderValue(sanitized["downloader"], allowTidal)
sanitized["autoOrder"] = sanitizeAutoOrderValue(sanitized["autoOrder"], allowTidal)
return sanitized
}
func CleanupLegacyTidalPublicAPIState() error {
appDir, err := EnsureAppDir()
if err != nil {
return err
}
cachePath := filepath.Join(appDir, legacyTidalAPICacheFile)
if err := os.Remove(cachePath); err != nil && !errors.Is(err, os.ErrNotExist) {
return err
}
return nil
}
func SanitizePersistedConfigSettings() error {
configPath, err := GetConfigPath()
if err != nil {
return err
}
if _, err := os.Stat(configPath); os.IsNotExist(err) {
return nil
}
data, err := os.ReadFile(configPath)
if err != nil {
return err
}
var settings map[string]interface{}
if err := json.Unmarshal(data, &settings); err != nil {
return err
}
sanitized := SanitizeSettingsMap(settings)
payload, err := json.MarshalIndent(sanitized, "", " ")
if err != nil {
return err
}
return os.WriteFile(configPath, payload, 0o644)
}
func GetDefaultMusicPath() string {
homeDir, err := os.UserHomeDir()
@@ -47,26 +174,45 @@ func LoadConfigSettings() (map[string]interface{}, error) {
return nil, err
}
return settings, nil
return SanitizeSettingsMap(settings), nil
}
func GetSpotFetchAPISettings() (bool, string) {
func GetRedownloadWithSuffixSetting() bool {
settings, err := LoadConfigSettings()
if err != nil || settings == nil {
return false, ""
return false
}
useAPI, _ := settings["useSpotFetchAPI"].(bool)
if !useAPI {
return false, ""
enabled, _ := settings["redownloadWithSuffix"].(bool)
return enabled
}
apiURL, _ := settings["spotFetchAPIUrl"].(string)
if apiURL == "" {
apiURL = "https://sp.afkarxyz.qzz.io/api"
func GetCustomTidalAPISetting() string {
settings, err := LoadConfigSettings()
if err != nil || settings == nil {
return ""
}
return true, apiURL
return normalizeCustomTidalAPIValue(settings["customTidalApi"])
}
func normalizeExistingFileCheckMode(value string) string {
switch strings.TrimSpace(strings.ToLower(value)) {
case "isrc", "upc":
return "isrc"
default:
return "filename"
}
}
func GetExistingFileCheckModeSetting() string {
settings, err := LoadConfigSettings()
if err != nil || settings == nil {
return "filename"
}
rawMode, _ := settings["existingFileCheckMode"].(string)
return normalizeExistingFileCheckMode(rawMode)
}
func GetLinkResolverSetting() string {
+265 -135
View File
@@ -19,6 +19,11 @@ import (
"golang.org/x/text/unicode/norm"
)
type executableCandidate struct {
path string
source string
}
func ValidateExecutable(path string) error {
cleanedPath := filepath.Clean(path)
if cleanedPath == "" {
@@ -83,129 +88,242 @@ func GetFFmpegDir() (string, error) {
return EnsureAppDir()
}
func GetFFmpegPath() (string, error) {
ffmpegDir, err := GetFFmpegDir()
if err != nil {
return "", err
func copyExecutable(src, dst string) error {
if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
return err
}
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o755)
if err != nil {
return err
}
defer out.Close()
if _, err = io.Copy(out, in); err != nil {
return err
}
if err := out.Sync(); err != nil {
return err
}
return prepareExecutableForUse(dst)
}
func appendExecutableCandidate(candidates []executableCandidate, seen map[string]struct{}, path, source string) []executableCandidate {
cleanedPath := filepath.Clean(strings.TrimSpace(path))
if cleanedPath == "" {
return candidates
}
if _, exists := seen[cleanedPath]; exists {
return candidates
}
seen[cleanedPath] = struct{}{}
return append(candidates, executableCandidate{
path: cleanedPath,
source: source,
})
}
func resolveSystemExecutable(executableName string) string {
if runtime.GOOS == "darwin" {
candidates := []string{
"/opt/homebrew/bin/" + executableName,
"/usr/local/bin/" + executableName,
}
for _, candidate := range candidates {
if _, err := os.Stat(candidate); err == nil {
return candidate
}
}
}
if runtime.GOOS != "windows" {
path, err := exec.Command("which", executableName).Output()
if err == nil {
trimmed := strings.TrimSpace(string(path))
if trimmed != "" {
return trimmed
}
}
}
path, err := exec.LookPath(executableName)
if err == nil {
return path
}
return ""
}
func runExecutableVersionCheck(path string) error {
cmd := exec.Command(path, "-version")
setHideWindow(cmd)
return cmd.Run()
}
func removeMacOSQuarantineAttribute(path string) error {
cmd := exec.Command("xattr", "-d", "com.apple.quarantine", path)
setHideWindow(cmd)
output, err := cmd.CombinedOutput()
if err == nil {
return nil
}
trimmedOutput := strings.TrimSpace(string(output))
lowerOutput := strings.ToLower(trimmedOutput)
if strings.Contains(lowerOutput, "no such xattr") || strings.Contains(lowerOutput, "attribute not found") {
return nil
}
if trimmedOutput != "" {
return fmt.Errorf("%w: %s", err, trimmedOutput)
}
return err
}
func prepareExecutableForUse(path string) error {
cleanedPath := filepath.Clean(strings.TrimSpace(path))
if cleanedPath == "" {
return fmt.Errorf("empty path")
}
if runtime.GOOS == "windows" {
return nil
}
if err := os.Chmod(cleanedPath, 0755); err != nil {
return fmt.Errorf("failed to mark executable: %w", err)
}
if runtime.GOOS == "darwin" {
if err := removeMacOSQuarantineAttribute(cleanedPath); err != nil {
fmt.Printf("[FFmpeg] Warning: failed to remove macOS quarantine from %s: %v\n", cleanedPath, err)
}
}
return nil
}
func resolveExecutablePath(executableName string) (string, string, error) {
ffmpegDir, err := GetFFmpegDir()
if err != nil {
return "", "", err
}
localPath := filepath.Join(ffmpegDir, executableName)
nextDir := filepath.Join(filepath.Dir(ffmpegDir), ".spotiflac-next")
nextPath := filepath.Join(nextDir, executableName)
localExists := false
candidates := make([]executableCandidate, 0, 3)
seen := make(map[string]struct{}, 3)
if systemPath := resolveSystemExecutable(executableName); systemPath != "" {
candidates = appendExecutableCandidate(candidates, seen, systemPath, "system")
}
if _, err := os.Stat(localPath); err == nil {
localExists = true
candidates = appendExecutableCandidate(candidates, seen, localPath, "local")
}
if !localExists {
if _, err := os.Stat(nextPath); err == nil {
if copyErr := copyExecutable(nextPath, localPath); copyErr == nil {
fmt.Printf("[FFmpeg] Copied %s from SpotiFLAC-Next folder\n", executableName)
candidates = appendExecutableCandidate(candidates, seen, localPath, "migrated")
}
}
}
var lastErr error
for _, candidate := range candidates {
if candidate.source != "system" {
if err := prepareExecutableForUse(candidate.path); err != nil {
lastErr = err
fmt.Printf("[FFmpeg] Skipping %s %s: %v\n", candidate.source, candidate.path, err)
continue
}
}
if err := ValidateExecutable(candidate.path); err != nil {
lastErr = err
fmt.Printf("[FFmpeg] Skipping %s %s: %v\n", candidate.source, candidate.path, err)
continue
}
if err := runExecutableVersionCheck(candidate.path); err != nil {
lastErr = err
fmt.Printf("[FFmpeg] Skipping %s %s: %v\n", candidate.source, candidate.path, err)
continue
}
return candidate.path, localPath, nil
}
if len(candidates) > 0 {
if lastErr != nil {
return "", localPath, fmt.Errorf("no working %s executable found: %w", executableName, lastErr)
}
return "", localPath, fmt.Errorf("no working %s executable found", executableName)
}
return "", localPath, fmt.Errorf("%s not found in app directory or system path", executableName)
}
func GetFFmpegPath() (string, error) {
ffmpegName := "ffmpeg"
if runtime.GOOS == "windows" {
ffmpegName = "ffmpeg.exe"
}
localPath := filepath.Join(ffmpegDir, ffmpegName)
if _, err := os.Stat(localPath); err == nil {
return localPath, nil
}
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
homebrewPath := "/opt/homebrew/bin/" + ffmpegName
if _, err := os.Stat(homebrewPath); err == nil {
return homebrewPath, nil
}
} else if runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" {
homebrewPath := "/usr/local/bin/" + ffmpegName
if _, err := os.Stat(homebrewPath); err == nil {
return homebrewPath, nil
}
}
if runtime.GOOS != "windows" {
path, err := exec.Command("which", ffmpegName).Output()
if err == nil {
trimmed := strings.TrimSpace(string(path))
if trimmed != "" {
return trimmed, nil
}
}
}
path, err := exec.LookPath(ffmpegName)
if err == nil {
return path, nil
}
return localPath, nil
}
func GetFFprobePath() (string, error) {
ffmpegDir, err := GetFFmpegDir()
path, localPath, err := resolveExecutablePath(ffmpegName)
if err != nil {
if localPath != "" {
return localPath, err
}
return "", err
}
return path, nil
}
func GetFFprobePath() (string, error) {
ffprobeName := "ffprobe"
if runtime.GOOS == "windows" {
ffprobeName = "ffprobe.exe"
}
localPath := filepath.Join(ffmpegDir, ffprobeName)
if _, err := os.Stat(localPath); err == nil {
return localPath, nil
path, localPath, err := resolveExecutablePath(ffprobeName)
if err != nil {
if localPath != "" {
return localPath, err
}
return "", err
}
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
homebrewPath := "/opt/homebrew/bin/" + ffprobeName
if _, err := os.Stat(homebrewPath); err == nil {
return homebrewPath, nil
}
} else if runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" {
homebrewPath := "/usr/local/bin/" + ffprobeName
if _, err := os.Stat(homebrewPath); err == nil {
return homebrewPath, nil
}
}
if runtime.GOOS != "windows" {
path, err := exec.Command("which", ffprobeName).Output()
if err == nil {
trimmed := strings.TrimSpace(string(path))
if trimmed != "" {
return trimmed, nil
}
}
}
path, err := exec.LookPath(ffprobeName)
if err == nil {
return path, nil
}
return localPath, fmt.Errorf("ffprobe not found in app directory or system path")
}
func IsFFprobeInstalled() (bool, error) {
ffprobePath, err := GetFFprobePath()
if err != nil {
return false, nil
}
if err := ValidateExecutable(ffprobePath); err != nil {
return false, nil
}
cmd := exec.Command(ffprobePath, "-version")
setHideWindow(cmd)
err = cmd.Run()
_, err := GetFFprobePath()
return err == nil, nil
}
func IsFFmpegInstalled() (bool, error) {
ffmpegPath, err := GetFFmpegPath()
if err != nil {
return false, err
}
if err := ValidateExecutable(ffmpegPath); err != nil {
if _, err := GetFFmpegPath(); err != nil {
return false, nil
}
cmd := exec.Command(ffmpegPath, "-version")
setHideWindow(cmd)
err = cmd.Run()
return err == nil, nil
return IsFFprobeInstalled()
}
func GetBrewPath() string {
@@ -255,10 +373,38 @@ func InstallFFmpegWithBrew(progressCallback func(int, string)) error {
return nil
}
const (
ffmpegWindowsURL = "https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.0/ffmpeg-windows-amd64.zip"
ffmpegLinuxURL = "https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.0/ffmpeg-linux-amd64.tar.xz"
)
const ffmpegReleaseBaseURL = "https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.1"
func buildFFmpegReleaseURL(assetName string) string {
return ffmpegReleaseBaseURL + "/" + assetName
}
func getFFmpegDownloadURLs() ([]string, []string, error) {
switch runtime.GOOS {
case "windows":
return []string{buildFFmpegReleaseURL("ffmpeg-windows.zip")}, []string{buildFFmpegReleaseURL("ffprobe-windows.zip")}, nil
case "linux":
switch runtime.GOARCH {
case "amd64":
return []string{buildFFmpegReleaseURL("ffmpeg-linux-amd64.zip")}, []string{buildFFmpegReleaseURL("ffprobe-linux-amd64.zip")}, nil
case "arm64":
return []string{buildFFmpegReleaseURL("ffmpeg-linux-arm64v8.zip")}, []string{buildFFmpegReleaseURL("ffprobe-linux-arm64v8.zip")}, nil
default:
return nil, nil, fmt.Errorf("unsupported Linux architecture: %s", runtime.GOARCH)
}
case "darwin":
switch runtime.GOARCH {
case "amd64":
return []string{buildFFmpegReleaseURL("ffmpeg-macos-amd64.zip")}, []string{buildFFmpegReleaseURL("ffprobe-macos-amd64.zip")}, nil
case "arm64":
return []string{buildFFmpegReleaseURL("ffmpeg-macos-arm64.zip")}, []string{buildFFmpegReleaseURL("ffprobe-macos-arm64.zip")}, nil
default:
return nil, nil, fmt.Errorf("unsupported macOS architecture: %s", runtime.GOARCH)
}
default:
return nil, nil, fmt.Errorf("unsupported operating system: %s", runtime.GOOS)
}
}
func DownloadFFmpeg(progressCallback func(int)) error {
@@ -276,57 +422,30 @@ func DownloadFFmpeg(progressCallback func(int)) error {
return fmt.Errorf("failed to create ffmpeg directory: %w", err)
}
if runtime.GOOS == "darwin" {
ffmpegInstalled, _ := IsFFmpegInstalled()
ffprobeInstalled, _ := IsFFprobeInstalled()
isARM := runtime.GOARCH == "arm64"
var macFFmpegURLs []string
var macFFprobeURLs []string
if isARM {
macFFmpegURLs = []string{"https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.0/ffmpeg-macos-arm64.zip"}
macFFprobeURLs = []string{"https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.0/ffprobe-macos-arm64.zip"}
} else {
macFFmpegURLs = []string{"https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.0/ffmpeg-macos-intel.zip"}
macFFprobeURLs = []string{"https://github.com/afkarxyz/ffmpeg-binaries/releases/download/v8.0/ffprobe-macos-intel.zip"}
ffmpegURLs, ffprobeURLs, err := getFFmpegDownloadURLs()
if err != nil {
return err
}
if !ffmpegInstalled && !ffprobeInstalled {
if err := downloadWithFallback(macFFmpegURLs, ffmpegDir, progressCallback, 0, 50); err != nil {
if err := downloadWithFallback(ffmpegURLs, ffmpegDir, progressCallback, 0, 50); err != nil {
return err
}
if err := downloadWithFallback(macFFprobeURLs, ffmpegDir, progressCallback, 50, 100); err != nil {
if err := downloadWithFallback(ffprobeURLs, ffmpegDir, progressCallback, 50, 100); err != nil {
return err
}
} else if !ffmpegInstalled {
if err := downloadWithFallback(macFFmpegURLs, ffmpegDir, progressCallback, 0, 100); err != nil {
return err
}
} else if !ffprobeInstalled {
if err := downloadWithFallback(macFFprobeURLs, ffmpegDir, progressCallback, 0, 100); err != nil {
return err
}
}
return nil
}
var url string
switch runtime.GOOS {
case "windows":
url = ffmpegWindowsURL
case "linux":
url = ffmpegLinuxURL
default:
return fmt.Errorf("unsupported operating system: %s", runtime.GOOS)
if !ffmpegInstalled {
return downloadWithFallback(ffmpegURLs, ffmpegDir, progressCallback, 0, 100)
}
fmt.Printf("[FFmpeg] Downloading from: %s\n", url)
if err := downloadAndExtract(url, ffmpegDir, progressCallback, 0, 100); err != nil {
return err
if !ffprobeInstalled {
return downloadWithFallback(ffprobeURLs, ffmpegDir, progressCallback, 0, 100)
}
return nil
@@ -452,11 +571,14 @@ func downloadAndExtract(url, destDir string, progressCallback func(int), progres
}
fmt.Printf("[FFmpeg] Extracting...\n")
if strings.HasSuffix(url, ".tar.xz") || runtime.GOOS == "linux" {
if strings.HasSuffix(url, ".tar.xz") {
return extractTarXz(tmpFile.Name(), destDir)
}
if strings.HasSuffix(url, ".zip") {
return extractZip(tmpFile.Name(), destDir)
}
return fmt.Errorf("unsupported archive format for %s", url)
}
func extractZip(zipPath, destDir string) error {
r, err := zip.OpenReader(zipPath)
@@ -514,6 +636,10 @@ func extractZip(zipPath, destDir string) error {
return fmt.Errorf("failed to extract file: %w", err)
}
if err := prepareExecutableForUse(destPath); err != nil {
return fmt.Errorf("failed to prepare extracted executable: %w", err)
}
fmt.Printf("[FFmpeg] Extracted to: %s\n", destPath)
}
@@ -591,6 +717,10 @@ func extractTarXz(tarXzPath, destDir string) error {
return fmt.Errorf("failed to extract file: %w", err)
}
if err := prepareExecutableForUse(destPath); err != nil {
return fmt.Errorf("failed to prepare extracted executable: %w", err)
}
fmt.Printf("[FFmpeg] Extracted to: %s\n", destPath)
}
+35
View File
@@ -30,6 +30,8 @@ type AudioMetadata struct {
TrackNumber int `json:"track_number"`
DiscNumber int `json:"disc_number"`
Year string `json:"year"`
ISRC string `json:"isrc"`
UPC string `json:"upc"`
}
type RenamePreview struct {
@@ -175,6 +177,12 @@ func readFlacMetadata(filePath string) (*AudioMetadata, error) {
}
case "DATE", "YEAR":
metadata.Year = value
case "ISRC", "TSRC":
metadata.ISRC = value
case "UPC":
assignPreferredUPC(&metadata.UPC, value, true)
case "BARCODE":
assignPreferredUPC(&metadata.UPC, value, false)
}
}
}
@@ -221,6 +229,28 @@ func readMp3Metadata(filePath string) (*AudioMetadata, error) {
}
}
if frames := tag.GetFrames("TSRC"); len(frames) > 0 {
if textFrame, ok := frames[0].(id3v2.TextFrame); ok {
metadata.ISRC = textFrame.Text
}
}
if frames := tag.GetFrames("TXXX"); len(frames) > 0 {
for _, frame := range frames {
userTextFrame, ok := frame.(id3v2.UserDefinedTextFrame)
if !ok {
continue
}
matched, preferred := classifyUPCDescription(userTextFrame.Description)
if !matched {
continue
}
assignPreferredUPC(&metadata.UPC, userTextFrame.Value, preferred)
if preferred && strings.TrimSpace(metadata.UPC) != "" {
break
}
}
}
return metadata, nil
}
@@ -301,9 +331,13 @@ func readMetadataWithFFprobe(filePath string) (*AudioMetadata, error) {
if metadata.Year == "" || len(value) > len(metadata.Year) {
metadata.Year = value
}
case "isrc", "tsrc":
metadata.ISRC = value
}
}
metadata.UPC = firstPreferredFFprobeUPCValue(allTags)
return metadata, nil
}
@@ -333,6 +367,7 @@ func GenerateFilename(metadata *AudioMetadata, format string, ext string) string
result = strings.ReplaceAll(result, "{album_artist}", sanitizeFilenameForRename(metadata.AlbumArtist))
result = strings.ReplaceAll(result, "{year}", sanitizeFilenameForRename(year))
result = strings.ReplaceAll(result, "{date}", sanitizeFilenameForRename(metadata.Year))
result = strings.ReplaceAll(result, "{isrc}", sanitizeFilenameForRename(metadata.ISRC))
if metadata.TrackNumber > 0 {
result = strings.ReplaceAll(result, "{track}", fmt.Sprintf("%02d", metadata.TrackNumber))
+52 -3
View File
@@ -2,6 +2,7 @@ package backend
import (
"fmt"
"os"
"path/filepath"
"regexp"
"strings"
@@ -9,12 +10,12 @@ import (
"unicode/utf8"
)
func BuildExpectedFilename(trackName, artistName, albumName, albumArtist, releaseDate, filenameFormat, playlistName, playlistOwner string, includeTrackNumber bool, position, discNumber int, useAlbumTrackNumber bool) string {
func buildFormattedFilenameBase(trackName, artistName, albumName, albumArtist, releaseDate, filenameFormat, playlistName, playlistOwner, isrc string, includeTrackNumber bool, position, discNumber int, useAlbumTrackNumber bool) string {
safeTitle := SanitizeFilename(trackName)
safeArtist := SanitizeFilename(artistName)
safeAlbum := SanitizeFilename(albumName)
safeAlbumArtist := SanitizeFilename(albumArtist)
safeISRC := SanitizeOptionalFilename(isrc)
safePlaylist := SanitizeFilename(playlistName)
safeCreator := SanitizeFilename(playlistOwner)
@@ -36,6 +37,7 @@ func BuildExpectedFilename(trackName, artistName, albumName, albumArtist, releas
filename = strings.ReplaceAll(filename, "{date}", SanitizeFilename(releaseDate))
filename = strings.ReplaceAll(filename, "{playlist}", safePlaylist)
filename = strings.ReplaceAll(filename, "{creator}", safeCreator)
filename = strings.ReplaceAll(filename, "{isrc}", safeISRC)
if discNumber > 0 {
filename = strings.ReplaceAll(filename, "{disc}", fmt.Sprintf("%d", discNumber))
@@ -67,7 +69,47 @@ func BuildExpectedFilename(trackName, artistName, albumName, albumArtist, releas
}
}
return filename + ".flac"
return filename
}
func BuildExpectedFilename(trackName, artistName, albumName, albumArtist, releaseDate, filenameFormat, playlistName, playlistOwner string, includeTrackNumber bool, position, discNumber int, useAlbumTrackNumber bool, extra ...string) string {
isrc := ""
if len(extra) > 0 {
isrc = extra[0]
}
return buildFormattedFilenameBase(trackName, artistName, albumName, albumArtist, releaseDate, filenameFormat, playlistName, playlistOwner, isrc, includeTrackNumber, position, discNumber, useAlbumTrackNumber) + ".flac"
}
func ResolveOutputPathForDownload(path string, redownloadWithSuffix bool) (string, bool) {
if !redownloadWithSuffix {
if info, err := os.Stat(path); err == nil && info.Size() > 0 {
return path, true
}
return path, false
}
if info, err := os.Stat(path); err != nil || info.Size() == 0 {
return path, false
}
ext := filepath.Ext(path)
base := strings.TrimSuffix(path, ext)
for i := 1; ; i++ {
candidate := fmt.Sprintf("%s_%02d%s", base, i, ext)
if info, err := os.Stat(candidate); err != nil || info.Size() == 0 {
return candidate, false
}
}
}
func mustFileSize(path string) int64 {
info, err := os.Stat(path)
if err != nil {
return 0
}
return info.Size()
}
func SanitizeFilename(name string) string {
@@ -188,3 +230,10 @@ func sanitizeFolderName(name string) string { return SanitizeFilename(name) }
func sanitizeFilename(name string) string {
return SanitizeFilename(name)
}
func SanitizeOptionalFilename(name string) string {
if strings.TrimSpace(name) == "" {
return ""
}
return SanitizeFilename(name)
}
+20
View File
@@ -0,0 +1,20 @@
package backend
import (
"io"
"net/http"
)
const DefaultDownloaderUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36"
func NewRequestWithDefaultHeaders(method string, rawURL string, body io.Reader) (*http.Request, error) {
req, err := http.NewRequest(method, rawURL, body)
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", DefaultDownloaderUserAgent)
req.Header.Set("Accept", "application/json, text/plain, */*")
return req, nil
}
+150 -258
View File
@@ -1,9 +1,6 @@
package backend
import (
"crypto/hmac"
"crypto/sha1"
"encoding/binary"
"encoding/json"
"errors"
"fmt"
@@ -20,16 +17,10 @@ import (
)
const (
spotifyServerTimeURL = "https://open.spotify.com/api/server-time"
spotifySessionTokenURL = "https://open.spotify.com/api/token"
spotifyTOTPSecretsURL = "https://git.gay/thereallo/totp-secrets/raw/branch/main/secrets/secretDict.json"
spotifyGIDMetadataURL = "https://spclient.wg.spotify.com/metadata/4/%s/%s?market=from_token"
spotifyTOTPPeriod = 30
spotifyTOTPDigits = 6
spotifyBase62Alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
spotifyTokenCacheFile = ".isrc-finder-token.json"
spotifySecretsCacheFile = "spotify-secret-dict-cache.json"
spotifySecretsCacheTTL = 24 * time.Hour
)
var spotifyAnonymousTokenMu sync.Mutex
@@ -39,91 +30,104 @@ type spotifyAnonymousToken struct {
AccessTokenExpirationTimestampMs int64 `json:"accessTokenExpirationTimestampMs"`
}
type spotifyServerTimeResponse struct {
ServerTime int64 `json:"serverTime"`
}
type spotifySecretsCache struct {
FetchedAtUnix int64 `json:"fetched_at_unix"`
Secrets map[string][]int `json:"secrets"`
}
type spotifyTrackRawData struct {
Album struct {
GID string `json:"gid"`
} `json:"album"`
ExternalID []struct {
Type string `json:"type"`
ID string `json:"id"`
} `json:"external_id"`
}
type spotFetchISRCResponse struct {
Input string `json:"input"`
TrackID string `json:"track_id"`
GID string `json:"gid"`
CanonicalURI string `json:"canonical_uri"`
Name string `json:"name"`
Artists []string `json:"artists"`
AlbumName string `json:"album_name"`
ReleaseDate string `json:"release_date"`
Label string `json:"label"`
ISRC string `json:"isrc"`
type spotifyAlbumRawData struct {
ExternalID []struct {
Type string `json:"type"`
ID string `json:"id"`
} `json:"external_id"`
}
func (s *SongLinkClient) lookupSpotifyISRC(spotifyTrackID string) (string, error) {
type SpotifyTrackIdentifiers struct {
ISRC string `json:"isrc,omitempty"`
UPC string `json:"upc,omitempty"`
}
func GetSpotifyTrackIdentifiersDirect(spotifyTrackID string) (SpotifyTrackIdentifiers, error) {
normalizedTrackID, err := extractSpotifyTrackID(spotifyTrackID)
if err != nil {
return "", err
return SpotifyTrackIdentifiers{}, err
}
identifiers := SpotifyTrackIdentifiers{}
cachedISRC, err := GetCachedISRC(normalizedTrackID)
if err != nil {
fmt.Printf("Warning: failed to read ISRC cache: %v\n", err)
} else if cachedISRC != "" {
fmt.Printf("Found ISRC in cache: %s\n", cachedISRC)
return cachedISRC, nil
identifiers.ISRC = cachedISRC
}
useSpotFetchAPI, spotFetchAPIURL := GetSpotFetchAPISettings()
if useSpotFetchAPI {
isrc, resolvedTrackID, err := s.lookupSpotifyISRCViaSpotFetchAPI(normalizedTrackID, spotFetchAPIURL)
if err == nil && isrc != "" {
fmt.Printf("Found ISRC via SpotFetch API: %s\n", isrc)
cacheResolvedSpotifyTrackISRC(normalizedTrackID, resolvedTrackID, isrc)
return isrc, nil
}
if err != nil {
fmt.Printf("Warning: SpotFetch ISRC lookup failed, falling back to Spotify metadata: %v\n", err)
}
}
httpClient := &http.Client{Timeout: 30 * time.Second}
payload, metadataErr := fetchSpotifyTrackRawData(s.client, normalizedTrackID)
payload, metadataErr := fetchSpotifyTrackRawData(httpClient, normalizedTrackID)
if metadataErr == nil {
isrc, extractErr := extractSpotifyTrackISRC(payload)
metadataIdentifiers, extractErr := extractSpotifyTrackIdentifiers(httpClient, payload)
if extractErr == nil {
fmt.Printf("Found ISRC via Spotify metadata: %s\n", isrc)
cacheResolvedSpotifyTrackISRC(normalizedTrackID, "", isrc)
return isrc, nil
mergeSpotifyTrackIdentifiers(&identifiers, metadataIdentifiers)
if identifiers.ISRC != "" {
fmt.Printf("Found identifiers via Spotify metadata: isrc=%s upc=%s\n", identifiers.ISRC, identifiers.UPC)
cacheResolvedSpotifyTrackISRC(normalizedTrackID, "", identifiers.ISRC)
}
if identifiers.ISRC != "" && identifiers.UPC != "" {
return identifiers, nil
}
}
metadataErr = extractErr
}
if metadataErr != nil {
fmt.Printf("Warning: Spotify metadata ISRC lookup failed, falling back to Soundplate: %v\n", metadataErr)
fmt.Printf("Warning: Spotify metadata identifier lookup failed, falling back to Soundplate: %v\n", metadataErr)
}
isrc, resolvedTrackID, soundplateErr := s.lookupSpotifyISRCViaSoundplate(normalizedTrackID)
if identifiers.ISRC == "" {
client := NewSongLinkClient()
isrc, resolvedTrackID, soundplateErr := client.lookupSpotifyISRCViaSoundplate(normalizedTrackID)
if soundplateErr == nil && isrc != "" {
identifiers.ISRC = isrc
fmt.Printf("Found ISRC via Soundplate: %s\n", isrc)
cacheResolvedSpotifyTrackISRC(normalizedTrackID, resolvedTrackID, isrc)
return isrc, nil
return identifiers, nil
}
if metadataErr != nil && soundplateErr != nil {
return "", fmt.Errorf("spotify metadata lookup failed: %v | soundplate lookup failed: %w", metadataErr, soundplateErr)
return identifiers, fmt.Errorf("spotify metadata lookup failed: %v | soundplate lookup failed: %w", metadataErr, soundplateErr)
}
if soundplateErr != nil {
return "", soundplateErr
if soundplateErr != nil && identifiers.UPC == "" {
return identifiers, soundplateErr
}
return "", metadataErr
}
if identifiers.ISRC != "" || identifiers.UPC != "" {
return identifiers, nil
}
if metadataErr != nil {
return identifiers, metadataErr
}
return identifiers, fmt.Errorf("no Spotify identifiers found for track %s", normalizedTrackID)
}
func (s *SongLinkClient) lookupSpotifyISRC(spotifyTrackID string) (string, error) {
identifiers, err := GetSpotifyTrackIdentifiersDirect(spotifyTrackID)
if err != nil {
return "", err
}
if identifiers.ISRC == "" {
return "", fmt.Errorf("no Spotify ISRC found for track %s", strings.TrimSpace(spotifyTrackID))
}
return identifiers.ISRC, nil
}
func cacheResolvedSpotifyTrackISRC(trackID string, resolvedTrackID string, isrc string) {
@@ -137,47 +141,28 @@ func cacheResolvedSpotifyTrackISRC(trackID string, resolvedTrackID string, isrc
}
}
func (s *SongLinkClient) lookupSpotifyISRCViaSpotFetchAPI(spotifyTrackID string, apiBaseURL string) (string, string, error) {
normalizedTrackID := strings.TrimSpace(spotifyTrackID)
baseURL := strings.TrimRight(strings.TrimSpace(apiBaseURL), "/")
if normalizedTrackID == "" {
return "", "", fmt.Errorf("spotify track ID is required")
func mergeSpotifyTrackIdentifiers(target *SpotifyTrackIdentifiers, incoming SpotifyTrackIdentifiers) {
if incoming.ISRC != "" {
target.ISRC = strings.TrimSpace(incoming.ISRC)
}
if incoming.UPC != "" {
target.UPC = strings.TrimSpace(incoming.UPC)
}
if baseURL == "" {
return "", "", fmt.Errorf("spotfetch api url is required")
}
requestURL := fmt.Sprintf("%s/isrc/%s", baseURL, url.PathEscape(normalizedTrackID))
req, err := http.NewRequest(http.MethodGet, requestURL, nil)
func lookupSpotifyAlbumUPC(albumID string) (string, error) {
normalizedAlbumID := strings.TrimSpace(albumID)
if normalizedAlbumID == "" {
return "", fmt.Errorf("spotify album ID is required")
}
httpClient := &http.Client{Timeout: 30 * time.Second}
payload, err := fetchSpotifyAlbumRawData(httpClient, normalizedAlbumID)
if err != nil {
return "", "", fmt.Errorf("failed to create SpotFetch ISRC request: %w", err)
}
req.Header.Set("User-Agent", songLinkUserAgent)
req.Header.Set("Accept", "application/json")
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil {
return "", "", fmt.Errorf("SpotFetch ISRC request failed: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
bodyPreview, _ := io.ReadAll(io.LimitReader(resp.Body, 256))
return "", "", fmt.Errorf("SpotFetch ISRC returned status %d (%s)", resp.StatusCode, strings.TrimSpace(string(bodyPreview)))
return "", err
}
var payload spotFetchISRCResponse
if err := json.NewDecoder(resp.Body).Decode(&payload); err != nil {
return "", "", fmt.Errorf("failed to decode SpotFetch ISRC response: %w", err)
}
isrc := firstISRCMatch(payload.ISRC)
if isrc == "" {
return "", "", fmt.Errorf("ISRC missing in SpotFetch response")
}
return isrc, strings.TrimSpace(payload.TrackID), nil
return extractSpotifyAlbumUPC(payload)
}
func requestSpotifyBytes(client *http.Client, targetURL string, headers map[string]string) ([]byte, error) {
@@ -269,50 +254,6 @@ func saveSpotifyCachedToken(token *spotifyAnonymousToken) error {
return nil
}
func loadSpotifyCachedSecrets() (*spotifySecretsCache, error) {
cachePath, err := spotifySecretsCachePath()
if err != nil {
return nil, err
}
body, err := os.ReadFile(cachePath)
if err != nil {
if errors.Is(err, os.ErrNotExist) {
return nil, nil
}
return nil, fmt.Errorf("failed to read secrets cache: %w", err)
}
var cache spotifySecretsCache
if err := json.Unmarshal(body, &cache); err != nil {
return nil, fmt.Errorf("failed to parse secrets cache: %w", err)
}
return &cache, nil
}
func saveSpotifyCachedSecrets(cache *spotifySecretsCache) error {
cachePath, err := spotifySecretsCachePath()
if err != nil {
return err
}
if err := os.MkdirAll(filepath.Dir(cachePath), 0o755); err != nil {
return fmt.Errorf("failed to create secrets cache directory: %w", err)
}
body, err := json.MarshalIndent(cache, "", " ")
if err != nil {
return err
}
if err := os.WriteFile(cachePath, body, 0o644); err != nil {
return fmt.Errorf("failed to write secrets cache: %w", err)
}
return nil
}
func spotifyTokenCachePath() (string, error) {
appDir, err := EnsureAppDir()
if err != nil {
@@ -322,15 +263,6 @@ func spotifyTokenCachePath() (string, error) {
return filepath.Join(appDir, spotifyTokenCacheFile), nil
}
func spotifySecretsCachePath() (string, error) {
appDir, err := EnsureAppDir()
if err != nil {
return "", err
}
return filepath.Join(appDir, spotifySecretsCacheFile), nil
}
func spotifyTokenIsValid(token *spotifyAnonymousToken) bool {
if token == nil || token.AccessToken == "" || token.AccessTokenExpirationTimestampMs == 0 {
return false
@@ -339,47 +271,6 @@ func spotifyTokenIsValid(token *spotifyAnonymousToken) bool {
return time.Now().UnixMilli() < token.AccessTokenExpirationTimestampMs-30_000
}
func spotifySecretsCacheIsValid(cache *spotifySecretsCache) bool {
if cache == nil || cache.FetchedAtUnix == 0 || len(cache.Secrets) == 0 {
return false
}
return time.Since(time.Unix(cache.FetchedAtUnix, 0)) < spotifySecretsCacheTTL
}
func deriveSpotifyTOTPSecret(ciphertext []int) []byte {
var builder strings.Builder
for index, value := range ciphertext {
builder.WriteString(strconv.Itoa(value ^ ((index % 33) + 9)))
}
return []byte(builder.String())
}
func generateSpotifyTOTP(secret []byte, timestampMs int64) string {
counter := timestampMs / 1000 / spotifyTOTPPeriod
counterBytes := make([]byte, 8)
binary.BigEndian.PutUint64(counterBytes, uint64(counter))
mac := hmac.New(sha1.New, secret)
mac.Write(counterBytes)
digest := mac.Sum(nil)
offset := digest[len(digest)-1] & 0x0f
binaryCode := (int(digest[offset])&0x7f)<<24 |
(int(digest[offset+1])&0xff)<<16 |
(int(digest[offset+2])&0xff)<<8 |
(int(digest[offset+3]) & 0xff)
modulo := 1
for i := 0; i < spotifyTOTPDigits; i++ {
modulo *= 10
}
return fmt.Sprintf("%0*d", spotifyTOTPDigits, binaryCode%modulo)
}
func requestSpotifyAnonymousAccessToken(client *http.Client) (string, error) {
spotifyAnonymousTokenMu.Lock()
defer spotifyAnonymousTokenMu.Unlock()
@@ -393,52 +284,17 @@ func requestSpotifyAnonymousAccessToken(client *http.Client) (string, error) {
return cachedToken.AccessToken, nil
}
var serverTime spotifyServerTimeResponse
if err := requestSpotifyJSON(client, spotifyServerTimeURL, nil, &serverTime); err != nil {
return "", err
}
var secrets map[string][]int
cachedSecrets, err := loadSpotifyCachedSecrets()
generatedTOTP, version, err := generateSpotifyTOTP(time.Now())
if err != nil {
fmt.Printf("Warning: failed to read Spotify secrets cache: %v\n", err)
return "", fmt.Errorf("failed to generate Spotify TOTP: %w", err)
}
if spotifySecretsCacheIsValid(cachedSecrets) {
secrets = cachedSecrets.Secrets
} else {
if err := requestSpotifyJSON(client, spotifyTOTPSecretsURL, nil, &secrets); err != nil {
if cachedSecrets != nil && len(cachedSecrets.Secrets) > 0 {
fmt.Printf("Warning: failed to refresh Spotify secrets cache, using stale cache: %v\n", err)
secrets = cachedSecrets.Secrets
} else {
return "", err
}
} else {
cache := &spotifySecretsCache{
FetchedAtUnix: time.Now().Unix(),
Secrets: secrets,
}
if err := saveSpotifyCachedSecrets(cache); err != nil {
fmt.Printf("Warning: failed to write Spotify secrets cache: %v\n", err)
}
}
}
version, err := latestSpotifySecretVersion(secrets)
if err != nil {
return "", err
}
secret := deriveSpotifyTOTPSecret(secrets[version])
generatedTOTP := generateSpotifyTOTP(secret, serverTime.ServerTime*1000)
query := url.Values{
"reason": {"init"},
"productType": {"web-player"},
"totp": {generatedTOTP},
"totpServer": {generatedTOTP},
"totpVer": {version},
"totpVer": {strconv.Itoa(version)},
}
var token spotifyAnonymousToken
@@ -453,30 +309,6 @@ func requestSpotifyAnonymousAccessToken(client *http.Client) (string, error) {
return token.AccessToken, nil
}
func latestSpotifySecretVersion(secrets map[string][]int) (string, error) {
var (
bestVersion string
bestNumber int
)
for version := range secrets {
number, err := strconv.Atoi(version)
if err != nil {
return "", fmt.Errorf("invalid secret version %q: %w", version, err)
}
if bestVersion == "" || number > bestNumber {
bestVersion = version
bestNumber = number
}
}
if bestVersion == "" {
return "", errors.New("no TOTP secret versions available")
}
return bestVersion, nil
}
func extractSpotifyTrackID(value string) (string, error) {
value = strings.TrimSpace(value)
if value == "" {
@@ -504,14 +336,18 @@ func extractSpotifyTrackID(value string) (string, error) {
}
func spotifyTrackIDToGID(trackID string) (string, error) {
if trackID == "" {
return "", errors.New("track ID is empty")
return spotifyEntityIDToGID(trackID)
}
func spotifyEntityIDToGID(entityID string) (string, error) {
if entityID == "" {
return "", errors.New("entity ID is empty")
}
value := big.NewInt(0)
base := big.NewInt(62)
for _, char := range trackID {
for _, char := range entityID {
index := strings.IndexRune(spotifyBase62Alphabet, char)
if index < 0 {
return "", fmt.Errorf("invalid base62 character: %q", string(char))
@@ -530,43 +366,99 @@ func spotifyTrackIDToGID(trackID string) (string, error) {
}
func fetchSpotifyTrackRawData(client *http.Client, trackID string) ([]byte, error) {
accessToken, err := requestSpotifyAnonymousAccessToken(client)
gid, err := spotifyTrackIDToGID(trackID)
if err != nil {
return nil, err
}
gid, err := spotifyTrackIDToGID(trackID)
return fetchSpotifyRawMetadataByGID(client, "track", gid)
}
func fetchSpotifyAlbumRawData(client *http.Client, albumID string) ([]byte, error) {
gid, err := spotifyEntityIDToGID(albumID)
if err != nil {
return nil, err
}
return fetchSpotifyRawMetadataByGID(client, "album", gid)
}
func fetchSpotifyRawMetadataByGID(client *http.Client, entityType string, gid string) ([]byte, error) {
accessToken, err := requestSpotifyAnonymousAccessToken(client)
if err != nil {
return nil, err
}
return requestSpotifyBytes(
client,
fmt.Sprintf(spotifyGIDMetadataURL, "track", gid),
fmt.Sprintf(spotifyGIDMetadataURL, entityType, gid),
map[string]string{
"authorization": "Bearer " + accessToken,
"accept": "application/json",
"user-agent": songLinkUserAgent,
},
)
}
func extractSpotifyTrackISRC(payload []byte) (string, error) {
func extractSpotifyTrackIdentifiers(client *http.Client, payload []byte) (SpotifyTrackIdentifiers, error) {
var track spotifyTrackRawData
if err := json.Unmarshal(payload, &track); err != nil {
return "", fmt.Errorf("failed to decode Spotify track metadata: %w", err)
return SpotifyTrackIdentifiers{}, fmt.Errorf("failed to decode Spotify track metadata: %w", err)
}
identifiers := SpotifyTrackIdentifiers{}
for _, externalID := range track.ExternalID {
if strings.EqualFold(strings.TrimSpace(externalID.Type), "isrc") {
if isrc := firstISRCMatch(externalID.ID); isrc != "" {
return isrc, nil
identifiers.ISRC = isrc
break
}
}
}
if fallbackISRC := firstISRCMatch(string(payload)); fallbackISRC != "" {
return fallbackISRC, nil
if identifiers.ISRC == "" {
identifiers.ISRC = firstISRCMatch(string(payload))
}
albumGID := strings.TrimSpace(track.Album.GID)
if client != nil && albumGID != "" {
albumPayload, err := fetchSpotifyRawMetadataByGID(client, "album", albumGID)
if err == nil {
if upc, upcErr := extractSpotifyAlbumUPC(albumPayload); upcErr == nil {
identifiers.UPC = upc
}
}
}
return identifiers, nil
}
func extractSpotifyTrackISRC(payload []byte) (string, error) {
identifiers, err := extractSpotifyTrackIdentifiers(nil, payload)
if err != nil {
return "", err
}
if identifiers.ISRC != "" {
return identifiers.ISRC, nil
}
return "", fmt.Errorf("ISRC not found in Spotify track metadata")
}
func extractSpotifyAlbumUPC(payload []byte) (string, error) {
var album spotifyAlbumRawData
if err := json.Unmarshal(payload, &album); err != nil {
return "", fmt.Errorf("failed to decode Spotify album metadata: %w", err)
}
for _, externalID := range album.ExternalID {
if strings.EqualFold(strings.TrimSpace(externalID.Type), "upc") {
upc := strings.TrimSpace(externalID.ID)
if upc != "" {
return upc, nil
}
}
}
return "", fmt.Errorf("UPC not found in Spotify album metadata")
}
+22
View File
@@ -0,0 +1,22 @@
package backend
import "strings"
func ResolveTrackISRC(spotifyTrackID string) string {
spotifyTrackID = strings.TrimSpace(spotifyTrackID)
if spotifyTrackID == "" {
return ""
}
if cachedISRC, err := GetCachedISRC(spotifyTrackID); err == nil && cachedISRC != "" {
return strings.ToUpper(strings.TrimSpace(cachedISRC))
}
client := NewSongLinkClient()
isrc, err := client.GetISRCDirect(spotifyTrackID)
if err != nil {
return ""
}
return strings.ToUpper(strings.TrimSpace(isrc))
}
+11 -3
View File
@@ -44,6 +44,7 @@ type LyricsDownloadRequest struct {
AlbumName string `json:"album_name"`
AlbumArtist string `json:"album_artist"`
ReleaseDate string `json:"release_date"`
ISRC string `json:"isrc"`
OutputDir string `json:"output_dir"`
FilenameFormat string `json:"filename_format"`
TrackNumber bool `json:"track_number"`
@@ -363,11 +364,12 @@ func msToLRCTimestamp(msStr string) string {
return fmt.Sprintf("[%02d:%02d.%02d]", minutes, seconds, centiseconds)
}
func buildLyricsFilename(trackName, artistName, albumName, albumArtist, releaseDate, filenameFormat string, includeTrackNumber bool, position, discNumber int) string {
func buildLyricsFilename(trackName, artistName, albumName, albumArtist, releaseDate, filenameFormat, isrc string, includeTrackNumber bool, position, discNumber int) string {
safeTitle := sanitizeFilename(trackName)
safeArtist := sanitizeFilename(artistName)
safeAlbum := sanitizeFilename(albumName)
safeAlbumArtist := sanitizeFilename(albumArtist)
safeISRC := SanitizeOptionalFilename(isrc)
year := ""
if len(releaseDate) >= 4 {
@@ -384,6 +386,7 @@ func buildLyricsFilename(trackName, artistName, albumName, albumArtist, releaseD
filename = strings.ReplaceAll(filename, "{album_artist}", safeAlbumArtist)
filename = strings.ReplaceAll(filename, "{year}", year)
filename = strings.ReplaceAll(filename, "{date}", sanitizeFilename(releaseDate))
filename = strings.ReplaceAll(filename, "{isrc}", safeISRC)
if discNumber > 0 {
filename = strings.ReplaceAll(filename, "{disc}", fmt.Sprintf("%d", discNumber))
@@ -485,10 +488,15 @@ func (c *LyricsClient) DownloadLyrics(req LyricsDownloadRequest) (*LyricsDownloa
if filenameFormat == "" {
filenameFormat = "title-artist"
}
filename := buildLyricsFilename(req.TrackName, req.ArtistName, req.AlbumName, req.AlbumArtist, req.ReleaseDate, filenameFormat, req.TrackNumber, req.Position, req.DiscNumber)
resolvedISRC := strings.TrimSpace(req.ISRC)
if resolvedISRC == "" && strings.Contains(filenameFormat, "{isrc}") {
resolvedISRC = ResolveTrackISRC(req.SpotifyID)
}
filename := buildLyricsFilename(req.TrackName, req.ArtistName, req.AlbumName, req.AlbumArtist, req.ReleaseDate, filenameFormat, resolvedISRC, req.TrackNumber, req.Position, req.DiscNumber)
filePath := filepath.Join(outputDir, filename)
if fileInfo, err := os.Stat(filePath); err == nil && fileInfo.Size() > 0 {
filePath, alreadyExists := ResolveOutputPathForDownload(filePath, GetRedownloadWithSuffixSetting())
if alreadyExists {
return &LyricsDownloadResponse{
Success: true,
Message: "Lyrics file already exists",
+151 -19
View File
@@ -21,6 +21,7 @@ type Metadata struct {
Artist string
Album string
AlbumArtist string
Separator string
Date string
ReleaseDate string
TrackNumber int
@@ -31,12 +32,73 @@ type Metadata struct {
Comment string
Copyright string
Publisher string
Composer string
Lyrics string
Description string
ISRC string
UPC string
Genre string
}
func resolveMetadataSeparator(separator string) string {
if normalized := normalizeArtistSeparator(separator); normalized != "" {
return normalized
}
return normalizeArtistSeparator(GetSeparator())
}
func displayMetadataSeparator(separator string) string {
if resolved := resolveMetadataSeparator(separator); resolved != "" {
return resolved + " "
}
return "; "
}
func addVorbisTagValues(cmt *flacvorbis.MetaDataBlockVorbisComment, key string, values []string) {
for _, value := range values {
value = strings.TrimSpace(value)
if value == "" {
continue
}
_ = cmt.Add(key, value)
}
}
func addMP3TextFrame(tag *id3v2.Tag, frameID string, value string) {
tag.DeleteFrames(frameID)
value = strings.TrimSpace(value)
if value == "" {
return
}
tag.AddTextFrame(frameID, id3v2.EncodingUTF8, value)
}
func joinMultiValueText(values []string, separator string, nullSeparated bool) string {
cleaned := make([]string, 0, len(values))
for _, value := range values {
value = strings.TrimSpace(value)
if value != "" {
cleaned = append(cleaned, value)
}
}
if len(cleaned) == 0 {
return ""
}
if len(cleaned) == 1 {
return cleaned[0]
}
if nullSeparated {
return strings.Join(cleaned, "\x00")
}
return strings.Join(cleaned, displayMetadataSeparator(separator))
}
func EmbedMetadata(filepath string, metadata Metadata, coverPath string) error {
f, err := flac.ParseFile(filepath)
if err != nil {
@@ -52,17 +114,22 @@ func EmbedMetadata(filepath string, metadata Metadata, coverPath string) error {
}
cmt := flacvorbis.New()
separator := resolveMetadataSeparator(metadata.Separator)
if metadata.Title != "" {
_ = cmt.Add(flacvorbis.FIELD_TITLE, metadata.Title)
}
if metadata.Artist != "" {
if artistValues := SplitArtistCredits(metadata.Artist, separator); len(artistValues) > 0 {
addVorbisTagValues(cmt, flacvorbis.FIELD_ARTIST, artistValues)
} else if metadata.Artist != "" {
_ = cmt.Add(flacvorbis.FIELD_ARTIST, metadata.Artist)
}
if metadata.Album != "" {
_ = cmt.Add(flacvorbis.FIELD_ALBUM, metadata.Album)
}
if metadata.AlbumArtist != "" {
if albumArtistValues := SplitArtistCredits(metadata.AlbumArtist, separator); len(albumArtistValues) > 0 {
addVorbisTagValues(cmt, "ALBUMARTIST", albumArtistValues)
} else if metadata.AlbumArtist != "" {
_ = cmt.Add("ALBUMARTIST", metadata.AlbumArtist)
}
if metadata.Date != "" {
@@ -86,6 +153,11 @@ func EmbedMetadata(filepath string, metadata Metadata, coverPath string) error {
if metadata.Publisher != "" {
_ = cmt.Add("PUBLISHER", metadata.Publisher)
}
if composerValues := SplitArtistCredits(metadata.Composer, separator); len(composerValues) > 0 {
addVorbisTagValues(cmt, "COMPOSER", composerValues)
} else if metadata.Composer != "" {
_ = cmt.Add("COMPOSER", metadata.Composer)
}
if metadata.Description != "" {
_ = cmt.Add("DESCRIPTION", metadata.Description)
}
@@ -96,8 +168,13 @@ func EmbedMetadata(filepath string, metadata Metadata, coverPath string) error {
if metadata.ISRC != "" {
_ = cmt.Add("ISRC", metadata.ISRC)
}
if metadata.UPC != "" {
_ = cmt.Add(preferredUPCTagKey, metadata.UPC)
}
if metadata.Genre != "" {
if genreValues := SplitMetadataValues(metadata.Genre, separator); len(genreValues) > 0 {
addVorbisTagValues(cmt, "GENRE", genreValues)
} else if metadata.Genre != "" {
_ = cmt.Add("GENRE", metadata.Genre)
}
@@ -901,8 +978,14 @@ func ExtractFullMetadataFromFile(filePath string) (Metadata, error) {
metadata.Copyright = value
case "publisher", "tpub", "label":
metadata.Publisher = value
case "composer", "writer", "wm/composer", "©wrt":
metadata.Composer = value
case "genre", "tcon":
metadata.Genre = value
case "url":
metadata.URL = value
case "isrc", "tsrc":
metadata.ISRC = value
case "comment", "comments":
if metadata.Comment == "" {
metadata.Comment = value
@@ -914,6 +997,8 @@ func ExtractFullMetadataFromFile(filePath string) (Metadata, error) {
}
}
metadata.UPC = firstPreferredFFprobeUPCValue(allTags)
return metadata, nil
}
@@ -940,15 +1025,13 @@ func embedMetadataToMP3(filePath string, metadata Metadata, coverPath string) er
return fmt.Errorf("failed to open MP3 file: %w", err)
}
defer tag.Close()
separator := resolveMetadataSeparator(metadata.Separator)
tag.DeleteFrames("TXXX")
if metadata.Title != "" {
tag.SetTitle(metadata.Title)
}
if metadata.Artist != "" {
tag.SetArtist(metadata.Artist)
}
if metadata.Album != "" {
tag.SetAlbum(metadata.Album)
}
@@ -960,10 +1043,17 @@ func embedMetadataToMP3(filePath string, metadata Metadata, coverPath string) er
tag.SetYear(year)
}
if metadata.AlbumArtist != "" {
tag.DeleteFrames("TPE2")
tag.AddTextFrame("TPE2", id3v2.EncodingUTF8, metadata.AlbumArtist)
artistText := joinMultiValueText(SplitArtistCredits(metadata.Artist, separator), separator, true)
if artistText == "" {
artistText = strings.TrimSpace(metadata.Artist)
}
addMP3TextFrame(tag, "TPE1", artistText)
albumArtistText := joinMultiValueText(SplitArtistCredits(metadata.AlbumArtist, separator), separator, true)
if albumArtistText == "" {
albumArtistText = strings.TrimSpace(metadata.AlbumArtist)
}
addMP3TextFrame(tag, "TPE2", albumArtistText)
if metadata.TrackNumber > 0 {
tag.DeleteFrames(tag.CommonID("Track number/Position in set"))
@@ -984,18 +1074,28 @@ func embedMetadataToMP3(filePath string, metadata Metadata, coverPath string) er
}
if metadata.Copyright != "" {
tag.DeleteFrames("TCOP")
tag.AddTextFrame("TCOP", id3v2.EncodingUTF8, metadata.Copyright)
addMP3TextFrame(tag, "TCOP", metadata.Copyright)
}
if metadata.Publisher != "" {
tag.DeleteFrames("TPUB")
tag.AddTextFrame("TPUB", id3v2.EncodingUTF8, metadata.Publisher)
addMP3TextFrame(tag, "TPUB", metadata.Publisher)
}
composerText := joinMultiValueText(SplitArtistCredits(metadata.Composer, separator), separator, true)
if composerText == "" {
composerText = strings.TrimSpace(metadata.Composer)
}
addMP3TextFrame(tag, "TCOM", composerText)
if metadata.ISRC != "" {
tag.DeleteFrames("TSRC")
tag.AddTextFrame("TSRC", id3v2.EncodingUTF8, metadata.ISRC)
addMP3TextFrame(tag, "TSRC", metadata.ISRC)
}
if metadata.UPC != "" {
tag.AddUserDefinedTextFrame(id3v2.UserDefinedTextFrame{
Encoding: id3v2.EncodingUTF8,
Description: "UPC",
Value: metadata.UPC,
})
}
if comment := resolveMetadataComment(metadata); comment != "" {
@@ -1027,6 +1127,12 @@ func embedMetadataToMP3(filePath string, metadata Metadata, coverPath string) er
}
}
genreText := joinMultiValueText(SplitMetadataValues(metadata.Genre, separator), separator, true)
if genreText == "" {
genreText = strings.TrimSpace(metadata.Genre)
}
addMP3TextFrame(tag, "TCON", genreText)
if err := tag.Save(); err != nil {
return fmt.Errorf("failed to save MP3 tags: %w", err)
}
@@ -1048,6 +1154,7 @@ func embedMetadataToM4A(filePath string, metadata Metadata, coverPath string) er
"-i", filePath,
"-y",
}
separator := resolveMetadataSeparator(metadata.Separator)
if coverPath != "" && fileExists(coverPath) {
args = append(args, "-i", coverPath)
@@ -1059,14 +1166,22 @@ func embedMetadataToM4A(filePath string, metadata Metadata, coverPath string) er
if metadata.Title != "" {
args = append(args, "-metadata", "title="+metadata.Title)
}
if metadata.Artist != "" {
args = append(args, "-metadata", "artist="+metadata.Artist)
artistText := joinMultiValueText(SplitArtistCredits(metadata.Artist, separator), separator, false)
if artistText == "" {
artistText = strings.TrimSpace(metadata.Artist)
}
if artistText != "" {
args = append(args, "-metadata", "artist="+artistText)
}
if metadata.Album != "" {
args = append(args, "-metadata", "album="+metadata.Album)
}
if metadata.AlbumArtist != "" {
args = append(args, "-metadata", "album_artist="+metadata.AlbumArtist)
albumArtistText := joinMultiValueText(SplitArtistCredits(metadata.AlbumArtist, separator), separator, false)
if albumArtistText == "" {
albumArtistText = strings.TrimSpace(metadata.AlbumArtist)
}
if albumArtistText != "" {
args = append(args, "-metadata", "album_artist="+albumArtistText)
}
if metadata.Date != "" {
args = append(args, "-metadata", "date="+metadata.Date)
@@ -1091,9 +1206,26 @@ func embedMetadataToM4A(filePath string, metadata Metadata, coverPath string) er
if metadata.Publisher != "" {
args = append(args, "-metadata", "publisher="+metadata.Publisher)
}
composerText := joinMultiValueText(SplitArtistCredits(metadata.Composer, separator), separator, false)
if composerText == "" {
composerText = strings.TrimSpace(metadata.Composer)
}
if composerText != "" {
args = append(args, "-metadata", "composer="+composerText)
}
if metadata.ISRC != "" {
args = append(args, "-metadata", "isrc="+metadata.ISRC)
}
if metadata.UPC != "" {
args = append(args, "-metadata", "upc="+metadata.UPC)
}
genreText := joinMultiValueText(SplitMetadataValues(metadata.Genre, separator), separator, false)
if genreText == "" {
genreText = strings.TrimSpace(metadata.Genre)
}
if genreText != "" {
args = append(args, "-metadata", "genre="+genreText)
}
if comment := resolveMetadataComment(metadata); comment != "" {
args = append(args, "-metadata", "comment="+comment)
}
+220 -43
View File
@@ -6,6 +6,7 @@ import (
"net/http"
"net/url"
"strings"
"sync"
"time"
"golang.org/x/text/cases"
@@ -14,7 +15,66 @@ import (
var AppVersion = "Unknown"
const musicBrainzAPIBase = "https://musicbrainz.org/ws/2"
const (
musicBrainzAPIBase = "https://musicbrainz.org/ws/2"
musicBrainzRequestTimeout = 10 * time.Second
musicBrainzRequestRetries = 3
musicBrainzRequestRetryWait = 3 * time.Second
musicBrainzMinRequestInterval = 1100 * time.Millisecond
musicBrainzThrottleCooldownOn503 = 5 * time.Second
musicBrainzStatusCheckSkipWindow = 5 * time.Minute
)
type musicBrainzStatusError struct {
StatusCode int
}
func (e *musicBrainzStatusError) Error() string {
return fmt.Sprintf("MusicBrainz API returned status: %d", e.StatusCode)
}
type musicBrainzInflightCall struct {
done chan struct{}
result Metadata
err error
}
var (
musicBrainzCache sync.Map
musicBrainzInflightMu sync.Mutex
musicBrainzInflight = make(map[string]*musicBrainzInflightCall)
musicBrainzThrottleMu sync.Mutex
musicBrainzNextRequest time.Time
musicBrainzBlockedTill time.Time
musicBrainzStatusMu sync.RWMutex
musicBrainzLastCheckedAt time.Time
musicBrainzLastCheckedOnline bool
)
func SetMusicBrainzStatusCheckResult(online bool) {
musicBrainzStatusMu.Lock()
defer musicBrainzStatusMu.Unlock()
musicBrainzLastCheckedAt = time.Now()
musicBrainzLastCheckedOnline = online
}
func ShouldSkipMusicBrainzMetadataFetch() bool {
musicBrainzStatusMu.RLock()
defer musicBrainzStatusMu.RUnlock()
if musicBrainzLastCheckedAt.IsZero() {
return false
}
if musicBrainzLastCheckedOnline {
return false
}
return time.Since(musicBrainzLastCheckedAt) <= musicBrainzStatusCheckSkipWindow
}
type MusicBrainzRecordingResponse struct {
Recordings []struct {
@@ -54,66 +114,176 @@ type MusicBrainzRecordingResponse struct {
} `json:"recordings"`
}
func musicBrainzCacheKey(isrc string, useSingleGenre bool) string {
separator := strings.TrimSpace(GetSeparator())
if separator == "" {
separator = ";"
}
return strings.ToUpper(strings.TrimSpace(isrc)) + "|" + fmt.Sprintf("%t", useSingleGenre) + "|" + separator
}
func waitForMusicBrainzRequestSlot() {
musicBrainzThrottleMu.Lock()
readyAt := musicBrainzNextRequest
if musicBrainzBlockedTill.After(readyAt) {
readyAt = musicBrainzBlockedTill
}
now := time.Now()
if readyAt.Before(now) {
readyAt = now
}
musicBrainzNextRequest = readyAt.Add(musicBrainzMinRequestInterval)
waitDuration := time.Until(readyAt)
musicBrainzThrottleMu.Unlock()
if waitDuration > 0 {
time.Sleep(waitDuration)
}
}
func noteMusicBrainzThrottle() {
musicBrainzThrottleMu.Lock()
defer musicBrainzThrottleMu.Unlock()
cooldownUntil := time.Now().Add(musicBrainzThrottleCooldownOn503)
if cooldownUntil.After(musicBrainzBlockedTill) {
musicBrainzBlockedTill = cooldownUntil
}
if musicBrainzNextRequest.Before(musicBrainzBlockedTill) {
musicBrainzNextRequest = musicBrainzBlockedTill
}
}
func shouldRetryMusicBrainzRequest(err error) bool {
if err == nil {
return false
}
statusErr, ok := err.(*musicBrainzStatusError)
if !ok {
return true
}
return statusErr.StatusCode == http.StatusServiceUnavailable || statusErr.StatusCode >= http.StatusInternalServerError
}
func queryMusicBrainzRecordings(client *http.Client, query string) (*MusicBrainzRecordingResponse, error) {
reqURL := fmt.Sprintf("%s/recording?query=%s&fmt=json&inc=releases+artist-credits+tags+media+release-groups+labels", musicBrainzAPIBase, url.QueryEscape(query))
req, err := http.NewRequest(http.MethodGet, reqURL, nil)
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", fmt.Sprintf("SpotiFLAC/%s ( support@spotbye.qzz.io )", AppVersion))
req.Header.Set("Accept", "application/json")
var lastErr error
for attempt := 0; attempt < musicBrainzRequestRetries; attempt++ {
waitForMusicBrainzRequestSlot()
resp, err := client.Do(req)
if err == nil && resp != nil && resp.StatusCode == http.StatusOK {
defer resp.Body.Close()
var mbResp MusicBrainzRecordingResponse
if decodeErr := json.NewDecoder(resp.Body).Decode(&mbResp); decodeErr != nil {
return nil, decodeErr
}
return &mbResp, nil
}
if err != nil {
lastErr = err
} else if resp == nil {
lastErr = fmt.Errorf("empty response from MusicBrainz")
} else {
if resp.StatusCode == http.StatusServiceUnavailable {
noteMusicBrainzThrottle()
}
lastErr = &musicBrainzStatusError{StatusCode: resp.StatusCode}
resp.Body.Close()
}
if attempt < musicBrainzRequestRetries-1 && shouldRetryMusicBrainzRequest(lastErr) {
time.Sleep(musicBrainzRequestRetryWait)
continue
}
break
}
if lastErr == nil {
lastErr = fmt.Errorf("empty response from MusicBrainz")
}
return nil, lastErr
}
func FetchMusicBrainzMetadata(isrc, title, artist, album string, useSingleGenre bool, embedGenre bool) (Metadata, error) {
var meta Metadata
var resultErr error
if !embedGenre {
return meta, nil
}
if isrc == "" {
return meta, fmt.Errorf("no ISRC provided")
resultErr = fmt.Errorf("no ISRC provided")
return meta, resultErr
}
cacheKey := musicBrainzCacheKey(isrc, useSingleGenre)
if cached, ok := musicBrainzCache.Load(cacheKey); ok {
return cached.(Metadata), nil
}
if ShouldSkipMusicBrainzMetadataFetch() {
resultErr = fmt.Errorf("skipping MusicBrainz lookup because the latest status check reported offline")
return meta, resultErr
}
musicBrainzInflightMu.Lock()
if call, ok := musicBrainzInflight[cacheKey]; ok {
musicBrainzInflightMu.Unlock()
<-call.done
return call.result, call.err
}
call := &musicBrainzInflightCall{done: make(chan struct{})}
musicBrainzInflight[cacheKey] = call
musicBrainzInflightMu.Unlock()
defer func() {
call.result = meta
call.err = resultErr
musicBrainzInflightMu.Lock()
delete(musicBrainzInflight, cacheKey)
close(call.done)
musicBrainzInflightMu.Unlock()
}()
client := &http.Client{
Timeout: 10 * time.Second,
Timeout: musicBrainzRequestTimeout,
}
query := fmt.Sprintf("isrc:%s", isrc)
reqURL := fmt.Sprintf("%s/recording?query=%s&fmt=json&inc=releases+artist-credits+tags+media+release-groups+labels", musicBrainzAPIBase, url.QueryEscape(query))
req, err := http.NewRequest("GET", reqURL, nil)
mbResp, err := queryMusicBrainzRecordings(client, query)
if err != nil {
return meta, err
}
req.Header.Set("User-Agent", fmt.Sprintf("SpotiFLAC/%s ( hi@afkarxyz.qzz.io )", AppVersion))
var resp *http.Response
var lastErr error
for i := 0; i < 3; i++ {
resp, lastErr = client.Do(req)
if lastErr == nil && resp.StatusCode == http.StatusOK {
break
}
if resp != nil {
resp.Body.Close()
}
if i < 2 {
time.Sleep(2 * time.Second)
}
}
if lastErr != nil {
return meta, lastErr
}
if resp.StatusCode != http.StatusOK {
resp.Body.Close()
return meta, fmt.Errorf("MusicBrainz API returned status: %d", resp.StatusCode)
}
defer resp.Body.Close()
var mbResp MusicBrainzRecordingResponse
if err := json.NewDecoder(resp.Body).Decode(&mbResp); err != nil {
return meta, err
resultErr = err
return meta, resultErr
}
if len(mbResp.Recordings) == 0 {
return meta, fmt.Errorf("no recordings found for ISRC: %s", isrc)
resultErr = fmt.Errorf("no recordings found for ISRC: %s", isrc)
return meta, resultErr
}
recording := mbResp.Recordings[0]
@@ -150,5 +320,12 @@ func FetchMusicBrainzMetadata(isrc, title, artist, album string, useSingleGenre
}
}
if meta.Genre == "" {
resultErr = fmt.Errorf("no genre tags found in MusicBrainz")
return meta, resultErr
}
musicBrainzCache.Store(cacheKey, meta)
return meta, nil
}
+88
View File
@@ -0,0 +1,88 @@
package backend
import (
"net/url"
"strings"
)
const amazonMusicAPIBaseURL = "https://amazon.spotbye.qzz.io"
const (
qobuzWJHEBaseURL = "https://music.wjhe.top"
qobuzWJHESearchAPIURL = qobuzWJHEBaseURL + "/api/music/qobuz/search"
qobuzWJHEStreamAPIURL = qobuzWJHEBaseURL + "/api/music/qobuz/url"
qobuzMusicDLDownloadAPIURL = "https://www.musicdl.me/api/qobuz/download"
qobuzGDStudioAPIURLXYZ = "https://music.gdstudio.xyz/api.php"
qobuzGDStudioAPIURLORG = "https://music.gdstudio.org/api.php"
qobuzGDStudioVersion = "2026.5.10"
)
var defaultQobuzDownloadProviderURLs = []string{
qobuzWJHEStreamAPIURL,
qobuzGDStudioAPIURLXYZ,
qobuzGDStudioAPIURLORG,
qobuzMusicDLDownloadAPIURL,
}
func GetQobuzDownloadProviderURLs() []string {
return append([]string(nil), defaultQobuzDownloadProviderURLs...)
}
func GetQobuzWJHESearchAPIURL() string {
return qobuzWJHESearchAPIURL
}
func GetQobuzWJHEStreamAPIURL() string {
return qobuzWJHEStreamAPIURL
}
func GetQobuzMusicDLDownloadAPIURL() string {
return qobuzMusicDLDownloadAPIURL
}
func GetQobuzGDStudioAPIURLs() []string {
return []string{qobuzGDStudioAPIURLXYZ, qobuzGDStudioAPIURLORG}
}
func GetQobuzGDStudioPrimaryAPIURL() string {
return qobuzGDStudioAPIURLXYZ
}
func GetQobuzGDStudioFallbackAPIURL() string {
return qobuzGDStudioAPIURLORG
}
func GetQobuzGDStudioSignatureHost(apiURL string) string {
parsed, err := url.Parse(strings.TrimSpace(apiURL))
if err != nil || strings.TrimSpace(parsed.Host) == "" {
return ""
}
return strings.TrimSpace(parsed.Host)
}
func GetQobuzGDStudioVersion() string {
return qobuzGDStudioVersion
}
func IsQobuzWJHEProviderURL(raw string) bool {
candidate := strings.TrimSpace(raw)
return candidate == qobuzWJHEStreamAPIURL || strings.HasPrefix(candidate, qobuzWJHEStreamAPIURL+"?")
}
func IsQobuzMusicDLProviderURL(raw string) bool {
return strings.EqualFold(strings.TrimSpace(raw), qobuzMusicDLDownloadAPIURL)
}
func IsQobuzGDStudioProviderURL(raw string) bool {
candidate := strings.TrimSpace(raw)
for _, apiURL := range GetQobuzGDStudioAPIURLs() {
if candidate == apiURL || strings.HasPrefix(candidate, apiURL+"?") {
return true
}
}
return false
}
func GetAmazonMusicAPIBaseURL() string {
return amazonMusicAPIBaseURL
}
+725 -113
View File
@@ -1,30 +1,28 @@
package backend
import (
"bytes"
"crypto/aes"
"crypto/cipher"
"crypto/md5"
"crypto/sha256"
"encoding/hex"
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"regexp"
"strconv"
"strings"
"sync"
"time"
)
type QobuzDownloader struct {
client *http.Client
appID string
}
type QobuzSearchResponse struct {
Query string `json:"query"`
Tracks struct {
Limit int `json:"limit"`
Offset int `json:"offset"`
Total int `json:"total"`
Items []QobuzTrack `json:"items"`
} `json:"tracks"`
}
type QobuzTrack struct {
@@ -63,8 +61,63 @@ type QobuzTrack struct {
} `json:"album"`
}
type QobuzStreamResponse struct {
type qobuzMusicDLRequest struct {
URL string `json:"url"`
Quality string `json:"quality"`
}
type qobuzMusicDLResponse struct {
Success bool `json:"success"`
Type string `json:"type"`
URLType string `json:"url_type"`
TrackID string `json:"track_id"`
Quality string `json:"quality_label"`
DownloadURL string `json:"download_url"`
Message string `json:"message"`
Error string `json:"error"`
}
type qobuzPublicSearchResponse struct {
Tracks struct {
Total int `json:"total"`
Items []QobuzTrack `json:"items"`
} `json:"tracks"`
}
const qobuzProbeTrackID int64 = 341032040
var (
qobuzMusicDLDebugKeyOnce sync.Once
qobuzMusicDLDebugKey string
qobuzMusicDLDebugKeyErr error
qobuzStreamingURLPattern = regexp.MustCompile(`https?://[^\s"'<>\\)]+`)
)
var qobuzMusicDLDebugKeySeedParts = [][]byte{
{0x73, 0x70, 0x6f, 0x74, 0x69, 0x66},
{0x6c, 0x61, 0x63, 0x3a, 0x71, 0x6f},
{0x62, 0x75, 0x7a, 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x64, 0x6c, 0x3a, 0x76, 0x31},
}
var qobuzMusicDLDebugKeyAAD = []byte{
0x71, 0x6f, 0x62, 0x75, 0x7a, 0x7c, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x64,
0x6c, 0x7c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x7c, 0x76, 0x31,
}
var qobuzMusicDLDebugKeyNonce = []byte{
0x91, 0x2a, 0x5c, 0x77, 0x0f, 0x33, 0xa8, 0x14, 0x62, 0x9d, 0xce, 0x41,
}
var qobuzMusicDLDebugKeyCiphertext = []byte{
0xf3, 0x4a, 0x83, 0x45, 0x24, 0xb6, 0x22, 0xaf, 0xd6, 0xc3, 0x6e, 0x2d,
0x56, 0xd1, 0xbb, 0x0b, 0xe9, 0x1b, 0x4f, 0x1c, 0x5f, 0x41, 0x55, 0xc2,
0xc6, 0xdf, 0xad, 0x21, 0x58, 0xfe, 0xd5, 0xb8, 0x2d, 0x29, 0xf9, 0x9e,
0x6f, 0xd6,
}
var qobuzMusicDLDebugKeyTag = []byte{
0x69, 0x0c, 0x42, 0x70, 0x14, 0x83, 0xff, 0x14, 0xc8, 0xbe, 0x17, 0x00,
0x69, 0xb1, 0xfe, 0xbb,
}
func NewQobuzDownloader() *QobuzDownloader {
@@ -72,94 +125,625 @@ func NewQobuzDownloader() *QobuzDownloader {
client: &http.Client{
Timeout: 60 * time.Second,
},
appID: "798273057",
}
}
func (q *QobuzDownloader) searchByISRC(isrc string) (*QobuzTrack, error) {
apiBase := "https://www.qobuz.com/api.json/0.2/track/search?query="
url := fmt.Sprintf("%s%s&limit=1&app_id=%s", apiBase, isrc, q.appID)
func previewQobuzResponseBody(body []byte, maxLen int) string {
preview := strings.TrimSpace(string(body))
if len(preview) > maxLen {
return preview[:maxLen] + "..."
}
return preview
}
resp, err := q.client.Get(url)
func buildQobuzOpenTrackURL(trackID int64) string {
return fmt.Sprintf("https://open.qobuz.com/track/%d", trackID)
}
func getQobuzMusicDLDebugKey() (string, error) {
qobuzMusicDLDebugKeyOnce.Do(func() {
hasher := sha256.New()
for _, part := range qobuzMusicDLDebugKeySeedParts {
hasher.Write(part)
}
block, err := aes.NewCipher(hasher.Sum(nil))
if err != nil {
return nil, fmt.Errorf("failed to search track: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
return nil, fmt.Errorf("API returned status %d", resp.StatusCode)
qobuzMusicDLDebugKeyErr = err
return
}
var searchResp QobuzSearchResponse
body, err := io.ReadAll(resp.Body)
gcm, err := cipher.NewGCM(block)
if err != nil {
return nil, fmt.Errorf("failed to read response body: %w", err)
qobuzMusicDLDebugKeyErr = err
return
}
if len(body) == 0 {
return nil, fmt.Errorf("API returned empty response")
}
sealed := make([]byte, 0, len(qobuzMusicDLDebugKeyCiphertext)+len(qobuzMusicDLDebugKeyTag))
sealed = append(sealed, qobuzMusicDLDebugKeyCiphertext...)
sealed = append(sealed, qobuzMusicDLDebugKeyTag...)
if err := json.Unmarshal(body, &searchResp); err != nil {
bodyStr := string(body)
if len(bodyStr) > 200 {
bodyStr = bodyStr[:200] + "..."
}
return nil, fmt.Errorf("failed to decode response: %w (response: %s)", err, bodyStr)
}
if len(searchResp.Tracks.Items) == 0 {
return nil, fmt.Errorf("track not found for ISRC: %s", isrc)
}
return &searchResp.Tracks.Items[0], nil
}
func buildQobuzAPIURL(apiBase string, trackID int64, quality string) string {
if strings.Contains(apiBase, "qbz.afkarxyz.qzz.io") {
return fmt.Sprintf("%s%d?quality=%s", apiBase, trackID, quality)
}
return fmt.Sprintf("%s%d&quality=%s", apiBase, trackID, quality)
}
func (q *QobuzDownloader) DownloadFromStandard(apiBase string, trackID int64, quality string) (string, error) {
apiURL := buildQobuzAPIURL(apiBase, trackID, quality)
resp, err := q.client.Get(apiURL)
plaintext, err := gcm.Open(nil, qobuzMusicDLDebugKeyNonce, sealed, qobuzMusicDLDebugKeyAAD)
if err != nil {
return "", err
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
return "", fmt.Errorf("status %d", resp.StatusCode)
qobuzMusicDLDebugKeyErr = err
return
}
body, err := io.ReadAll(resp.Body)
qobuzMusicDLDebugKey = string(plaintext)
})
if qobuzMusicDLDebugKeyErr != nil {
return "", qobuzMusicDLDebugKeyErr
}
return qobuzMusicDLDebugKey, nil
}
func firstNonEmptyQobuzValue(values ...string) string {
for _, value := range values {
trimmed := strings.TrimSpace(value)
if trimmed != "" {
return trimmed
}
}
return ""
}
func normalizeQobuzSearchValue(value string) string {
replacer := strings.NewReplacer(
"&", " and ",
"feat.", " ",
"ft.", " ",
"/", " ",
"-", " ",
"_", " ",
)
normalized := strings.ToLower(strings.TrimSpace(value))
normalized = replacer.Replace(normalized)
return strings.Join(strings.Fields(normalized), " ")
}
func qobuzTrackDisplayArtist(track QobuzTrack) string {
return firstNonEmptyQobuzValue(track.Performer.Name, track.Album.Artist.Name)
}
func qobuzTrackSupportsHiRes(track QobuzTrack) bool {
if track.Hires || track.HiresStreamable {
return true
}
return track.MaximumBitDepth >= 24 || track.MaximumSamplingRate > 48
}
func scoreQobuzSearchCandidate(track QobuzTrack, spotifyTrackName string, spotifyArtistName string, spotifyAlbumName string) int {
score := 0
titleNeedle := normalizeQobuzSearchValue(spotifyTrackName)
titleHaystack := normalizeQobuzSearchValue(track.Title)
switch {
case titleNeedle != "" && titleHaystack == titleNeedle:
score += 1000
case titleNeedle != "" && (strings.Contains(titleHaystack, titleNeedle) || strings.Contains(titleNeedle, titleHaystack)):
score += 500
}
artistNeedle := normalizeQobuzSearchValue(spotifyArtistName)
artistHaystack := normalizeQobuzSearchValue(qobuzTrackDisplayArtist(track))
switch {
case artistNeedle != "" && artistHaystack == artistNeedle:
score += 300
case artistNeedle != "" && artistHaystack != "" && (strings.Contains(artistHaystack, artistNeedle) || strings.Contains(artistNeedle, artistHaystack)):
score += 180
}
albumNeedle := normalizeQobuzSearchValue(spotifyAlbumName)
albumHaystack := normalizeQobuzSearchValue(track.Album.Title)
switch {
case albumNeedle != "" && albumHaystack == albumNeedle:
score += 150
case albumNeedle != "" && albumHaystack != "" && (strings.Contains(albumHaystack, albumNeedle) || strings.Contains(albumNeedle, albumHaystack)):
score += 90
}
if qobuzTrackSupportsHiRes(track) {
score += 40
} else if track.MaximumBitDepth >= 16 {
score += 20
}
return score
}
func mapQobuzWJHEQuality(quality string) (int, string) {
switch strings.TrimSpace(quality) {
case "27", "7":
return 2000, "flac"
case "", "6":
return 1000, "flac"
default:
return 320, "mp3"
}
}
func buildQobuzWJHEDownloadURL(trackID int64, quality string) string {
wjheQuality, wjheFormat := mapQobuzWJHEQuality(quality)
params := url.Values{
"ID": {strconv.FormatInt(trackID, 10)},
"quality": {strconv.Itoa(wjheQuality)},
"format": {wjheFormat},
}
return GetQobuzWJHEStreamAPIURL() + "?" + params.Encode()
}
func qobuzURLLooksStreamable(raw string) bool {
candidate := strings.TrimSpace(raw)
if candidate == "" {
return false
}
parsed, err := url.Parse(candidate)
if err != nil {
return "", err
return false
}
if len(body) == 0 {
return "", fmt.Errorf("empty body")
return (parsed.Scheme == "http" || parsed.Scheme == "https") && parsed.Host != ""
}
var streamResp QobuzStreamResponse
if err := json.Unmarshal(body, &streamResp); err == nil && streamResp.URL != "" {
return streamResp.URL, nil
func findQobuzStreamingURLInPayload(payload interface{}) string {
switch value := payload.(type) {
case string:
candidate := strings.ReplaceAll(strings.TrimSpace(value), `\/`, `/`)
if qobuzURLLooksStreamable(candidate) {
return candidate
}
case []interface{}:
for _, item := range value {
if url := findQobuzStreamingURLInPayload(item); url != "" {
return url
}
}
case map[string]interface{}:
for _, key := range []string{"download_url", "url", "play_url", "stream_url", "link", "file"} {
if nested, ok := value[key]; ok {
if url := findQobuzStreamingURLInPayload(nested); url != "" {
return url
}
}
}
for _, nested := range value {
if url := findQobuzStreamingURLInPayload(nested); url != "" {
return url
}
}
}
var nestedResp struct {
return ""
}
func extractQobuzStreamingURL(body []byte) string {
trimmed := strings.TrimSpace(string(body))
if trimmed == "" {
return ""
}
var directResp struct {
URL string `json:"url"`
DownloadURL string `json:"download_url"`
Data struct {
URL string `json:"url"`
DownloadURL string `json:"download_url"`
} `json:"data"`
}
if err := json.Unmarshal(body, &nestedResp); err == nil && nestedResp.Data.URL != "" {
return nestedResp.Data.URL, nil
if err := json.Unmarshal(body, &directResp); err == nil {
for _, candidate := range []string{
directResp.DownloadURL,
directResp.URL,
directResp.Data.DownloadURL,
directResp.Data.URL,
} {
if qobuzURLLooksStreamable(candidate) {
return candidate
}
}
}
return "", fmt.Errorf("invalid response")
var genericPayload interface{}
if err := json.Unmarshal(body, &genericPayload); err == nil {
if streamURL := findQobuzStreamingURLInPayload(genericPayload); streamURL != "" {
return streamURL
}
}
if openIdx := strings.Index(trimmed, "("); openIdx >= 0 {
if closeIdx := strings.LastIndex(trimmed, ")"); closeIdx > openIdx+1 {
callbackBody := strings.TrimSpace(trimmed[openIdx+1 : closeIdx])
if streamURL := extractQobuzStreamingURL([]byte(callbackBody)); streamURL != "" {
return streamURL
}
}
}
for _, match := range qobuzStreamingURLPattern.FindAllString(trimmed, -1) {
candidate := strings.ReplaceAll(match, `\/`, `/`)
if qobuzURLLooksStreamable(candidate) {
return candidate
}
}
return ""
}
func newQobuzNoRedirectClient(base *http.Client) *http.Client {
if base == nil {
return &http.Client{
Timeout: 20 * time.Second,
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
},
}
}
cloned := *base
if cloned.Timeout == 0 {
cloned.Timeout = 20 * time.Second
}
cloned.CheckRedirect = func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
return &cloned
}
func (q *QobuzDownloader) searchByISRC(isrc string, spotifyTrackName string, spotifyArtistName string, spotifyAlbumName string) (*QobuzTrack, error) {
if strings.HasPrefix(isrc, "qobuz_") {
trackID := strings.TrimSpace(strings.TrimPrefix(isrc, "qobuz_"))
resp, err := doQobuzSignedRequest(http.MethodGet, "track/get", url.Values{"track_id": {trackID}}, q.client)
if err != nil {
return nil, fmt.Errorf("failed to fetch track from Qobuz public API: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
body, _ := io.ReadAll(io.LimitReader(resp.Body, 512))
return nil, fmt.Errorf("Qobuz public API track/get returned status %d: %s", resp.StatusCode, previewQobuzResponseBody(body, 256))
}
var trackResp QobuzTrack
if err := json.NewDecoder(resp.Body).Decode(&trackResp); err != nil {
return nil, fmt.Errorf("failed to decode Qobuz public track/get response: %w", err)
}
return &trackResp, nil
}
queries := []string{strings.TrimSpace(isrc)}
if fallbackQuery := strings.TrimSpace(strings.Join([]string{spotifyTrackName, spotifyArtistName}, " ")); fallbackQuery != "" {
queries = append(queries, fallbackQuery)
}
var lastErr error
for _, query := range queries {
if strings.TrimSpace(query) == "" {
continue
}
var searchResp qobuzPublicSearchResponse
if err := doQobuzSignedJSONRequest("track/search", url.Values{
"query": {strings.TrimSpace(query)},
"limit": {"10"},
}, &searchResp); err != nil {
lastErr = fmt.Errorf("failed to search Qobuz public API: %w", err)
continue
}
if searchResp.Tracks.Total == 0 || len(searchResp.Tracks.Items) == 0 {
lastErr = fmt.Errorf("track not found for query: %s", query)
continue
}
bestIndex := 0
bestScore := -1
for idx, candidate := range searchResp.Tracks.Items {
score := scoreQobuzSearchCandidate(candidate, spotifyTrackName, spotifyArtistName, spotifyAlbumName)
if idx == 0 || score > bestScore {
bestIndex = idx
bestScore = score
}
}
selected := searchResp.Tracks.Items[bestIndex]
return &selected, nil
}
if lastErr == nil {
lastErr = fmt.Errorf("track not found for ISRC: %s", isrc)
}
return nil, lastErr
}
func (q *QobuzDownloader) DownloadFromWJHE(trackID int64, quality string) (string, error) {
apiURL := buildQobuzWJHEDownloadURL(trackID, quality)
client := newQobuzNoRedirectClient(q.client)
req, err := NewRequestWithDefaultHeaders(http.MethodHead, apiURL, nil)
if err != nil {
return "", fmt.Errorf("failed to create WJHE request: %w", err)
}
resp, err := client.Do(req)
if err != nil {
return "", fmt.Errorf("failed to reach WJHE: %w", err)
}
if resp.StatusCode == http.StatusMethodNotAllowed || resp.StatusCode == http.StatusNotImplemented {
resp.Body.Close()
req, err = NewRequestWithDefaultHeaders(http.MethodGet, apiURL, nil)
if err != nil {
return "", fmt.Errorf("failed to create WJHE fallback request: %w", err)
}
resp, err = client.Do(req)
if err != nil {
return "", fmt.Errorf("failed to reach WJHE with GET fallback: %w", err)
}
}
defer resp.Body.Close()
if location := strings.TrimSpace(resp.Header.Get("Location")); qobuzURLLooksStreamable(location) {
return location, nil
}
body, err := io.ReadAll(io.LimitReader(resp.Body, 128*1024))
if err != nil {
return "", fmt.Errorf("failed to read WJHE response: %w", err)
}
if streamURL := extractQobuzStreamingURL(body); streamURL != "" {
return streamURL, nil
}
if resp.Request != nil && resp.Request.URL != nil {
if streamURL := strings.TrimSpace(resp.Request.URL.String()); streamURL != "" && streamURL != apiURL && qobuzURLLooksStreamable(streamURL) {
return streamURL, nil
}
}
if resp.StatusCode < http.StatusOK || resp.StatusCode >= http.StatusBadRequest {
return "", fmt.Errorf("WJHE returned status %d: %s", resp.StatusCode, previewQobuzResponseBody(body, 256))
}
return "", fmt.Errorf("WJHE response did not include a stream URL")
}
func qobuzGDStudioPaddedVersion() string {
parts := strings.Split(GetQobuzGDStudioVersion(), ".")
for idx, part := range parts {
part = strings.TrimSpace(part)
if len(part) == 1 {
part = "0" + part
}
parts[idx] = part
}
return strings.Join(parts, "")
}
func qobuzGDStudioEscapedValue(value string) string {
return strings.ReplaceAll(url.QueryEscape(strings.TrimSpace(value)), "+", "%20")
}
func (q *QobuzDownloader) getQobuzGDStudioTS9(apiURL string) string {
fallback := strconv.FormatInt(time.Now().UnixMilli(), 10)
if len(fallback) >= 9 {
fallback = fallback[:9]
}
client := q.client
if client == nil {
client = &http.Client{Timeout: 10 * time.Second}
}
signatureHost := GetQobuzGDStudioSignatureHost(apiURL)
if signatureHost == "" {
return fallback
}
req, err := NewRequestWithDefaultHeaders(http.MethodGet, fmt.Sprintf("https://%s/time", signatureHost), nil)
if err != nil {
return fallback
}
resp, err := client.Do(req)
if err != nil {
return fallback
}
defer resp.Body.Close()
body, err := io.ReadAll(io.LimitReader(resp.Body, 64))
if err != nil {
return fallback
}
timestamp := strings.TrimSpace(string(body))
if len(timestamp) >= 9 {
return timestamp[:9]
}
return fallback
}
func buildQobuzGDStudioSignature(apiURL string, value string, ts9 string) string {
signatureHost := GetQobuzGDStudioSignatureHost(apiURL)
signatureBase := fmt.Sprintf("%s|%s|%s|%s", signatureHost, qobuzGDStudioPaddedVersion(), ts9, qobuzGDStudioEscapedValue(value))
sum := md5.Sum([]byte(signatureBase))
digest := hex.EncodeToString(sum[:])
return strings.ToUpper(digest[len(digest)-8:])
}
func mapQobuzGDStudioBitrate(quality string) string {
switch strings.TrimSpace(quality) {
case "27", "7":
return "999"
case "", "6":
return "740"
default:
return "320"
}
}
func (q *QobuzDownloader) DownloadFromGDStudio(trackID int64, quality string, apiURL string) (string, error) {
apiURL = strings.TrimSpace(apiURL)
if apiURL == "" {
apiURL = GetQobuzGDStudioPrimaryAPIURL()
}
signatureHost := GetQobuzGDStudioSignatureHost(apiURL)
if signatureHost == "" {
return "", fmt.Errorf("GDStudio API URL is invalid: %s", apiURL)
}
trackIDString := strconv.FormatInt(trackID, 10)
ts9 := q.getQobuzGDStudioTS9(apiURL)
payload := url.Values{
"types": {"url"},
"id": {trackIDString},
"source": {"qobuz"},
"br": {mapQobuzGDStudioBitrate(quality)},
"s": {buildQobuzGDStudioSignature(apiURL, trackIDString, ts9)},
}
req, err := NewRequestWithDefaultHeaders(http.MethodPost, apiURL, strings.NewReader(payload.Encode()))
if err != nil {
return "", fmt.Errorf("failed to create GDStudio request: %w", err)
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
req.Header.Set("Origin", fmt.Sprintf("https://%s", signatureHost))
req.Header.Set("Referer", fmt.Sprintf("https://%s/", signatureHost))
resp, err := q.client.Do(req)
if err != nil {
return "", fmt.Errorf("failed to reach GDStudio: %w", err)
}
defer resp.Body.Close()
body, err := io.ReadAll(io.LimitReader(resp.Body, 256*1024))
if err != nil {
return "", fmt.Errorf("failed to read GDStudio response: %w", err)
}
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("GDStudio returned status %d: %s", resp.StatusCode, previewQobuzResponseBody(body, 256))
}
streamURL := extractQobuzStreamingURL(body)
if streamURL == "" {
return "", fmt.Errorf("GDStudio response did not include a stream URL: %s", previewQobuzResponseBody(body, 256))
}
return streamURL, nil
}
func (q *QobuzDownloader) DownloadFromMusicDL(trackID int64, quality string) (string, error) {
if strings.TrimSpace(quality) == "" {
quality = "6"
}
debugKey, err := getQobuzMusicDLDebugKey()
if err != nil {
return "", fmt.Errorf("failed to decrypt MusicDL debug key: %w", err)
}
payload, err := json.Marshal(qobuzMusicDLRequest{
URL: buildQobuzOpenTrackURL(trackID),
Quality: strings.TrimSpace(quality),
})
if err != nil {
return "", fmt.Errorf("failed to encode MusicDL request: %w", err)
}
req, err := NewRequestWithDefaultHeaders(http.MethodPost, GetQobuzMusicDLDownloadAPIURL(), bytes.NewReader(payload))
if err != nil {
return "", fmt.Errorf("failed to create MusicDL request: %w", err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Debug-Key", debugKey)
resp, err := q.client.Do(req)
if err != nil {
return "", fmt.Errorf("failed to reach MusicDL: %w", err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return "", fmt.Errorf("failed to read MusicDL response: %w", err)
}
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("MusicDL returned status %d: %s", resp.StatusCode, previewQobuzResponseBody(body, 256))
}
var downloadResp qobuzMusicDLResponse
if err := json.Unmarshal(body, &downloadResp); err != nil {
return "", fmt.Errorf("failed to decode MusicDL response: %w (%s)", err, previewQobuzResponseBody(body, 256))
}
if !downloadResp.Success {
message := strings.TrimSpace(downloadResp.Error)
if message == "" {
message = strings.TrimSpace(downloadResp.Message)
}
if message == "" {
message = "MusicDL reported failure"
}
return "", fmt.Errorf("%s", message)
}
downloadURL := strings.TrimSpace(downloadResp.DownloadURL)
if downloadURL == "" {
return "", fmt.Errorf("MusicDL response did not include a download_url")
}
return downloadURL, nil
}
func CheckQobuzMusicDLStatusDetailed(client *http.Client) error {
if client == nil {
client = &http.Client{Timeout: 4 * time.Second}
}
downloader := &QobuzDownloader{client: client}
_, err := downloader.DownloadFromMusicDL(qobuzProbeTrackID, "27")
return err
}
func CheckQobuzMusicDLStatus(client *http.Client) bool {
return CheckQobuzMusicDLStatusDetailed(client) == nil
}
func CheckQobuzWJHEStatusDetailed(client *http.Client) error {
if client == nil {
client = &http.Client{Timeout: 4 * time.Second}
}
downloader := &QobuzDownloader{client: client}
_, err := downloader.DownloadFromWJHE(qobuzProbeTrackID, "27")
return err
}
func CheckQobuzWJHEStatus(client *http.Client) bool {
return CheckQobuzWJHEStatusDetailed(client) == nil
}
func CheckQobuzGDStudioAPIStatusDetailed(client *http.Client, apiURL string) error {
if client == nil {
client = &http.Client{Timeout: 4 * time.Second}
}
downloader := &QobuzDownloader{client: client}
_, err := downloader.DownloadFromGDStudio(qobuzProbeTrackID, "27", apiURL)
return err
}
func CheckQobuzGDStudioAPIStatus(client *http.Client, apiURL string) bool {
return CheckQobuzGDStudioAPIStatusDetailed(client, apiURL) == nil
}
func (q *QobuzDownloader) GetDownloadURL(trackID int64, quality string, allowFallback bool) (string, error) {
@@ -170,45 +754,36 @@ func (q *QobuzDownloader) GetDownloadURL(trackID int64, quality string, allowFal
fmt.Printf("Getting download URL for track ID: %d with requested quality: %s\n", trackID, qualityCode)
standardAPIs := prioritizeProviders("qobuz", []string{
"https://dab.yeet.su/api/stream?trackId=",
"https://dabmusic.xyz/api/stream?trackId=",
"https://qbz.afkarxyz.qzz.io/api/track/",
})
downloadFunc := func(qual string) (string, error) {
type Provider struct {
Name string
API string
Func func() (string, error)
}
var providers []Provider
for _, api := range standardAPIs {
currentAPI := api
providers = append(providers, Provider{
Name: "Standard(" + currentAPI + ")",
API: currentAPI,
Func: func() (string, error) {
return q.DownloadFromStandard(currentAPI, trackID, qual)
},
})
attemptMap := make(map[string]qobuzProviderAttempt)
attemptIDs := make([]string, 0, len(GetQobuzDownloadProviderURLs()))
for _, provider := range q.getQobuzDownloadProviders() {
for _, attempt := range provider.Attempts(trackID, qual) {
attemptMap[attempt.ID] = attempt
attemptIDs = append(attemptIDs, attempt.ID)
}
}
orderedProviderIDs := prioritizeProviders("qobuz", attemptIDs)
orderedProviderIDs = moveQobuzAttemptIDsLast(orderedProviderIDs, GetQobuzMusicDLDownloadAPIURL())
var lastErr error
for _, p := range providers {
fmt.Printf("Trying Provider: %s (Quality: %s)...\n", p.Name, qual)
for _, providerID := range orderedProviderIDs {
attempt, ok := attemptMap[providerID]
if !ok {
continue
}
url, err := p.Func()
fmt.Printf("Trying Provider: %s (Quality: %s)...\n", attempt.Name, qual)
url, err := attempt.Download()
if err == nil {
fmt.Printf("✓ Success\n")
recordProviderSuccess("qobuz", p.API)
recordProviderSuccess("qobuz", attempt.ID)
return url, nil
}
fmt.Printf("Provider failed: %v\n", err)
recordProviderFailure("qobuz", p.API)
recordProviderFailure("qobuz", attempt.ID)
lastErr = err
}
return "", lastErr
@@ -251,7 +826,12 @@ func (q *QobuzDownloader) DownloadFile(url, filepath string) error {
Timeout: 5 * time.Minute,
}
resp, err := downloadClient.Get(url)
req, err := NewRequestWithDefaultHeaders(http.MethodGet, url, nil)
if err != nil {
return fmt.Errorf("failed to create download request: %w", err)
}
resp, err := downloadClient.Do(req)
if err != nil {
return fmt.Errorf("failed to download file: %w", err)
}
@@ -285,7 +865,12 @@ func (q *QobuzDownloader) DownloadCoverArt(coverURL, filepath string) error {
return fmt.Errorf("no cover URL provided")
}
resp, err := q.client.Get(coverURL)
req, err := NewRequestWithDefaultHeaders(http.MethodGet, coverURL, nil)
if err != nil {
return fmt.Errorf("failed to create cover request: %w", err)
}
resp, err := q.client.Do(req)
if err != nil {
return fmt.Errorf("failed to download cover: %w", err)
}
@@ -305,8 +890,12 @@ func (q *QobuzDownloader) DownloadCoverArt(coverURL, filepath string) error {
return err
}
func buildQobuzFilename(title, artist, album, albumArtist, releaseDate string, trackNumber, discNumber int, format string, includeTrackNumber bool, position int, useAlbumTrackNumber bool) string {
func buildQobuzFilename(title, artist, album, albumArtist, releaseDate string, trackNumber, discNumber int, format string, includeTrackNumber bool, position int, useAlbumTrackNumber bool, extra ...string) string {
var filename string
isrc := ""
if len(extra) > 0 {
isrc = SanitizeOptionalFilename(extra[0])
}
numberToUse := position
if useAlbumTrackNumber && trackNumber > 0 {
@@ -326,6 +915,7 @@ func buildQobuzFilename(title, artist, album, albumArtist, releaseDate string, t
filename = strings.ReplaceAll(filename, "{album_artist}", albumArtist)
filename = strings.ReplaceAll(filename, "{year}", year)
filename = strings.ReplaceAll(filename, "{date}", SanitizeFilename(releaseDate))
filename = strings.ReplaceAll(filename, "{isrc}", isrc)
if discNumber > 0 {
filename = strings.ReplaceAll(filename, "{disc}", fmt.Sprintf("%d", discNumber))
@@ -360,7 +950,7 @@ func buildQobuzFilename(title, artist, album, albumArtist, releaseDate string, t
return filename + ".flac"
}
func (q *QobuzDownloader) DownloadTrack(spotifyID, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
func (q *QobuzDownloader) DownloadTrack(spotifyID, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
var isrc string
if spotifyID != "" {
linkClient := NewSongLinkClient()
@@ -373,15 +963,19 @@ func (q *QobuzDownloader) DownloadTrack(spotifyID, outputDir, quality, filenameF
return "", fmt.Errorf("spotify ID is required for Qobuz download")
}
return q.DownloadTrackWithISRC(isrc, outputDir, quality, filenameFormat, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, useAlbumTrackNumber, spotifyCoverURL, embedMaxQualityCover, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyURL, allowFallback, useFirstArtistOnly, useSingleGenre, embedGenre)
return q.DownloadTrackWithISRC(isrc, outputDir, quality, filenameFormat, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, useAlbumTrackNumber, spotifyCoverURL, embedMaxQualityCover, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, spotifyURL, allowFallback, useFirstArtistOnly, useSingleGenre, embedGenre)
}
func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
fmt.Printf("Fetching track info for ISRC: %s\n", isrc)
metaChan := make(chan Metadata, 1)
if embedGenre && isrc != "" {
go func() {
if ShouldSkipMusicBrainzMetadataFetch() {
fmt.Println("Skipping MusicBrainz metadata fetch because status check is offline.")
metaChan <- Metadata{}
} else {
fmt.Println("Fetching MusicBrainz metadata...")
if fetchedMeta, err := FetchMusicBrainzMetadata(isrc, spotifyTrackName, spotifyArtistName, spotifyAlbumName, useSingleGenre, embedGenre); err == nil {
fmt.Println("✓ MusicBrainz metadata fetched")
@@ -390,6 +984,7 @@ func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filena
fmt.Printf("Warning: Failed to fetch MusicBrainz metadata: %v\n", err)
metaChan <- Metadata{}
}
}
}()
} else {
close(metaChan)
@@ -401,7 +996,7 @@ func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filena
}
}
track, err := q.searchByISRC(isrc)
track, err := q.searchByISRC(isrc, spotifyTrackName, spotifyArtistName, spotifyAlbumName)
if err != nil {
return "", err
}
@@ -415,7 +1010,13 @@ func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filena
qualityInfo := "Standard"
if track.Hires {
if track.MaximumBitDepth > 0 && track.MaximumSamplingRate > 0 {
qualityInfo = fmt.Sprintf("Hi-Res (%d-bit / %.1f kHz)", track.MaximumBitDepth, track.MaximumSamplingRate)
} else if track.MaximumBitDepth > 0 {
qualityInfo = fmt.Sprintf("Hi-Res available (%d-bit)", track.MaximumBitDepth)
} else {
qualityInfo = "Hi-Res available"
}
}
fmt.Printf("Quality: %s\n", qualityInfo)
@@ -446,11 +1047,11 @@ func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filena
safeTitle := sanitizeFilename(trackTitle)
safeAlbum := sanitizeFilename(albumTitle)
filename := buildQobuzFilename(safeTitle, safeArtist, safeAlbum, safeAlbumArtist, spotifyReleaseDate, spotifyTrackNumber, spotifyDiscNumber, filenameFormat, includeTrackNumber, position, useAlbumTrackNumber)
filename := buildQobuzFilename(safeTitle, safeArtist, safeAlbum, safeAlbumArtist, spotifyReleaseDate, spotifyTrackNumber, spotifyDiscNumber, filenameFormat, includeTrackNumber, position, useAlbumTrackNumber, isrc)
filepath := filepath.Join(outputDir, filename)
if fileInfo, err := os.Stat(filepath); err == nil && fileInfo.Size() > 0 {
fmt.Printf("File already exists: %s (%.2f MB)\n", filepath, float64(fileInfo.Size())/(1024*1024))
filepath, alreadyExists := ResolveOutputPathForDownload(filepath, GetRedownloadWithSuffixSetting())
if alreadyExists {
fmt.Printf("File already exists: %s (%.2f MB)\n", filepath, float64(mustFileSize(filepath))/(1024*1024))
return "EXISTS:" + filepath, nil
}
@@ -487,6 +1088,14 @@ func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filena
trackNumberToEmbed = 1
}
upc := ""
if identifiers, err := GetSpotifyTrackIdentifiersDirect(spotifyURL); err == nil || identifiers.ISRC != "" || identifiers.UPC != "" {
if strings.TrimSpace(isrc) == "" && strings.TrimSpace(identifiers.ISRC) != "" {
isrc = strings.TrimSpace(identifiers.ISRC)
}
upc = strings.TrimSpace(identifiers.UPC)
}
metadata := Metadata{
Title: trackTitle,
Artist: artists,
@@ -501,8 +1110,11 @@ func (q *QobuzDownloader) DownloadTrackWithISRC(isrc, outputDir, quality, filena
Comment: spotifyURL,
Copyright: spotifyCopyright,
Publisher: spotifyPublisher,
Description: "https://github.com/afkarxyz/SpotiFLAC",
Composer: spotifyComposer,
Separator: metadataSeparator,
Description: "https://github.com/spotbye/SpotiFLAC",
ISRC: isrc,
UPC: upc,
Genre: mbMeta.Genre,
}
+407
View File
@@ -0,0 +1,407 @@
package backend
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"regexp"
"sort"
"strings"
"sync"
"time"
)
const (
qobuzAPIBaseURL = "https://www.qobuz.com/api.json/0.2"
qobuzDefaultAPIAppID = "712109809"
qobuzDefaultAPIAppSecret = "589be88e4538daea11f509d29e4a23b1"
qobuzDefaultUA = DefaultDownloaderUserAgent
qobuzCredentialsCacheFile = "qobuz-api-credentials.json"
qobuzCredentialsCacheTTL = 24 * time.Hour
qobuzCredentialsProbeTrackISRC = "USUM71703861"
qobuzOpenTrackProbeURL = "https://open.qobuz.com/track/1"
)
var (
qobuzCredentialsMu sync.Mutex
qobuzCachedCredentials *qobuzAPICredentials
qobuzOpenBundleScriptPattern = regexp.MustCompile(`<script[^>]+src="([^"]+/js/main\.js|/resources/[^"]+/js/main\.js)"`)
qobuzOpenAPIConfigPattern = regexp.MustCompile(`app_id:"(?P<app_id>\d{9})",app_secret:"(?P<app_secret>[a-f0-9]{32})"`)
)
type qobuzAPICredentials struct {
AppID string `json:"app_id"`
AppSecret string `json:"app_secret"`
Source string `json:"source,omitempty"`
FetchedAtUnix int64 `json:"fetched_at_unix"`
}
type qobuzCredentialProbeResponse struct {
Tracks struct {
Total int `json:"total"`
} `json:"tracks"`
}
func defaultQobuzAPICredentials() *qobuzAPICredentials {
return &qobuzAPICredentials{
AppID: qobuzDefaultAPIAppID,
AppSecret: qobuzDefaultAPIAppSecret,
Source: "embedded-default",
FetchedAtUnix: time.Now().Unix(),
}
}
func qobuzCredentialsCachePath() (string, error) {
appDir, err := GetFFmpegDir()
if err != nil {
return "", err
}
return filepath.Join(appDir, qobuzCredentialsCacheFile), nil
}
func loadQobuzCachedCredentials() (*qobuzAPICredentials, error) {
cachePath, err := qobuzCredentialsCachePath()
if err != nil {
return nil, err
}
body, err := os.ReadFile(cachePath)
if err != nil {
if os.IsNotExist(err) {
return nil, nil
}
return nil, fmt.Errorf("failed to read qobuz credentials cache: %w", err)
}
var creds qobuzAPICredentials
if err := json.Unmarshal(body, &creds); err != nil {
return nil, fmt.Errorf("failed to parse qobuz credentials cache: %w", err)
}
if strings.TrimSpace(creds.AppID) == "" || strings.TrimSpace(creds.AppSecret) == "" {
return nil, fmt.Errorf("qobuz credentials cache is incomplete")
}
return &creds, nil
}
func saveQobuzCachedCredentials(creds *qobuzAPICredentials) error {
if creds == nil {
return fmt.Errorf("qobuz credentials are required")
}
cachePath, err := qobuzCredentialsCachePath()
if err != nil {
return err
}
if err := os.MkdirAll(filepath.Dir(cachePath), 0o755); err != nil {
return fmt.Errorf("failed to create qobuz credentials cache directory: %w", err)
}
body, err := json.MarshalIndent(creds, "", " ")
if err != nil {
return err
}
if err := os.WriteFile(cachePath, body, 0o644); err != nil {
return fmt.Errorf("failed to write qobuz credentials cache: %w", err)
}
return nil
}
func qobuzCredentialsCacheIsFresh(creds *qobuzAPICredentials) bool {
if creds == nil || creds.FetchedAtUnix == 0 || strings.TrimSpace(creds.AppID) == "" || strings.TrimSpace(creds.AppSecret) == "" {
return false
}
return time.Since(time.Unix(creds.FetchedAtUnix, 0)) < qobuzCredentialsCacheTTL
}
func scrapeQobuzOpenCredentials(client *http.Client) (*qobuzAPICredentials, error) {
req, err := http.NewRequest(http.MethodGet, qobuzOpenTrackProbeURL, nil)
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", qobuzDefaultUA)
resp, err := client.Do(req)
if err != nil {
return nil, fmt.Errorf("failed to fetch open.qobuz.com shell: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
preview, _ := io.ReadAll(io.LimitReader(resp.Body, 512))
return nil, fmt.Errorf("open.qobuz.com returned status %d: %s", resp.StatusCode, strings.TrimSpace(string(preview)))
}
htmlBody, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read open.qobuz.com shell: %w", err)
}
scriptMatch := qobuzOpenBundleScriptPattern.FindStringSubmatch(string(htmlBody))
if len(scriptMatch) < 2 {
return nil, fmt.Errorf("qobuz open bundle URL not found")
}
bundleURL := strings.TrimSpace(scriptMatch[1])
if strings.HasPrefix(bundleURL, "/") {
bundleURL = "https://open.qobuz.com" + bundleURL
}
if bundleURL == "" {
return nil, fmt.Errorf("qobuz open bundle URL is empty")
}
bundleReq, err := http.NewRequest(http.MethodGet, bundleURL, nil)
if err != nil {
return nil, err
}
bundleReq.Header.Set("User-Agent", qobuzDefaultUA)
bundleResp, err := client.Do(bundleReq)
if err != nil {
return nil, fmt.Errorf("failed to fetch qobuz open bundle: %w", err)
}
defer bundleResp.Body.Close()
if bundleResp.StatusCode != http.StatusOK {
preview, _ := io.ReadAll(io.LimitReader(bundleResp.Body, 512))
return nil, fmt.Errorf("qobuz open bundle returned status %d: %s", bundleResp.StatusCode, strings.TrimSpace(string(preview)))
}
bundleBody, err := io.ReadAll(bundleResp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read qobuz open bundle: %w", err)
}
configMatch := qobuzOpenAPIConfigPattern.FindStringSubmatch(string(bundleBody))
if len(configMatch) < 3 {
return nil, fmt.Errorf("qobuz api app_id/app_secret pair not found in open bundle")
}
return &qobuzAPICredentials{
AppID: strings.TrimSpace(configMatch[1]),
AppSecret: strings.TrimSpace(configMatch[2]),
Source: bundleURL,
FetchedAtUnix: time.Now().Unix(),
}, nil
}
func qobuzNormalizedPath(path string) string {
return strings.Trim(strings.TrimSpace(path), "/")
}
func qobuzSignaturePayload(path string, params url.Values, timestamp string, secret string) string {
normalizedPath := strings.ReplaceAll(qobuzNormalizedPath(path), "/", "")
keys := make([]string, 0, len(params))
for key := range params {
switch key {
case "app_id", "request_ts", "request_sig":
continue
}
keys = append(keys, key)
}
sort.Strings(keys)
var builder strings.Builder
builder.WriteString(normalizedPath)
for _, key := range keys {
values := params[key]
if len(values) == 0 {
builder.WriteString(key)
continue
}
for _, value := range values {
builder.WriteString(key)
builder.WriteString(value)
}
}
builder.WriteString(timestamp)
builder.WriteString(secret)
return builder.String()
}
func qobuzRequestSignature(path string, params url.Values, timestamp string, secret string) string {
sum := md5.Sum([]byte(qobuzSignaturePayload(path, params, timestamp, secret)))
return hex.EncodeToString(sum[:])
}
func newQobuzSignedRequestWithCredentials(method string, path string, params url.Values, creds *qobuzAPICredentials) (*http.Request, error) {
normalizedPath := qobuzNormalizedPath(path)
if normalizedPath == "" {
return nil, fmt.Errorf("qobuz request path is empty")
}
if creds == nil || strings.TrimSpace(creds.AppID) == "" || strings.TrimSpace(creds.AppSecret) == "" {
return nil, fmt.Errorf("qobuz credentials are incomplete")
}
clonedParams := url.Values{}
for key, values := range params {
for _, value := range values {
clonedParams.Add(key, value)
}
}
timestamp := fmt.Sprintf("%d", time.Now().Unix())
clonedParams.Set("app_id", creds.AppID)
clonedParams.Set("request_ts", timestamp)
clonedParams.Set("request_sig", qobuzRequestSignature(normalizedPath, params, timestamp, creds.AppSecret))
reqURL := fmt.Sprintf("%s/%s?%s", qobuzAPIBaseURL, normalizedPath, clonedParams.Encode())
req, err := http.NewRequest(method, reqURL, nil)
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", qobuzDefaultUA)
req.Header.Set("Accept", "application/json")
req.Header.Set("X-App-Id", creds.AppID)
return req, nil
}
func qobuzCredentialsSupportSignedMetadata(client *http.Client, creds *qobuzAPICredentials) bool {
if creds == nil {
return false
}
req, err := newQobuzSignedRequestWithCredentials(http.MethodGet, "track/search", url.Values{
"query": {qobuzCredentialsProbeTrackISRC},
"limit": {"1"},
}, creds)
if err != nil {
return false
}
resp, err := client.Do(req)
if err != nil {
return false
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return false
}
var payload qobuzCredentialProbeResponse
if err := json.NewDecoder(resp.Body).Decode(&payload); err != nil {
return false
}
return payload.Tracks.Total > 0
}
func getQobuzAPICredentials(forceRefresh bool) (*qobuzAPICredentials, error) {
qobuzCredentialsMu.Lock()
defer qobuzCredentialsMu.Unlock()
if !forceRefresh && qobuzCredentialsCacheIsFresh(qobuzCachedCredentials) {
return qobuzCachedCredentials, nil
}
cachedFromDisk, diskErr := loadQobuzCachedCredentials()
if diskErr != nil {
fmt.Printf("Warning: failed to read Qobuz credentials cache: %v\n", diskErr)
}
if !forceRefresh && qobuzCredentialsCacheIsFresh(cachedFromDisk) {
qobuzCachedCredentials = cachedFromDisk
return qobuzCachedCredentials, nil
}
client := &http.Client{Timeout: 30 * time.Second}
scrapedCreds, scrapeErr := scrapeQobuzOpenCredentials(client)
if scrapeErr == nil {
if qobuzCredentialsSupportSignedMetadata(client, scrapedCreds) {
qobuzCachedCredentials = scrapedCreds
if err := saveQobuzCachedCredentials(scrapedCreds); err != nil {
fmt.Printf("Warning: failed to write Qobuz credentials cache: %v\n", err)
}
fmt.Printf("Loaded fresh Qobuz credentials from %s (app_id=%s)\n", scrapedCreds.Source, scrapedCreds.AppID)
return qobuzCachedCredentials, nil
}
scrapeErr = fmt.Errorf("scraped qobuz credentials did not pass validation")
}
if cachedFromDisk != nil {
qobuzCachedCredentials = cachedFromDisk
fmt.Printf("Warning: failed to refresh Qobuz credentials, using cached credentials: %v\n", scrapeErr)
return qobuzCachedCredentials, nil
}
if qobuzCachedCredentials != nil {
fmt.Printf("Warning: failed to refresh Qobuz credentials, using in-memory credentials: %v\n", scrapeErr)
return qobuzCachedCredentials, nil
}
fallback := defaultQobuzAPICredentials()
qobuzCachedCredentials = fallback
if scrapeErr != nil {
fmt.Printf("Warning: failed to refresh Qobuz credentials, using embedded fallback: %v\n", scrapeErr)
}
return qobuzCachedCredentials, nil
}
func qobuzShouldRefreshCredentials(statusCode int) bool {
return statusCode == http.StatusBadRequest || statusCode == http.StatusUnauthorized
}
func newQobuzSignedRequest(method string, path string, params url.Values) (*http.Request, error) {
creds, err := getQobuzAPICredentials(false)
if err != nil {
return nil, err
}
return newQobuzSignedRequestWithCredentials(method, path, params, creds)
}
func doQobuzSignedRequest(method string, path string, params url.Values, client *http.Client) (*http.Response, error) {
if client == nil {
client = &http.Client{Timeout: 20 * time.Second}
}
call := func(forceRefresh bool) (*http.Response, error) {
creds, err := getQobuzAPICredentials(forceRefresh)
if err != nil {
return nil, err
}
req, err := newQobuzSignedRequestWithCredentials(method, path, params, creds)
if err != nil {
return nil, err
}
return client.Do(req)
}
resp, err := call(false)
if err != nil {
return nil, err
}
if qobuzShouldRefreshCredentials(resp.StatusCode) {
resp.Body.Close()
return call(true)
}
return resp, nil
}
func doQobuzSignedJSONRequest(path string, params url.Values, target interface{}) error {
resp, err := doQobuzSignedRequest(http.MethodGet, path, params, &http.Client{Timeout: 20 * time.Second})
if err != nil {
return err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
snippet, _ := io.ReadAll(io.LimitReader(resp.Body, 2048))
return fmt.Errorf("qobuz request failed: HTTP %d: %s", resp.StatusCode, strings.TrimSpace(string(snippet)))
}
return json.NewDecoder(resp.Body).Decode(target)
}
+106
View File
@@ -0,0 +1,106 @@
package backend
type qobuzDownloadProvider interface {
Name() string
Attempts(trackID int64, quality string) []qobuzProviderAttempt
}
type qobuzProviderAttempt struct {
Name string
ID string
Download func() (string, error)
}
type QobuzProviderWJHE struct {
downloader *QobuzDownloader
}
func (p QobuzProviderWJHE) Name() string {
return "QobuzProviderWJHE"
}
func (p QobuzProviderWJHE) Attempts(trackID int64, quality string) []qobuzProviderAttempt {
return []qobuzProviderAttempt{
{
Name: p.Name(),
ID: GetQobuzWJHEStreamAPIURL(),
Download: func() (string, error) {
return p.downloader.DownloadFromWJHE(trackID, quality)
},
},
}
}
type QobuzProviderMusicDL struct {
downloader *QobuzDownloader
}
func (p QobuzProviderMusicDL) Name() string {
return "QobuzProviderMusicDL"
}
func (p QobuzProviderMusicDL) Attempts(trackID int64, quality string) []qobuzProviderAttempt {
return []qobuzProviderAttempt{
{
Name: p.Name(),
ID: GetQobuzMusicDLDownloadAPIURL(),
Download: func() (string, error) {
return p.downloader.DownloadFromMusicDL(trackID, quality)
},
},
}
}
type QobuzProviderGDStudio struct {
downloader *QobuzDownloader
}
func (p QobuzProviderGDStudio) Name() string {
return "QobuzProviderGDStudio"
}
func (p QobuzProviderGDStudio) Attempts(trackID int64, quality string) []qobuzProviderAttempt {
attempts := make([]qobuzProviderAttempt, 0, len(GetQobuzGDStudioAPIURLs()))
for _, apiURL := range GetQobuzGDStudioAPIURLs() {
currentAPIURL := apiURL
attempts = append(attempts, qobuzProviderAttempt{
Name: p.Name(),
ID: currentAPIURL,
Download: func() (string, error) {
return p.downloader.DownloadFromGDStudio(trackID, quality, currentAPIURL)
},
})
}
return attempts
}
func (q *QobuzDownloader) getQobuzDownloadProviders() []qobuzDownloadProvider {
return []qobuzDownloadProvider{
QobuzProviderWJHE{downloader: q},
QobuzProviderGDStudio{downloader: q},
QobuzProviderMusicDL{downloader: q},
}
}
func moveQobuzAttemptIDsLast(providerIDs []string, lastIDs ...string) []string {
if len(providerIDs) == 0 || len(lastIDs) == 0 {
return append([]string(nil), providerIDs...)
}
lastIDSet := make(map[string]struct{}, len(lastIDs))
for _, providerID := range lastIDs {
lastIDSet[providerID] = struct{}{}
}
ordered := make([]string, 0, len(providerIDs))
trailing := make([]string, 0, len(providerIDs))
for _, providerID := range providerIDs {
if _, ok := lastIDSet[providerID]; ok {
trailing = append(trailing, providerID)
continue
}
ordered = append(ordered, providerID)
}
return append(ordered, trailing...)
}
+91
View File
@@ -0,0 +1,91 @@
package backend
import (
"encoding/json"
"os"
"path/filepath"
"strings"
"sync"
)
const recentFetchesFileName = "recent_fetches.json"
type RecentFetchItem struct {
ID string `json:"id"`
URL string `json:"url"`
Type string `json:"type"`
Name string `json:"name"`
Artist string `json:"artist"`
Image string `json:"image"`
Timestamp int64 `json:"timestamp"`
}
var (
recentFetchesMu sync.Mutex
recentFetchesDirResolver = GetFFmpegDir
)
func recentFetchesFilePath() (string, error) {
baseDir, err := recentFetchesDirResolver()
if err != nil {
return "", err
}
if err := os.MkdirAll(baseDir, 0o755); err != nil {
return "", err
}
return filepath.Join(baseDir, recentFetchesFileName), nil
}
func LoadRecentFetches() ([]RecentFetchItem, error) {
recentFetchesMu.Lock()
defer recentFetchesMu.Unlock()
filePath, err := recentFetchesFilePath()
if err != nil {
return nil, err
}
data, err := os.ReadFile(filePath)
if err != nil {
if os.IsNotExist(err) {
return []RecentFetchItem{}, nil
}
return nil, err
}
if strings.TrimSpace(string(data)) == "" {
return []RecentFetchItem{}, nil
}
var items []RecentFetchItem
if err := json.Unmarshal(data, &items); err != nil {
return nil, err
}
if items == nil {
return []RecentFetchItem{}, nil
}
return items, nil
}
func SaveRecentFetches(items []RecentFetchItem) error {
recentFetchesMu.Lock()
defer recentFetchesMu.Unlock()
filePath, err := recentFetchesFilePath()
if err != nil {
return err
}
if items == nil {
items = []RecentFetchItem{}
}
data, err := json.MarshalIndent(items, "", " ")
if err != nil {
return err
}
return os.WriteFile(filePath, data, 0o644)
}
+85 -21
View File
@@ -47,6 +47,16 @@ type songLinkAPIResponse struct {
} `json:"linksByPlatform"`
}
type qobuzAvailabilityTrack struct {
ID int64 `json:"id"`
Album struct {
ID string `json:"id"`
Title string `json:"title"`
URL string `json:"url"`
RelativeURL string `json:"relative_url"`
} `json:"album"`
}
func NewSongLinkClient() *SongLinkClient {
return &SongLinkClient{
client: &http.Client{
@@ -114,7 +124,7 @@ func (s *SongLinkClient) CheckTrackAvailability(spotifyTrackID string) (*TrackAv
}
if isrc != "" {
availability.Qobuz = checkQobuzAvailability(isrc)
availability.Qobuz, availability.QobuzURL = checkQobuzAvailability(isrc)
}
if availability.Tidal || availability.Amazon || availability.Deezer || availability.Qobuz {
@@ -128,36 +138,90 @@ func (s *SongLinkClient) CheckTrackAvailability(spotifyTrackID string) (*TrackAv
return availability, fmt.Errorf("no platforms found")
}
func checkQobuzAvailability(isrc string) bool {
client := &http.Client{Timeout: 10 * time.Second}
appID := "798273057"
searchURL := fmt.Sprintf(
"https://www.qobuz.com/api.json/0.2/track/search?query=%s&limit=1&app_id=%s",
url.QueryEscape(strings.TrimSpace(isrc)),
appID,
)
resp, err := client.Get(searchURL)
if err != nil {
return false
func qobuzNormalizeRelativeURL(rawURL string) string {
rawURL = strings.TrimSpace(rawURL)
if rawURL == "" {
return ""
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return false
if strings.HasPrefix(rawURL, "http://") || strings.HasPrefix(rawURL, "https://") {
return rawURL
}
if strings.HasPrefix(rawURL, "/") {
return "https://www.qobuz.com" + rawURL
}
return "https://www.qobuz.com/" + rawURL
}
func qobuzSlugifySegment(value string) string {
value = strings.ToLower(strings.TrimSpace(value))
if value == "" {
return ""
}
var builder strings.Builder
lastDash := false
for _, r := range value {
switch {
case r >= 'a' && r <= 'z', r >= '0' && r <= '9':
builder.WriteRune(r)
lastDash = false
default:
if !lastDash {
builder.WriteByte('-')
lastDash = true
}
}
}
return strings.Trim(builder.String(), "-")
}
func qobuzAlbumSlugURL(albumTitle string, albumID string) string {
albumID = strings.TrimSpace(albumID)
if albumID == "" {
return ""
}
slug := qobuzSlugifySegment(albumTitle)
if slug == "" {
return fmt.Sprintf("https://www.qobuz.com/album/%s", albumID)
}
return fmt.Sprintf("https://www.qobuz.com/album/%s/%s", slug, albumID)
}
func checkQobuzAvailability(isrc string) (bool, string) {
var searchResp struct {
Tracks struct {
Total int `json:"total"`
Items []qobuzAvailabilityTrack `json:"items"`
} `json:"tracks"`
}
if err := json.NewDecoder(resp.Body).Decode(&searchResp); err != nil {
return false
if err := doQobuzSignedJSONRequest("track/search", url.Values{
"query": {strings.TrimSpace(isrc)},
"limit": {"1"},
}, &searchResp); err != nil {
return false, ""
}
return searchResp.Tracks.Total > 0
if searchResp.Tracks.Total == 0 || len(searchResp.Tracks.Items) == 0 {
return false, ""
}
item := searchResp.Tracks.Items[0]
qobuzURL := strings.TrimSpace(item.Album.URL)
if qobuzURL == "" {
qobuzURL = qobuzNormalizeRelativeURL(item.Album.RelativeURL)
}
if qobuzURL == "" {
qobuzURL = qobuzAlbumSlugURL(item.Album.Title, item.Album.ID)
}
if qobuzURL == "" && item.ID > 0 {
qobuzURL = fmt.Sprintf("https://www.qobuz.com/us-en/track/%d", item.ID)
}
return true, qobuzURL
}
func (s *SongLinkClient) GetDeezerURLFromSpotify(spotifyTrackID string) (string, error) {
+1 -18
View File
@@ -15,9 +15,6 @@ import (
"time"
"sort"
"github.com/pquerna/otp"
"github.com/pquerna/otp/totp"
)
var SpotifyError = errors.New("spotify error")
@@ -40,21 +37,7 @@ func NewSpotifyClient() *SpotifyClient {
}
func (c *SpotifyClient) generateTOTP() (string, int, error) {
secret := "GM3TMMJTGYZTQNZVGM4DINJZHA4TGOBYGMZTCMRTGEYDSMJRHE4TEOBUG4YTCMRUGQ4DQOJUGQYTAMRRGA2TCMJSHE3TCMBY"
version := 61
key, err := otp.NewKeyFromURL(fmt.Sprintf("otpauth://totp/secret?secret=%s", secret))
if err != nil {
return "", 0, err
}
totpCode, err := totp.GenerateCode(key.Secret(), time.Now())
if err != nil {
return "", 0, err
}
return totpCode, version, nil
return generateSpotifyTOTP(time.Now())
}
func (c *SpotifyClient) getAccessToken() error {
-185
View File
@@ -1,185 +0,0 @@
package backend
import (
"context"
"encoding/json"
"fmt"
"io"
"net/http"
"regexp"
"strings"
"time"
)
func streamTrackListChunks(ctx context.Context, tracks []AlbumTrackMetadata, callback MetadataCallback) error {
if callback == nil || len(tracks) == 0 {
return nil
}
const chunkSize = 25
for start := 0; start < len(tracks); start += chunkSize {
select {
case <-ctx.Done():
return ctx.Err()
default:
}
end := start + chunkSize
if end > len(tracks) {
end = len(tracks)
}
callback(tracks[start:end])
if end < len(tracks) {
time.Sleep(15 * time.Millisecond)
}
}
return nil
}
func GetSpotifyDataWithAPI(ctx context.Context, spotifyURL string, useAPI bool, apiBaseURL string, batch bool, delay time.Duration, separator string, callback MetadataCallback) (interface{}, error) {
if !useAPI || apiBaseURL == "" {
return GetFilteredSpotifyData(ctx, spotifyURL, batch, delay, separator, callback)
}
spotifyType, id := parseSpotifyURLToTypeAndID(spotifyURL)
if spotifyType == "" || id == "" {
return nil, fmt.Errorf("invalid Spotify URL: %s", spotifyURL)
}
if spotifyType == "artist" {
return GetFilteredSpotifyData(ctx, spotifyURL, batch, delay, separator, callback)
}
apiURL := fmt.Sprintf("%s/%s/%s", strings.TrimSuffix(apiBaseURL, "/"), spotifyType, id)
req, err := http.NewRequestWithContext(ctx, "GET", apiURL, nil)
if err != nil {
return nil, fmt.Errorf("failed to create API request: %w", err)
}
client := &http.Client{
Timeout: 30 * time.Second,
}
resp, err := client.Do(req)
if err != nil {
return nil, fmt.Errorf("SpotFetch API request failed: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("SpotFetch API error: HTTP %d", resp.StatusCode)
}
bodyBytes, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read API response: %w", err)
}
var data interface{}
switch spotifyType {
case "track":
var trackResp TrackResponse
if err := json.Unmarshal(bodyBytes, &trackResp); err != nil {
return nil, fmt.Errorf("failed to decode track response: %w", err)
}
data = trackResp
case "album":
var albumResp AlbumResponsePayload
if err := json.Unmarshal(bodyBytes, &albumResp); err != nil {
return nil, fmt.Errorf("failed to decode album response: %w", err)
}
data = &albumResp
if callback != nil {
callback(&AlbumResponsePayload{
AlbumInfo: albumResp.AlbumInfo,
TrackList: []AlbumTrackMetadata{},
})
if err := streamTrackListChunks(ctx, albumResp.TrackList, callback); err != nil {
return nil, err
}
}
case "playlist":
var playlistResp PlaylistResponsePayload
if err := json.Unmarshal(bodyBytes, &playlistResp); err != nil {
return nil, fmt.Errorf("failed to decode playlist response: %w", err)
}
data = playlistResp
if callback != nil {
callback(PlaylistResponsePayload{
PlaylistInfo: playlistResp.PlaylistInfo,
TrackList: []AlbumTrackMetadata{},
})
if err := streamTrackListChunks(ctx, playlistResp.TrackList, callback); err != nil {
return nil, err
}
}
case "artist":
var artistResp ArtistDiscographyPayload
if err := json.Unmarshal(bodyBytes, &artistResp); err != nil {
return nil, fmt.Errorf("failed to decode artist response: %w", err)
}
data = &artistResp
if callback != nil {
callback(&ArtistDiscographyPayload{
ArtistInfo: artistResp.ArtistInfo,
AlbumList: artistResp.AlbumList,
TrackList: []AlbumTrackMetadata{},
})
if err := streamTrackListChunks(ctx, artistResp.TrackList, callback); err != nil {
return nil, err
}
}
default:
return nil, fmt.Errorf("unsupported Spotify type: %s", spotifyType)
}
if callback != nil {
switch payload := data.(type) {
case TrackResponse:
t := payload.Track
callback([]AlbumTrackMetadata{{
SpotifyID: t.SpotifyID,
Artists: t.Artists,
Name: t.Name,
AlbumName: t.AlbumName,
AlbumArtist: t.AlbumArtist,
DurationMS: t.DurationMS,
Images: t.Images,
ReleaseDate: t.ReleaseDate,
TrackNumber: t.TrackNumber,
TotalTracks: t.TotalTracks,
DiscNumber: t.DiscNumber,
TotalDiscs: t.TotalDiscs,
ExternalURL: t.ExternalURL,
Plays: t.Plays,
PreviewURL: t.PreviewURL,
IsExplicit: t.IsExplicit,
}})
}
}
return data, nil
}
func parseSpotifyURLToTypeAndID(url string) (string, string) {
if strings.HasPrefix(url, "spotify:") {
parts := strings.Split(url, ":")
if len(parts) >= 3 {
return parts[1], parts[2]
}
}
re := regexp.MustCompile(`spotify\.com/(track|album|playlist|artist)/([a-zA-Z0-9]+)`)
matches := re.FindStringSubmatch(url)
if len(matches) == 3 {
return matches[1], matches[2]
}
return "", ""
}
+188
View File
@@ -46,8 +46,15 @@ type TrackMetadata struct {
DiscNumber int `json:"disc_number,omitempty"`
TotalDiscs int `json:"total_discs,omitempty"`
ExternalURL string `json:"external_urls"`
AlbumID string `json:"album_id,omitempty"`
AlbumURL string `json:"album_url,omitempty"`
ArtistID string `json:"artist_id,omitempty"`
ArtistURL string `json:"artist_url,omitempty"`
ArtistsData []ArtistSimple `json:"artists_data,omitempty"`
UPC string `json:"upc,omitempty"`
Copyright string `json:"copyright,omitempty"`
Publisher string `json:"publisher,omitempty"`
Composer string `json:"composer,omitempty"`
Plays string `json:"plays,omitempty"`
PreviewURL string `json:"preview_url,omitempty"`
IsExplicit bool `json:"is_explicit,omitempty"`
@@ -79,6 +86,7 @@ type AlbumTrackMetadata struct {
ArtistID string `json:"artist_id,omitempty"`
ArtistURL string `json:"artist_url,omitempty"`
ArtistsData []ArtistSimple `json:"artists_data,omitempty"`
UPC string `json:"upc,omitempty"`
Plays string `json:"plays,omitempty"`
Status string `json:"status,omitempty"`
PreviewURL string `json:"preview_url,omitempty"`
@@ -95,6 +103,7 @@ type AlbumInfoMetadata struct {
ReleaseDate string `json:"release_date"`
Artists string `json:"artists"`
Images string `json:"images"`
UPC string `json:"upc,omitempty"`
Batch string `json:"batch,omitempty"`
ArtistID string `json:"artist_id,omitempty"`
ArtistURL string `json:"artist_url,omitempty"`
@@ -182,11 +191,14 @@ type apiTrackResponse struct {
ID string `json:"id"`
Name string `json:"name"`
Artists string `json:"artists"`
ArtistIds []string `json:"artistIds,omitempty"`
UPC string `json:"upc,omitempty"`
Duration string `json:"duration"`
Track int `json:"track"`
Disc int `json:"disc"`
Discs int `json:"discs"`
Copyright string `json:"copyright"`
Composer string `json:"composer,omitempty"`
Plays string `json:"plays"`
Album struct {
ID string `json:"id"`
@@ -211,6 +223,7 @@ type apiAlbumResponse struct {
Artists string `json:"artists"`
Cover string `json:"cover"`
ReleaseDate string `json:"releaseDate"`
UPC string `json:"upc,omitempty"`
Count int `json:"count"`
Label string `json:"label"`
Discs struct {
@@ -223,6 +236,7 @@ type apiAlbumResponse struct {
ArtistIds []string `json:"artistIds"`
Duration string `json:"duration"`
Plays string `json:"plays"`
UPC string `json:"upc,omitempty"`
IsExplicit bool `json:"is_explicit"`
DiscNumber int `json:"disc_number"`
} `json:"tracks"`
@@ -250,6 +264,7 @@ type apiPlaylistResponse struct {
Album string `json:"album"`
AlbumArtist string `json:"albumArtist"`
AlbumID string `json:"albumId"`
UPC string `json:"upc,omitempty"`
Duration string `json:"duration"`
IsExplicit bool `json:"is_explicit"`
DiscNumber int `json:"disc_number"`
@@ -490,6 +505,10 @@ func (c *SpotifyMetadataClient) fetchTrack(ctx context.Context, trackID string)
}
filteredData := FilterTrack(data, c.Separator, albumFetchData)
composer, composerErr := c.fetchTrackComposerWithClient(ctx, client, trackID)
if composerErr == nil && composer != "" {
filteredData["composer"] = composer
}
jsonData, err := json.Marshal(filteredData)
if err != nil {
@@ -501,9 +520,100 @@ func (c *SpotifyMetadataClient) fetchTrack(ctx context.Context, trackID string)
return nil, fmt.Errorf("failed to unmarshal to apiTrackResponse: %w", err)
}
if result.ID != "" {
if identifiers, err := GetSpotifyTrackIdentifiersDirect(result.ID); err == nil || identifiers.UPC != "" {
if identifiers.UPC != "" {
result.UPC = identifiers.UPC
}
}
}
return &result, nil
}
func collectTrackCreditNamesByRole(items []interface{}, role string) []string {
role = strings.TrimSpace(role)
if role == "" || len(items) == 0 {
return nil
}
seen := make(map[string]struct{}, len(items))
names := make([]string, 0, len(items))
for _, item := range items {
itemMap, ok := item.(map[string]interface{})
if !ok {
continue
}
if !strings.EqualFold(strings.TrimSpace(getString(itemMap, "role")), role) {
continue
}
name := strings.TrimSpace(getString(itemMap, "name"))
if name == "" {
continue
}
if _, exists := seen[name]; exists {
continue
}
seen[name] = struct{}{}
names = append(names, name)
}
return names
}
func (c *SpotifyMetadataClient) fetchTrackComposerWithClient(ctx context.Context, client *SpotifyClient, trackID string) (string, error) {
_ = ctx
payload := map[string]interface{}{
"variables": map[string]interface{}{
"trackUri": fmt.Sprintf("spotify:track:%s", trackID),
"contributorsLimit": 100,
"contributorsOffset": 0,
},
"operationName": "queryTrackCreditsModal",
"extensions": map[string]interface{}{
"persistedQuery": map[string]interface{}{
"version": 1,
"sha256Hash": "e2ca40d46cf1fde36562261ccec754f23fb31b561877252e9fe0d6834aabb84b",
},
},
}
data, err := client.Query(payload)
if err != nil {
return "", fmt.Errorf("failed to query track credits: %w", err)
}
creditItems := getSlice(
getMap(
getMap(
getMap(
getMap(data, "data"),
"trackUnion",
),
"creditsTrait",
),
"contributors",
),
"items",
)
composerNames := collectTrackCreditNamesByRole(creditItems, "Composer")
if len(composerNames) == 0 {
return "", nil
}
separator := strings.TrimSpace(c.Separator)
if separator == "" {
separator = ", "
}
return strings.Join(composerNames, separator), nil
}
func (c *SpotifyMetadataClient) fetchAlbum(ctx context.Context, albumID string, callback MetadataCallback) (*apiAlbumResponse, error) {
client := NewSpotifyClient()
if err := client.Initialize(); err != nil {
@@ -607,6 +717,17 @@ func (c *SpotifyMetadataClient) fetchAlbumWithClient(ctx context.Context, client
return nil, fmt.Errorf("failed to unmarshal to apiAlbumResponse: %w", err)
}
if result.ID != "" {
if upc, err := lookupSpotifyAlbumUPC(result.ID); err == nil && strings.TrimSpace(upc) != "" {
result.UPC = upc
for i := range result.Tracks {
if strings.TrimSpace(result.Tracks[i].UPC) == "" {
result.Tracks[i].UPC = upc
}
}
}
}
return &result, nil
}
@@ -895,6 +1016,34 @@ func (c *SpotifyMetadataClient) formatTrackData(raw *apiTrackResponse) TrackResp
durationMS := parseDuration(raw.Duration)
externalURL := fmt.Sprintf("https://open.spotify.com/track/%s", raw.ID)
albumID := strings.TrimSpace(raw.Album.ID)
albumURL := ""
if albumID != "" {
albumURL = fmt.Sprintf("https://open.spotify.com/album/%s", albumID)
}
artistID := ""
artistURL := ""
artistsData := make([]ArtistSimple, 0, len(raw.ArtistIds))
for index, id := range raw.ArtistIds {
trimmedID := strings.TrimSpace(id)
if trimmedID == "" {
continue
}
if artistID == "" {
artistID = trimmedID
artistURL = fmt.Sprintf("https://open.spotify.com/artist/%s", trimmedID)
}
artistName := ""
artistNames := splitAndCleanArtists(raw.Artists)
if index < len(artistNames) {
artistName = artistNames[index]
}
artistsData = append(artistsData, ArtistSimple{
ID: trimmedID,
Name: artistName,
ExternalURL: fmt.Sprintf("https://open.spotify.com/artist/%s", trimmedID),
})
}
coverURL := raw.Cover.Small
if coverURL == "" {
@@ -922,8 +1071,15 @@ func (c *SpotifyMetadataClient) formatTrackData(raw *apiTrackResponse) TrackResp
DiscNumber: raw.Disc,
TotalDiscs: raw.Discs,
ExternalURL: externalURL,
AlbumID: albumID,
AlbumURL: albumURL,
ArtistID: artistID,
ArtistURL: artistURL,
ArtistsData: artistsData,
UPC: raw.UPC,
Copyright: raw.Copyright,
Publisher: raw.Album.Label,
Composer: raw.Composer,
Plays: raw.Plays,
IsExplicit: raw.IsExplicit,
}
@@ -935,6 +1091,18 @@ func (c *SpotifyMetadataClient) formatTrackData(raw *apiTrackResponse) TrackResp
func (c *SpotifyMetadataClient) formatAlbumData(raw *apiAlbumResponse, callback MetadataCallback) (*AlbumResponsePayload, error) {
var artistID, artistURL string
for _, item := range raw.Tracks {
if len(item.ArtistIds) == 0 {
continue
}
candidate := strings.TrimSpace(item.ArtistIds[0])
if candidate == "" {
continue
}
artistID = candidate
artistURL = fmt.Sprintf("https://open.spotify.com/artist/%s", candidate)
break
}
info := AlbumInfoMetadata{
TotalTracks: raw.Count,
@@ -942,6 +1110,7 @@ func (c *SpotifyMetadataClient) formatAlbumData(raw *apiAlbumResponse, callback
ReleaseDate: raw.ReleaseDate,
Artists: raw.Artists,
Images: raw.Cover,
UPC: raw.UPC,
ArtistID: artistID,
ArtistURL: artistURL,
}
@@ -957,6 +1126,10 @@ func (c *SpotifyMetadataClient) formatAlbumData(raw *apiAlbumResponse, callback
for idx, item := range raw.Tracks {
durationMS := parseDuration(item.Duration)
trackNumber := idx + 1
trackUPC := strings.TrimSpace(item.UPC)
if trackUPC == "" {
trackUPC = strings.TrimSpace(raw.UPC)
}
var artistID, artistURL string
if len(item.ArtistIds) > 0 {
@@ -992,6 +1165,7 @@ func (c *SpotifyMetadataClient) formatAlbumData(raw *apiAlbumResponse, callback
ArtistID: artistID,
ArtistURL: artistURL,
ArtistsData: artistsData,
UPC: trackUPC,
Plays: item.Plays,
IsExplicit: item.IsExplicit,
})
@@ -1062,6 +1236,7 @@ func (c *SpotifyMetadataClient) formatPlaylistData(raw *apiPlaylistResponse, cal
ArtistID: artistID,
ArtistURL: artistURL,
ArtistsData: artistsData,
UPC: item.UPC,
Plays: item.Plays,
Status: item.Status,
IsExplicit: item.IsExplicit,
@@ -1188,6 +1363,7 @@ func (c *SpotifyMetadataClient) formatArtistDiscographyData(ctx context.Context,
TrackNumber: trackNumber,
TotalTracks: albumData.Count,
DiscNumber: tr.DiscNumber,
UPC: tr.UPC,
ExternalURL: fmt.Sprintf("https://open.spotify.com/track/%s", tr.ID),
AlbumID: albumID,
AlbumURL: fmt.Sprintf("https://open.spotify.com/album/%s", albumID),
@@ -1321,6 +1497,18 @@ func parseArtistIDsFromString(artists string) []string {
return []string{}
}
func splitAndCleanArtists(artists string) []string {
raw := regexp.MustCompile(`\s*[;,]\s*`).Split(strings.TrimSpace(artists), -1)
parts := make([]string, 0, len(raw))
for _, part := range raw {
part = strings.TrimSpace(part)
if part != "" {
parts = append(parts, part)
}
}
return parts
}
func (c *SpotifyMetadataClient) Search(ctx context.Context, query string, limit int) (*SearchResponse, error) {
if query == "" {
return nil, errors.New("search query cannot be empty")
+28
View File
@@ -0,0 +1,28 @@
package backend
import (
"fmt"
"time"
"github.com/pquerna/otp"
"github.com/pquerna/otp/totp"
)
const (
spotifyTOTPSecret = "GM3TMMJTGYZTQNZVGM4DINJZHA4TGOBYGMZTCMRTGEYDSMJRHE4TEOBUG4YTCMRUGQ4DQOJUGQYTAMRRGA2TCMJSHE3TCMBY"
spotifyTOTPVersion = 61
)
func generateSpotifyTOTP(now time.Time) (string, int, error) {
key, err := otp.NewKeyFromURL(fmt.Sprintf("otpauth://totp/secret?secret=%s", spotifyTOTPSecret))
if err != nil {
return "", 0, err
}
code, err := totp.GenerateCode(key.Secret(), now)
if err != nil {
return "", 0, err
}
return code, spotifyTOTPVersion, nil
}
+271 -348
View File
@@ -48,23 +48,154 @@ type TidalBTSManifest struct {
URLs []string `json:"urls"`
}
func getConfiguredTidalAPIAttemptList() ([]string, error) {
customAPI := GetCustomTidalAPISetting()
if customAPI == "" {
return nil, fmt.Errorf("no configured custom tidal api instance")
}
return []string{customAPI}, nil
}
func buildTidalOutputPath(outputDir, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyTrackNumber, spotifyDiscNumber int, isrcOverride string, useFirstArtistOnly bool) (string, bool, error) {
if outputDir != "." {
if err := os.MkdirAll(outputDir, 0755); err != nil {
return "", false, fmt.Errorf("directory error: %w", err)
}
}
artistNameForFile := sanitizeFilename(spotifyArtistName)
albumArtistForFile := sanitizeFilename(spotifyAlbumArtist)
if useFirstArtistOnly {
artistNameForFile = sanitizeFilename(GetFirstArtist(spotifyArtistName))
albumArtistForFile = sanitizeFilename(GetFirstArtist(spotifyAlbumArtist))
}
trackTitleForFile := sanitizeFilename(spotifyTrackName)
albumTitleForFile := sanitizeFilename(spotifyAlbumName)
filename := buildTidalFilename(trackTitleForFile, artistNameForFile, albumTitleForFile, albumArtistForFile, spotifyReleaseDate, spotifyTrackNumber, spotifyDiscNumber, filenameFormat, includeTrackNumber, position, useAlbumTrackNumber, isrcOverride)
outputFilename := filepath.Join(outputDir, filename)
outputFilename, alreadyExists := ResolveOutputPathForDownload(outputFilename, GetRedownloadWithSuffixSetting())
return outputFilename, alreadyExists, nil
}
func finalizeTidalDownload(outputFilename, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL string, useSingleGenre bool, embedGenre bool) {
trackTitle := spotifyTrackName
artistName := spotifyArtistName
albumTitle := spotifyAlbumName
type mbResult struct {
ISRC string
Metadata Metadata
}
metaChan := make(chan mbResult, 1)
if embedGenre && spotifyURL != "" {
go func() {
res := mbResult{}
var isrc string
parts := strings.Split(spotifyURL, "/")
if len(parts) > 0 {
sID := strings.Split(parts[len(parts)-1], "?")[0]
if sID != "" {
client := NewSongLinkClient()
if val, err := client.GetISRC(sID); err == nil {
isrc = val
}
}
}
res.ISRC = isrc
if isrc != "" {
if ShouldSkipMusicBrainzMetadataFetch() {
fmt.Println("Skipping MusicBrainz metadata fetch because status check is offline.")
} else {
fmt.Println("Fetching MusicBrainz metadata...")
if fetchedMeta, err := FetchMusicBrainzMetadata(isrc, trackTitle, artistName, albumTitle, useSingleGenre, embedGenre); err == nil {
res.Metadata = fetchedMeta
fmt.Println("✓ MusicBrainz metadata fetched")
} else {
fmt.Printf("Warning: Failed to fetch MusicBrainz metadata: %v\n", err)
}
}
}
metaChan <- res
}()
} else {
close(metaChan)
}
isrc := strings.TrimSpace(isrcOverride)
var mbMeta Metadata
if spotifyURL != "" {
result := <-metaChan
if isrc == "" {
isrc = result.ISRC
}
mbMeta = result.Metadata
}
upc := ""
if spotifyURL != "" {
if identifiers, err := GetSpotifyTrackIdentifiersDirect(spotifyURL); err == nil || identifiers.ISRC != "" || identifiers.UPC != "" {
if strings.TrimSpace(isrc) == "" && strings.TrimSpace(identifiers.ISRC) != "" {
isrc = strings.TrimSpace(identifiers.ISRC)
}
upc = strings.TrimSpace(identifiers.UPC)
}
}
fmt.Println("Adding metadata...")
coverPath := ""
if spotifyCoverURL != "" {
coverPath = outputFilename + ".cover.jpg"
coverClient := NewCoverClient()
if err := coverClient.DownloadCoverToPath(spotifyCoverURL, coverPath, embedMaxQualityCover); err != nil {
fmt.Printf("Warning: Failed to download Spotify cover: %v\n", err)
coverPath = ""
} else {
defer os.Remove(coverPath)
fmt.Println("Spotify cover downloaded")
}
}
trackNumberToEmbed := spotifyTrackNumber
if trackNumberToEmbed == 0 {
trackNumberToEmbed = 1
}
metadata := Metadata{
Title: trackTitle,
Artist: artistName,
Album: albumTitle,
AlbumArtist: spotifyAlbumArtist,
Date: spotifyReleaseDate,
TrackNumber: trackNumberToEmbed,
TotalTracks: spotifyTotalTracks,
DiscNumber: spotifyDiscNumber,
TotalDiscs: spotifyTotalDiscs,
URL: spotifyURL,
Comment: spotifyURL,
Copyright: spotifyCopyright,
Publisher: spotifyPublisher,
Composer: spotifyComposer,
Separator: metadataSeparator,
Description: "https://github.com/spotbye/SpotiFLAC",
ISRC: isrc,
UPC: upc,
Genre: mbMeta.Genre,
}
if err := EmbedMetadata(outputFilename, metadata, coverPath); err != nil {
fmt.Printf("Tagging failed: %v\n", err)
} else {
fmt.Println("Metadata saved")
}
}
func NewTidalDownloader(apiURL string) *TidalDownloader {
if apiURL == "" {
downloader := &TidalDownloader{
client: &http.Client{
Timeout: 5 * time.Second,
},
timeout: 5 * time.Second,
maxRetries: 3,
apiURL: "",
}
apis, err := downloader.GetAvailableAPIs()
if err == nil && len(apis) > 0 {
apiURL = apis[0]
}
}
apiURL = strings.TrimRight(strings.TrimSpace(apiURL), "/")
return &TidalDownloader{
client: &http.Client{
Timeout: 5 * time.Second,
@@ -76,16 +207,12 @@ func NewTidalDownloader(apiURL string) *TidalDownloader {
}
func (t *TidalDownloader) GetAvailableAPIs() ([]string, error) {
apis := []string{
"https://hifi-one.spotisaver.net",
"https://hifi-two.spotisaver.net",
"https://eu-central.monochrome.tf",
"https://us-west.monochrome.tf",
"https://api.monochrome.tf",
"https://monochrome-api.samidy.com",
"https://tidal.kinoplus.online",
apis, err := getConfiguredTidalAPIAttemptList()
if err == nil && len(apis) > 0 {
return apis, nil
}
return prioritizeProviders("tidal", apis), nil
return nil, err
}
func (t *TidalDownloader) GetTidalURLFromSpotify(spotifyTrackID string) (string, error) {
@@ -125,18 +252,19 @@ func (t *TidalDownloader) GetTrackIDFromURL(tidalURL string) (int64, error) {
func (t *TidalDownloader) GetDownloadURL(trackID int64, quality string) (string, error) {
fmt.Println("Fetching URL...")
if strings.TrimSpace(t.apiURL) == "" {
return "", fmt.Errorf("no configured custom tidal api instance")
}
url := fmt.Sprintf("%s/track/?id=%d&quality=%s", t.apiURL, trackID, quality)
fmt.Printf("Tidal API URL: %s\n", url)
req, err := http.NewRequest("GET", url, nil)
req, err := NewRequestWithDefaultHeaders(http.MethodGet, url, nil)
if err != nil {
fmt.Printf("✗ failed to create request: %v\n", err)
return "", fmt.Errorf("failed to create request: %w", err)
}
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36")
resp, err := t.client.Do(req)
if err != nil {
fmt.Printf("✗ Tidal API request failed: %v\n", err)
@@ -188,19 +316,17 @@ func (t *TidalDownloader) GetDownloadURL(trackID int64, quality string) (string,
return "", fmt.Errorf("download URL not found in response")
}
func (t *TidalDownloader) DownloadFile(url, filepath string) error {
func (t *TidalDownloader) DownloadFile(url, filepath string, quality string) error {
if strings.HasPrefix(url, "MANIFEST:") {
return t.DownloadFromManifest(strings.TrimPrefix(url, "MANIFEST:"), filepath)
return t.DownloadFromManifest(strings.TrimPrefix(url, "MANIFEST:"), filepath, quality)
}
req, err := http.NewRequest("GET", url, nil)
req, err := NewRequestWithDefaultHeaders(http.MethodGet, url, nil)
if err != nil {
return fmt.Errorf("failed to create request: %w", err)
}
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36")
resp, err := t.client.Do(req)
if err != nil {
@@ -230,22 +356,27 @@ func (t *TidalDownloader) DownloadFile(url, filepath string) error {
return nil
}
func (t *TidalDownloader) DownloadFromManifest(manifestB64, outputPath string) error {
func (t *TidalDownloader) DownloadFromManifest(manifestB64, outputPath string, quality string) error {
directURL, initURL, mediaURLs, mimeType, err := parseManifest(manifestB64)
if err != nil {
return fmt.Errorf("failed to parse manifest: %w", err)
}
isLosslessRequested := quality == "LOSSLESS" || quality == "HI_RES" || quality == "HI_RES_LOSSLESS"
isActualLossless := strings.Contains(strings.ToLower(mimeType), "flac") || mimeType == ""
if isLosslessRequested && !isActualLossless {
return fmt.Errorf("requested %s quality but Tidal provided lossy format (%s). Aborting download", quality, mimeType)
}
client := &http.Client{
Timeout: 120 * time.Second,
}
doRequest := func(url string) (*http.Response, error) {
req, err := http.NewRequest("GET", url, nil)
req, err := NewRequestWithDefaultHeaders(http.MethodGet, url, nil)
if err != nil {
return nil, err
}
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36")
return client.Do(req)
}
@@ -416,13 +547,7 @@ func (t *TidalDownloader) DownloadFromManifest(manifestB64, outputPath string) e
return nil
}
func (t *TidalDownloader) DownloadByURL(tidalURL, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
if outputDir != "." {
if err := os.MkdirAll(outputDir, 0755); err != nil {
return "", fmt.Errorf("directory error: %w", err)
}
}
func (t *TidalDownloader) DownloadByURL(tidalURL, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
fmt.Printf("Using Tidal URL: %s\n", tidalURL)
trackID, err := t.GetTrackIDFromURL(tidalURL)
@@ -434,154 +559,42 @@ func (t *TidalDownloader) DownloadByURL(tidalURL, outputDir, quality, filenameFo
return "", fmt.Errorf("no track ID found")
}
artistName := spotifyArtistName
trackTitle := spotifyTrackName
albumTitle := spotifyAlbumName
artistNameForFile := sanitizeFilename(artistName)
albumArtistForFile := sanitizeFilename(spotifyAlbumArtist)
if useFirstArtistOnly {
artistNameForFile = sanitizeFilename(GetFirstArtist(artistName))
albumArtistForFile = sanitizeFilename(GetFirstArtist(spotifyAlbumArtist))
outputFilename, alreadyExists, err := buildTidalOutputPath(outputDir, filenameFormat, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, useAlbumTrackNumber, spotifyTrackNumber, spotifyDiscNumber, isrcOverride, useFirstArtistOnly)
if err != nil {
return "", err
}
trackTitleForFile := sanitizeFilename(trackTitle)
albumTitleForFile := sanitizeFilename(albumTitle)
filename := buildTidalFilename(trackTitleForFile, artistNameForFile, albumTitleForFile, albumArtistForFile, spotifyReleaseDate, spotifyTrackNumber, spotifyDiscNumber, filenameFormat, includeTrackNumber, position, useAlbumTrackNumber)
outputFilename := filepath.Join(outputDir, filename)
if fileInfo, err := os.Stat(outputFilename); err == nil && fileInfo.Size() > 0 {
fmt.Printf("File already exists: %s (%.2f MB)\n", outputFilename, float64(fileInfo.Size())/(1024*1024))
if alreadyExists {
fmt.Printf("File already exists: %s (%.2f MB)\n", outputFilename, float64(mustFileSize(outputFilename))/(1024*1024))
return "EXISTS:" + outputFilename, nil
}
downloadURL, err := t.GetDownloadURL(trackID, quality)
if err != nil {
if quality == "HI_RES" && allowFallback {
if isTidalHiResQuality(quality) && allowFallback {
fmt.Println("⚠ HI_RES unavailable/failed, falling back to LOSSLESS...")
downloadURL, err = t.GetDownloadURL(trackID, "LOSSLESS")
if err != nil {
return "", fmt.Errorf("failed to get download URL (HI_RES & LOSSLESS both failed): %w", err)
return outputFilename, fmt.Errorf("failed to get download URL (HI_RES & LOSSLESS both failed): %w", err)
}
} else {
return "", err
return outputFilename, err
}
}
type mbResult struct {
ISRC string
Metadata Metadata
}
metaChan := make(chan mbResult, 1)
if embedGenre && spotifyURL != "" {
go func() {
res := mbResult{}
var isrc string
parts := strings.Split(spotifyURL, "/")
if len(parts) > 0 {
sID := strings.Split(parts[len(parts)-1], "?")[0]
if sID != "" {
client := NewSongLinkClient()
if val, err := client.GetISRC(sID); err == nil {
isrc = val
}
}
}
res.ISRC = isrc
if isrc != "" {
fmt.Println("Fetching MusicBrainz metadata...")
if fetchedMeta, err := FetchMusicBrainzMetadata(isrc, trackTitle, artistName, albumTitle, useSingleGenre, embedGenre); err == nil {
res.Metadata = fetchedMeta
fmt.Println("✓ MusicBrainz metadata fetched")
} else {
fmt.Printf("Warning: Failed to fetch MusicBrainz metadata: %v\n", err)
}
}
metaChan <- res
}()
} else {
close(metaChan)
}
fmt.Printf("Downloading to: %s\n", outputFilename)
if err := t.DownloadFile(downloadURL, outputFilename); err != nil {
return "", err
if err := t.DownloadFile(downloadURL, outputFilename, quality); err != nil {
cleanupTidalDownloadArtifacts(outputFilename)
return outputFilename, err
}
var isrc string
var mbMeta Metadata
if spotifyURL != "" {
result := <-metaChan
isrc = result.ISRC
mbMeta = result.Metadata
}
fmt.Println("Adding metadata...")
coverPath := ""
if spotifyCoverURL != "" {
coverPath = outputFilename + ".cover.jpg"
coverClient := NewCoverClient()
if err := coverClient.DownloadCoverToPath(spotifyCoverURL, coverPath, embedMaxQualityCover); err != nil {
fmt.Printf("Warning: Failed to download Spotify cover: %v\n", err)
coverPath = ""
} else {
defer os.Remove(coverPath)
fmt.Println("Spotify cover downloaded")
}
}
trackNumberToEmbed := spotifyTrackNumber
if trackNumberToEmbed == 0 {
trackNumberToEmbed = 1
}
metadata := Metadata{
Title: trackTitle,
Artist: artistName,
Album: albumTitle,
AlbumArtist: spotifyAlbumArtist,
Date: spotifyReleaseDate,
TrackNumber: trackNumberToEmbed,
TotalTracks: spotifyTotalTracks,
DiscNumber: spotifyDiscNumber,
TotalDiscs: spotifyTotalDiscs,
URL: spotifyURL,
Comment: spotifyURL,
Copyright: spotifyCopyright,
Publisher: spotifyPublisher,
Description: "https://github.com/afkarxyz/SpotiFLAC",
ISRC: isrc,
Genre: mbMeta.Genre,
}
if err := EmbedMetadata(outputFilename, metadata, coverPath); err != nil {
fmt.Printf("Tagging failed: %v\n", err)
} else {
fmt.Println("Metadata saved")
}
finalizeTidalDownload(outputFilename, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL, embedMaxQualityCover, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL, useSingleGenre, embedGenre)
fmt.Println("Done")
fmt.Println("✓ Downloaded successfully from Tidal")
return outputFilename, nil
}
func (t *TidalDownloader) DownloadByURLWithFallback(tidalURL, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
apis, err := t.GetAvailableAPIs()
if err != nil {
return "", fmt.Errorf("no APIs available for fallback: %w", err)
}
if outputDir != "." {
if err := os.MkdirAll(outputDir, 0755); err != nil {
return "", fmt.Errorf("directory error: %w", err)
}
}
func (t *TidalDownloader) DownloadByURLWithFallback(tidalURL, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
fmt.Printf("Using Tidal URL: %s\n", tidalURL)
trackID, err := t.GetTrackIDFromURL(tidalURL)
@@ -593,151 +606,41 @@ func (t *TidalDownloader) DownloadByURLWithFallback(tidalURL, outputDir, quality
return "", fmt.Errorf("no track ID found")
}
artistName := spotifyArtistName
trackTitle := spotifyTrackName
albumTitle := spotifyAlbumName
artistNameForFile := sanitizeFilename(artistName)
albumArtistForFile := sanitizeFilename(spotifyAlbumArtist)
if useFirstArtistOnly {
artistNameForFile = sanitizeFilename(GetFirstArtist(artistName))
albumArtistForFile = sanitizeFilename(GetFirstArtist(spotifyAlbumArtist))
outputFilename, alreadyExists, err := buildTidalOutputPath(outputDir, filenameFormat, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, useAlbumTrackNumber, spotifyTrackNumber, spotifyDiscNumber, isrcOverride, useFirstArtistOnly)
if err != nil {
return "", err
}
trackTitleForFile := sanitizeFilename(trackTitle)
albumTitleForFile := sanitizeFilename(albumTitle)
filename := buildTidalFilename(trackTitleForFile, artistNameForFile, albumTitleForFile, albumArtistForFile, spotifyReleaseDate, spotifyTrackNumber, spotifyDiscNumber, filenameFormat, includeTrackNumber, position, useAlbumTrackNumber)
outputFilename := filepath.Join(outputDir, filename)
if fileInfo, err := os.Stat(outputFilename); err == nil && fileInfo.Size() > 0 {
fmt.Printf("File already exists: %s (%.2f MB)\n", outputFilename, float64(fileInfo.Size())/(1024*1024))
if alreadyExists {
fmt.Printf("File already exists: %s (%.2f MB)\n", outputFilename, float64(mustFileSize(outputFilename))/(1024*1024))
return "EXISTS:" + outputFilename, nil
}
successAPI, downloadURL, err := getDownloadURLRotated(apis, trackID, quality)
if err != nil {
if quality == "HI_RES" && allowFallback {
fmt.Println("⚠ HI_RES unavailable/failed on all APIs, falling back to LOSSLESS...")
successAPI, downloadURL, err = getDownloadURLRotated(apis, trackID, "LOSSLESS")
if err != nil {
return "", fmt.Errorf("failed to get download URL (HI_RES & LOSSLESS both failed): %w", err)
}
} else {
return "", err
}
}
type mbResultFallback struct {
ISRC string
Metadata Metadata
}
metaChan := make(chan mbResultFallback, 1)
if embedGenre && spotifyURL != "" {
go func() {
res := mbResultFallback{}
var isrc string
parts := strings.Split(spotifyURL, "/")
if len(parts) > 0 {
sID := strings.Split(parts[len(parts)-1], "?")[0]
if sID != "" {
client := NewSongLinkClient()
if val, err := client.GetISRC(sID); err == nil {
isrc = val
}
}
}
res.ISRC = isrc
if isrc != "" {
fmt.Println("Fetching MusicBrainz metadata...")
if fetchedMeta, err := FetchMusicBrainzMetadata(isrc, trackTitle, artistName, albumTitle, useSingleGenre, embedGenre); err == nil {
res.Metadata = fetchedMeta
fmt.Println("✓ MusicBrainz metadata fetched")
} else {
fmt.Printf("Warning: Failed to fetch MusicBrainz metadata: %v\n", err)
}
}
metaChan <- res
}()
} else {
close(metaChan)
}
fmt.Printf("Downloading to: %s\n", outputFilename)
downloader := NewTidalDownloader(successAPI)
if err := downloader.DownloadFile(downloadURL, outputFilename); err != nil {
return "", err
successAPI, err := t.downloadWithRotatingAPIs(trackID, outputFilename, quality, allowFallback)
if err != nil {
cleanupTidalDownloadArtifacts(outputFilename)
return outputFilename, err
}
fmt.Printf("✓ Downloaded using API: %s\n", successAPI)
var isrc string
var mbMeta Metadata
if spotifyURL != "" {
result := <-metaChan
isrc = result.ISRC
mbMeta = result.Metadata
}
fmt.Println("Adding metadata...")
coverPath := ""
if spotifyCoverURL != "" {
coverPath = outputFilename + ".cover.jpg"
coverClient := NewCoverClient()
if err := coverClient.DownloadCoverToPath(spotifyCoverURL, coverPath, embedMaxQualityCover); err != nil {
fmt.Printf("Warning: Failed to download Spotify cover: %v\n", err)
coverPath = ""
} else {
defer os.Remove(coverPath)
fmt.Println("Spotify cover downloaded")
}
}
trackNumberToEmbed := spotifyTrackNumber
if trackNumberToEmbed == 0 {
trackNumberToEmbed = 1
}
metadata := Metadata{
Title: trackTitle,
Artist: artistName,
Album: albumTitle,
AlbumArtist: spotifyAlbumArtist,
Date: spotifyReleaseDate,
TrackNumber: trackNumberToEmbed,
TotalTracks: spotifyTotalTracks,
DiscNumber: spotifyDiscNumber,
TotalDiscs: spotifyTotalDiscs,
URL: spotifyURL,
Comment: spotifyURL,
Copyright: spotifyCopyright,
Publisher: spotifyPublisher,
Description: "https://github.com/afkarxyz/SpotiFLAC",
ISRC: isrc,
Genre: mbMeta.Genre,
}
if err := EmbedMetadata(outputFilename, metadata, coverPath); err != nil {
fmt.Printf("Tagging failed: %v\n", err)
} else {
fmt.Println("Metadata saved")
}
finalizeTidalDownload(outputFilename, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, spotifyCoverURL, embedMaxQualityCover, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL, useSingleGenre, embedGenre)
fmt.Println("Done")
fmt.Println("✓ Downloaded successfully from Tidal")
return outputFilename, nil
}
func (t *TidalDownloader) Download(spotifyTrackID, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
func (t *TidalDownloader) Download(spotifyTrackID, outputDir, quality, filenameFormat string, includeTrackNumber bool, position int, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate string, useAlbumTrackNumber bool, spotifyCoverURL string, embedMaxQualityCover bool, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks int, spotifyTotalDiscs int, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL string, allowFallback bool, useFirstArtistOnly bool, useSingleGenre bool, embedGenre bool) (string, error) {
tidalURL, err := t.GetTidalURLFromSpotify(spotifyTrackID)
if err != nil {
return "", fmt.Errorf("songlink couldn't find Tidal URL: %w", err)
return "", fmt.Errorf("songlink/songstats couldn't find Tidal URL: %w", err)
}
return t.DownloadByURLWithFallback(tidalURL, outputDir, quality, filenameFormat, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, useAlbumTrackNumber, spotifyCoverURL, embedMaxQualityCover, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyURL, allowFallback, useFirstArtistOnly, useSingleGenre, embedGenre)
if t.apiURL == "" {
return "", fmt.Errorf("no configured custom tidal api instance")
}
return t.DownloadByURL(tidalURL, outputDir, quality, filenameFormat, includeTrackNumber, position, spotifyTrackName, spotifyArtistName, spotifyAlbumName, spotifyAlbumArtist, spotifyReleaseDate, useAlbumTrackNumber, spotifyCoverURL, embedMaxQualityCover, spotifyTrackNumber, spotifyDiscNumber, spotifyTotalTracks, spotifyTotalDiscs, spotifyCopyright, spotifyPublisher, spotifyComposer, metadataSeparator, isrcOverride, spotifyURL, allowFallback, useFirstArtistOnly, useSingleGenre, embedGenre)
}
type SegmentTemplate struct {
@@ -794,10 +697,12 @@ func parseManifest(manifestB64 string) (directURL string, initURL string, mediaU
var mpd MPD
var segTemplate *SegmentTemplate
var dashMimeType string
if err := xml.Unmarshal(manifestBytes, &mpd); err == nil {
var selectedBandwidth int
var selectedCodecs string
var selectedMimeType string
for _, as := range mpd.Period.AdaptationSets {
@@ -806,6 +711,7 @@ func parseManifest(manifestB64 string) (directURL string, initURL string, mediaU
if segTemplate == nil {
segTemplate = as.SegmentTemplate
selectedCodecs = as.Codecs
selectedMimeType = as.MimeType
}
}
@@ -820,6 +726,8 @@ func parseManifest(manifestB64 string) (directURL string, initURL string, mediaU
} else {
selectedCodecs = as.Codecs
}
selectedMimeType = as.MimeType
}
}
}
@@ -827,6 +735,7 @@ func parseManifest(manifestB64 string) (directURL string, initURL string, mediaU
if selectedBandwidth > 0 {
fmt.Printf("Selected stream: Codec=%s, Bandwidth=%d bps\n", selectedCodecs, selectedBandwidth)
dashMimeType = fmt.Sprintf("%s; codecs=\"%s\"", selectedMimeType, selectedCodecs)
}
}
@@ -852,7 +761,7 @@ func parseManifest(manifestB64 string) (directURL string, initURL string, mediaU
mediaURL := strings.ReplaceAll(mediaTemplate, "$Number$", fmt.Sprintf("%d", i))
mediaURLs = append(mediaURLs, mediaURL)
}
return "", initURL, mediaURLs, "", nil
return "", initURL, mediaURLs, dashMimeType, nil
}
fmt.Println("Using regex fallback for DASH manifest...")
@@ -899,86 +808,99 @@ func parseManifest(manifestB64 string) (directURL string, initURL string, mediaU
mediaURLs = append(mediaURLs, mediaURL)
}
return "", initURL, mediaURLs, "", nil
return "", initURL, mediaURLs, dashMimeType, nil
}
func getDownloadURLRotated(apis []string, trackID int64, quality string) (string, string, error) {
func (t *TidalDownloader) downloadWithRotatingAPIs(trackID int64, outputFilename string, quality string, allowFallback bool) (string, error) {
qualities := []string{quality}
if isTidalHiResQuality(quality) && allowFallback {
qualities = append(qualities, "LOSSLESS")
}
var lastErr error
for idx, candidateQuality := range qualities {
if idx > 0 {
fmt.Printf("⚠ %s unavailable/failed on all APIs, falling back to %s...\n", quality, candidateQuality)
}
apiURL, err := t.tryDownloadAcrossTidalAPIs(trackID, outputFilename, candidateQuality, false)
if err == nil {
return apiURL, nil
}
lastErr = err
}
if lastErr == nil {
lastErr = fmt.Errorf("no tidal api succeeded")
}
return "", lastErr
}
func (t *TidalDownloader) tryDownloadAcrossTidalAPIs(trackID int64, outputFilename string, quality string, refreshed bool) (string, error) {
apis, err := getConfiguredTidalAPIAttemptList()
if err != nil && len(apis) == 0 {
return "", fmt.Errorf("failed to load tidal api list: %w", err)
}
if len(apis) == 0 {
return "", "", fmt.Errorf("no APIs available")
return "", fmt.Errorf("no tidal apis available")
}
orderedAPIs := prioritizeProviders("tidal", apis)
fmt.Printf("Trying %d prioritized APIs...\n", len(orderedAPIs))
var lastErr error
errors := make([]string, 0, len(apis))
var lastError error
var errors []string
for _, apiURL := range apis {
fmt.Printf("Trying Tidal API: %s\n", apiURL)
for _, apiURL := range orderedAPIs {
fmt.Printf("Trying API: %s\n", apiURL)
client := &http.Client{
Timeout: 15 * time.Second,
}
url := fmt.Sprintf("%s/track/?id=%d&quality=%s", apiURL, trackID, quality)
resp, err := client.Get(url)
downloader := NewTidalDownloader(apiURL)
downloadURL, err := downloader.GetDownloadURL(trackID, quality)
if err != nil {
lastError = err
recordProviderFailure("tidal", apiURL)
lastErr = err
errors = append(errors, fmt.Sprintf("%s: %v", apiURL, err))
continue
}
if resp.StatusCode != 200 {
resp.Body.Close()
lastError = fmt.Errorf("HTTP %d", resp.StatusCode)
recordProviderFailure("tidal", apiURL)
errors = append(errors, fmt.Sprintf("%s: %v", apiURL, lastError))
if err := downloader.DownloadFile(downloadURL, outputFilename, quality); err != nil {
lastErr = err
cleanupTidalDownloadArtifacts(outputFilename)
errors = append(errors, fmt.Sprintf("%s: %v", apiURL, err))
continue
}
body, err := io.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
lastError = err
recordProviderFailure("tidal", apiURL)
errors = append(errors, fmt.Sprintf("%s: read body failed", apiURL))
continue
return apiURL, nil
}
var v2Response TidalAPIResponseV2
if err := json.Unmarshal(body, &v2Response); err == nil && v2Response.Data.Manifest != "" {
fmt.Printf("✓ Success with: %s\n", apiURL)
recordProviderSuccess("tidal", apiURL)
return apiURL, "MANIFEST:" + v2Response.Data.Manifest, nil
if lastErr == nil {
lastErr = fmt.Errorf("all tidal apis failed")
}
var v1Responses []TidalAPIResponse
if err := json.Unmarshal(body, &v1Responses); err == nil {
for _, item := range v1Responses {
if item.OriginalTrackURL != "" {
fmt.Printf("✓ Success with: %s\n", apiURL)
recordProviderSuccess("tidal", apiURL)
return apiURL, item.OriginalTrackURL, nil
}
}
fmt.Println("All Tidal APIs failed:")
for _, item := range errors {
fmt.Printf(" ✗ %s\n", item)
}
lastError = fmt.Errorf("no download URL or manifest in response")
recordProviderFailure("tidal", apiURL)
errors = append(errors, fmt.Sprintf("%s: %v", apiURL, lastError))
return "", fmt.Errorf("all tidal apis failed for quality %s: %w", quality, lastErr)
}
fmt.Println("All APIs failed:")
for _, e := range errors {
fmt.Printf(" ✗ %s\n", e)
func cleanupTidalDownloadArtifacts(outputPath string) {
if outputPath == "" {
return
}
return "", "", fmt.Errorf("all %d APIs failed. Last error: %v", len(apis), lastError)
_ = os.Remove(outputPath)
_ = os.Remove(outputPath + ".m4a.tmp")
}
func buildTidalFilename(title, artist, album, albumArtist, releaseDate string, trackNumber, discNumber int, format string, includeTrackNumber bool, position int, useAlbumTrackNumber bool) string {
func isTidalHiResQuality(quality string) bool {
normalized := strings.TrimSpace(strings.ToUpper(quality))
return normalized == "HI_RES" || normalized == "HI_RES_LOSSLESS"
}
func buildTidalFilename(title, artist, album, albumArtist, releaseDate string, trackNumber, discNumber int, format string, includeTrackNumber bool, position int, useAlbumTrackNumber bool, extra ...string) string {
var filename string
isrc := ""
if len(extra) > 0 {
isrc = SanitizeOptionalFilename(extra[0])
}
numberToUse := position
if useAlbumTrackNumber && trackNumber > 0 {
@@ -998,6 +920,7 @@ func buildTidalFilename(title, artist, album, albumArtist, releaseDate string, t
filename = strings.ReplaceAll(filename, "{album_artist}", albumArtist)
filename = strings.ReplaceAll(filename, "{year}", year)
filename = strings.ReplaceAll(filename, "{date}", SanitizeFilename(releaseDate))
filename = strings.ReplaceAll(filename, "{isrc}", isrc)
if discNumber > 0 {
filename = strings.ReplaceAll(filename, "{disc}", fmt.Sprintf("%d", discNumber))
+50
View File
@@ -0,0 +1,50 @@
package backend
import "strings"
const preferredUPCTagKey = "UPC"
var ffprobeUPCTagKeys = []string{
"upc",
"barcode",
"wm/upc",
"txxx:upc",
"txxx:barcode",
"txxx/upc",
"txxx/barcode",
"----:com.apple.itunes:upc",
"----:com.apple.itunes:barcode",
}
func assignPreferredUPC(current *string, incoming string, preferred bool) {
incoming = strings.TrimSpace(incoming)
if incoming == "" {
return
}
if preferred || strings.TrimSpace(*current) == "" {
*current = incoming
}
}
func classifyUPCDescription(description string) (matched bool, preferred bool) {
switch strings.ToUpper(strings.TrimSpace(description)) {
case preferredUPCTagKey:
return true, true
case "BARCODE":
return true, false
default:
return false, false
}
}
func firstPreferredFFprobeUPCValue(tags map[string]string) string {
for _, key := range ffprobeUPCTagKeys {
value := strings.TrimSpace(tags[key])
if value != "" {
return value
}
}
return ""
}
+1
View File
@@ -20,6 +20,7 @@
"@radix-ui/react-progress": "^1.1.8",
"@radix-ui/react-scroll-area": "^1.2.10",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-slider": "^1.3.6",
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
+1 -1
View File
@@ -1 +1 @@
867c45db7982e126a7249d80210f23be
8864b4f7b7971b624d1ba25030f2db4e
+3
View File
@@ -32,6 +32,9 @@ importers:
'@radix-ui/react-select':
specifier: ^2.2.6
version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@radix-ui/react-slider':
specifier: ^1.3.6
version: 1.3.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@radix-ui/react-slot':
specifier: ^1.2.4
version: 1.2.4(@types/react@19.2.14)(react@19.2.4)
+150
View File
@@ -0,0 +1,150 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ad" viewBox="0 0 640 480">
<path fill="#d0103a" d="M0 0h640v480H0z"/>
<path fill="#fedf00" d="M0 0h435.2v480H0z"/>
<path fill="#0018a8" d="M0 0h204.8v480H0z"/>
<path fill="#c7b37f" d="M300.4 136.6c7.7 0 10.9 6.6 18.6 6.6 4.7 0 7.5-1.5 11.7-3.9 2.9-1.6 4.7-2.5 8-2.5 3.4 0 5.5 1 7.3 4 1 1.6 1.8 4.9 1.3 6.7a40 40 0 0 1-2.7 8.3c-.7 1.6-1.3 2.5-1.3 4.2 0 4.1 5.6 5.5 9.4 5.6.8 0 7.7 0 12-4.2-2.3-.1-4.9-2-4.9-4.3 0-2.6 1.8-4.3 4.3-5.1.5-.1 1.3.3 1.7 0 .7-.3.4-1 1-1.4 1.2-1 2-1.6 3.6-1.6q1.3-.1 2.5.7.5.7 1 .8c1.2 0 1.8-.8 3-.8a5 5 0 0 1 2.3.6c.6.3.6 1.5 1.4 1.5.4 0 2.4-.9 3.5-.9 2.2 0 3.4.8 4.8 2.5.4.5.6 1.4 1 1.4a6 6 0 0 1 4.8 3c.3.4.7 1.4 1.1 1.5.6.3 1 .2 1.7.7a6 6 0 0 1 2.8 4.8q-.1 1.2-.5 2.2c-1.8 6.5-6.3 8.6-10.8 14.3-2 2.4-3.5 4.3-3.5 7.4 0 .7 1 2.1 1.3 2.7-.2-1.4.5-3.2 2-3.3a4 4 0 0 1 4 3.6l-.3 1.8a10 10 0 0 1 4-1.4h1.9c3.3 0 7 1.9 9.3 3.8a21 21 0 0 1 7.3 16.8c-.8 5.2-.3 14.8-13.8 18.6 2.5 1 4.2 3 4.2 5.2a4.5 4.5 0 0 1-4.4 4.7 4 4 0 0 1-3.5-1.4c-2.8 2.8-3.3 5.7-3.3 9.7 0 2.4.4 3.8 1.4 6s1.8 3.5 3.7 5.1q1.3-2.4 4-2.6 2.7-.1 3.9 2.2c.2.5 0 .9.3 1.4.3.6.8.7 1.1 1.3.5 1 0 1.8.5 2.7.3.7.9.8 1.2 1.4.4 1 .5 1.6.5 2.7 0 3-2.7 5.2-5.7 5.2-1 0-1.4-.4-2.3-.3 1.7 1.7 3 2.5 4.3 4.5a18 18 0 0 1 3 10.3 22 22 0 0 1-2.8 11.2 20 20 0 0 1-7 8.5 35 35 0 0 1-16 6.4 74 74 0 0 1-11 1.4l-14.1.8c-7.2.4-12.2 1.5-17.3 6.6 2.4 1.7 4 3.5 4 6.4q-.2 4.7-4.7 6.2c-.7.2-1.2 0-1.9.4s-.7 1.3-1.4 1.7a6 6 0 0 1-3.8 1 8 8 0 0 1-6.4-2.5c-2.2 1.8-3 3.4-5.5 4.9-.8.4-1.2 1-2.1 1-1.5 0-2.2-1-3.4-1.8a23 23 0 0 1-4.4-4c-2.3 1.3-3.6 2.4-6.3 2.4a7 7 0 0 1-4-1c-.6-.5-.8-1.2-1.5-1.6s-1.3-.3-2.1-.7c-3-1.3-5-3.5-5-6.8 0-2.9 1.8-4.7 4.4-6-5-5-10-5.8-17-6.2l-14-.8c-4.4-.3-6.8-.7-11-1.4-3.3-.5-5.2-.7-8.2-2.1-10.2-4.8-16.8-11.3-18-22.5-.2-1-.2-1.5-.2-2.5 0-5.8 2.3-9.4 6.4-13.5-1-.3-1.7 0-2.8-.3-2.5-1-4.4-2.7-4.4-5.5q-.1-1.4.5-2.6c.4-.6 1-.7 1.2-1.4.2-1 0-1.6.4-2.5.3-.5.8-.6 1-1.2 1-1.9 2-3.4 4.1-3.4q2.7.1 3.8 2.5c1.8-.8 2.2-2.1 3.2-3.7a16 16 0 0 0 1.4-13.3c-.4-1.5-.6-2.5-1.8-3.7q-1.4 1.4-3.4 1.4c-2.9 0-5-2.5-5-5.3a5 5 0 0 1 3-4.6c-1.6-1.4-3-1.5-4.7-2.6-2.6-1.6-3.5-3.4-5.2-6-1.2-1.6-1.5-2.8-2-4.7a19 19 0 0 1-1-7.8c.6-5 1.5-8 4.6-11.9 1.8-2.3 3-3.7 5.8-4.9 2.3-1 3.7-1.7 6.2-1.7l2 .1a7 7 0 0 1 2.8.8c.4.2 1.1.9 1.1.4s-.3-.8-.3-1.3c0-2 1.5-4 3.6-4 1.5 0 2.1 1.4 2.9 2.7q.6-1 .7-2.3c0-3.4-1.9-5.2-4-7.9-4.7-5.8-10.5-8.5-10.5-16q0-3.2 3-4.9c.5-.3 1.3 0 1.8-.3s.4-1 .7-1.4q.7-.9 1.6-1.6c1-1 2-.6 3.1-1.5q.8-.7 1.2-1.4c1.3-1.6 2.5-2.4 4.6-2.4q1.3-.1 2.5.4l1 .5q.5-.5 1.5-1.1a4 4 0 0 1 2.2-.6c1.1 0 1.8.6 3 .6l.8-.6c1-.7 1.5-1 2.7-1s1.8.3 2.8 1c1 .5 1 1.3 2 1.8l1.5.4c2.6.9 4.5 2.6 4.5 5.3q.1 2.1-1.4 3.5c-.9.7-1.7.6-2.8 1a16 16 0 0 0 11.3 3.5c4.2 0 9.3-1.7 9.3-5.9 0-2-1-3-1.8-4.8a19 19 0 0 1-2.1-8.5c0-2.8.3-4.5 1.9-6.7s3.6-2.9 6.5-2.9"/>
<g fill="none" stroke="#703d29">
<path stroke-linejoin="round" stroke-width=".7" d="M272.4 159a4 4 0 0 0 2.4 2.4c.8.3 2.7.2 3.8-1.4 1-1.2 1-2.8.6-4a5 5 0 0 0-1.7-2.2z"/>
<path stroke-linecap="round" stroke-width=".7" d="M401 236.1c-1.2-2.9-4.3-1.6-4.4 0-.5 3.7 2.7 4.8 5 4.2a4 4 0 0 0 2.5-2q1-1.6.4-3.7l-.8-1.6-1.3-1.2q-1.2-.7-3.4-.6c-5.5 0-10.4 6.5-12 13.4-.6 2.2-1.3 7.3-.3 12a22 22 0 0 0 5.9 11.3 26 26 0 0 0 9.9 5.8 8 8 0 0 0 4 .1c3.2-.7 4.7-3.8 3-7-1.3-2.5-5.3-4-7.2-.6q-.3.5-.4 1.5c0 .9.4 2 1 2.4 1.5.9 3.8.6 3.7-2"/>
<path stroke-width=".8" d="M383.8 274a11 11 0 0 1 6.6-3.7q4.4-.4 8.2 2a19 19 0 0 1 10.8 17c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14-7.1 3-18 3.6-25.7 4-10.4.3-20 .7-25.5 7.6"/>
<g stroke-width=".7">
<path d="M386.4 285.7q-.4-1.5.8-3.3c1.2-1.6 3.7-2.1 6-1a7 7 0 0 1 2.5 2.2l1.1 1.6q1 1.7 1 2.5c2.5 7-1.4 14.5-6.5 17.6-4 2.4-8.7 3.4-14.4 4-2.5.4-4 .3-6.5.5h-16.8c-2.9.3-5 .4-7.6.8q-2.4.3-5.4 1-.9 0-1.8.4l-1.2.3q-5.5 1.6-9.8 4.2-1.3.7-2.5 1.7l-1.3 1.2c-2 2-3.9 4-4.4 6.7v1.6c0 1.8 1.4 4.3 5.4 5m5.5-170c.8 1.4 1.3 2.3.8 3.9q-.9 2.7-3.6 2.8c-4 0-6.3-4.8-4.5-7.8 3.2-5.3 9.3-2.3 15 .3-.3-1.3-.8-1.8-.7-3.5.1-4.2 3.2-6 4.5-10 .7-2.3 1-4.3-.7-6q-2.2-1.8-5.1-.6c-3.8 1.5-8.5 5.9-16.6 6-8.2-.1-12.8-4.5-16.7-6q-3-1.2-5.1.7c-1.7 1.6-1.4 3.6-.7 6 1.3 3.8 4.4 5.7 4.5 10 0 1.6-.4 2-.7 3.4 5.7-2.6 12-5.9 15-.3 1.7 3.2-.5 7.7-4.5 7.7q-2.7 0-3.6-2.7-.5-2.2.8-4"/>
<path stroke-linecap="round" d="M314.6 159.9a5 5 0 0 1 2.4 5c-.2 2.5-.8 3.1-2.8 4.5m2.4-3.8q0 2.2-2.3 3.1"/>
</g>
<path fill="#c7b37f" stroke="none" d="m276.7 153.3.7.5.8.8.5 1 .2.8v1.9l-.2.8-.5.6-.6.6-.9.5-1 .2-1 .2-1-.5-.9-.6-.5-.8-.4-1v-.4z"/>
<path stroke-linecap="round" stroke-width=".7" d="M275.2 157.2c-.3-1.7-2.2-2-3-1-1.1 1.5-.3 4 2 4.7a4 4 0 0 0 3.9-1.4c1-1.3.9-2.8.5-4a5 5 0 0 0-1.7-2.2c-2.7-2-7.1-1.6-8.6 2-1.8 4.4 2.2 7.8 6 10.3 4.6 3.2 10 3.8 14 3.8 9.2-.1 16.2-4.5 20.7-7q1.7-.9 2.7.2a2 2 0 0 1-.3 2.7"/>
<path stroke-width=".7" d="m248 281.2-2 .7-2 1.6-1 1.3-1.1 2-.5 1.5-.4 1.8-.2 1.4m19-10.1-.1 1.8-.3 1.2-1 2.2-1.3 1.8-1.5 1.2-1.1.5-1.6.4"/>
<path stroke-width=".8" d="M319.7 329.1c-.3 1.7-1.9 3.6-5.3 4.2l-.6.2"/>
<path stroke-width=".9" d="M404.2 276.2a18 18 0 0 1 5.6 13.5c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14a85 85 0 0 1-25.6 4c-10.3.3-19.8.7-25.4 7.3"/>
<path stroke-width=".6" d="M387.5 282.9c.8-1 3.5-2.4 5.8-1.1a6 6 0 0 1 2.3 2"/>
<path stroke-width=".9" d="m401.6 273.8 1.4.5a7 7 0 0 0 4 0c2.8-.8 4.6-3.4 3.2-6.9a6 6 0 0 0-1.8-2.1"/>
<path stroke-linecap="round" stroke-width=".7" d="M240.3 199.8c-2 1.1-3.3 1.4-4.8 3.1a28 28 0 0 0-2.6 6.8m46-51.7q-.1 2.7-3 3.2"/>
<path stroke-width=".6" d="M397.1 192a19 19 0 0 1 18.6 19.8c0 16-9.9 18.5-13.8 19.6"/>
<path stroke-width=".7" d="M398.4 192c8.1-.3 16.5 5.7 16.9 20.7.3 11.7-8 17-12 18"/>
<path stroke-width=".6" d="m393.8 248.4.1-1.6.6-2.5.7-2 .9-1.6 1-1.3m7.8-3.4v1.5l-.5 1-.7 1.1-.8.6-1.2.5h-1.1l-.8-.1m-14.3-52.8.3-1.7.8-1.6 1-1.5 1.6-2.2 1.4-1.4 2-2.2 2-1.9 1.1-1.3 1.5-1.9 1.4-2 .8-1.7.5-2.2.1-2.7-.2-.8m-12.3 128.2 1.6-.4 1.2-.6.7-.7.5-.8.3-1.2v-.9m-158.2-12.1h2.7l1.6-.6m5-36.5-.2 1.4-.4.6-.4.6-.7.5-.7.3-1 .1h-.6m9.9-15.5-.3 2.1-.5 1-.8 1.2-1.2.9-1.2.6-2.3.5m15.3-39.7-.5 1.3-.5 1-.8 1-1 1-1.2.5-1.1.3-.6-.1m.3-6.2v1"/>
<g stroke-width=".6">
<path stroke-linecap="round" d="M254.3 224a7 7 0 0 1-2.1 1.4m150.5 44.8.5.2c1.4.8 4.2-.2 3.4-2.4"/>
<path d="M397.8 239.6c1 1.3 2.9 1.7 4.4 1.3a4 4 0 0 0 2.5-2q1-1.6.4-3.7l-.9-1.6-1.3-1.5-.4-.2m6.4 34 .1-.7a4 4 0 0 0-1.3-3l-.8-.8m.4.5c0-1.8-1.5-3.2-3.4-3.5m-4.2 2.8-1.3-1a16 16 0 0 1-4.3-10.7c0-4.2 1.6-8.4 3.6-10M341.2 324l1.8-1.6 1.2-1 2.3-1.4 2.2-1 1.6-.5 3-.6 3.6-.6m-29.5 19.4a17 17 0 0 1-7.6 6.1 18 18 0 0 1-7.6-6.1"/>
<path stroke-linecap="round" d="M314.4 332.6a10 10 0 0 1-2.2 4.2"/>
<path d="m314.7 330.5-.4 2.2M312 337l-1 1-1.7.9-2 .6m-5.6-177.8c.3-.8.5-1.4.5-2.6-.1-4.2-3.2-6.1-4.5-10-.7-2.3-1-4.3.7-6q2.2-2 5-.6c4 1.5 8.6 5.8 16.7 6-8.1-.2-12.8-4.5-16.6-6-2-.8-3.8-1-5.3.5-1.7 1.6-1.2 3.8-.5 6.1 1.3 3.9 4.2 5.8 4.3 10q-.1 1.6-.5 2.6M320 148c8-.4 14.9-5.8 17.1-6.3 2-.4 3-.2 4.5 1.1-1.4-1.3-3-1.2-5-.5-3.8 1.5-8.4 5.8-16.6 6m79.6 112.9a16 16 0 0 1-6.2-12.4c0-4.1 1.7-8.4 3.6-10m-70 97.6c-1.3 2-4.3 5-7.6 6.2a18 18 0 0 1-7.6-6.2"/>
<path stroke-linecap="round" d="m306.7 163.7 2.3-1.3c1-.6 2.3-.5 2.9.2s.7 2-.2 2.8"/>
<path d="M294.7 169.3c5.5-1.2 10-3.6 13.4-5.5M340.3 328c.5.3.8 1 .8 1l.3.8c.3 1.5-.7 2.4-2 2.6-1.7.2-3-.8-3.5-2M294.4 169c5.5-1.1 10-3.6 13.4-5.5m97.6 106.9c-1 .4-1.6.3-3-.2l-1.8-1a21 21 0 0 1-8.4-9 19 19 0 0 1-1.7-4.6 12 12 0 0 1-.5-3.3 26 26 0 0 1 4.7-15.3c1.1-1.6 2.1-2.5 4.2-2.6m-143.7-39.3a7 7 0 0 1 2.7 5.7c0 3.1-2.6 8.2-9 10a8 8 0 0 1-6.3-.8"/>
<path d="M256.3 205.6q1.6 1 1.6 3.3 0 1.6-1.9 3.7a12 12 0 0 1-8.8 4q-3 .1-6-1.7a9 9 0 0 1-3.8-5.4"/>
<path d="M256.2 212.3q1.8 1.8 1.7 4.6.1 3.9-3.7 7-.8.8-2 1.5m129.5-22.1v3.5m-.3-4.4v5m.3-15.8v6.6m-.3-8v8.9m-1.9 82a19 19 0 0 1-4.2 5.6 20 20 0 0 1-5.8 4.1 25 25 0 0 1-6.6 2.2 33 33 0 0 1-6.8.9c-2.5 0-3.9 0-6.4-.2s-4-.6-6.7-.8c-2.2-.2-3.4-.4-5.6-.3a28 28 0 0 0-11 1.8c-2.6 1-5.7 3-6.3 3.8a22 22 0 0 0-6.4-3.8 22 22 0 0 0-5.1-1.4c-2.3-.4-3.5-.4-5.8-.4s-3.4.1-5.6.3c-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.4.2a33 33 0 0 1-13.4-3 20 20 0 0 1-6.4-4.8m42.1 53.4 1.8-.2m30.3-2.4 1.8-.1 1.7-.7 1.2-.8 1.7-2 .3-.6.3-1.7v-.8m47-136.7c.7-2.6-.2-5.4-2.8-5.3m-132 46.5a8 8 0 0 1-3.5 4.7m3.6-46.7a7 7 0 0 1-3.6 4c-1.9.8-4 0-5.2-.8"/>
<path stroke-linecap="round" d="M243.8 202.4c1.5.8 3.1-.4 2.8-2.4a3 3 0 0 0-2.5-2.2"/>
<path d="M250.2 286.6q.3.5.8.8c.7.2 1.2.4 1.9-.5.8-1.1.3-2.8-.5-3.9a5 5 0 0 0-5.8-1q-1.2.6-2.6 2.2l-1.1 1.6q-1 1.7-1.1 2.4c-2 5.9.4 12 4.1 15.7"/>
<path stroke-linecap="round" d="m340.2 327.8.7.8.2.9c.3 1.5-.7 2.4-2 2.6-1.6.2-2.8-.8-3.3-2"/>
<path d="M389.4 154.8a7.4 7.4 0 0 1 6.3 7c0 4.4-1.5 6-3.8 9.2-2.5 3.4-10.7 9.6-10.7 16.7q-.2 6.4 4.3 8.4c2 1 4.3 0 5.4-1 2.6-2.4 1.5-6.5-1.2-7-3.2-.6-3.9 4.6-.7 4.3m17.9 69a4 4 0 0 0-3.6-3 3.7 3.7 0 0 0-3.7 3.7q0 1.6 1 2.6"/>
<path d="M383.9 195.1a7 7 0 0 0-2.7 5.7c0 3.1 2.6 8.2 9 10 2.4.7 4.8.6 6.2-.3m-156-10.3a9 9 0 0 0-4.8 3.5 17 17 0 0 0-2.2 12.7 16 16 0 0 0 2.3 5.6l1 1.2 1.2 1m64 92c4.9 2.1 8.4 3.7 11.4 8.5a10 10 0 0 1 1.2 4.9c0 2.7-1 5.7-3.3 7.6a8 8 0 0 1-6.7 2c-1.9-.2-3.7-1.6-4-2.6M254 224.1c2.7 2.2 3.9 4.2 3.9 7.5a8 8 0 0 1-4 7.5"/>
<path stroke-linecap="round" d="M251.5 236.4c4 5.1 6.3 8.1 6.4 14.1.1 5.7-1.7 9.6-5 13.7"/>
<path d="M329.8 169.3a4 4 0 0 0 1.5-2.2q.8-2.2-.2-4 1.3 2 .7 4c-.1 1-.8 1.5-1.6 2.3m51.5 86.1v16.2l-.1 2.5-.3 1.7"/>
<path d="M381.4 254v19.9l-.5 2.6m.5-43v14.6m.3-13.4v11.8m0-26.8v8.8m-.3-9.9v11m.3-19v3.5m-.3-4.2v5m-1.8 65.2-.4.7a19 19 0 0 1-4.1 5.7 20 20 0 0 1-5.9 4 25 25 0 0 1-6.5 2.2c-2.7.6-4.2.8-6.9.9-2.5 0-3.9 0-6.3-.2-2.7-.2-4.1-.5-6.8-.8-2.2-.2-3.4-.3-5.6-.3s-3.5 0-5.7.4a22 22 0 0 0-5.2 1.4c-2.7 1.1-5.7 3-6.4 3.8-.6-.8-3.7-2.7-6.3-3.8a22 22 0 0 0-5.2-1.4c-2.2-.4-3.5-.4-5.8-.4s-3.4.1-5.6.3c-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.3.2a33 33 0 0 1-13.5-3 20 20 0 0 1-5.8-4.1l-2.5-2.8m-2-3.2a10 10 0 0 1-2.3 7.7c-.8.9-2.6 2.6-5 2.6-3.7 0-4.8-2.5-5-3.2"/>
<path d="M255.6 278.9q1 1 1.9 2.5c1 1.8.6 4.8-.1 6.2l-.3.4m-20.3 18q3.3 3.8 10.9 7.1c7.1 3 18.1 3.6 25.7 4 10 .3 19.3.7 25 7m17.3-4a12 12 0 0 1 4 5.5m-7.3 11.5-.7.7a8 8 0 0 1-6.6 2c-2-.2-3.8-1.6-4.3-2.6m-5.4-2.9.3.4a8 8 0 0 0 5.1 2.4m27 0a18 18 0 0 1-7.7 6.1 18 18 0 0 1-7.6-6.1l-.3-.5m15.6.4.7.7a8 8 0 0 0 6.7 2 6 6 0 0 0 4-2.5l.5-.7"/>
<path d="m339 336.6-.7 1.2-1.1 1-1.7.7h-1.6"/>
<path d="M343 325.3a8 8 0 0 1 2.4 2.9q.4 1 .5 2.3a6 6 0 0 1-1.5 4.2 8 8 0 0 1-5.4 2.4h-.4m.2-.2a7 7 0 0 1-5.2-2.2m63.7-67.9a24 24 0 0 1-4.8-6.4 19 19 0 0 1-1.7-4.5 12 12 0 0 1-.5-3.3 26 26 0 0 1 4.6-15.3c.7-.8 1.4-1.8 2.1-2.2m-1.3-75.9c2.5.2 4.8 3 4.8 5.7 0 3.8-1.3 5.5-4.4 9.3-2.6 3.2-10.6 9-10.3 14.5q.1 1.6 1.1 2.8m-3.2 3.5a7 7 0 0 0 2 1.4 5 5 0 0 0 4.3-.3M369 153a6 6 0 0 1 2.2 2.6c1.8 4.5-2.2 7.9-6 10.4a21 21 0 0 1-8.3 3.3"/>
<path d="M364.6 161.6a4 4 0 0 1-3.1-1.5l-.7-1m-15 4.9-1.2-1q-1.7-1.4-.8-4.4c.6-1.9 3.7-7.2 3.8-10.9.2-5.6-2-9-5.3-10.2"/>
<path stroke-linecap="round" d="m347.3 146.5-.1 2-.6 2.2-1 3-1 1.9-.8 1.9-.4 1.3-.2 1 .1.9m38 126.3.6.8c.7 1 3.2 3 5.5 3 3.7 0 4.6-2.6 4.7-3.2.5-2.9-.5-3.6-2-4.5 0 0-.8-.4-1.9-.2"/>
<path d="M237 274.4a7 7 0 0 1-3.7 0c-2.9-.9-5.2-3.6-4-7m13.4-31.8q.4.5.4 1c.4 3.8-2.8 4.8-5 4.2a6 6 0 0 1-3-2.3 5 5 0 0 1-.7-2.3m22-23.6q.9.7 1.3 1.7m-1.1-8.5q.8.7 1.1 1.3"/>
<path stroke-linecap="round" d="M257.9 210.5a9 9 0 0 1-1.6 2.4 12 12 0 0 1-8.8 4q-3 .1-6-1.7a10 10 0 0 1-4-5.6"/>
<path d="M255.4 195.3a8 8 0 0 1 2.4 3.4"/>
<path stroke-linecap="round" d="M257.8 203.2c-.9 3-3.5 6.6-8.6 7.9-2.4.6-5.6-.2-6.6-1"/>
<path d="M240 202.6c.3 2.6 2 4.6 5.4 4.6 4.7.1 7.6-6.7 3.4-11.5"/>
<path stroke-linecap="round" d="M229.4 225.5q1 1.3 2.4 2.4a17 17 0 0 0 6 3.3m5.2.5c4.2-.5 6.6-3.7 6-7.3-.3-2.8-2.8-5-4.6-5.1"/>
<path d="M249.8 188.1c1.9 0 3 1.6 2.9 3"/>
<path stroke-linecap="round" d="M249.4 163a12 12 0 0 0 5 5.9m144.2 31c1.7 2.3.6 7-4 7a5 5 0 0 1-4.5-2.5"/>
<path d="M381.7 169.1V185"/>
<path stroke-linecap="round" d="M243.8 202.3c1.4 1 3.3-.7 2.5-2.6-.5-1.2-2.2-2.6-4.7-.9-2.8 1.9-2 7.8 3.2 7.9 4.7 0 7.6-6.8 3.4-11.6-4-4.6-11.3-3.6-16 .2A21 21 0 0 0 225 207a23 23 0 0 0 0 9.2 21 21 0 0 0 3 7.5l1.3 1.7c.8.8 1 1.2 2 2a15 15 0 0 0 10.4 3.7c4.6-.2 7.3-3.4 6.8-7.3-.4-3.8-4.2-5.7-6.7-3.9-1.7 1.2-2.3 4.9.7 5.8 1.6.5 3.1-1.7 2-3M374 150.9q4-2.2 6.3 1a10 10 0 0 1 1.6 7.2 9 9 0 0 1-3.5 5.8"/>
<path stroke-linecap="round" d="M380.5 152c3.1-2 6.5-1.1 8.3 1.6 1.3 2 1.7 3.6 1.6 6.1a11 11 0 0 1-5.7 9.2"/>
<path d="M395 159.2c2.6.2 4.6 2.5 4.6 5.1 0 3.8-1 5.5-4 9.3-2.7 3.3-10.6 9-10.4 14.6 0 2.1 1.8 4 3.3 4.2"/>
<path stroke-linecap="round" d="M395.4 202.3c-1.5 1-3.3-.6-2.5-2.4.5-1.2 2.2-2.8 4.7-1.1 2.7 1.9 2 7.8-3.3 7.9-4.7 0-8-6.6-3.4-11.6 4-4.6 11.7-3.7 16.5.1 2 1.6 6.1 6 7 12 1 7 .9 15.6-6.4 21-3 2.1-7 3.1-10.6 3-4.6-.2-7.3-3.5-6.8-7.4.5-3.8 4-5.4 6.7-3.9s2.3 5.4-.7 5.8c-1.7.2-3.1-1.7-2-3"/>
<path d="M392.9 199.9c.8-3.5 3.7-3.8 6.2-3.8 6.5.1 11.1 8 11.2 15.5 0 9.5-4 15.2-11 15.5-1.9 0-5-.8-5-3"/>
<path stroke-linecap="square" d="M397 198.3c6.9 1.6 9.3 7.8 9.3 13.8 0 4.9-.5 11.6-10 13.9"/>
<path d="M408.4 265.3a3.9 3.9 0 1 0-6.3 2.4"/>
<path stroke-linecap="round" d="M394.4 259.4c1.4 2 3 4.1 6.3 6m-1.3 10.5c-3.2-2.2-9.5-5-15-2.2a8 8 0 0 0-4.4 4.4 10 10 0 0 0 1.8 9.5c.9 1 2.7 2.6 5 2.7 3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.1-.7-.3-2.8-.2-3.2 1.3q-.3.9.2 2"/>
<path stroke-linecap="round" d="M340.5 328.4c1 2.2-.2 3.2-1.6 3.4-2.2.3-3.3-1.4-3.4-3a4.4 4.4 0 0 1 4.3-4.7c2.3 0 4.1 1.5 5 3.5q.5 1 .5 2.4a6 6 0 0 1-1.4 4.1 8 8 0 0 1-5.4 2.5c-4.2.1-7.5-3.8-7.5-7.8 0-7.7 11.4-12 16-13a84 84 0 0 1 17.9-2.4c3.5-.1 6.2 0 10.1-.5 3.5-.3 5.4-.5 9-1.3a27 27 0 0 0 12.6-6.4c2.9-2.7 4.5-4.5 5.9-8.2a17 17 0 0 0-1.3-13.9 14 14 0 0 0-10.3-6.8c-3.7-.5-7 1.1-9 4.8-1 1.8-.6 4.8.1 6.2a6 6 0 0 0 4.8 3c3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.2-.7-.2-2.8-.1-3.2 1.4q-.3.9.2 2"/>
<path stroke-linecap="round" d="M337.2 316.2c-4.8 2.1-8.4 3.7-11.4 8.5a10 10 0 0 0-1.2 4.9c0 2.7 1.1 5.7 3.3 7.6a8 8 0 0 0 6.7 2c2-.2 3.7-1.6 4-2.6"/>
<path d="M385.1 224.1c-2.3.8-3.9 4.2-3.9 7.5a8 8 0 0 0 4 7.5"/>
<path stroke-linecap="round" d="M387.6 236.4c-4 5.1-6.3 8.1-6.4 14.1 0 5.7 1.7 9.6 5.1 13.7"/>
<path d="m365.9 152 .3-.5c1.7-2.4 4.7-3.1 6.9-1.5 2.6 2 3.3 5.4 2.6 9q-.9 3.3-4 5.5"/>
<path stroke-linecap="round" d="M265.1 150.8q-3.9-1.9-6.3 1a9 9 0 0 0-1.6 7.2c.6 2.7 1.4 3.8 3.5 5.8"/>
<path d="M258.6 152a6 6 0 0 0-8.3 1.6 9 9 0 0 0-1.6 6.1c.2 4.2 2.8 7.6 5.8 9.2"/>
<path d="M249.7 154.8a7 7 0 0 0-6 6.6c0 4.5 1 6.3 3.5 9.6 2.5 3.4 10.7 9.6 10.7 16.7q.2 6.4-4.3 8.4c-2 1-4.3 0-5.4-1-2.6-2.4-1.5-6.5 1.2-7 3.3-.6 3.9 4.6.7 4.3"/>
<path d="M244 159.2c-2.5.2-5 2.3-5 5 0 3.8 1.5 5.6 4.6 9.4 2.6 3.3 10.1 9 9.9 14.5 0 2-1.5 4.6-2.9 4.3"/>
<path stroke-linecap="round" d="M238 236.1c1.3-2.9 4.4-1.6 4.6 0 .4 3.7-2.8 4.8-5.1 4.2a4 4 0 0 1-2.5-2 5 5 0 0 1-.4-3.7l.9-1.6 1.2-1.2q1.3-.7 3.4-.6c5.5 0 10.4 6.5 12 13.4.6 2.2 1.3 7.3.3 12a22 22 0 0 1-5.8 11.3 26 26 0 0 1-10 5.8 7 7 0 0 1-3.9.1c-2.8-.9-4.6-3.5-3.2-7 1.2-2.6 5.4-4 7.3-.6q.3.5.4 1.5c0 .9-.4 2-1 2.4-1.4.9-3.7.6-3.6-2"/>
<path d="M233.8 270.4c1 .4 1.6.3 2.9-.2l1.8-1c2.6-1.5 5.6-3.8 8.4-9.1a19 19 0 0 0 1.7-4.5q.4-1.6.6-3.3a26 26 0 0 0-4.8-15.3c-1.1-1.6-2-2.5-4.2-2.6m-9.5 31a3.9 3.9 0 1 1 6.3 2.3"/>
<path d="M232.2 261.4a4 4 0 0 1 3.7-3 3.7 3.7 0 0 1 3.6 3.7 4 4 0 0 1-1 2.6"/>
<path d="M239.4 261.3a16 16 0 0 0 6.2-12.4c0-4.1-1.6-8.4-3.6-10"/>
<path stroke-linecap="round" d="M244.7 259.4a17 17 0 0 1-6.3 6"/>
<path d="M254.6 273.7q-1.4-3.2-5.8-3.5-4.3-.3-8.2 1.9a19 19 0 0 0-10.8 17 25 25 0 0 0 2 9.5c.9 1.6 3 9 15.3 14a86 86 0 0 0 25.7 3.9c10.4.4 20 .8 25.6 7.6"/>
<path stroke-linecap="round" d="M239.7 275.9c3.3-2.2 9.5-5 15.1-2.2a8 8 0 0 1 4.3 4.4 10 10 0 0 1-1.8 9.5c-.9 1-2.7 2.6-5 2.7-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4q.4.9-.2 2"/>
<path d="M252.7 285.7q.6-1.6-.8-3.3a5 5 0 0 0-6-1q-1.1.6-2.4 2.2-.7.7-1.2 1.6-1 1.7-1 2.5c-2.5 7 1.5 14.4 6.5 17.6 4.4 2.8 8.8 3.6 14.4 4 2.5.3 4 .3 6.5.5h16.8c3 .3 5.1.4 7.6.8q2.5.3 5.4 1 .9 0 1.8.4l1.2.3q5.5 1.6 9.8 4.2 1.3.7 2.5 1.7l1.3 1.2c2 2 4 4 4.4 6.7v1.6c0 1.8-1.4 4.3-5.3 5"/>
<path d="M298.6 328.4c-1 2.2.2 3.2 1.6 3.4 2.2.3 3.3-1.4 3.5-3a4.4 4.4 0 0 0-4.4-4.7 6 6 0 0 0-5 3.5 7 7 0 0 0-.5 2.4 6 6 0 0 0 1.4 4.1 8 8 0 0 0 5.4 2.5c4.2.1 7.5-3.8 7.5-7.8 0-7.7-11.4-12-16-13a84 84 0 0 0-17.9-2.4c-3.5-.1-6.2 0-10.1-.5-3.5-.3-5.4-.5-9-1.3a27 27 0 0 1-12.5-6.4 17 17 0 0 1-4.7-22 14 14 0 0 1 10.3-6.9q5.9-.7 9 4.8c1 1.8.6 4.8-.1 6.2a6 6 0 0 1-4.8 3c-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4q.3.9-.2 2"/>
<path stroke-linecap="round" d="m273.3 152-.4-.5c-1.7-2.4-4.7-3.1-6.9-1.5-2.6 2-3.3 5.4-2.5 9a9 9 0 0 0 4 5.5"/>
<path d="M366.8 159.6c-4 4.4-8.1 5.8-14.1 6-2 0-5.5-.6-7.6-2.1-1.3-1-2.8-2.6-1.9-5.5.6-1.9 3.7-7.2 3.8-10.9.3-5.6-1.9-8.7-5.3-9.9-6.2-2.2-13 4-17 5.4-2.1.7-3.2.8-5.1.8-2 0-3-.1-5.2-.8-4-1.4-10.7-7.6-17-5.4-3.4 1.2-5.5 4.3-5.3 10 .1 3.6 3.2 9 3.8 10.8 1 2.9-.5 4.5-1.9 5.5-2 1.5-5.7 2.1-7.5 2-6-.1-10.1-1.5-14.1-5.9"/>
<path stroke-linecap="round" d="M297.3 314.4c.8.3.2-.2 5.3 2a22 22 0 0 1 11.3 8.9 11 11 0 0 1 .9 7.3"/>
<path d="M297.7 336a8 8 0 0 0 3.2.9c4.2.1 7.5-3.8 7.5-7.8 0-2.8-1.5-5.2-3.6-7"/>
<path stroke-linecap="round" d="M298.6 328.4c-1 2.3.4 3.5 1.8 3.7 2.2.2 3.4-1.4 3.6-3a5 5 0 0 0-2.2-4.2"/>
<path d="M390.1 154.8c3.2 0 6 3.6 6 7.2 0 4.3-2.2 6.9-3.9 8.8q-1.9 2.3-4.4 4.7"/>
<path stroke-linecap="round" d="M386.3 151.4a9 9 0 0 1 2.8 2.4c1.3 2 1.7 3.7 1.6 6.2-.2 4.2-3.2 7.1-6 9m-4.7-17.6.6.7c1.9 2.2 2 5.4 1.6 7.2a8 8 0 0 1-3.8 5.4m-5-14.4c2.6 2 3.4 5.4 2.5 9q-1 3.6-4.2 5.2m11.1 41.1c.3 1 .9 1.3 1.5 2a14 14 0 0 0 6.2 3.5q3.7.9 6.3-.9m-163 54q2 .1 3.3 2.3.3.4.4 1.5 0 1.5-1 2.2c-1.5 1-4 .5-4-2"/>
<path d="M241.5 231.3c5 1 9.7 6.9 11.2 13.3.6 2.3 1.3 7.3.3 12a22 22 0 0 1-6 11.4l-2.1 1.9-1 .7m-8-12.1c2 0 3.8 1.9 3.8 4a4 4 0 0 1-1 2.6"/>
<path d="M234.6 260.7c2.1 0 4.1 2 4.1 4.2a4 4 0 0 1-1.4 3"/>
<path stroke-linecap="round" d="M254 239.5a18 18 0 0 1 3.8 7.7m0 8.5a17 17 0 0 1-1.5 4 18 18 0 0 1-3.6 4.7"/>
<path d="M254.3 224.3q2.7 2.2 3.5 4.8"/>
<path stroke-linecap="round" d="M257.9 219.5a10 10 0 0 1-3.4 4.6m-9.2-17.2 2.2-.6 1.3-1 .8-1.1.7-1.8.3-1.5"/>
<path d="m241 199.3-2.5.8a9 9 0 0 0-3.5 3 17 17 0 0 0-2.2 12.7 16 16 0 0 0 2.3 5.6l1 1.4c1.4 1.3 2.6 2 4.6 1.7"/>
<path stroke-linecap="round" d="M253 189.8c-.3 1.3-1 2.9-3 2.7"/>
<path d="M245.7 198.5c-2-1.9-6-2.4-10.1.2L234 200l-1.4 1.6a18 18 0 0 0-2.4 5c-.7 3-.7 5.6-.6 6.3q0 1.5.3 2.7 1 4.2 2.3 6.2c.9 1.5 3 5 7.7 5.4 1.8.1 4.8-.7 5-3"/>
<path stroke-linecap="round" d="M363.8 157c.3-1.6 2.3-1.9 3-1 1.2 1.6.4 4.2-2 4.9a4 4 0 0 1-3.8-1.4c-1-1.3-.9-2.8-.5-4q.4-1.2 1.7-2.2c2.7-2 7.1-1.6 8.6 2 1.8 4.4-2.2 7.8-6 10.3-4.6 3.2-10 3.8-14 3.7-9.2 0-16.1-4.4-20.7-7q-1.7-.7-2.7.3a2 2 0 0 0 .3 2.7"/>
<path stroke-linecap="round" d="M365.6 155.5c1 0 1.2.4 1.5.8 1.2 1.5.3 4.1-2 4.9m17.8 51.5c-3.5 3.8-.2 10.3 2.4 11.8.9.7 1.3.3 2 .7"/>
<path d="M383.1 205.4q-1.5 1-1.6 3.3a5 5 0 0 0 1.4 4 14 14 0 0 0 9.3 3.7q3 .1 6-1.7a9 9 0 0 0 3.8-5.4m-20.8 61.8-.2 2.5a19 19 0 0 1-2 7 19 19 0 0 1-4.2 5.6 20 20 0 0 1-5.9 4 25 25 0 0 1-6.5 2.3 44 44 0 0 1-13.2.6c-2.7-.2-4.1-.5-6.8-.8-2.2-.1-3.4-.3-5.6-.3a28 28 0 0 0-10.9 1.9c-2.7 1-5.7 3-6.4 3.8-.6-.9-3.7-2.8-6.3-3.8a22 22 0 0 0-5.2-1.5c-2.2-.4-3.5-.4-5.8-.4s-3.4.2-5.6.4c-2.6.2-4 .6-6.7.7-2.5.2-3.9.3-6.3.2a33 33 0 0 1-7-.8 25 25 0 0 1-6.5-2.2 20 20 0 0 1-5.8-4.1 19 19 0 0 1-4.2-5.7 19 19 0 0 1-2-6.9c-.2-1-.2-2.5-.2-2.5V169.3h123.2z"/>
</g>
<g fill="#c7b37f" stroke="#c7b37f">
<path stroke-width=".3" d="M248 285.6a2.5 2.5 0 1 1 5 0 2.5 2.5 0 0 1-5 0zM232.5 268q.2-2.1 1.8-2.3c1.6-.2 1.7 1 1.7 2.3q-.2 2-1.7 2.2-1.6-.2-1.8-2.2z"/>
<path stroke="none" d="M241.3 223.6q.2-1.7 1.7-1.8 1.6.2 1.7 1.8c.1 1.6-.7 1.8-1.7 1.8s-1.7-.8-1.7-1.8M272 158c0-1 .5-2 1.4-2q1.5 0 1.8 1.6c0 1-.5 2-1.4 2q-1.4 0-1.8-1.6"/>
</g>
<g stroke="#c7b37f" stroke-linecap="round" stroke-width=".6">
<path d="M239.3 234q-.6.1-.8.5-.4.3-.6.9l-.2 1.2m4.7 26.7 1-1 .6-1 .5-1 .7-1.3m-1.3 14-1.5.7-1.1.6-1.3.8-1.2 1m15-37.9-.8-.8-1-.8-.9-.8"/>
<path stroke-linecap="butt" d="m254.2 225-1.2.5-1.5.3"/>
<path d="m237.4 208.4.5 1.5q.3 1 .9 1.7a8 8 0 0 0 2.6 2.7l1.5.8m-1-5.8 1.3.6a7 7 0 0 0 3 .6l1.8-.1m7.2-40.7-2-1.2q-1.2-.7-2-1.5l-1.1-1.3-.8-1.3m7.5-4.6.6 1.7 1.4 2c1 1 1.7 1.3 2.8 2.2m1.4-6 .7 1.6.8 1.2 1.3 1.3q1 .7 2 1.1"/>
</g>
<path fill="#703d29" stroke-width=".2" d="M333.3 151.6c0-1.7-1.7-1.8-2.4-1.8-1.8 0-2.3 1.1-4.6 2.3a12 12 0 0 1-6.7 2 12 12 0 0 1-6.7-2c-2.3-1.2-2.7-2.3-4.6-2.3a2.3 2.3 0 0 0-2.2 2.4v.9l.3.2q0-1 .5-1.7a2 2 0 0 1 1.6-.8c1.8 0 2.5 1.2 4.8 2.4 3 1.6 4.2 1.9 6.7 2a12 12 0 0 0 6.8-2c2.3-1.2 3-2.5 4.8-2.5q.9 0 1.3 1v.9l.2.1z"/>
</g>
<g fill="#703d29">
<path d="M264.4 294c.5-.5.9-.3 1-.6q0-.2-.3-.3l-.9-.2-.8-.4h-.5c-.1.4 1 .4.6 1.4l-.8 1.2-2.6 3-.2.1v-4.3l.1-1.8c.2-.4.8 0 .9-.4q0-.2-.3-.3t-1.1-.3l-1-.5h-.6l.1.3q.5.2.5 1v7.4q0 .7.2.7l.4-.3z"/>
<path d="M267.5 295.2c.3-1.1 1-.4 1-.8q.1-.2-.2-.3l-1.3-.4-1.2-.4h-.4c-.1.5 1.1.5.8 1.5l-1.7 5.5c-.3 1-1 .6-1.1 1v.1l1.2.4 1.6.5h.3c.2-.4-1.2-.3-.7-1.7zm3.7 1q.3-.7.9-.4 1.6.6 1 2.5c-.2.6-.4 1.2-2 .8q-.6-.1-.6-.5l.7-2.3zm-2.8 5c-.5 1.4-1.2.8-1.3 1.2q0 .2.3.3l1.6.4.8.3h.4c.1-.5-1-.3-.7-1.5l.6-2q0-.6.6-.3.8.1.8.8l.3 2q.1 1.4 1 2 1 .1 1.4-.4l-.2-.2h-.3s-.3 0-.3-.3l-.7-3.6q.1-.2.8-.3a2 2 0 0 0 1-1.3c.1-.5.4-2.2-1.8-2.9l-2.1-.5-1.2-.4h-.3c-.1.5 1.1.4.7 1.7zm8.4 2.5c-.4 1.4-1.4.5-1.5 1q0 .3.3.3l1.5.3 1.4.4q.4.2.6-.1c0-.3-1.3-.3-1-1.8l1.3-5.2q0-.8.6-.5l1 .2c1.1.3.5 1.5 1 1.6q.2-.1.2-.6l.1-1v-.4l-3.3-.7-3.2-.8q-.2 0-.2.2l-.5 1.5q-.2.3 0 .4c.5.1.5-1.5 1.7-1.2l.9.2q.6 0 .4.8zm12.7-3.3c.4-.6.8-.5.9-.7q0-.2-.4-.3h-.9l-.9-.3q-.3-.1-.4.1c-.1.4 1 .2.8 1.3q0 .3-.6 1.3l-2 3.3-.3.2v-.2l-.7-4-.1-1.8c0-.5.7-.2.7-.5q.1-.2-.4-.3l-1.1-.1q-.6 0-1-.3-.4-.1-.6.1l.1.2q.7.2.7.9l1.3 7.3.3.7.4-.3zm.6 6.8q0 .3.2.5l1.7.7c1.4.2 2.6-.7 2.8-2.2.3-1.5-.3-2.1-1.4-2.9-1.3-.9-1.8-1.1-1.7-2q.3-1 1.4-1c1.8.3 1.6 2.6 1.8 2.6q.4 0 .3-.4l.2-1.6v-.4h-.6c-.4 0-.7-.5-1.6-.7q-2-.1-2.5 2-.1 1.6 1.2 2.4c1.6 1.1 2.2 1.4 2 2.4q-.3 1.5-1.7 1.3c-1.2-.2-1.6-1.4-1.8-2.6q0-.3-.2-.3-.2.1-.2.5v1.7zm15.8-4.5c.3-.7.8-.6.8-.9q0-.2-.4-.2h-.9l-.9-.1q-.3 0-.4.2c0 .4 1 0 1 1.1q0 .3-.5 1.4l-1.8 3.5-.1.3-.1-.3-1.1-4-.3-1.6c0-.5.7-.3.7-.6q.1-.2-.4-.2h-1.2l-1-.2q-.4-.1-.6.1l.2.2q.6.2.7.8l2.1 7.1.4.7q.2.1.3-.4z"/>
<path d="M307.6 308.5c0 1.2-1 1-1 1.5q0 .2.3.1h2.2l.4-.1c0-.6-1.4.2-1.4-2v-4.2l.1-.1.2.1 5.1 6.3.3.1.2-.3v-6.7c0-1.3 1-1 1-1.3l-.3-.2h-2.3q-.2 0-.2.2c0 .4 1.3.2 1.3 1.3v4l-.1.4-.4-.3-4.2-5.3q-.1-.4-.4-.3h-1.8l-.2.1c0 .6 1.2-.2 1.2 2.1zM318 303c0-1.1.8-.7.8-1.1q.1-.2-.4-.2h-2.6s-.3 0-.3.2c0 .4 1.1 0 1.1 1.2v5.7c0 1.1-.8.8-.8 1.2l.2.2h2.8q.3 0 .3-.2c0-.4-1.2.2-1.2-1.3zm4.5 5.5c0 1.5-1.2 1-1.2 1.4q0 .3.4.2h3q.5 0 .5-.3c0-.3-1.4 0-1.4-1.4V303q-.1-.7.5-.6h1c1.2-.1.8 1.2 1.3 1.2q.2-.1.1-.6l-.1-1q0-.3-.2-.4l-3.3.1h-3.3l-.2.3-.1 1.6.1.4c.5 0 .2-1.6 1.4-1.6h.9q.5-.1.6.6v5.6zm6.3-2.2h-.4l.1-.5.7-2.2v-.2l.2.1 1 2.1.2.4q0 .3-.4.2zm1.8.5c.3 0 .3 0 .8 1l.2.8c0 .7-.7.6-.7 1q0 .2.4 0h1.2l1.3-.1q.4 0 .4-.2c0-.4-.6 0-1-.7l-3.4-7-.3-.4q-.2 0-.3.4L327 309c-.2.7-.8.7-.7 1h2.3q.4 0 .5-.3c.1-.3-1.2 0-1.3-.9l.2-1q.3-1 .6-.8l2.1-.2zm8.3-5c-.1-.8 0-.8 1.2-1 2-.2 1.4 1.3 2 1.2q.2-.1 0-.6l-.1-1.1q0-.2-.3-.2-1.4 0-2.4.3l-2.8.4q-.3 0-.3.2c.1.5 1.3 0 1.4 1l.7 5.5c.2 1.5-.7 1-.6 1.5h.2l1.4-.1 1.2-.1q.5 0 .5-.3c0-.3-1.2.1-1.4-1.2l-.2-1.7q-.2-1 .3-1h.8c1.1-.2 1 1.1 1.3 1q.4-.2.1-.5l-.3-2.1q-.1-.4-.2-.3c-.3 0-.1 1.1-1 1.2l-.7.1q-.6.2-.6-.5zm4 2.8c.4 2.3 2.1 3.7 4.2 3.3 3.4-.7 3.5-3.6 3.2-5.3-.5-2.5-2.3-3.7-4.4-3.3-2.5.5-3.5 2.7-3 5.3m1.1-1c-.3-1.6 0-3.4 1.7-3.7 1.4-.3 3 .8 3.4 3.4.3 2 0 3.6-1.8 4s-3-2-3.3-3.6zm8.3-4.1q0-.9.6-.9 1.6-.2 2.1 1.6c.2.7.3 1.4-1.3 1.8q-.5.1-.8-.2l-.5-2.3zm0 5.7c.4 1.4-.5 1.3-.5 1.6q.2.3.4.1l1.6-.4 1-.2q.3 0 .2-.2c0-.4-1 .3-1.3-1l-.5-2c0-.4-.2-.4.4-.5q.6-.3 1.1.3l1.3 1.6c.5.6 1 1.3 1.8 1.1q.9-.2 1-.9l-.2-.1-.3.1s-.3.1-.4 0l-2.4-2.9.5-.6q.4-.6.2-1.6c-.1-.5-.7-2.1-3-1.6l-2.1.6-1.2.2q-.3 0-.2.2c0 .5 1.1-.2 1.4 1zm8.7-2c.3 1.4-1 1.2-.9 1.6q.1.3.5.2l1.4-.5 1.5-.3q.5.1.4-.4c0-.3-1.3.4-1.7-1l-1.3-5.3q-.2-.7.3-.7l1-.2c1.1-.4 1.1 1 1.5.9s0-.5 0-.7l-.4-1s0-.3-.2-.2l-3.2.9-3.2.7v.3l.1 1.6q0 .4.3.4c.5-.1-.3-1.6 1-1.9l.8-.2q.6-.2.7.5zm5.5-7.3c-.3-1 .6-.9.4-1.3h-.3l-1.4.4-1.2.3s-.3 0-.3.2c.1.4 1.2-.2 1.5.8l1.6 5.6c.2 1-.6 1-.5 1.3q0 .2.2.1l1.1-.3 1.6-.4q.4 0 .3-.3c-.1-.3-1.1.5-1.5-.9zm2.3 2.7c.7 2.3 2.6 3.4 4.7 2.7 3.2-1.1 3-4.1 2.4-5.7-.8-2.4-2.8-3.3-4.8-2.7-2.4.9-3.2 3.2-2.3 5.7m1-1c-.6-1.7-.6-3.5 1.1-4 1.3-.5 3 .4 3.9 2.9.6 1.8.5 3.6-1.2 4.2-1.8.6-3.2-1.5-3.8-3.2zm7.6-5.5q-.2-.9.4-1 1.7-.3 2.4 1.4c.2.6.4 1.3-1.1 1.9q-.6.2-.8 0zm.8 5.6c.6 1.4-.4 1.4-.2 1.7q0 .3.4.1l1.5-.7.9-.2q.3-.1.2-.3c-.2-.4-1 .4-1.4-.8l-.8-1.9q-.4-.5.3-.7.6-.3 1.1.3l1.6 1.4c.5.5 1.1 1.1 2 .8.3-.2.9-.7.7-1l-.2-.1-.2.2h-.5l-2.8-2.5.4-.7a2 2 0 0 0 0-1.6c-.1-.6-1-2-3.1-1.2l-2 .9-1.2.4-.2.2c.2.4 1.1-.4 1.6.8l2 5z"/>
</g>
<g fill="#fedf00" transform="matrix(.64 0 0 .64 0 16)">
<path fill="#d52b1e" d="M412.7 249.3h82.1v82h-82.1z"/>
<path id="ad-a" fill="#fff" d="M451.2 313.8s0 3-.8 5.3c-1 2.7-1 2.7-1.9 4a13 13 0 0 1-3.8 4q-3 1.9-6 1.6c-5.4-.4-8-6.4-9.2-11.2-1.3-5.1-5-8-7.5-6q-2 1.7-.3 4.6a9 9 0 0 0 4.1 2.8l-2.9 3.7s-6.3-.8-7.5-7.4c-.5-2.5.7-7.1 4.9-8.5 5.3-1.8 8.6 2 10.3 5.2 2.2 4.4 3.2 12.4 9.4 11.2 3.4-.7 5-5.6 5-7.9l2.4-2.6 3.7 1.2z"/>
<use xlink:href="#ad-a" width="100%" height="100%" transform="matrix(-1 0 0 1 907.5 0)"/>
<path d="m461.1 279 10.8-11.7s1.6-1.3 1.6-3.4l-2.2.4-.5-1.2-.1-1.1 3-.7V260l.3-1.3-3.2.2.3-1.4.5-1 1.9-.4h1.9c1.8-3.4 9.2-6.4 14.4-1 3.8 4 3 11.2-2 13.2a6 6 0 0 1-6.8-1.1l2-4c2.7 1.7 5-.3 4.8-2.4-.2-2.7-2-4.3-4.3-4.5q-3.5-.1-5 3c-.6 1.3-.3 2.2-.5 3.6-.2 1.5 0 2.3-.5 3.8a9 9 0 0 1-2.4 3.6l-11 12-43 46.4-3.2-3z"/>
<path fill="#fff" d="M429.5 283s2.7 13.4 11.9 33.5c4.7-1.7 7.4-2.8 12.4-2.8s7.6 1 12.3 2.8A171 171 0 0 0 478 283l-24.2-31z"/>
<path d="m456.1 262.4 16.8 21.7s-2.2 10.5-9 26.3c-2.7-.6-5-1.1-7.8-1.3zm-4.7 0-16.8 21.7s2.2 10.5 9 26.3c2.7-.6 5-1.1 7.8-1.3z"/>
</g>
<g fill="#d52b1e">
<path fill="#fedf00" d="M322.3 175.5h52.6V228h-52.6z"/>
<path d="M329.7 175.5h7.8V228h-7.8zm15 0h7.8V228h-7.8zm15 0h7.9V228h-7.9z"/>
</g>
<g fill="#d52b1e" stroke="#d52b1e" stroke-width=".5">
<path fill="#fedf00" stroke="none" d="M264.3 273.5q.1 1.6 1.4 4.3c1 1.5.6 1.4 2.7 3.8a15 15 0 0 0 4 2.9 33 33 0 0 0 15 2.6q4-.2 6.6-.7a71 71 0 0 1 11-.6q2.2 0 4.7.6c3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4z"/>
<path stroke-width=".3" d="m270.4 283.1 2.5 1.5 3.4 1.2v-52.2h-5.9zm29.2 2.4v-51.9h-5.8v52.8l5.8-.7zm11.7-51.9h-5.8v52.1l5.8 1zm-23.4 0V287s-3.8.2-5.8 0v-53.4z"/>
</g>
<g transform="matrix(.64 0 0 .64 0 16)">
<path fill="#fedf00" d="M585.5 402.4a21 21 0 0 1-2.2 6.6c-1.5 2.3-1 2.3-4.3 6a26 26 0 0 1-13 7 52 52 0 0 1-16.6 1.6q-6.3-.4-10.3-1c-3.8-.6-6.7-.9-11-1h-6.2a83 83 0 0 0-18.3 4.2V340h82.2v58.5z"/>
<g id="ad-b">
<path fill="#d52b1e" d="m524.6 347-.6.2-.8.8q-.5.5-1.2.8l-.6.5c-.3.3 0 .6-.3 1q-.1.5-.6 1t-1 1l-1.2 1-.3.1h-.6l-.8.8.3.6.8 1.4q.2.6.5.8.7.3 1.3.1l2 .5 1.5.8q.6.4 1.3.5h1.8v.3l2 1-.1.4q-.2.5-.1.8 1 2.9 1.5 3.2.8.4 1.1 1.5l-.3.3q-1 .8-1.7 1.8c-.7 1.2-1.2 1.2-.3 2.8l1.5 2.4.8 2q.3 1 .3 2l1 .3.7-.6.6-1.2v-1q-.3-.2-.2-.7c0-.4.5-.3.7-.6.3-.5-.4-.8-.7-1.1-.6-.7-1.4-.9-1.6-1.9q-.1-.3.4-.7l2-1.8q.4.2 1 .1l1.3.4h1.6l.1.6c.1 1-.1 3 .2 3.5l.3.6.2.6v2l-.2 1.7q0 .6-.5 1t-1 .7v1l1.1.5 1.3.3.7-.3.1-.6.5-.5.9-.1q.2-.3 0-.8 0-.8-.3-1.6l-.1-2.8q0-.8.2-1.5c.1-1 .4-1.4.6-2.2l.4-2.5a24 24 0 0 0 10.1-.6q1.2 1 2.7 1.6v1q0 .4.2.7l.3.3q.4 0 .7-.2t.2-.7v-.7h1.8v1.1q.2.4.5.4h.6q.3-.4.3-1v-.7l1-.4v.9l-.3.9c-.2.6-.5.8-.8 1.4q-.4.8-1 1.5l-.6.7-.6.9-.9 1c-.7.6-1.2.2-2 .9l-.3 1 1.4.6 1.3.2.4-.2q0-.5.3-.8t.7-.4q.6 0 1-.2.4-.6.7-1.5a13 13 0 0 1 3-3.9l1.7-1.4q.4-.4.5-1l-.2-.6-.2-1c1.5.7 1 .7 1.2 1.4.3.6 0 1 .1 1.7.1.8.5 1.1.5 1.9q0 1.1-.3 2.3 0 1-.5 2a4 4 0 0 1-1.1 1.5l-.6.5-.1 1 1.1.4 1.6.4.4-.3c.2-.7 0-1.7.4-1.7q.6 0 .8-.3v-.7l.7-4.5.4-1.9.4-1.7c.7-2-.2-2.3-1-3.6q-.7-.9-.7-1.5v-5.7l.4-.2c1.2-.7 1.7-.9 2.4-2.5l.3-1.5v-1l-.4-1-.6-.8c-.7-1-1.7-1.1-2.7-1.5-1.5-.5-2.5-.4-4-.5-1.8-.2-2.7-.2-4.4 0-2 0-3.1.4-5.1.7l-4.9.4c-2.3 0-4.4-.5-5.8-.4-2.4.2-2.5.8-6.2 1.1l-3.8.2-2.2-.7c.9-.3 1.1-.5 1.5-1s.2-.7.6-1.1l.7-1-.9-.4h-1l-1.2.3-.8.6-2.2-1.2a9 9 0 0 0-3-.9zm2 11.8"/>
<g fill="none" stroke="#fedf00" stroke-linecap="round">
<path d="m568.8 359.5-.8.3q-1.2.5-2.6.5c-2.6.2-4.3-1.1-7-.9-1.4.1-2 1.2-3.5 1.6l-1.7.2.5-1s-1.2.3-2 .3l-1.6-.2 1-1-1.3-.2-1-.7 1.7-.3c1.5-.4 2-1.2 3.9-1.4 1.1 0 3 0 7.6.8 3 .5 4.4.2 5.5-.3q1-.5 1.1-1.8 0-1.2-.8-1.8l-1.1-.4"/>
<path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M524.8 350.6q-.7 0-1.3.3-.6.5-1 1.1.7.3 1.2.3t.8-.5q.4-.5.4-1.2z"/>
<path d="m536 363.8 1 2.3c.2.8 0 1.2.2 2v1.6m6.8-7-.3 1.3-1 3.5v.7m-11-4c.9.2.6 3.3 1.9 4"/>
<path stroke-linecap="butt" d="m560.1 369.8.4-.3a8 8 0 0 0 2.7-1.8"/>
<path d="M552.4 368c3.5-.9 5.9-2.6 7.6-2.9m-4-1.5h.8c1.5-.3 1.7.6 2.7 1.2 1.9 1 2.1 2.3 4.3 3.4l.4.1.8.4"/>
<path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M517.7 354.5h.7l.8-.2q.4 0 .7.2.2 0 .3.3t.1.5q0 .3-.6.4-.3 0-.5-.3v-.4a1 1 0 0 1-.9 0z"/>
</g>
<path fill="#0065bd" d="m525.1 364.2-2-.9 1-.5.5-1.3q.1-1 .7-1.4t1.1-.1q.7.1.9.7 0 .8-.3 1.5l-.2 1.4q0 .6.4 1l-2-.4zm-1 1a.6.6 0 1 1 .7.5.6.6 0 0 1-.7-.6zm-1.7-16.6h-.2l-.6-1.2-.3-1.2v-2q0-.5-.2-.9c0-.2-.4-.3-.3-.4h.4q.5 0 1 .4t.6 1l.4 1.5.3.8.5.6-.7.8zm3.6 10.6 2.2 1a9 9 0 0 0 3.5-3.8c.9-1.8 1-2.7 1.4-4.4l-1.8-.5h-.4c-.5 1.8-.7 2.7-1.6 4.2q-1.2 2-2.6 3zm5 18.2.8-1.3 1.4-1.1h.4a9 9 0 0 1-.5 2.8l-.4 1-.5.5c-.5-.8-1.3-1.3-1.3-2zm33 1.8 1.4.6 1.5.9v.5l-1.5.2h-2.3l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9.8-2 1.4.5 1.5 1v.4a9 9 0 0 1-2.7.3l-1-.1-.7-.3c.6-.7.9-1.7 1.5-1.8m-17.4 2.1 1.5.5 1.5 1v.5a9 9 0 0 1-2.8.2h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8m-9-29.8q-1-.6-.6-1.6l.6-.4q.2-.4 0-.8l-.1-1-.2-1q-.1-.8.4-1.6.5-.5.8-.6.2.3 0 .8 0 .6.3 1.2l.7 1.3.4 1.4-.2 1.2-.6.8-.8.4z"/>
</g>
<use xlink:href="#ad-b" width="100%" height="100%" y="36.6"/>
</g>
<path fill="none" stroke="#703d29" stroke-width=".5" d="M264.1 175.5h52.6V228h-52.6zm58.2 0h52.6V228h-52.6zm-58 98q.1 1.6 1.4 4.3c1 1.5.6 1.4 2.7 3.8a15 15 0 0 0 4 2.9 33 33 0 0 0 15 2.6q4-.2 6.6-.7a71 71 0 0 1 11-.6q2.2 0 4.7.6c3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4zm110.4 0a13 13 0 0 1-1.4 4.3c-1 1.5-.6 1.4-2.7 3.8a15 15 0 0 1-4 2.9c-1.3.7-2.3 1-4.4 1.6a33 33 0 0 1-10.6 1q-4-.3-6.5-.7l-7.2-.6H334q-2.2 0-4.7.6c-3.5.7-7 2-7 2v-54.8H375v37.5l-.2 2.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 30 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ae" viewBox="0 0 640 480">
<path fill="#00732f" d="M0 0h640v160H0z"/>
<path fill="#fff" d="M0 160h640v160H0z"/>
<path fill="#000001" d="M0 320h640v160H0z"/>
<path fill="red" d="M0 0h220v480H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 266 B

+81
View File
@@ -0,0 +1,81 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-af" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#000001" d="M0 0h640v480H0z"/>
<path fill="#090" d="M426.7 0H640v480H426.7z"/>
<path fill="#bf0000" d="M213.3 0h213.4v480H213.3z"/>
</g>
<g fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5" transform="translate(1 27.3)scale(1.06346)">
<path d="M319.5 225.8h8.3c0 3.2 2 6.6 4.5 8.5h-16c2.5-2.2 3.2-5 3.2-8.5z"/>
<path stroke="none" d="m266.7 178.5 4.6 5 57 .2 4.6-5-14.6-.3-7-5h-23l-6.6 5.1z"/>
<path d="M290 172.7h19.7c2.6-1.4 3.5-5.9 3.5-8.4 0-7.4-5.3-11-10.5-11.2q-1.4-.1-1.9-1.3c-.5-1.6-.4-2.7-1-2.6-.4 0-.3 1-.7 2.4q-.6 1.3-2 1.6c-6.4.3-10.6 5-10.5 11.1.1 4 .6 6.4 3.4 8.4z"/>
<path stroke="none" d="M257.7 242.8H342l-7.5-6.1h-69.4z"/>
<path d="m296.4 219.7 1.5 4.6h3.5l-2.8-4.6zm-2 4.6 1 4.6h4l-1.5-4.6zm7 0 2.8 4.6h5.9l-4.6-4.6zm-34.5 10.4c3.1-2.9 5.1-5.3 5.1-8.8h7.6q0 3 1.8 3h7.7v-4.5h-5.6v-24.7c-.2-8.8 10.6-13.8 15-13.8h-26.3v-.8h55.3v.8H301c7.9 0 15.5 7.5 15.6 13.8v7h-1l-.1-6.9c0-6.9-8.7-13.3-15.7-13.1-6 .1-15.4 5.9-15.3 13v2.2l14.3.1-.1 2.5 2.2 1.4 4.5 1.4v3.8l3.2.9v3.7l3.8 1.7v3.8l2.5 1.5-.1 3.9 3.3 2.3h-7.8l4.9 5.5h-7.3l-3.6-5.5h-4.7l2.1 5.4h-5l-1.3-5.4h-6.2v5.8H267zm22.2-15v4.6h5.3l-1-4.6H289z"/>
<path fill="none" d="M289.4 211.7h3.3v7.6h-3.3z"/>
<path fill="none" d="M284.7 219.8h3.2v-5.6c0-2.4 2.2-4.9 3.2-5 1.2 0 2.9 2.3 3 4.8v5.8h3.4v-14.4h-12.8zm25.6 3.3h4v3.2h-4zm-2.4-5.3h4v3.1h-4zm-3.9-5.4h4v3.1h-4zm-3.3-4.5h4v3.1h-4z"/>
<path fill="none" d="m298 219.8 4.2.2 7.3 6.4v-3.8l-2.5-1.8v-3l-3.6-2v-3.3l-3.5-1.2V207l-1.7-1.5z"/>
<path d="M315.4 210.3h1v7.1h-1z"/>
<g id="af-a">
<path d="M257.3 186.5c-1.2-2-2.7 2.8-7.8 6.3-2.3 1.6-4 5.9-4 8.7v5.8c-.1 1.1-1.4 3.8-.5 4.5 2.2 1.6 5.1 5.4 6.4 6.7 1.2 1 2.2-5.3 3-8 1-3 .6-6.7 3.2-9.4 1.8-2 6.4-3.8 6-4.6z"/>
<path fill="#bf0000" d="M257 201.9a10 10 0 0 0-1.6-2.6 6 6 0 0 0-2.4-1.8 5 5 0 0 1-2.4-1.5l-.8-1.5v-2l-.3.3c-2.3 1.6-4 5.9-4 8.7v2.3q.2.8.6 1.3l1.1.8 2.7.7a7 7 0 0 1 2.6 2 11 11 0 0 1 1.8 2.6l.2-.8c.8-2.7.7-5.9 2.6-8.5z"/>
<path fill="none" d="M249.8 192.4c-.5 3.3 1.4 4.5 3.2 5.1 1.8.7 3.3 2.6 4 4.4m-11.7 1.5c.8 3 2.8 2.6 4.6 3.2s3.7 3 4.5 4.8"/>
<path d="m255.6 184.5 1-.6 17.7 29.9-1 .6z"/>
<path d="M257.5 183.3a2 2 0 1 1-4 0 2 2 0 1 1 4 0zm15.2-24h7.2v1.6h-7.2zm0 3.1h7.2v13.8h-7.2zm-.4-5h8c.2-2.7-2.5-5.6-4-5.6-1.6.1-4.1 3-4 5.6z"/>
<path fill="#bd6b00" stroke="none" d="M292.6 155.8c-1.5.6-2.7 2.3-3.4 4.3s-1 4.3-.6 6.1q.1 1 .5 1.5.3.5.6.5.5 0 .7-.3l.2-.8q-.2-3 .3-5.4a8 8 0 0 1 3-4.4q.4-.3.5-.7l-.3-.7q-.7-.5-1.5-.1m.2.4q.6-.2 1 .1l.1.2-.3.4a8 8 0 0 0-3.1 4.6 17 17 0 0 0-.3 5.6l-.2.6s0 .1-.2 0l-.4-.3-.4-1.2q-.4-2.9.7-6 1.1-2.9 3-4z"/>
<path fill="#bd6b00" stroke="none" d="M295.2 157.7q-2.3 1.2-3 4.2a14 14 0 0 0-.3 5.9q.5 2 1.6 2 .5.2.8-.3t.2-1q-.6-2.5-.3-5.1.4-2.6 2.2-4.1.5-.4.5-.8l-.2-.6q-.7-.5-1.5-.2m.2.5q.6-.2 1 0l.1.3-.3.4a7 7 0 0 0-2.4 4.4q-.4 2.8.2 5.2v.8l-.5.1c-.3 0-1-.5-1.2-1.7-.3-1.7-.2-3.9.3-5.7q.8-2.9 2.8-3.8"/>
<path d="M272.3 187.4h8v11h-8zm.5 17.4h7.7v2.4h-7.7zm-.2 4.1h8v8.7h-8zm-.6 10.5h8.7v4.9H272zm1.1-16.6h7l1.4-2.4h-9.6zm9.4-8.6.1-6h4.8a17 17 0 0 0-4.9 6z"/>
<path fill="none" d="M273.6 196.7c0 1.3 1.5.8 1.5.1v-5.6c0-1 2.4-.8 2.4-.1v6c0 1 1.7.9 1.6 0v-7c0-2.2-5.5-2.1-5.5-.1zm0 13.3h5.7v7h-5.7z"/>
<path d="M277.2 213h2v1h-2zm-3.5 0h2v1h-2zm2-3h1.5v3h-1.5zm0 4h1.5v3.1h-1.5zM244 139c.4 5.5-1.4 8.6-4.3 8.1-.8-3 1-5.1 4.3-8.1zm-6.5 12.3c-2.6-1.3-.7-11.5.3-15.8.7 5.5 2 13.3-.3 15.8z"/>
<path d="M238.4 151.8c4.4 1.5 8-3.2 9.1-8.7-3.6 5-9.5 5-9 8.7zm-3.3 5.1c-3.4-.9-1.4-11.7-.7-16 .7 4.5 3.1 14.5.7 16zm1.2-.3c.2-3.7 3.9-2.7 6.5-4.7-.5 2-2 5.2-6.5 4.7zm-4.2 5c-3.4-1-1.4-12.6-1.6-17.4 1 4.2 4.2 16.3 1.6 17.4zm1.6-.5c2.8.9 6.5-1 6.8-4.3-2.5 1.7-6.3.4-6.8 4.3z"/>
<path d="M229.5 166.7c-3.2.3-1.8-9.6-1.8-18.8 1.2 8.6 4.5 16.5 1.8 18.8z"/>
<path d="M230.7 166.3c2.2 1 6.1-.7 7.2-4.4-4 1.7-6.6 0-7.2 4.4zm25.6-22.2c-.6 4.9-2.6 7.7-5.5 7.2-.8-3 1.6-5 5.5-7.2zm-7.8 12.4c4.9.7 6.6-3 10-7.9-4.7 3.4-10.2 4-10 8z"/>
<path d="M247 156c-2.6-3.2 0-7.3 2-10.7-.4 5.1 1.3 8-2 10.7zm-1 5.3c-.4-3.2 5-3.9 7.4-5.6-.9 1.8-2 6.7-7.5 5.6z"/>
<path d="M244.8 161.3c-3.7-.4-2.2-6.7.5-10.1-1.1 4.8 2 8.1-.5 10.1z"/>
<path d="M242 166.6c-4.2-2-1.5-7.2 0-10.3-.6 4.1 2.8 7.2 0 10.2z"/>
<path d="M242.8 166c2.2 3 6.5-.8 7.4-5.2-3.7 3.1-6.5 2.6-7.4 5.3zm-9.6 20.3c-.4-4.3 2.8-12 .5-16.2-.3-.6.7-2.1 1.4-1.2 1 1.5 2 5.7 2.5 4.1s.5-4.6 2-5.2c1-.3 2.3-.6 1.9 1-.4 1.4-1.2 3.4-.3 3.5.5 0 2-2 3.3-3 1-.8 2.6.6 1 1.8-4.8 4-9.5 5.9-12.3 15.2zm-8.7 64.5c-.6 0-1.3-.3-.6.6 5.7 7 7.3 9 15.6 8 8.3-1.1 10.3-3.4 16.2-6.7a15 15 0 0 1 11.2-1c1.6.5 2.6.5 1.4-.7s-2.5-2.7-4-3.8a18 18 0 0 0-12.7-2.7c-6 1-11.1 4.9-17.2 6.4a25 25 0 0 1-9.9 0zm47.8 12.5c1 .2 1.7 2.2 2.3.9.8-2.3.2-4-.8-3.9-1.2.3-3.1 3-1.5 3z"/>
<path stroke="none" d="M220.6 183q-1.8-2 1-1.9c1.4 0 4.2 1 5.3.1 1-.7.5-3.7 1-5 .2-.9.7-2 2-.2 3.6 5.8 8 12.8 10 19.6 1 3.8 0 9.8-3.4 13.8 0-3.4-1.2-5.7-2.7-8.6-2-3.7-9.1-14-13.2-17.9z"/>
<path d="M235.5 213.4c4 0 4.7-5.3 4.7-6.8-2 .4-5.4 3.7-4.7 6.8zm34.5 51.9c2.8.6 2.7-6.2-.2-9.1 1.3 4.4-2 8.4.1 9zm-1.2-.1c.2 3.2-8-.4-10-3 4.8 2.1 9.8.4 10 3zm-3.5-4.6c.3 3.1-7 .3-9.3-2.1 4.9 1.6 9-.5 9.3 2zm1.3.4c2.9.7 2.4-6.4-.4-8.8 1.4 4.7-1.8 8.1.4 8.8zm-3-4.3c2.9.7 1.2-5.4-.9-7.8.4 4.4-1 7.5 1 7.8zm-1.5 0c.3 3.2-5.4.8-7.6-2.3 4.8 1.5 7.3-.3 7.6 2.3zm-1.5-2.5c1.8-1.3-.1-4.8-3.7-4.6.4 2.1 1.6 5.9 3.7 4.6zm14 14.7c.1 3.2-8 1.6-10.6-1.8 5.2 1 10.3-.8 10.5 1.8zm-32.4-5.8c.3 3.2-8.6-.4-10.8-3.4 4.7 1.6 10.5.8 10.8 3.4zm5.4 1.3c1.9-1.3-1.9-4.7-5-5.5.4 2.1 3 6.8 5 5.6zm.6 2.3c.2 2.9-9.5 1.3-12-1.4 8.3 1.5 11.7-1.1 12 1.4z"/>
<path d="M252.8 268.6c1 2.7-8.3 2-11.6.5 5.3 0 10.8-2.4 11.6-.5z"/>
<path d="M257.1 270.6c1 2.4-7.6 2.4-11.8 1 5.6 0 10.8-3.4 11.8-1zm6.3 1.3c1.6 2.9-7.6 3.1-10.5 1.7 5.2-.7 9.2-4 10.5-1.7zm-10.7-4.9c-2.9 1.8-2.7-3.6-5-7.3 3.6 3.3 7 5.6 5 7.3z"/>
<path d="M257.9 269c-2.4 2.1-4.4-5.3-6.6-9.5 3.6 4 8.8 7.7 6.6 9.4zm6.8 2c-2 2.4-8-7-10.2-12 3.3 3.9 11.8 10 10.2 12zm-5.8 7.2c-1 3.6-16.2-3.4-18-7.1 8.8 4.6 18.2 3.6 18 7zm-48.7-73.8c-.4-.5-1.4 0-1.2 1.1.3 1.5 2.5 9.2 6.3 11.8 2.7 2 17 5.1 23.4 6.5q5.3 1 8.9 5.3a94 94 0 0 0-3-9.8c-1.2-3-4.4-6.2-7.8-6.3-6.1-.3-14.1-.8-20-3.3a16 16 0 0 1-6.7-5.3z"/>
<path d="M245.5 234.9c2 1.4 4.1-3.7 1.7-8.6-.1 4.7-3.8 6.3-1.7 8.6z"/>
<path d="M247.4 239.6c2.7.8 3.5-4 1.8-7.8.3 4.1-4.3 6.6-1.8 7.8z"/>
<path d="M249.5 243.4c2.6 1.3 3.5-3.6 1.7-7.1.2 4.5-3.7 5.9-1.7 7z"/>
<path d="M248.4 243.7c-1 3-7-2.7-8-5.8 3.7 3.7 8.7 3.2 8 5.7z"/>
<path d="M245.7 239c-1.2 3-8.7-5-10.4-8.7 3.7 3.7 11.2 6.5 10.4 8.6z"/>
<path d="M244.2 234.3c-1.2 3.5-9.3-5.8-11.7-9.1 4 3.6 12.6 6.6 11.7 9.1zm-.3-3.4c3-.6-.1-3-3.7-6.9-.1 4.1.5 7 3.7 6.9z"/>
<path d="M239 228.5c1.3-1.3-1.1-1.9-4.1-5.3-.5 2.3 2.8 6.5 4.2 5.3zm14 15.2c1.6 1 2.6-2.3.7-5.2-.5 3.2-2.1 4-.7 5.2zm-34.2-20.3c-3.3 2-8.6-6-10-9.3 2.9 3.8 10.6 7.2 10 9.3z"/>
<path d="M221.7 228c-1.9 2-7.7-3.5-9.7-6.3 3 2.7 10.5 3 9.7 6.3z"/>
<path d="M224.8 232.2c-.6 2.8-9-3.5-11-6.5 3.6 3.5 11.6 3.2 11 6.5z"/>
<path d="M223.5 235.3c-1.3 2.5-8.2-3.8-9.9-7 4.3 3.6 11 4.5 10 7zM220 223c2.1-2.3 1.2-3.4-.4-7-.8 3.7-2.1 5.2.4 7zm2.9 4.3c4 .2 0-4.6-1-8.7.4 4.6-1 8.3 1 8.7z"/>
<path d="M225.4 231.1c2.7-.6 2-4.5-.2-9.2.5 5.1-2.3 8 .2 9.2zm-1 7.7c-1 3-8.8-4-10-6.8 4 3.4 10.7 4.5 10 6.8z"/>
<path d="M229.1 243.6c-1.1 3-9.3-3.2-11.8-6.6 4.9 4 12.4 3.6 11.8 6.6z"/>
<path d="M233.9 248.5c-1.3 4.3-9.9-2.6-12.4-6 5.4 4.2 13 3 12.4 6zm-8-11c2.3 1.1 3.2-5.4 1.9-10.1 0 5-4.7 8.8-2 10z"/>
<path d="M229.8 242.7c2.8.8 2-6.3-.5-11-.3 4.7-2.3 9 .5 11zm5 4.9c3 .1 1-6.1-1.6-9.6.4 4.5-1 9 1.6 9.6zm-5.5 2.6c-1 1.6-3.2-1.3-7-3.5 3.4 1 7.4 2 7 3.5zm-1.8-52.7c3-2.2.7-6.2 0-10-1 3.6-3.4 8.4 0 10zm0 5.3c-4.5-.5-3.8-6.1-4-9.7 1.4 4.9 5 5.7 4 9.8zm.6-.7c3.7-.2 3.5-4.4 3.7-8.6-1.9 3.9-4 4.5-3.7 8.6z"/>
<path d="M228 207.3c-3 .3-4.4-2.6-5-7 2.7 4.1 5.1 2.8 5 7zm1-.3c3.7.5 3-3.8 3-7-1.2 3-4.2 4-3 7z"/>
<path d="M223.2 205.2c.3 2.8 2.1 7.6 5 6.5 1.1-3.4-2.6-4.1-5-6.5z"/>
<path d="M229 212c-1.2-2.4 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 7zm-11.9-29.2c2.3-2.4.3-6.4-.4-10.2-1 3.6-2.5 8.4.4 10.2zm0 4.6c-4 .5-5-7.7-5.5-11.3 1.4 4.9 6 7 5.5 11.4zm.8 0c2.8-1.5 2.2-4.7 3-7-1.8 2.9-3.6 3.3-3 7z"/>
<path d="M217 192.8c-4.1.3-6.6-8.8-6.8-12.4 1.3 4.9 7.4 7.5 6.9 12.4zm.9-.2c4-.9 3.5-3.5 2.9-7.6-1.3 4.2-3.5 3.3-2.9 7.6z"/>
<path d="M217 198c-4.6.8-4.3-6.6-8-11.9 3.2 4 9 9 8 11.9zm1-.3c3.6.2 4-5.1 3.8-7.3-.9 2.2-5 4.2-3.7 7.4z"/>
<path d="M209.8 192.3c1.7 5.7 4.2 11.4 7.2 11 1.5-3.3-2.9-3.7-7.2-11z"/>
<path d="M218.1 202.4c-1.2-2.5 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 6.9zm-7.1-3.6c2.5 5.1 3.6 11 7 10.1 1.3-4-3.8-4.8-7-10.1z"/>
<path d="M218.7 208c-1.5-2.8 2.7-3.7 3.8-7.4.5 4.8 0 8.3-3.8 7.3zm7.2-34.5c2.4.6 5-2.1 4.1-6.2-2.8.6-4 3.2-4.1 6.2zm-7.9-2.1c.2 1.2 1.7 1.3 1.2-.4a5 5 0 0 1 0-3.4 8 8 0 0 0 0-4.6c-.4-1-1.8-.4-1.2.4s.7 2.8.2 3.7q-.7 2.2-.2 4.3zm22.9 16c-1 1.3-2.9.4-1.4-1.5 1.2-1.5 3-2.8 3-4.4.2-2 1.3-5 2.4-6.1s2.4.4 1.2 1.2c-1.3.8-2.2 4.4-2.1 5.8-.1 2-2 3.5-3.1 5zm-3-2.3c-1 1.4-2.4.5-1.6-1.7.7-1.5.8-3.5 1.6-4.6 1.2-1.7 3-3.1 4.1-4.2 1.2-1 2 0 1 1a27 27 0 0 0-3.3 4c-1.4 2.2-.8 4-1.8 5.5zm-15.7-7.2c-.1 2 1.5 2.4 1.4-.4 0-3-2.2-5.8-1-10.3.8-2.2.8-6.3.4-8.4s-2-.8-1.3.9c.6 2-.1 5.6-.6 7.5-1.5 5.4 1.2 8 1 10.7zm4.3-11c-.2 1.9-1.8 2-1.3-.5q.6-2.9 0-5.3c-.6-2.1-.4-5.7 0-7.2.5-1.6 2-.7 1.4.5a10 10 0 0 0-.3 5.9c.6 2 .5 4.8.2 6.7zM210.9 204c.8.9 2 .3 1-1-1-1-.7-1.2-1.3-2.4-.6-1.4-.5-2.1-1.2-3-.7-1-1.6 0-1 .7.8 1 .6 1.6 1 2.5 1 1.5.7 2.3 1.5 3.2zm20.4 24.6a9 9 0 0 1 4.4 6.7 16 16 0 0 0 2 7.1c-2-.5-3-3.7-3.3-6.8-.3-3.2-2-4.5-3-7zm5.1 5.9c1.7 3.1 4 4.3 4.2 6.6.2 2.7.4 2.8 1.1 5.4-2-.5-2.5-.7-3-4.7-.3-2.8-2.6-4.7-2.3-7.3z"/>
<path stroke="none" d="M289 263.3c1 1.8 2 4.5 4 4 0-1.3-2.1-2.3-4-4m3 .6c3.7 1.6 7 1.2 7.5 3.6-3.6.4-5-1-7.6-3.6zm-16.1-12.7a14 14 0 0 1 5 7.7 29 29 0 0 0 3.6 7.8 13 13 0 0 1-5.3-7.4c-.7-3-1.6-5.3-3.3-8zm3.1 0c2.8 2.2 5.4 4.8 6.2 7.9.8 2.9 1.3 5.1 3.2 8-3-1.9-4.1-4.7-5-7.8-.7-3-2.5-5.2-4.4-8zm9.2 7.3a1 1 0 0 1 .7-1.2l2.6-.8c1-.3 1.6.4 1.6.9v2q0 .9-.7.9-1.2 0-2.4.7-1 .5-1.5-.5zm10.6 0q0-1-.6-1.2a5 5 0 0 0-2.4-.4q-1.3 0-1.1.6v2.1c0 .8 0 .8.4 1q1.3-.1 2.5.6.9.4 1.1-.6z"/>
</g>
<use xlink:href="#af-a" width="100%" height="100%" x="-600" transform="scale(-1 1)"/>
<g stroke="none">
<path d="M328.5 286.6q-.1 1.8 1 3.1a19 19 0 0 0-13.8 1.1c-1.8.8-4-1-1.9-2.7 3-2.3 9.7-1 14.7-1.5m-57.5 0a7 7 0 0 1-.4 3c4.4-1.7 9.1-.2 13.6 1.6 3 1.3 3.3-1 2.8-1.7a7 7 0 0 0-5-2.9zm3.8-21.7q-2-.7-4 1.4c-4.3 4.2-9.4 8.3-13.5 11.6-1.5 1.3-3 3.7 3.4 6 .3.2 5 2 8 2 1.3 0 1.3 1.8 1 2.3-.5 1-.1 1.4-1.1 2.3-1.1 1 0 2.1 1 1.3 3.6-3.2 9.6-1.1 15.3.7 1.4.4 3.8.3 3.8-1.6s1.5-3.4 2.4-3.5c2.4.4 14 .5 17.5.1 2-.3 2.2 2.9 3.3 4 .8.9 3.7 1.1 5.8.2 4-1.8 10-1.8 12.5 0 1 .7 1.9 0 1.3-.7-.8-1-.7-1.6-1.1-2.4-1-2-.2-2.4.8-2.5 11-1.5 14.6-5.2 11.2-8.3-4.4-3.8-9.2-7.7-13.4-12.2-1.2-1.2-2-1.7-4.3-.7a67 67 0 0 1-25.3 5.9 76 76 0 0 1-24.6-5.8z"/>
<path fill="#bd6b00" d="m326.6 265.5-1.6.4c-9 3.2-17.2 5.4-25.7 5.4-8.3 0-17-2.4-24.9-5.6a2 2 0 0 0-1.5 0q-.8.2-1.3.7a116 116 0 0 1-11.8 10.3c-.7.5-.6 1.8.5 2.2 8.3 3 16.4 8.5 39.6 8.3 23.5-.2 31.8-5.6 39.2-8.1q.8-.3 1.3-1l.1-.8-.6-.8c-4.3-3.5-8.8-6.3-11.8-10.4q-.5-.7-1.5-.5zm0 .5q.9 0 1.1.3c3 4.3 7.7 7 11.9 10.5l.4.7v.4q-.3.5-1 .7c-7.6 2.6-15.7 8-39 8.2-23.2.2-31.2-5.3-39.5-8.3-.8-.4-.7-1.2-.4-1.4q6.4-4.9 11.8-10.4l1.1-.6h1.2a68 68 0 0 0 25 5.6c8.7 0 17-2.2 26-5.3l1.5-.4z"/>
<path d="M269.7 114.6c0-1.4 2-1.5 1.8.4-.3 2.3 4.5 8.3 4.9 12 .3 2.5-1.5 4.6-3.2 6a7 7 0 0 1-6.8.5c-.9-.8-1.7-3.3-1-4.3.2-.3 1.3 3.7 3.7 3.7 3.3 0 6-2.5 6-4.7.2-3.8-5.3-9.8-5.4-13.6m9.5 9.4c.6-.4 1.4 1.3.8 1.7s-1.5-1.3-.8-1.8zm1.5-3.5c-.3.2-.8 0-.7-.2a12 12 0 0 1 3.6-3.3c.4-.2 1 .4.8.7a11 11 0 0 1-3.7 2.8m12.6-10c.3-.6 2.1-1.3 2.6-1.7.4-.5.6.4.4.7-.3.7-1.9 1.7-2.6 1.8q-.6-.1-.4-.7zm4.3.3a8 8 0 0 1 2.5-3.4c.5-.3 1.3 0 1.1.4a9 9 0 0 1-2.9 3.3c-.3.3-.8 0-.7-.3m-3.7 2.7q-.3.5.1.8 1 .3 2 0c.6-.4.3-2.9-.5-1.6-.6.8-1 .6-1.6.8m-7.3 5.6c-1.3-1 .4-2.4 1.7-1.4 2.7 2-4 9.8-7.6 13.4-.7.7-1.3-1-.4-1.9a34 34 0 0 0 6.7-7.6c.4-.5.7-1.6-.4-2.5m15.3-6.6c.1-1-1.6 0-1.6-1.3 0-.7 1.9-1.2 2.7-.4 1.3 1.4.3 3.7-2 3.9-1.8 0-5 2.7-4.5 3.2.5.7 5.4 1.1 8.3.7 1.8-.3 1.4 1.3-.4 1.5s-3.2 0-4.8.6c-2 .5-2.8 3-3.9 4-.2.2-.8-.8-.6-1.2.8-1.2 2-3 3.4-3.6.8-.3-2.4-.4-3.4-.7-.8-.2-.6-1.3-.3-1.9.4-.8 3.4-3.9 4.7-3.8 1.1 0 2.3-.3 2.4-1m5 .2 1.5-1.8c.3-.3.9 0 .8.8-.1.7-1 1.2-1.5 1.7-.5.3-1-.4-.7-.7zm6.5-2.3c.9 0 1 1.6.2 1.8-.6.2-1-1.7-.2-1.8m-2.1 5c0 1.5.7 1.4 2 1.3s2.4 0 2.4-1.2c0-1.3-.7-2.5-1-1.6-.1.8-.3 2.2-.8 1.6-.4-.5-.2-.6-1 .2-.5.5-.5-.2-.8-.6-.2-.3-.8.2-.8.4zm-9.2 7.2c-.3 1.9 0 4.5.9 4.5 1.2 0 3.6-4 4.8-6.2.7-1.2 1.8-1.4 1.3-.1-.7 1.9-.6 6 0 7.2.4.6 3-.6 3.4-1.5.8-1.7.1-4.8.4-6.7.1-1.2 1.3-1.5 1.2-.3l-.1 7.5c0 1 2.9 2.4 3.3-.6.2-1.8 1.2-3.7 0-5.7-.8-1.3 1.1-1.2 2.1.6.7 1.2-.6 3.2-.5 4.7 0 2.4-1.8 3.8-3.1 3.8-1.2 0-2-1.5-3-1.5s-2.2 1.7-3 1.6c-3.6-.2-1.7-5.3-2.8-5.4-1.2 0-2.5 5-4 4.9-1.4-.2-3-4.2-2.3-5.8.5-1.6 1.5-2 1.4-1m16.9-8c-1.7-1 0-3.7.9-2.8 1.6 2 3.2 6.5 4.4 6.9.7.2.6-3.4 1.1-5 .4-1.3 1.8-.9 1.6.7-.1.5-2 6.4-1.8 6.6a47 47 0 0 1 3.3 7.8c.3 1.2-1.1.4-1.3.2-.9-1.4-2.4-6.5-2.4-6.2l-1.7 7.7c-.2 1-1.7.8-1.3-1 .3-1.4 2.3-8.3 2.2-8.6a17 17 0 0 0-5-6.3"/>
<path d="M322 131.2c-.4 0-1.2 1 1.2 1.5 3.1.6 6.6-.5 7.6-3.6 1.3-3.7 2-7.2 2.7-8.5.8-1.5 1.8-1.4 1-3.6-.5-1.7-1.5-1.2-1.7-.3-.5 2.3-2.6 10-3.3 11.3q-1.8 3.8-7.5 3.2"/>
<path d="M328.4 119c-.4-.7-1.2 0-1 .7a1 1 0 0 0 1.2 1c.7 0 2.2.1 2.2-1 0-.8-.7-1.5-1.1-.6q-.8 1.1-1.3 0zm.7-3c-.2.2 0 1.1.3 1a7 7 0 0 0 3.3-.8c.2-.2.1-.7-.2-.7-1 0-2.6 0-3.4.5m8.8 2.3c.8-1.2 2.8-1.3 2 .4l-6.3 12.3c-.8 1.4-1.4.7-.8-.4.7-1.4 4.9-12 5.1-12.3"/>
<path d="M330.2 133c-.2-.8-1.5-2-1.3.2.2 3.8 5.5 2.6 7 1.3s.3 4.3 2.2 4.9c1 .3 3-1.1 4-2.4 2.7-3.5 4.5-8.6 7-12 1-1.4-.5-2.4-1-1.3-2.4 3.8-5.2 11.6-8.3 13.6-2.5 1.6-1.7-2-1.8-3.2-.1-.8-1.1-2-2.4-.9a6 6 0 0 1-3.7 1.2c-.7 0-1.4 0-1.7-1.4"/>
<path d="M339.6 126c0-.3-1.1-.4-1 .7 0 .8 1 1 1.1 1 1.5-1.2-.3-.6-.1-1.8zm-2.3 4.4c-.3 0-.6 1 .2 1.1l3.9-.2c.4 0 .6-.9-.4-.8-1.2 0-2.7-.3-3.7 0zm-62-16.6c.5 0 1.6 1.4 1.5 1.9 0 .2-1.2 0-1.5-.3s-.2-1.6 0-1.6m-5.3 10.4c-1 .6.2 1.7 1 1.2 2.8-1.9 7-3.8 8-7.5.3-1.2 1.4-3.1 2.5-3.5 1-.5 2.6 1.9 3.6 0 .6-1 2.7.7 3.2-.4.6-1.3.3-2 .3-3.4 0-.8-.7-1-1.2.3l-.1 1.6q-.4.4-1 .2c-.2-.2 0-.7-.6-1q-.4-.1-.8.2c-.7 1.3-1 2.5-2.1 1-.9-1-1.4-3.1-2-.3-.2 1-1.7 2.4-2.6 2.4-1.1 0-.8-3-3.2-2.5-1.3.3-1.2 2.7-1 3.5.3 1.3 4 .4 3.7 1.2-.6 2.7-4.4 5.4-7.7 7m-22.7 13.2c-.1.5.5 1.7 1.1 1.8.6 0 1-1.3.8-1.8-.2-.3-1.8-.3-1.9 0m3.3 4.9c-.4-.4-1.6.7-.6 1.5.5.5 2.5 1.1 3 .2.8-1.2-.7-5.5 0-6 .5-.5 2.8 2.8 4 3 2.7.4 2-4.6 5-4.2 1.9.2 2.1-2.2 1.8-3.8-.2-1.5-2.6-3.6-3.7-4.6-1.4-1.2-2.1 1-1.2 1.6 1.2 1 3.3 2.9 3.6 4.1.1.6-1.4 1.8-2 1.5-1.4-.8-2.6-4-3.8-4.7-.4-.2-1.4.3-1 1.3.6 1.1 3 2.7 3.1 3.9.1 1-1 3.2-1.8 3.2s-3-2.7-3.7-4c-.4-.5-1.5-.5-1.7.4a22 22 0 0 0 .5 5.5c.2 1.6-.9 1.7-1.5 1.1m-4-8.6c-.4.4.8 1.2 1 1 .4-.4 2.1-2.3 1.8-3-.3-.6-2.6-2-3-1.3-.7 1.1 2.2 1.7 1.7 2zm4.1-8.4s.8 2.5 1.4 1.4c.4-.7-1.4-1.4-1.4-1.4m1.2 4c-.2 0-1 .7-.5 1 .8.4 2.9.8 2.4-.7-.3-.9 3.2 0 2.3-2.4a4 4 0 0 0-1.7-1.7c-.4 0-1.5.5-.8.9.5.2 2 1.1 1.5 1.7-.7.6-1.1-.3-1.9-.1-.4 0-.1 1.2-.4 1.5 0 .2-.7-.4-.9-.3zm5.5-9.5a4 4 0 0 0-1.2 2q.1.5.5.5a3 3 0 0 0 1.2-1.9c0-.3-.2-.8-.5-.6m2.8-.3c-.8-1 1-2.6 1.7-.5.5 1.3 5.5 7.9 6.5 10.1.8 1.5 0 2.1-.9 1-2.5-3.2-4.6-7.2-7.3-10.6m5.2.1c.9-1 2.7-3 2.2-4s-1.5-1-1.7-.7c-1 1.3.8 1 .5 1.4q-.8 1.3-1.3 2.6c-.1.3.1.9.3.7m77.8 3.2c-.7-.5.6-3 1.5-2 2.3 2.7 3.4 11.6 4.1 18.3 0 0-1 .9-1 .7 0-3.5-1.5-14.4-4.6-17m-53.1-8.6c-.8-1.8 1.1-2.4 1.4-1.2 1.3 5.8 4.5 10.2 7 14.1.7 1.2 0 2-1.7.8-1.2-.8-2.5-3.9-3-4-1.2-.2-3.8 5-9.1 3.5-1.4-.4-1.3-4.5-1.4-6.3 0-.9 1-1 1 0 0 1.7 0 5.2 2.1 5.4 1.8 0 5.6-2.4 6.4-4.4s-1.9-5.9-2.7-8z"/>
<path d="M344.6 138.4c.4-1.2 6.1-10.8 6.9-12.9.4-1 2 1.8.4 3.3-1.4 1.2-5.5 8-6.3 10.4-.4 1-1.4.5-1-.8"/>
<path d="M354.3 129.3c1-4 3.6.6 1.3 2.8-3.4 3.4-4.5 9.9-10 10.9-1.4.3-4-.7-4.8-1.3-.3-.2.2-1.6 1.1-.9 1.3 1 4.1 1.3 5.6.1a25 25 0 0 0 6.8-11.6m-57 12.7c-.3.3-1 .3-1.1.7-.3 1.4 0 2.2-.3 3.6s-1.3 1.4-1.2.3c0-1.4 1.3-3.5.4-3.6-.6-.1-1-.9-.4-1.3q1.5-.9 2.4-.4.5.3.2.7"/>
<path d="M296.5 140c-1.4 1.4-2.8 1.9-4.1 3.5-.6.6-.5 1.5-.9 2.4-.3.9-1.4 1-1.7.9-.5-.4-.4-2-1-1.2s-.9 2-1.7 2-2-1.5-1.3-1.5c2.3-.3 2.2-2 3-2.2 1-.1 1 1.5 1.7 1.2.4-.2.7-2.1 1.2-2.6 1.5-1.6 2.7-2.4 4.3-3.6.7-.6 1.3.5.5 1.2zm5.3 5c-1.2.2-1 1.7-.6 1.8.5.3 1.4.4 1.7-1.3.2-.7.3 3.5 1.8 1.9 1-1 3.1.2 4-1 .7-.9 1-1.5.4-2.7-.2-.3-1-.2-1 .7s-.5 1.7-1.3 1.6c-.4-.1.2-1.9-.2-2.4h-.7c-.3.4.3 2.2-.6 2.4-1.2.2-.6-1.2-1-1.4-1.7-.8-1.8.2-2.5.3zm9-3c.9-.2.6-.2 2-1.3.5-.4.6.8.5 1.3 0 .7-1 .2-1.3.9-.4.9-.2 3-.4 3.8 0 .4-.8.4-.8 0-.2-1 .1-2 0-3.3 0-.4-.5-1.1 0-1.3zm-5-2.5-.2 2.3c0 .5 1 .2 1 .1 0-.8.2-2 0-2.3q-.5-.3-.8-.1"/>
<path d="m299.5 130.2-1.4 5.6-2-3.8v3.9l-4.4-5.2 1.5 5.6-4-3.4 2.2 3.8-7-4.5 4.4 5.2-5.6-2.8 4 3.4-9-3.4 8.7 4.3a29 29 0 0 1 12.6-2.6q7.5.1 12.5 2.6l8.8-4.3-9 3.4 4-3.4-5.5 2.8 4.3-5.2-7 4.5 2.2-3.8-4 3.3 1.5-5.5-4.3 5.2V132l-2 3.8z"/>
</g>
</g>
<path fill="#fff" d="m311.3 295-.3 2.6h-.4l-.1-1.8-.5-1.6-.5-1.3-1-1.4.8-2.2a7 7 0 0 1 1.5 2.4 9 9 0 0 1 .5 3.2m7-4.2q0 1-.5 1.5-.3.5-1.3.7l.4 1.5v2l-.1 1.3h-.4l-.1-1.3-.2-1-.4-1-.7-1.4-1-1.7.6-2 1 1q.4.3 1 .3 1.2 0 1.2-1.3h.4v1.4m6.4 4.8-.5 2.1q-.6 0-.8-.7l-.4-1.3-.1-1.7-1 .2a2 2 0 0 1-1.3-.4 1 1 0 0 1-.5-1q0-1.4.7-2.3.8-1 1.5-1.1.7 0 1 .4l.3.9v2q0 1.3.3 1.9 0 .4.8 1m-2-3.5q0-.9-.8-.8l-.6.1q-.2.1-.2.3 0 .5 1 .5zm8.7 3-.3 2.6q-.8-.5-1.4-2l-1.3-4.1-1.8 5.5-.8.7v-2.5q.9-1 1-1.5l.8-1.7.5-2.7h.4l.9 2.7q.3 1 .9 1.6l1 1.4"/>
<path fill="#bf0000" d="M350.8 319.4q.6.6.7 1.2l.4 1.6-.8.1-1-1.5-1.1-1.2-1.7-1.5-2-1.7q-.6-.3-.6-.5l-.3-.8-.2-1.6 2.7 2.2 2.5 2.2zm-9.5-5.8-.2 2H338l.3-2zm8.4 8.9-7.6 2.3-1.3-2 6.5-2-.7-.8-.9-.6a1 1 0 0 1-.4 1l-1 .6a3 3 0 0 1-1.8 0 2 2 0 0 1-1.3-.7 4 4 0 0 1-.7-2.2q0-1.5.9-1.8 1.1-.3 3 .7a8 8 0 0 1 3 2.4zm-5.8-4-.8-.3h-.6l-.5.3v.6l.5.2h.6l.4-.3zm-8-1.6-.5 2-3.2-.3.5-2zm7.5 7.7-1.7.4H340l-1.5-.4q-.5.8-1.5 1.2l-1.6.6-1.2.3-1-2 1.1-.3 1.3-.4.9-.5-1-.5h-.9l-.2.3h-.5q-.8-1.2-.3-2c.5-.8.9-.8 2-1a7 7 0 0 1 2.6-.2q1.2.1 1.5.9.2.3.2.7l-.4 1.2h1.1l1.7-.3zm-8 1.8-1.6.3a3 3 0 0 1-2.2-.4 6 6 0 0 1-1.7-2.6l-.8-2.2a2 2 0 0 0-.8-1l-.9-.5.6-2.1q.9.4 1.4 1l1 1.7.5 1.5 1.1 2.2q.5.4 1 .3l1.7-.2zm-7-7.5-1 1.9-3-.7 1-1.9zm1.8 8.4-7.5.7-.4-2 6.2-.7-.6-.8-1-.6.5-2q1 .6 1.6 1.3.5.8.8 2.1zm-6 1-2.2-.2-1.7-.5-1.3.4h-3.7l-1.2-.3q-.4-.3-.8-1a4 4 0 0 1-1.5 1l-1.7.1h-1.7l.2-2.1h1.7q1.2.1 2.1-.4a2 2 0 0 0 1.3-1.8l.7.1-.1 1.3q0 .4.3.7.4.3 1 .3h1.5q1.5 0 2-.2.9-.2 1-1.1l.1-.4s.3 0 .5-.2l.5-.2v.7l-.3 1.1 2 .5q.1-.3-.1-.7l-.3-.6.1-.3.3-.2 1-.9.5 1v1zm-11.3-8.7-2 1.3-1.3-.9-1.4 1-1.9-1 1.8-1.3 1.5.8 1.5-1 1.8 1m-3 8.2-7.3-1.2.8-2 6.2 1q0-.6-.2-1l-.5-.8 1.6-1.7q.6.8.7 1.6t-.5 2.1zm-6.1-1-1.6-.3q-1.3-.3-1.5-1.2-.3-.9.8-2.8l1.2-2q.4-.7.3-1.2l-.3-.7 2.2-1.6q.4.8.3 1.4 0 .8-.7 1.8l-.8 1.4a6 6 0 0 0-.9 2.2q0 .6.5.7l1.6.4zm-3.8-8-2.5 1.1-1.8-1.7 2.6-1zm-1 6.6-1.6 1.4-1.7.6-2.4-.1-2.8-.7a8 8 0 0 1-3.4-2q-.9-1.2 0-2.2a7 7 0 0 1 2-1.6q1.1-.7 3.8-1.6l.4.5-2.8 1.2q-.8.4-1.3 1t.2 1.6a11 11 0 0 0 6.3 2.2q1.8 0 2.3-.7.4-.4.5-1l.2-1.6 2.5-1.5-.1 1.5a4 4 0 0 1-1 1.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

+14
View File
@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ag" viewBox="0 0 640 480">
<defs>
<clipPath id="ag-a">
<path fill-opacity=".7" d="M-79.7 0H603v512H-79.7z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(74.7)scale(.9375)">
<path fill="#fff" d="M-79.7 0H603v512H-79.7z"/>
<path fill="#000001" d="M-79.6 0H603v204.8H-79.7z"/>
<path fill="#0072c6" d="M21.3 203.2h480v112h-480z"/>
<path fill="#ce1126" d="M603 .1V512H261.6L603 0zM-79.7.1V512h341.3L-79.7 0z"/>
<path fill="#fcd116" d="M440.4 203.3 364 184l64.9-49-79.7 11.4 41-69.5-70.7 41L332.3 37l-47.9 63.8-19.3-74-21.7 76.3-47.8-65 13.7 83.2L138.5 78l41 69.5-77.4-12.5 63.8 47.8L86 203.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 743 B

+29
View File
@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ai" viewBox="0 0 640 480">
<defs>
<path id="ai-b" fill="#f90" d="M271 87c1.5 3.6 6.5 7.6 7.8 9.6-1.7 2-2 1.8-1.8 5.4 3-3.1 3-3.5 5-3 4.2 4.2.8 13.3-2.8 15.3-3.4 2.1-2.8 0-8 2.6 2.3 2 5.1-.3 7.4.3 1.2 1.5-.6 4.1.4 6.7 2-.2 1.8-4.3 2.2-5.8 1.5-5.4 10.4-9.1 10.8-14.1 1.9-.9 3.7-.3 6 1-1.1-4.6-4.9-4.6-5.9-6-2.4-3.7-4.5-7.8-9.6-9-3.8-.7-3.5.3-6-1.4-1.6-1.2-6.3-3.4-5.5-1.6"/>
</defs>
<clipPath id="ai-a">
<path d="M0 0v120h373.3v120H320zm320 0H160v280H0v-40z"/>
</clipPath>
<path fill="#012169" d="M0 0h640v480H0z"/>
<path stroke="#fff" stroke-width="50" d="m0 0 320 240m0-240L0 240"/>
<path stroke="#c8102e" stroke-width="30" d="m0 0 320 240m0-240L0 240" clip-path="url(#ai-a)"/>
<path stroke="#fff" stroke-width="75" d="M160 0v280M0 120h373.3"/>
<path stroke="#c8102e" stroke-width="50" d="M160 0v280M0 120h373.3"/>
<path fill="#012169" d="M0 240h320V0h106.7v320H0z"/>
<path fill="#fff" d="M424 191.8c0 90.4 9.7 121.5 29.3 142.5a179 179 0 0 0 35 30 180 180 0 0 0 35-30c19.5-21 29.3-52.1 29.3-142.5-14.2 6.5-22.3 9.7-34 9.5a78 78 0 0 1-30.3-9.5 78 78 0 0 1-30.3 9.5c-11.7.2-19.8-3-34-9.5"/>
<g transform="matrix(1.96 0 0 2.002 -40.8 62.9)">
<use xlink:href="#ai-b"/>
<circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
</g>
<g transform="matrix(-.916 -1.77 1.733 -.935 563.4 829)">
<use xlink:href="#ai-b"/>
<circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
</g>
<g transform="matrix(-1.01 1.716 -1.68 -1.031 925.4 -103.2)">
<use xlink:href="#ai-b"/>
<circle cx="281.3" cy="91.1" r=".8" fill="#fff" fill-rule="evenodd"/>
</g>
<path fill="#9cf" d="M440 315.1a78 78 0 0 0 13.3 19.2 179 179 0 0 0 35 30 180 180 0 0 0 35-30 78 78 0 0 0 13.2-19.2z"/>
<path fill="#fdc301" d="M421.2 188.2c0 94.2 10.2 126.6 30.6 148.5a187 187 0 0 0 36.5 31.1 186 186 0 0 0 36.4-31.1c20.4-21.9 30.6-54.3 30.6-148.5-14.8 6.8-23.3 10.1-35.5 10-11-.3-22.6-5.7-31.5-10-9 4.3-20.6 9.7-31.5 10-12.3.1-20.7-3.2-35.6-10m4 5c14 6.5 22 9.6 33.5 9.4a76 76 0 0 0 29.6-9.4c8.4 4 19.3 9.2 29.6 9.4 11.5.2 19.4-3 33.4-9.4 0 89-9.6 119.6-28.8 140.2a176 176 0 0 1-34.2 29.4 176 176 0 0 1-34.3-29.4c-19.2-20.6-28.7-51.3-28.7-140.2z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-al" viewBox="0 0 640 480">
<path fill="red" d="M0 0h640v480H0z"/>
<path id="al-a" fill="#000001" d="M272 93.3c-4.6 0-12.3 1.5-12.2 5-13-2.1-14.3 3.2-13.5 8q2-2.9 3.9-3.1 2.5-.3 5.4 1.4a22 22 0 0 1 4.8 4.1c-4.6 1.1-8.2.4-11.8-.2a17 17 0 0 1-5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7 2.3 2.1 4 5.6 5.8 10 6.6 2.1.3 5.3 1 8.9 1s7.6-.5 9.8 0c-1.3.8-2.8 2.3-5.8 2.8s-7.5-1.8-10.3-2.4c.3 2.3 3.3 4.5 9.1 5.7 9.6 2 17.5 3.6 22.8 6.5a37 37 0 0 1 10.9 9.2c4.7 5.5 5 9.8 5.2 10.8 1 8.8-2.1 13.8-7.9 15.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12 .5-2.2 3.1-8.3.9-9.5a274 274 0 0 0-32.3-15.1c-2.5-1-4.5 2.4-5.3 3.8a50 50 0 0 1-36-23.7c-4.2-7.6-11.3 0-10.1 7.3 1.9 8 8 13.8 15.4 18s17 8.2 26.5 8c5.2 1 5.1 7.6-1 8.9-12.1 0-21.8-.2-30.9-9-6.9-6.3-10.7 1.2-8.8 5.4 3.4 13.1 22.1 16.8 41 12.6 7.4-1.2 3 6.6 1 6.7-8 5.7-22.1 11.2-34.6 0-5.7-4.4-9.6-.8-7.4 5.5 5.5 16.5 26.7 13 41.2 5 3.7-2.1 7.1 2.7 2.6 6.4-18.1 12.6-27.1 12.8-35.3 8-10.2-4.1-11 7.2-5 11 6.7 4 23.8 1 36.4-7 5.4-4 5.6 2.3 2.2 4.8-14.9 12.9-20.8 16.3-36.3 14.2-7.7-.6-7.6 8.9-1.6 12.6 8.3 5.1 24.5-3.3 37-13.8 5.3-2.8 6.2 1.8 3.6 7.3a54 54 0 0 1-21.8 18c-7 2.7-13.6 2.3-18.3.7-5.8-2-6.5 4-3.3 9.4 1.9 3.3 9.8 4.3 18.4 1.3s17.8-10.2 24.1-18.5c5.5-4.9 4.9 1.6 2.3 6.2-12.6 20-24.2 27.4-39.5 26.2-6.7-1.2-8.3 4-4 9 7.6 6.2 17 6 25.4-.2 7.3-7 21.4-22.4 28.8-30.6 5.2-4.1 6.9 0 5.3 8.4-1.4 4.8-4.8 10-14.3 13.6-6.5 3.7-1.6 8.8 3.2 9 2.7 0 8.1-3.2 12.3-7.8 5.4-6.2 5.8-10.3 8.8-19.9 2.8-4.6 7.9-2.4 7.9 2.4-2.5 9.6-4.5 11.3-9.5 15.2-4.7 4.5 3.3 6 6 4.1 7.8-5.2 10.6-12 13.2-18.2 2-4.4 7.4-2.3 4.8 5-6 17.4-16 24.2-33.3 27.8-1.7.3-2.8 1.3-2.2 3.3l7 7c-10.7 3.2-19.4 5-30.2 8l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6 1 4.2 0 6 1.2 7.7 3.1 2.2 5.7 7.2 6.3 12.3 4.7 3.3 2.7 5 4.9 8.4 7.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8 4.4 3.4-1.4 5.6-1.8 7.1-.3 6.3 3.7 10.4 2.9 13.5 0l17.5 1.1c-2.2 2-5.2 3-7.5 4.8-9-2.6-13.8 1-15.4 8.3a17 17 0 0 0-1.2 9.3q1.1-4.6 4.9-7c8 2 11-1.3 11.5-6.1 4-3.2 9.8-3.9 13.7-7.1 4.6 1.4 6.8 2.3 11.4 3.8q2.4 7.5 11.3 5.6c7 .2 5.8 3.2 6.4 5.5 2-3.3 1.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3 11-3.5 18.8-4.3 29.8-7.8l7.7 6.8q2.3 1.5 3.8 0c6.9-10 10-18.7 16.3-25.3 2.5-2.8 5.6-6.4 9-7.3 1.7-.5 3.8-.2 5.2 1.3 1.3 1.4 2.4 4.1 2 8.2-.7 5.7-2.1 7.6-3.7 11s-3.6 5.6-5.7 8.3c-4 5.3-9.4 8.4-12.6 10.5-6.4 4.1-9 2.3-14 2-6.4.7-8 3.8-2.8 8.1 4.8 2.6 9.2 2.9 12.8 2.2 3-.6 6.6-4.5 9.2-6.6 2.8-3.3 7.6.6 4.3 4.5-5.9 7-11.7 11.6-19 11.5-7.7 1-6.2 5.3-1.2 7.4 9.2 3.7 17.4-3.3 21.6-8 3.2-3.5 5.5-3.6 5 1.9-3.3 9.9-7.6 13.7-14.8 14.2-5.8-.6-5.9 4-1.6 7 9.6 6.6 16.6-4.8 19.9-11.6 2.3-6.2 5.9-3.3 6.3 1.8 0 6.9-3 12.4-11.3 19.4 6.3 10.1 13.7 20.4 20 30.5l19.2-214L320 139c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4s3-.8 4.5-1c-4-4.1-7.6-5.4-15.3-7.6 1.9-.8 3.7-.4 9.3-.6a30 30 0 0 0-13.5-10.2c4.2-3 5-3.2 9.2-6.7a86 86 0 0 1-19.5-3.8 37 37 0 0 0-12-3.4zm.8 8.4c3.8 0 6.1 1.3 6.1 2.9s-2.3 2.9-6.1 2.9-6.2-1.5-6.2-3c0-1.6 2.4-2.8 6.2-2.8"/>
<use xlink:href="#al-a" width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-am" viewBox="0 0 640 480">
<path fill="#d90012" d="M0 0h640v160H0z"/>
<path fill="#0033a0" d="M0 160h640v160H0z"/>
<path fill="#f2a800" d="M0 320h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 228 B

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ao" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="red" d="M0 0h640v243.6H0z"/>
<path fill="#000001" d="M0 236.4h640V480H0z"/>
</g>
<path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150z"/>
<path fill="#ffec00" fill-rule="evenodd" d="m170 330.8 21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9 22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1 17.1-16.9 16.9 17-17 16.9zm-26.2-39.8 22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70 22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3z"/>
<path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a8 8 0 0 0 10.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3"/>
<path fill="#000001" fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.6 0zm-21.4-13.6a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0m10.9 7a4.3 4.3 0 1 1-8.7 0 4.3 4.3 0 0 1 8.7 0"/>
<path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 0 1 334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
<path fill="#ffec00" fill-rule="evenodd" d="m297.2 305.5 17.8 16-16 17.8-17.8-16z"/>
<path fill="none" stroke="#000" stroke-width="3" d="m331.5 348.8-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aq" viewBox="0 0 640 480">
<path fill="#3a7dce" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M157.7 230.8c-3.5-7.8-3.5-7.8-3.5-15.6-1.8 0-2 .3-3 0-1.1-.3-1.5 7.2-4.8 5.8-.5-.8 2.4-6.2-.7-8.5-1-.7.2-5.2-.2-7.2 0 0-4 2.4-7-5.8-1.5-2.2-3.5 2-3.5 2s.9 2.4-.7 3c-2.2-1.8-3.9-.8-6.7-3.4s.6-5.4-4.8-7.5c3.5-9.8 3.5-7.9 12.2-11.8-5.2-4-5.2-4-8.7-9.8-5.2-2-7-4-12.2-7.8-7-9.9-10.5-29.5-10.5-43.2 4.4-4.6 10.5 15.7 19.2 21.6l12.2 5.9c7 3.9 8.7 7.8 14 11.7l15.6 6c7 5.8 10.5 13.6 15.7 15.6 5.7 0 6.8-3.7 8.6-3.9 10.3-.6 15.5-2 17.5-5.5 2.1-2.8 7 1.6 21-4.3l-1.7-7.9s3.7-3.4 8.7-2c-.1-3.5-.5-13 4.5-17.4-3-3.5 1.8-9 2-10.7-1.4-8.6 1.4-8.7 2-11.3.6-2.5-2.4-1.7-1.6-5.2.9-3.5 6-4.3 6.6-7.2.7-2.9-1.1-14.3-1.3-16.8 9.4-2.8 12.4-11.4 15.7-7.8C264 70 265.8 66 276.3 66c1.4-3.6-3.9-6.7-1.8-7.9 3.5-.5 6.1-.2 10.2 5.7 1.3 2 1.6-2.7 2.9-3.2s4.4-.5 4.9-2.8c.5-2.4 1.2-5.6 3-9.5 1.4-3.2 2.5 1.3 3.8 7.5 7.4.3 24 2.1 31 4.3 5.2 1.5 8.7-1.5 13.7-2.2 3.7 4.2 7.2 1 9.2 10 2.7 4.8 7.3.4 8.3 1.8 5.8 18.1 25.8 5.9 27.4 6.2 2.5 0 5.6 8 7.7 7.9 3.2-.6 2.3-3.1 5.2-2.1-.8 6.8 5.6 14.6 5.6 19.7 0 0 1.5.9 3-.6 1.4-1.6 2.7-5.4 4-5.3 3 .5 22 6 25.8 7.9 1.7 3.5 3.3 5.3 6.8 4.7 2.8 2.1.8 5 2.4 5.1 3.5-2 4.7-4 8.2-2.1 3.5 2 7 5.9 8.7 9.8 0 2-1.8 9.8 0 21.6.9 3.9 9.7 32.3 9.7 35.2 0 4-2.7 6-4.5 9.9 7 5.9 0 15.7-3.5 21.6 26.2 5.9 14 17.6 34.9 11.7-5.2 13.8-3.4 12.7 1.8 26.4-10.4 7.8-.2 10.2-7.1 20-.5.7 4.1 8.6 10.5 8.6-1.7 15.6-7 9.8-5.2 33.3-13.7-.3-8.2 17.6-17.4 15.7.5 11.2 5.2 12.2 3.4 23.5-7 2-7 2-10.4 7.9l-5.2-2c-1.8 9.8-5.3 11.8 0 21.6 0 0-6.8.2-8.8 0-.1 3.4 3 4.3 3.5 7.8-.2 1.4-9.9 7.6-17.4 7.9-2 4.8 5.2 10 4.8 12.4-8.2 1.8-11.8 13-11.8 13s4.2 2 3.5 4c-2.2-1.8-3.5-2-7-2-1.7.5-6 0-10 7.7-4.5 1.6-6.6 1-10 6-1.5-4.7-3.7.1-6.3 2-2.7 1.8-6.2 6.5-6.7 6.3.1-1.4 1.6-6.3 1.6-6.3L399 437c-.7.1-.5-5.7-2.2-5.5s-6.4 7.3-8 7.5-2.1-2.2-3.5-2-4 7.5-5 7.7c-1 .1-5-4.5-8.3-3.8-17.1 6.8-19.9-13.4-22.5-2-3.6-2.2-3-1-6.7.1-2.3.7-2.5-3.4-4.6-3.4-4.1.2-4 4.6-6.2 3.3-1.8-9.2-13-7.6-14-11.5s4.8-4 6.6-6.8c1.4-4-1.5-5.6 4.3-9.4 7.5-5.7 6.8-19.8 4.9-25.3 0 0-5.9-17.7-7-17.7-3.5-1-3.5 6.5-8.6 8.6-10.5 4-29-9.9-32.2-9.9-2.9 0-16.5 3.6-16-4-2 7.4-9.5 1.7-10 1.7-7 0-4.3 6.1-9 5.9-2.1-.8-23.6-2.3-23.6-2.3v4l-26.1-11.8c-10.5-4-5.3-13.7-22.7-7.8v-11.8h-8.7c3.5-23.6 0-11.8-1.8-33.4l-7 2c-7-10.6 9.8-8.6-5.2-15.7 0 0 .3-11.7-3.5-7.8-.7.5 1.8 5.8 1.8 5.8-14-2-17.4-5.8-17.4-21.5 0 0 11.4 1.8 10.4 0-1.6-3-3.7-22-3.4-23.4-.1-2.6 10.7-9 8.6-15.2 1.4-.6 5.3-.7 5.3-.7"/>
<path fill="none" stroke="#fff" stroke-linejoin="round" stroke-width="2.5" d="M595.5 297.6q-.9 2 .1 3.6c1.1-1.7.2-2.4 0-3.6zm-476-149.4s-3-.4-2.4 2.3c1-2 2.3-2.2 2.4-2.3zm-.3-6.4c-1.7 0-3.8-.2-3 2.5 1-2.1 3-2.4 3-2.5zm12.7 36.3s2.6-.2 2 2.5c-1-2-2-2.4-2-2.5z" transform="scale(.86021 .96774)"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

+32
View File
@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-ar" viewBox="0 0 640 480">
<path fill="#74acdf" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M0 160h640v160H0z"/>
<g id="ar-c" transform="translate(-64)scale(.96)">
<path id="ar-a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="m396.8 251.3 28.5 62s.5 1.2 1.3.9c.8-.4.3-1.6.3-1.6l-23.7-64m-.7 24.2c-.4 9.4 5.4 14.6 4.7 23s3.8 13.2 5 16.5c1 3.3-1.2 5.2-.3 5.7 1 .5 3-2.1 2.4-6.8s-4.2-6-3.4-16.3-4.2-12.7-3-22"/>
<use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
<use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(45 400 250)"/>
<use xlink:href="#ar-a" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
<path id="ar-b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8 19.5 42.6-16.3-43.9"/>
<use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(22.5 400 250)"/>
<use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(45 400 250)"/>
<use xlink:href="#ar-b" width="100%" height="100%" transform="rotate(67.5 400 250)"/>
</g>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(90 320 240)"/>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(180 320 240)"/>
<use xlink:href="#ar-c" width="100%" height="100%" transform="rotate(-90 320 240)"/>
<circle cx="320" cy="240" r="26.7" fill="#f6b40e" stroke="#85340a" stroke-width="1.4"/>
<path id="ar-h" fill="#843511" stroke-width="1" d="M329 234.3c-1.7 0-3.5.8-4.5 2.4 2 1.9 6.6 2 9.7-.2a7 7 0 0 0-5.1-2.2zm0 .4c1.8 0 3.5.8 3.7 1.6-2 2.3-5.3 2-7.4.4q1.6-2 3.8-2z"/>
<use xlink:href="#ar-d" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
<use xlink:href="#ar-e" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
<use xlink:href="#ar-f" width="100%" height="100%" transform="translate(18.1)"/>
<use xlink:href="#ar-g" width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)"/>
<path fill="#85340a" d="M316 243.7a1.8 1.8 0 1 0 1.8 2.9 4 4 0 0 0 2.2.6h.2q1 0 2.3-.6.5.7 1.5.7a1.8 1.8 0 0 0 .3-3.6q.8.3.8 1.2a1.2 1.2 0 0 1-2.4 0 3 3 0 0 1-2.6 1.7 3 3 0 0 1-2.5-1.7q-.1 1.1-1.3 1.2-1-.1-1.2-1.2c-.2-1.1.3-1 .8-1.2zm2 5.4c-2.1 0-3 2-4.8 3.1 1-.4 1.8-1.2 3.3-2s2.6.2 3.5.2 2-1 3.5-.2l3.3 2c-1.9-1.2-2.7-3-4.8-3q-.7 0-2 .6z"/>
<path fill="#85340a" d="M317.2 251.6q-1.1 0-3.4.6c3.7-.8 4.5.5 6.2.5 1.6 0 2.5-1.3 6.1-.5-4-1.2-4.9-.4-6.1-.4-.8 0-1.4-.3-2.8-.2"/>
<path fill="#85340a" d="M314 252.2h-.8c4.3.5 2.3 3 6.8 3s2.5-2.5 6.8-3c-4.5-.4-3.1 2.3-6.8 2.3-3.5 0-2.4-2.3-6-2.3"/>
<path fill="#85340a" d="M323.7 258.9a3.7 3.7 0 0 0-7.4 0 3.8 3.8 0 0 1 7.4 0"/>
<path id="ar-e" fill="#85340a" stroke-width="1" d="M303.4 234.3c4.7-4.1 10.7-4.8 14-1.7a8 8 0 0 1 1.5 3.4q.6 3.6-2.1 7.5l.8.4q2.4-4.7 1.6-9.4l-.6-2.3c-4.5-3.7-10.7-4-15.2 2z"/>
<path id="ar-d" fill="#85340a" stroke-width="1" d="M310.8 233c2.7 0 3.3.6 4.5 1.7 1.2 1 1.9.8 2 1 .3.2 0 .8-.3.6q-.7-.2-2.5-1.6c-1.8-1.4-2.5-1-3.7-1-3.7 0-5.7 3-6.1 2.8-.5-.2 2-3.5 6.1-3.5"/>
<use xlink:href="#ar-h" width="100%" height="100%" transform="translate(-18.4)"/>
<circle id="ar-f" cx="310.9" cy="236.3" r="1.8" fill="#85340a" stroke-width="1"/>
<path id="ar-g" fill="#85340a" stroke-width="1" d="M305.9 237.5c3.5 2.7 7 2.5 9 1.3 2-1.3 2-1.7 1.6-1.7s-.8.4-2.4 1.3c-1.7.8-4.1.8-8.2-.9"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

+109
View File
@@ -0,0 +1,109 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" version="1.0" id="flag-icons-arab" viewBox="0 0 640 480">
<path fill="#006233" d="M0 0v480h640V0Z" class="arab-fil0 arab-str0"/>
<g fill="#fff" fill-rule="evenodd" stroke="#fff">
<path stroke-width=".4" d="M1071.9 2779.7c-25.9 38.9-7.2 64.2 19.5 66 17.6 1.3 54.2-24.9 54.1-55.7l-10-5.6c5.6 15.8-.2 20.8-12.1 31.6-23.5 21.3-71.5 22.8-51.5-36.3z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="M1277.2 2881.7c145.8 4.1 192.2-137 102.2-257.8l-8.9 13.3c5.8 56.3 14.2 111.8 15 169.5-17.6 20.7-43.2 13-48.3-10 .3-31.2-9.9-57.6-22.8-82.8l-7.2 13.3c8.4 20.7 17.5 44 19.4 69.5-41.6 49.9-87.6 60-70.5-5.6-32.9 57.5 16.9 98 73.3 9.5 12.1 60.4 58.9 22.9 61.7 9.9 5.1-39.6 2.5-103.4-7.8-153.8 40.6 70.3 42 121 20.4 154.9-24 37.7-76.2 55.3-126.5 70.1z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="M1359.9 2722.2c-31.2 2.3-47.2-4.1-30.3-27.2 16.7-22.6 32.3-4.6 36.5 25.6 3.9 28.3-54.8 64.4-75.1 64.4-30.7 0-44.9-39.5-16.6-75-36.4 103.6 78.6 43.5 85.5 12.2zm-21.6-24c-3.8-.2-6.6 6.5-4.7 7.8 5.5 3.8 14.2 1.5 15.1-.4 1.9-4.2-5.1-7.2-10.4-7.4z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="M1190.5 2771.1c-30 59-.1 83.4 38.4 76.6 22.4-4.1 50.8-20 67.2-41.7.3-47.8-.4-95.2-4.6-141.5 15-17.9-1.3-17.8-7-37-2.6 11.2-8.9 23.3-2.8 32q6.6 70 6.6 142.2c-30.2 24.3-52.9 33.3-69.1 33.1-33.5-.3-40.7-28.5-28.7-63.7z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="M1251.8 2786.7c-.5-44.5-1.2-95-5.2-126.1 15.6-17.3-.8-17.7-5.9-37.1-3 11-9.6 23-3.8 31.9 2.6 47.6 5.1 95.2 5.6 142.8 3.6-2.3 7.7-3.2 9.3-11.5z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-width=".4" d="M1135.4 2784.6c-3.8-4.8-6.5-10.2-9.6-14.9-.5-6.7 4-12.9 4.6-16.3 5.1 7.9 8.1 13.9 12.2 17.8m5.4 3.1c7.5 3 16.7 3 25.2 3.2 32.8.6 67.3-4.8 63.6 39.6a66 66 0 0 1-65.2 61.9c-41.7-.4-77.3-46.4-13-131.1 6.2-1 14.3.7 21 1.3 11.5.9 23.3-.2 36.8-11-1.6-27.9-1.6-54.3-5-79.5-5.8-8.9.8-20.8 3.8-31.9 5.1 19.4 21.4 19.8 5.9 37.2 3.7 28 4.1 56.5 4.1 73.5-7.8 11.9-13.9 24.5-36.7 29.3-23.3-3.4-33.8-36-58.1-25.2 6.7-29.4 68.4-36.1 74.6-12.9-4.1 24.2-61.7 14.5-77 92.7-4.7 24.1 20.7 46.3 46.8 44.5 25.5-1.7 52.7-19.4 55.4-49.2 2.1-24.9-33-22-47.7-21.7-21.4.5-34.9-2.8-43-7.5m21.9-53.9c3.8-3.6 17.1-6.1 21.9-.3q-5.5 3.5-10 8.1c-5-2.6-8.3-5.2-11.9-7.8z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="M1194 2650.9a49 49 0 0 1 5.3 21c-2.2 10.4-11.1 20.1-20.3 20.4-5.7.2-12.1-1.4-16.6-10.3-.5-1.1-2.9-3.7-5.2-2.5-10.1 16.6-17.6 23.6-26.7 23.5-18.2-.3-12.8-16.5-29.6-21.5-7-.2-18.5 6.9-24.4 20.8-22.4 63.5-42.8-.2-34.1-29.8 1.3 28.3 8.1 45.1 15.1 44.6 5.1-.5 9.6-12.3 16.1-24.7 5-9.5 17-26.6 29.7-26.6 11.6.3 4.3 21.6 27.5 21.3 11.2-.2 21.5-8.8 31.9-26 2.3-.4 2.9 3.7 3.4 5.1 1.6 5.9 11.8 22.1 25.6 7.3-.7-3.2-.4-8.5-3.9-9.6z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-width=".4" d="M1266.9 2598.3c-12.3 6.1-21.3.5-26.4-4.9 8.9-1.8 15.8-5 17.8-12-4-9-13.5-12.9-26.9-13-17.9.5-27.1 7.7-28.2 17.6 8.3.3 15.8-2 19 6-14.7 7.2-32 9.8-50.8 9.7-30.8 1.6-35.3-12.3-43.4-24.5-.6-.8-3.3-2.1-4.7-1.9-9.5 0-16.5 33.2-27.2 33.1-10.7-1.4-8.3-21.4-11.4-32.8-2.6 17.9 3.3 84.5 36.4 12.2 1-2.4 2.4-1.7 3.3.3 8.9 20.2 27 27.2 46.5 28.2 16.3.9 37.1-6.2 59.4-18.8 5.9 6.5 10.6 13.9 23 15.3 14.5.7 30-9.8 33.5-22.8 1.8-6.7 2.1-19.9-5-20.1-9.9-.3-17.1 23.7-14.8 45.3.2-.3 1.3-5.4 1.3-5.4m-43.8-28.8c6.5-3 12.8-4.4 17.8 2.2a27 27 0 0 0-8.4 4c-2.8-2.2-6.6-3.3-9.4-6.2zm47.8 14.9c1.6-7.1 2.5-12.8 8.3-16.5 1.2 7.5 1.4 11.7-8.3 16.5zm39 11c-1.9-6.1-3.8-11.4-4.4-18-1.4-13.4 10.1-21 20.5-19.9 10.7 1.1 17.8 5.1 28 8.6 8 2.7 18.8 4.8 29.1 7.7 5.8 2.6 0 9.4-1.5 10.3-25.8 10.1-44.1 26.1-60.5 26.8q-14.6.7-26.4-19c-.5-25.4-1.4-55.2-3.9-73.9 3.8-3.8 4.6-6.6 6.4-9.7 2 24.7 2.8 50.7 3.3 76.9 2.1 4.5 4.7 8.3 9.4 10.2zm16.5 2c-13.8 3.9-12.1-7.8-13.4-15-1.5-8.4-.5-17.9 10.2-15.5 13.9 3.7 26.6 8.6 38.9 13.8z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-width=".4" d="m1314.3 2621.3 1.9 9.3h1.5l-.6-8.7" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="m1094.2 2718.5 7-7.2 8.1 6.9-7.5 6.7zm17.8-2.4 7.1-7.2 8.1 6.9-7.5 6.7zm-49.5-74.6 7.1-7.2 8.1 6.9-7.5 6.7zm3.2 21.2 7.1-7.2 8 6.9-7.5 6.7zm128.5 35.5 6.5-5.3 6 6.5-6.8 4.8zm-85.8-135.7 4.6-4.7 5.3 4.5-4.9 4.4zm11.7-1.5 4.6-4.8 5.3 4.6-4.9 4.3zm245.6 53.7-4.4 3.7-4.2-4.3 4.6-3.4z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path stroke-width=".4" d="m1158.7 2747.4-.5 7.9 12.6 1.2 10.1-7.6z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
<path d="m1265.2 2599.8 3.7-.8-.4 10.3-2.3.9z" transform="matrix(.36355 0 0 .3308 -130 -670.9)"/>
</g>
<path fill="#fff" d="M320 326.3c51.6 0 93.6-38.2 93.6-85.2a82 82 0 0 0-32.6-64.4 70 70 0 0 1 19.2 48c0 40.8-35.9 73.9-80.2 73.9s-80.2-33.1-80.2-74c0-18.3 7.2-35.1 19.2-48a82 82 0 0 0-32.6 64.6c0 46.9 42 85.1 93.6 85.1" class="arab-fil2"/>
<g fill="#fff" stroke="#000" stroke-width="8">
<path d="M-54 1623c-88 44-198 32-291-28-4-2-6 1-2 12 10 29 18 52-12 95-13 19 2 22 24 20 112-11 222-36 275-57zm-2 52c-35 14-95 31-162 43-27 4-26 21 22 27 49 5 112-30 150-61z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M0 1579c12 0 34-5 56-8 41-7 11 56-56 56v21c68 0 139-74 124-107-21-48-79-7-124-7s-103-41-124 7c-15 33 56 107 124 107v-21c-67 0-97-63-56-56 22 3 44 8 56 8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M54 1623c88 44 198 32 291-28 4-2 6 1 2 12-10 29-18 52 12 95 13 19-2 22-24 20-112-11-222-36-275-57zm2 52c35 14 94 31 162 43 27 4 26 21-22 27-49 5-112-30-150-61z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M3 1665c2 17 5 54 28 38 31-21 38-37 38-67 0-19-23-47-69-47s-69 28-69 47c0 30 7 46 38 67 23 16 25-21 28-38 1-6 6-4 6 0z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
</g>
<g fill="#fff" stroke="#000" stroke-width="8">
<path d="M-29 384c-13-74-122-79-139-91-20-13-17 0-10 20 20 52 88 73 119 79 25 4 33 6 30-8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M4 386c11-76-97-112-110-129-15-18-17-7-10 14 13 45 60 98 88 112 23 12 30 17 32 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M93 430c10-91-78-105-101-134-15-18-16-8-11 13 10 46 54 100 81 117 21 13 30 18 31 4z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M66 410c-91-59-155-26-181-29-25-3-33 13 10 37 53 29 127 25 156 14 30-12 21-18 15-22zm137 40c-28-98-93-82-112-94s-21-9-17 13c8 39 75 82 108 95 12 4 27 10 21-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M190 467c-78-63-139-16-163-23-18-5-10 7-3 12 50 35 112 54 160 32 19-8 20-10 6-21zm169 64c1-62-127-88-154-126-16-23-30-11-22 26 12 48 100 101 148 111 29 6 28-4 28-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M355 542c-81-73-149-49-174-56-25-6-35 9 4 39 48 36 122 43 153 36s23-14 17-19zm145 107c-23-106-96-128-114-148-17-20-35-14-20 34 18 57 77 107 108 119 30 13 28 3 26-5z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M499 663c-59-95-136-92-160-105-23-14-39-2-8 39 36 50 110 78 144 80s28-7 24-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M575 776c34-108-44-148-52-166-9-18-18-18-23 1-22 77 49 152 60 167 11 14 13 7 15-2z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M559 806c-27-121-98-114-114-131-17-17-19-5-16 17 8 59 79 99 111 119 10 6 22 13 19-5zm68 142c49-114-9-191-27-208-18-16-29-23-23 0 8 35-20 125 23 191 14 22 16 43 27 17z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M601 971c11-70-29-134-72-159-25-15-26-11-26 10 2 65 63 119 81 149 17 28 16 7 17 0z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M590 1153c-36-132 39-208 62-223 22-16 36-22 26 3-15 37 1 140-56 205-18 22-25 45-32 15z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M598 1124c30-115-35-180-55-193-19-13-31-18-22 3 12 32-1 122 49 178 16 19 22 38 28 12z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M561 1070c-54 58-55 143-31 193 15 29 17 27 31 6 38-61 15-149 17-188 1-37-11-17-17-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M650 1162c0 80-49 145-101 165-30 11-30 8-26-16 14-90 83-123 108-152 24-28 19-5 19 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M464 1400c88-80 41-136 45-188 2-28-9-21-19-11-56 55-59 153-47 191 5 17 13 15 21 8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M582 1348c-29 88-106 142-171 145-38 2-37-1-24-27 49-94 136-105 175-129 36-22 23 2 20 11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M343 1513c114-57 91-152 112-176 15-17-3-15-12-9-67 39-121 101-122 167 0 25 2 28 22 18z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M187 1619c144 23 211-86 253-96 22-5 6-14-5-15-96-11-218 34-255 84-15 20-15 24 7 27z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M333 1448c-29 95-137 173-218 179-38 3-38-1-24-26 65-118 178-138 218-168 34-26 27 6 24 15zM29 384c13-74 122-79 139-91 20-13 17 0 10 20-20 52-88 73-119 79-25 4-33 6-30-8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-4 386c-11-76 97-112 110-129 15-18 17-7 10 14-13 45-60 98-88 112-23 12-30 17-32 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-93 430c-10-91 78-105 101-134 15-18 16-8 11 13-10 46-54 100-81 117-21 13-30 18-31 4z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-66 410c91-59 155-26 181-29 25-3 33 13-10 37-53 29-127 25-156 14-30-12-21-18-15-22zm-137 40c28-98 93-82 112-94s21-9 17 13c-8 39-75 82-108 95-12 4-27 10-21-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-190 467c78-63 139-16 163-23 18-5 10 7 3 12-50 35-112 54-160 32-19-8-20-10-6-21zm-169 64c-1-62 127-88 154-126 16-23 30-11 22 26-12 48-100 101-148 111-29 6-28-4-28-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-355 542c81-73 149-49 174-56 25-6 35 9-4 39-48 36-122 43-153 36s-23-14-17-19zm-145 107c23-106 96-128 114-148 17-20 35-14 20 34-18 57-77 107-108 119-30 13-28 3-26-5z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-499 663c59-95 136-92 160-105 23-14 39-2 8 39-36 50-110 78-144 80s-28-7-24-14z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-575 776c-34-108 44-148 52-166 9-18 18-18 23 1 22 77-49 152-60 167-11 14-13 7-15-2z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-559 806c27-121 98-114 114-131 17-17 19-5 16 17-8 59-79 99-111 119-10 6-22 13-19-5zm-68 142c-49-114 9-191 27-208 18-16 29-23 23 0-8 35 20 125-23 191-14 22-16 43-27 17z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-601 971c-11-70 29-134 72-159 25-15 26-11 26 10-2 65-63 119-81 149-17 28-16 7-17 0z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-590 1153c36-132-39-208-62-223-22-16-36-22-26 3 15 37-1 140 56 205 18 22 24 45 32 15z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-598 1124c-30-115 35-180 55-193 19-13 31-18 22 3-12 32 1 122-49 178-16 19-22 38-28 12z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-561 1070c54 58 55 143 31 193-15 29-17 27-31 6-38-61-15-149-17-188-1-37 11-17 17-11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-650 1162c0 80 49 145 101 165 30 11 30 8 26-16-14-90-83-123-108-152-24-28-19-5-19 3z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-464 1400c-88-80-41-136-45-188-2-28 9-21 19-11 56 55 59 153 47 191-5 17-13 15-21 8z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-582 1348c29 88 106 142 171 145 38 2 37-1 24-27-49-94-136-105-175-129-36-22-23 2-20 11z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-343 1513c-114-57-91-152-112-176-15-17 3-15 12-9 67 39 121 101 122 167 0 25-2 28-22 18z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-187 1619c-144 23-211-86-253-96-22-5-6-14 5-15 96-11 218 34 255 84 15 20 15 24-7 27z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
<path d="M-333 1448c29 95 137 173 218 179 38 3 38-1 24-26-65-118-178-138-218-168-34-26-27 6-24 15z" class="arab-fil2 arab-str2" transform="matrix(.23458 0 0 .21345 320 27.3)"/>
</g>
<path fill="#006233" d="M359.6 128.9c-4.4-3-20.8-1.3-23.9-3.3 5.9 4.5 19 1.3 24 3.3zm39.7 7.6c-3.5-5.7-24.4-9.6-27.5-14.7 5.5 9.8 21.6 8.5 27.5 14.7m-3 6.6c-7.8-6.8-25.8-4-31.3-8 12.7 10.4 19.7 2.3 31.2 8zM351 112.8c4.9 2.4 11 4.7 14 10.3-3.5-4.3-9.8-6-15-9.6q.5-.1 1-.7m77 44c-3.1-6.4-14-13.4-14.9-15.8 3 8.3 12 10.3 14.8 15.8zm2.7 11.3c-9.4-13.4-24.1-12-30-17 4.5 4.9 21.4 8 30 17m21.8 20.7c.7-14.3-11-19.6-11.4-27.7-.3 9.6 12 22.6 11.4 27.7m-5.8 7.7c-2.4-12.4-18.3-13.2-21.1-20.5 0 6.8 18.7 13.9 21 20.5zm13.1-7c8.5 9.4 2.6 23.7 6.1 34.1-4.2-7.7-2.1-26.9-6-34.1zm-13.8 40c12.6 12.5 7.5 26.3 12.6 32.3-6.3-8.3-5.4-24.5-12.6-32.2zm26.3 1.8c-10.9 10.9-4.3 27.3-10 35 6.4-6.6 5.5-27 10-35m-13.7 0c-1.4-12.6-14.3-19.2-15.4-26-1.5 6.8 12.4 17.5 15.4 26m-6.5 30c2 8.8-5.7 27.6-3.3 33.4-5.2-10 4.4-29 3.3-33.3zm16.6 20.1c-5.1 15.6-15.5 14.6-18.7 24 2.3-9 16-17.1 18.7-24m-33.5 7.3c-6.8 10.5-1.2 22.4-6.8 29.9 8-7.5 3.7-21.4 6.8-29.9m16.4 28.6c-8.2 13.9-25.1 12.6-31.9 22.6 6.8-12.6 27.7-14.7 32-22.6zm-29.8-1.7c-14.5 9.2-10 18.8-21.1 29 13.8-10.2 12.7-21.5 21.1-29m-6.8 37.2c-14-.5-34.2 16.2-46.4 14.9 12.2 2.4 34.7-12.6 46.4-15zm-22.7-15c-1 13-37.6 21.4-41.5 30.1 4.4-11.5 36.6-20 41.5-30zm-82.8-240c-4.7-3.7-10.4-6.7-12-10.3 1.2 4.7 5.8 8 10.5 11.3.5-.2 1-.9 1.5-1.1zm-8 3.7c-7.3-3.2-15.7-3-19.5-7.4 2.4 4.4 10.3 6.1 17.1 8.5q1.2-.7 2.4-1zm-21.1 27.3c4.4-3 20.8-1.2 23.9-3.2-5.9 4.5-19 1.3-24 3.2zm-39.7 7.7c3.5-5.7 24.4-9.6 27.5-14.7-5.4 9.8-21.6 8.5-27.5 14.7m3 6.6c7.8-6.8 25.9-4 31.3-8-12.7 10.4-19.7 2.3-31.2 8zm31.3-20c4.4-8.6 17-9.6 20.4-14.8-5 7.7-15.7 9-20.4 14.8m36-7.5c13-5.5 25.7-.8 31.8-3.4-7.5 3.6-25.4 1.9-31.7 3.4zm-98.9 41.2c3-6.4 13.8-13.5 14.8-15.8-3 8.3-12 10.3-14.8 15.8m-2.8 11.3c9.4-13.4 24.1-12 30-17-4.4 4.9-21.3 8-30 17m-21.8 20.7c-.7-14.3 11-19.6 11.5-27.7.2 9.6-12 22.6-11.5 27.7m5.8 7.7c2.4-12.4 18.3-13.2 21.1-20.5 0 6.8-18.7 13.9-21 20.5zm-13.1-7c-8.4 9.4-2.6 23.6-6 34.1 4.1-7.7 2-26.9 6-34.1m13.8 40c-12.6 12.5-7.5 26.3-12.6 32.3 6.3-8.3 5.4-24.5 12.6-32.2zm-26.2 1.8c10.8 10.9 4.2 27.3 9.8 35-6.3-6.6-5.4-27-9.8-35m13.6 0c1.4-12.6 14.3-19.2 15.4-26 1.5 6.8-12.4 17.5-15.4 26m6.5 30c-2 8.8 5.7 27.6 3.3 33.4 5.2-10-4.4-29-3.3-33.3zm-16.6 20.1c5.2 15.6 15.5 14.6 18.8 24-2.4-9-16-17.1-18.8-24m33.5 7.3c6.8 10.5 1.2 22.4 6.8 29.9-8-7.5-3.7-21.4-6.8-29.9m-16.4 28.6c8.2 13.9 25.1 12.6 32 22.6-6.9-12.6-27.8-14.7-32-22.6m29.8-1.7c14.5 9.2 10.1 18.8 21.1 29-13.8-10.2-12.6-21.5-21.1-29m6.8 37.1c14-.4 34.3 16.3 46.4 15-12.1 2.3-34.7-12.6-46.4-15m22.8-15c.9 13.1 37.5 21.4 41.5 30.2-4.5-11.5-36.6-20-41.6-30.1zM301 116c2.8-11.5 17-13.6 18.8-20.5-.7 7.3-17.4 15.4-18.8 20.5m41.5-28.6c-2 8.8-17.3 13.7-19.4 20.3.7-9 16.4-14 19.4-20.3m-12 20.8c7.3-10.7 22.3-8 27.5-14.1-3.8 7.2-22.3 7.4-27.5 14z" class="arab-fil0"/>
<path fill="none" stroke="#f7c608" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.8" d="M429.8 240c0 55.5-49.3 100.4-110.3 100.4-60.9 0-110.3-44.9-110.3-100.3 0-55.5 49.4-100.4 110.3-100.4 61 0 110.3 45 110.3 100.4z"/>
<path fill="#f7c608" d="m298 340.5-.5 1.2q-.5 1.3-2.1 1.2l-8-1.9 2.6-7.7 8 1.7q1.5.4 1 1.8l-.2 1m-19-4.8.4-1.2q.5-1.4 2-1l7.8 2.5-2.5 7.7q-4.2-1-7.9-2.3c-.8-.4-1-2-.7-2.9"/>
<path fill="#006233" d="m296.4 339.8-.3.9q-.5 1-1.7.8l-6.6-1.6 1.8-5.6c2.4.7 4.9 1.2 6.6 1.5q1.3.4 1 1.4l-.2.7m-15.8-4 .3-1q.4-.8 1.6-.6 2.8 1 6.5 2l-1.8 5.6-6.5-1.9c-.7-.4-1-1.5-.7-2.1"/>
<path fill="#f7c608" d="m267.7 330.8-.7 1q-.9 1.2-2.4.7c-2-1.2-4.7-2.5-7-3.9l4.8-6.8 7.1 3.7q1.2.8.5 2l-.6 1m-16.7-9.6.7-1q1-1.2 2.3-.5 2.8 2 6.7 4.4l-4.9 6.8-6.7-4.2c-.7-.7-.4-2.3 0-3"/>
<path fill="#006233" d="m266.5 329.7-.6.8q-.6.8-1.9.3c-1.6-1-3.8-2-5.8-3.2l3.5-4.9c2 1.3 4.3 2.4 5.9 3.1q1 .6.5 1.6l-.5.6m-13.8-7.9.5-.8q.7-.8 1.8-.2l5.6 3.6-3.5 4.9q-3.1-1.7-5.6-3.5c-.6-.5-.5-1.7-.1-2.2"/>
<path fill="#f7c608" d="m241.8 313.7-1 .8q-1.3.8-2.6 0c-1.5-1.6-3.7-3.5-5.5-5.5l6.7-5.3c2 2.1 4.2 4 5.7 5.4q1 1-.1 2l-.9.8m-13-13.4 1-.9q1.2-.8 2.3.2a73 73 0 0 0 5 6l-6.7 5.2q-2.9-3-5.2-5.8c-.5-.8.3-2.2 1-2.8"/>
<path fill="#006233" d="m240.9 312.4-.8.6q-.8.6-1.9-.2l-4.6-4.6 4.9-3.8 4.7 4.5q.7 1 0 1.7l-.7.5m-10.8-11.2.7-.6q1-.6 1.8.2 1.8 2.3 4.3 5l-4.9 3.7-4.3-4.8c-.4-.6.1-1.7.6-2.1"/>
<path fill="#f7c608" d="m222.2 290.7-1.3.5q-1.3.4-2.4-.6l-3.6-6.8 8.1-3.3c1.3 2.5 2.7 5 3.8 6.6q.5 1.3-.8 2l-1 .4m-8.4-16.2 1.2-.6q1.5-.4 2.2.8a71 71 0 0 0 3 7l-8 3.3a60 60 0 0 1-3.3-6.8c-.2-1 1-2.1 1.9-2.5"/>
<path fill="#006233" d="m221.7 289.2-.9.3q-1 .4-1.8-.6l-3-5.6 5.8-2.4 3.2 5.5q.4 1.2-.5 1.6l-.8.3m-7-13.5 1-.3q1-.4 1.6.6l2.5 5.8-5.7 2.4-2.7-5.7c-.2-.7.6-1.6 1.2-1.9"/>
<path fill="#f7c608" d="m210.5 263.5-1.4.2a2 2 0 0 1-2-1.2l-1.5-7.4 8.8-1.1a64 64 0 0 0 1.7 7.3q0 1.4-1.4 1.7l-1.2.2m-3-17.7 1.4-.2q1.5-.1 1.8 1.2.1 3.3.7 7.5l-8.8 1.1-1-7.4c.2-.9 1.7-1.7 2.6-1.8"/>
<path fill="#006233" d="m210.5 262-1 .1q-1 .1-1.5-1l-1.1-6.2 6.3-.8 1.3 6.1q.1 1.1-1 1.4l-.8.1m-2.5-14.7 1-.2q1.2 0 1.3 1.1.2 2.8.7 6.2l-6.3.8q-.6-3.1-.8-6.1c0-.7 1.1-1.4 1.8-1.5"/>
<path fill="#f7c608" d="m207.7 234.5-1.4-.2q-1.5-.2-1.6-1.7c.3-2 .5-4.8 1-7.4l8.7 1.2a65 65 0 0 0-.7 7.4q-.3 1.4-1.8 1.3l-1.2-.2m2.6-17.7 1.4.1q1.4.4 1.4 1.7a69 69 0 0 0-1.7 7.4l-8.8-1.2q.6-3.8 1.4-7.4c.4-.8 2.1-1.2 3-1"/>
<path fill="#006233" d="M208.2 233h-1q-1-.4-1.1-1.5l.8-6.1 6.3.8-.6 6.2q-.2 1.1-1.4 1h-.8m2.1-14.9 1 .2q1.1.2 1 1.4-.7 2.6-1.3 6l-6.3-.7 1.1-6.2c.3-.7 1.5-1 2.2-1"/>
<path fill="#f7c608" d="m214 206-1.3-.6q-1.3-.5-1-2c1-2 2-4.6 3.2-6.9l8 3.4a70 70 0 0 0-3 7q-.6 1.1-2 .7l-1.2-.5m8-16.4 1.3.6q1.3.6.8 2l-3.8 6.6-8.1-3.4q1.7-3.6 3.6-6.7c.6-.7 2.4-.7 3.2-.3"/>
<path fill="#006233" d="m215 204.7-1-.4c-.6-.2-.8-1-.6-1.6l2.6-5.7 5.8 2.4-2.5 5.8q-.6 1-1.6.6l-.8-.3m6.7-13.6.9.4q1 .4.5 1.6l-3.2 5.5-5.7-2.4q1.4-3.1 3-5.6c.4-.6 1.7-.7 2.3-.4"/>
<path fill="#f7c608" d="m228.9 180.2-1.1-.9q-1-.9-.4-2.2c1.6-1.6 3.4-3.9 5.2-5.8l6.8 5.3a72 72 0 0 0-5 6 2 2 0 0 1-2.4 0l-.9-.6m12.8-13.7 1 .8q1.2 1 .2 2.2l-5.7 5.3-6.8-5.3q2.8-3 5.6-5.5c.8-.5 2.5 0 3.2.5"/>
<path fill="#006233" d="m230.2 179.2-.8-.6q-.7-.7-.1-1.7l4.3-4.9 4.8 3.8-4.2 5q-.8.8-1.8.2l-.6-.5m10.6-11.4.8.6q.7.7 0 1.6l-4.8 4.6-4.8-3.8q2.3-2.6 4.6-4.6c.7-.5 2-.2 2.4.2"/>
<path fill="#f7c608" d="m251 159.2-.7-1q-.7-1.2.4-2.3c2-1.1 4.4-2.8 6.8-4.2l4.8 6.8a78 78 0 0 0-6.7 4.4 2 2 0 0 1-2.2-.4l-.7-1m16.5-9.8.7 1q.8 1.4-.4 2.1-3.3 1.5-7.2 3.7l-4.8-6.8q3.5-2.2 7-3.9c1-.2 2.4.7 2.9 1.4"/>
<path fill="#006233" d="m252.7 158.6-.6-.7q-.4-1 .4-1.7l5.7-3.5 3.4 4.8-5.5 3.7q-1.1.6-1.8-.3l-.5-.6m13.7-8.2.6.8q.4.9-.5 1.5l-6 3.1-3.4-4.8 5.8-3.3c.8-.2 1.9.4 2.3.9"/>
<path fill="#f7c608" d="m279 144.9-.5-1.3q-.2-1.3 1-2l7.9-2.3 2.5 7.7a83 83 0 0 0-7.8 2.6q-1.4.3-2-1l-.3-1m18.8-5.4.4 1.3q.3 1.3-1 1.8l-8.1 1.7-2.5-7.7a85 85 0 0 1 8-2c.9 0 2 1.3 2.3 2"/>
<path fill="#006233" d="m280.6 144.7-.3-1q-.1-.8 1-1.4l6.5-2 1.8 5.6-6.5 2q-1.2.4-1.6-.6l-.3-.7m15.7-4.4.3.9q.3 1-1 1.4-3 .5-6.6 1.4l-1.8-5.5 6.6-1.6c.8-.1 1.6.8 1.8 1.4"/>
<path fill="#f7c608" d="M310 138.2v-1.3q.2-1.3 1.7-1.7l8.2-.2v8.1a84 84 0 0 0-8.2.4q-1.6 0-1.6-1.5v-1m19.7-.2v1.2q-.1 1.4-1.7 1.5l-8.2-.4V135q4.3 0 8.2.2c1 .2 1.7 1.7 1.7 2.6"/>
<path fill="#006233" d="M311.8 138.5v-1q0-.9 1.3-1.2l6.9-.1v5.8q-4 0-6.9.3-1.2-.1-1.3-1v-.9m16.3-.1v.9q0 1-1.3 1l-6.8-.2v-5.8l6.8.1c.8.2 1.3 1.2 1.3 1.9"/>
<path fill="#f7c608" d="m340 139.6.3-1.2q.5-1.2 2.1-1.2l8 1.8-2.5 7.8-8-1.6q-1.4-.5-1.1-1.9l.3-1m19 4.7-.4 1.2q-.5 1.4-2 1l-7.8-2.4 2.5-7.8q4.1 1 7.8 2.3c.8.4 1 2 .8 2.8"/>
<path fill="#006233" d="m341.5 140.3.2-.9q.5-1 1.7-.8l6.6 1.5-1.7 5.6-6.7-1.4q-1.1-.4-1-1.4l.3-.7m15.8 4-.3.8q-.4 1-1.6.7l-6.5-2 1.7-5.6q3.5.9 6.6 1.9c.7.3 1 1.5.7 2"/>
<path fill="#f7c608" d="m370.2 149.1.7-1q.9-1.2 2.4-.7c2 1.1 4.7 2.4 7.1 3.8l-4.7 6.9a81 81 0 0 0-7.3-3.6q-1.2-.9-.5-2.1l.7-1m16.8 9.5-.8 1a2 2 0 0 1-2.2.5l-6.7-4.3 4.7-6.9q3.7 2 6.8 4.2c.7.6.4 2.2-.1 3"/>
<path fill="#006233" d="m371.5 150.2.5-.8q.6-.7 1.9-.4l5.8 3.2-3.4 5-6-3.1q-1-.6-.4-1.6l.4-.7m14 7.9-.6.8q-.6.8-1.8.2l-5.6-3.6 3.4-4.9 5.7 3.4c.6.6.5 1.7.1 2.3"/>
<path fill="#f7c608" d="m396.3 166 1-.9q1.2-.8 2.5 0l5.6 5.5-6.6 5.3a75 75 0 0 0-5.8-5.3q-1-1 .1-2l.9-.8m13.2 13.3-1 .9a2 2 0 0 1-2.4-.2 72 72 0 0 0-5-5.9l6.7-5.3 5.2 5.7c.4.8-.3 2.3-1 2.8"/>
<path fill="#006233" d="m397.2 167.3.7-.6q.8-.5 2 .1l4.6 4.6-4.8 3.8-4.8-4.5q-.8-.9 0-1.6l.7-.5m11 11-.8.7q-.9.6-1.8-.2l-4.3-4.9 4.8-3.8 4.4 4.7c.4.7-.1 1.8-.6 2.2"/>
<path fill="#f7c608" d="m416.1 188.9 1.3-.6q1.4-.4 2.4.7l3.7 6.6-8.1 3.5q-2-4-4-6.6-.5-1.3.9-2l1-.5m8.6 16.2-1.3.5c-.8.4-1.8 0-2.1-.7a71 71 0 0 0-3.1-7l8-3.4 3.3 6.9c.2.9-1 2-1.8 2.4"/>
<path fill="#006233" d="m416.6 190.4.9-.4q1-.4 1.8.6l3 5.5-5.8 2.5-3.2-5.5q-.4-1 .5-1.6l.8-.3m7 13.5-.8.3q-1 .4-1.7-.6-1-2.6-2.6-5.8l5.8-2.5 2.8 5.7c.1.8-.7 1.7-1.3 2"/>
<path fill="#f7c608" d="m428 215.9 1.4-.2a2 2 0 0 1 2.1 1.2l1.5 7.3-8.8 1.3a65 65 0 0 0-1.7-7.3q-.1-1.4 1.4-1.7l1.1-.2m3.2 17.7-1.4.2q-1.5.1-1.8-1.3l-.8-7.4 8.8-1.3 1 7.5c0 .9-1.6 1.7-2.5 1.8"/>
<path fill="#006233" d="m428 217.4 1-.1q1.1 0 1.5 1l1.2 6.1-6.3 1-1.3-6.2q-.2-1.2 1-1.3l.8-.2m2.6 14.7-1 .2q-1.1 0-1.4-1l-.7-6.3 6.3-.9q.7 3.3.9 6.2c0 .7-1.1 1.4-1.8 1.5"/>
<path fill="#f7c608" d="m431.1 244.9 1.4.1q1.5.3 1.7 1.8l-.9 7.4-8.8-1.1c.4-2.7.6-5.5.6-7.5.1-.8 1-1.4 1.9-1.2l1.1.1m-2.4 17.8-1.4-.2q-1.5-.2-1.4-1.7 1-3.1 1.6-7.3l8.8 1q-.6 4-1.3 7.4c-.4.9-2.1 1.3-3 1.2"/>
<path fill="#006233" d="M430.6 246.4h1q1 .4 1.2 1.5l-.8 6.2-6.3-.8.6-6.2q.1-1.1 1.3-1.1h.9m-2 14.9-1-.1q-1.1-.2-1-1.4.7-2.7 1.2-6.1l6.3.8-1 6c-.3.8-1.6 1.2-2.2 1"/>
<path fill="#f7c608" d="m425.1 273.5 1.3.5q1.3.7 1 2l-3 7-8.2-3.3a66 66 0 0 0 3-7q.6-1.2 2-.8l1.2.4m-7.9 16.5-1.2-.5q-1.4-.7-.9-2 1.9-2.8 3.8-6.6l8.1 3.3-3.5 6.7c-.6.7-2.4.7-3.3.3"/>
<path fill="#006233" d="m424.2 274.8 1 .3q.7.5.6 1.7l-2.6 5.7-5.9-2.3 2.5-5.8q.6-1 1.6-.8l.8.4m-6.5 13.6-1-.3q-1-.6-.4-1.6l3-5.5 5.9 2.3-3 5.6c-.5.6-1.8.7-2.4.4"/>
<path fill="#f7c608" d="m410.5 299.4 1.1.8q1 1 .4 2.3c-1.6 1.6-3.4 3.8-5.2 5.8L400 303c2-2 3.8-4.3 5-6q1-.9 2.3-.1l.9.7m-12.6 13.8-1-.8q-1.2-1-.3-2.1 2.6-2.2 5.7-5.5l6.8 5.3-5.5 5.6c-.8.5-2.5 0-3.2-.6"/>
<path fill="#006233" d="m409.2 300.4.8.6q.7.6.1 1.7l-4.3 4.8-4.9-3.7q2.6-2.8 4.2-5 .9-.8 1.8-.2l.6.5m-10.4 11.5-.8-.6q-.8-.7 0-1.7l4.6-4.5 5 3.7q-2.4 2.6-4.7 4.7c-.6.4-1.8.1-2.4-.3"/>
<path fill="#f7c608" d="m388.5 320.5.7 1q.7 1.3-.3 2.3l-6.7 4.3-5-6.8a78 78 0 0 0 6.7-4.4 2 2 0 0 1 2.2.4l.7.9m-16.4 10-.7-1q-.8-1.3.4-2.2l7.2-3.7 4.8 6.8-7 4c-.9.2-2.3-.7-2.9-1.4"/>
<path fill="#006233" d="m386.9 321.1.5.8q.5.8-.4 1.7l-5.6 3.5-3.5-4.8 5.6-3.7q1-.6 1.7.2l.5.7m-13.6 8.3-.6-.8q-.4-.9.5-1.6l6-3.1 3.4 4.8q-3 1.9-5.8 3.3c-.7.3-1.9-.3-2.2-.8"/>
<path fill="#f7c608" d="m360.8 335.1.4 1.2q.3 1.4-1 2l-7.8 2.5-2.6-7.8a75 75 0 0 0 7.7-2.6q1.5-.2 2 1l.4 1m-18.8 5.5-.4-1.3q-.3-1.4 1-1.8 3.6-.6 8-1.8l2.7 7.8-8 2c-1 0-2-1.3-2.3-2"/>
<path fill="#006233" d="m359 335.3.4.9q.2 1-1 1.5l-6.4 2-1.9-5.6 6.4-2q1.3-.4 1.7.6l.2.7m-15.6 4.5-.3-.9q-.2-1 1-1.4l6.6-1.5 1.9 5.6-6.6 1.6c-.8 0-1.7-.8-2-1.4"/>
<path fill="#f7c608" d="M329.7 342v1.3q-.1 1.4-1.6 1.7c-2.4 0-5.4.3-8.2.3l-.1-8.1a82 82 0 0 0 8.2-.5q1.6 0 1.6 1.5v1m-19.6.4v-1.2q0-1.4 1.6-1.5l8.2.3v8.1l-8.2-.1c-.9-.2-1.6-1.7-1.6-2.6"/>
<path fill="#006233" d="M328 341.8v.9q-.1.9-1.4 1.2l-6.8.2v-5.7q4-.1 6.8-.4 1.2 0 1.4 1v.8m-16.4.3v-1q0-.9 1.3-1 3 .3 6.9.2v5.8H313c-.8-.2-1.4-1.3-1.4-1.9"/>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

+72
View File
@@ -0,0 +1,72 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-as" viewBox="0 0 640 480">
<path fill="#006" d="M0 0h640v480H0Z"/>
<path fill="#bd1021" d="m-.6 240 640-240v480Z"/>
<path fill="#fff" d="m59.7 240 580-214.3v428.6"/>
<path d="M474 270.4c5.1.3 5 5.4 5 5.4l18 .4c2.3-6.3 4.8-5.6 9.2-2.4a33 33 0 0 0 8.7 4.2c1.7-9 14.5-7.2 14.5-7.2 5.6-13 6-12.9 2.7-14.5a11 11 0 0 1-4.6-4.5c-3-3.7-4.6-9.1-5-12.4s-4.2 1.6-5 .6c-.6-1-6.3-.4-6.3-.4 1.4 1.5-3.4.6-3.4.6.5.4 0 1.7 0 1.7-.4-.6-4.1-1.2-4.1-1.2l-1.1 1.6c-2-.8-6-.7-6-.7a20 20 0 0 0-10.9 2.8c-1.6.9-7.4 3.8-12.3 8.5-4.7 4.6-7.4 4-7.4 4-1.4 5.2-12.8 11.5-12.8 11.5-1.8 1.6-7.6 2.4-10.5 0s0-6.9 0-6.9c1.2-2 2.2-1.9 2.3-9 .1-4.7 5-8.5 10-14 6.3-6.8 15-18 15-18 0 3.4 1.8 4 1.8 4 1.7-3.5 4.2-6.3 4.2-6.3q.3.4.5.4l3-3.6c-.5-.3-6 0-11 4.4s-8.4 3-8.4 3c-3.5-1.2-3.8-4-3.8-4-2.5-10.9 7.4-18.7 7.4-18.7-13.4-3.2-3.7-20.3 13-27.5s16.4-10.5 16.4-10.5a13 13 0 0 1 1.8 3c.1 0 1.4-1.9 11-6.1 9.6-4.3 14.2-8 14.2-8 1.2 2.4 1 4 1 4 26.3-9.1 52-30.2 52-30.2.8 1.7.5 4.4.5 4.4 4.2-4 19.7-13.2 19.7-13.2a9 9 0 0 1-4.6 8.2l.8 2.3a360 360 0 0 0 14.4-9.5c4.3 3.7.4 9.8.4 9.8 1.6-.3 2.6-1.6 2.6-1.6 1.2 6.4-5.9 12-5.9 12 1.3 0 3.3-1.3 3.3-1.3-1.3 7-14.4 14.6-14.4 14.6 1.9 1.8 0 4-1.6 5-1.5 1-4.3 3.3-3.4 4.2s6.7-3.2 6.7-3.2c1 2.9-6.5 8.6-6.5 8.6 5.2.7 19.6-5.9 19.6-5.9-1.1 5.6-6.6 10-13.3 12.5s-6.4 3-6.4 3c1.2.8 10.5-1.8 10.5-1.8-2.8 6.2-12.5 10.5-12.5 10.5 2.7 2.3 6.3-.4 10-2.9a58 58 0 0 1 14-6.4c5.3-1.9 9.2-.5 9.2-.5a12 12 0 0 1 8.4.6c8.7.7 9.6 3.9 9.6 3.9 1 .2 1.7.6 4 2.3 2.1 1.6 2 6.6 2 9.2-.2 2.4-.9 2.4-1.3 3q-.5 1.2-.5 2.5c0 1-2.2 6.9-15.7 6.9h-20.3c-1.2 0-2.5.7-2.5.7-5.7 2.8-2.7-2-9.4 3.6s-10.2 4.6-10.2 4.6A90 90 0 0 1 568 221c-4 2.6-3.3 2.3.3 3.8s8.8 0 8.8 0c-3.4 2.3-1 3.4-1 3.4 4.4-2.7 7.2-1.7 7.2-1.7 1.4 3.9-3.8 10-3.8 10 2 .3 5.8 0 5.8 0-1 2.7-4.6 5.6-7.4 6.4-2.7 1-2.3 1.3-1.4 3 .7 1.6.1 3.3.1 3.3-4.8-3.3-5-.4-5-.4-.5 4-.4 9.6-.4 9.6-3.4-1.7-3.5.5-3.5.5-1 3.6-5.1 7.7-5.1 7.7-.2-2.2-2.2-2.8-2.2-2.8-2.2 4.2-6.1 6.7-6.1 6.7-.5 3.5.5 8.6.5 8.6-2.6-.6-3.5-.6-4 0-.3.7.6 1 .6 1l33.4.8c.5 0 2.5.3 2.5 3.8 0 3.7-3 3.9-3 3.9l-36.4-.9s.1 1-1.8 2-1.2-1.1-1.7 3.4-7.8-.4-7.8-.4c-1.2 1.8-4 4-4 4-1.7-5-3.4-6.4-6-2.2s4.8 3.6 4.8 3.6 42.8-6.3 45.1-6.5 4.9-.1 6 3.1-5.3 3.8-5.3 3.8l-44 4.8c-.9 2.6-4.5 2.4-4.5 2.4.3 2.5-2.3 4-3.6 5-1.4.8-5.6.5-5.6.5-5 3.4-7.6.7-7.6.7-3.3 1.4-5.4.8-8.1-.4-2.8-1.2-2.5-4.5-2.5-4.5l-27.8 3a7 7 0 0 0-2.2 1.2c1 1.3-2 4.3-2 4.3.9.5 2.5 2.1 2.7 5.5.2 3.7-4.5 4.3-2.2 7 2.3 2.5 6.7.3 11.5-2s9.5-2 11.5-2 7.8 1.6 11.4 2.8 4.8.4 5-1.4 1.9-2.3 1.9-2.3c-.5 1.8.5 2.6.5 2.6a11 11 0 0 0 3.7-1.3c-.2 1.4-2 2.2-2 2.2-3.4 2.3 1.4 1.5 1.4 1.5a44 44 0 0 1 15.4-1.5 123 123 0 0 1 14.3 5.2c.4-1.2.1-4 .1-4 3 .8 4.2 2.5 4.2 2.5 1.2-1.2.4-3.4.4-3.4 9.7 5.5-2 8-5.1 9s-3 2.3-3 2.3a28 28 0 0 1 6.4-1.3c2.2-.2 1.4 0 6.5-1 5.2-1 7.8 1.2 7.8 1.2-4.3.2-5.5 1.5-5.5 1.5 2.6 1.7 0 3.4 0 3.4-3.8-5-7.2.1-7.2.1a15 15 0 0 1 6.4 1.4l5.4 2.7c3.6 1.6 2.9.6 5.6 1.6 2.8 1 1.7 3.7 1.7 3.7a7 7 0 0 0-3.7-3c-.2 3-3.1 3.5-3.1 3.5 3.6-4-4.1-5.8-7.8-5.7-3.6 0-6.3 2.4-6.3 2.4 7.3 6.9 12.3 4.6 12.3 4.6-.9 2.5-6.9 1.5-6.9 1.5 2.8 2.2 2.5 3.6 2.5 3.6-1.5-1.4-4-.7-9.2-4-5.2-3.5-9.9-2.3-9.9-2.3 5.2 5.3-1.8 8.6-1.8 8.6-2.6 1.6 1 3.5 1 3.5-3.2.6-3.6-2.6-3.6-2.6-1.7-.4-4.2 1.6-4.2 1.6.2-3.2 4.6-1.6 4.6-5 .2-3.5-4-6.2-16.3-4.5s-16-2.2-16-2.2c-1 0-1.2 1-1.2 1 2 2 2.9 2.8 2.6 4.2-.4 1.3.6 1.8.6 1.8-2.3-.2-2.4-2.8-2.4-2.8 0 1.1-.5 1.2-1.3 2.3s0 2.7 0 2.7c-1-.8-2.7-1.8-1-4.3 1.2-1.8-2.7-4.2-2.7-4.2-1.5-1.5-5.6 0-5.6 0a15 15 0 0 1-13.3-3.7c-1 0-2.9-.6-2.9-.6-8.9 4-16.7-4.6-16.7-4.6-6.7 1.3-9.8-2-11.8-5.2a12 12 0 0 0-5.2-5c-2.6-1.6-5.2-6.2-2.6-8.7 2-2.1 1.5-2.6 1.5-2.6-3.5-5.9 6.1-7.7 6.3-9.2.3-2 2.3-3.3 4.5-3.4s2.2 0 3.7-1.4c1.3-1.5 4 .3 4 .3.7-.4 5.5-4.1 9.7-2.2 4.3 1.9 7.9.6 7.9.6 3-.7 28-4 28-4 1.5-2.5 2.7-5.4 9.6-7s12-6 12-6c-1.2-1.2-3.2-1.2-4.2-1.3-1.1 0-3.2-2-3.2-2-1.3.6-2 .3-11 5.8-8.1 5-8.3-4.8-8.3-4.8H479c-.3 3.7-3 5.2-3 5.2l-6.5.3c-3.6-1.8-3.6-8.2-3.6-8.2-19.4.3-30.1 7.2-30.1 7.2-22-11.2-39.2-13.8-39.2-13.8a122 122 0 0 0 40.8-10.2 63 63 0 0 0 28.5 9c.5-5.4 4.1-6.7 4.1-6.7z"/>
<path fill="#ffc221" d="M442.3 314.6c-5.5 3.2-4.5 5-4 6s.5 2-1 3.6c-1.5 1.5-1.4 2-1.4 2 .3 5.4 4 6.6 5.7 8 1.4 1 3.6 4.5 3.6 4.5 2.9 4.1 5.9 4.2 8.1 4.2 2.3 0 2-.3 1-1.3l-3.4-2.7a18 18 0 0 1 5.9 4.1c5.6 6.2 10.8 5.4 13.1 5.2s2-1.7 2-1.7l-2.4-.4c-8.5-.8-11-6.4-11-6.4a24 24 0 0 0 15.6 6c2.4-.1 2.3.6 1.7.8l-2.4-.2c-1.1 0-1.1.3-.9.8q.6.5 2.7.4c1.4 0 .3.1 3.8 2.8 3.6 2.8 12.3.5 12.3.5-5.7-1.3-6.4-4-6.4-4-7.7 1-10.8-3.6-10.8-3.6a33 33 0 0 0-5.6-3.5 9 9 0 0 1-5-5.8c1.3 1.8 3.7 3.8 6.7 4.6s3.8 1.2 3.8 1.2a4 4 0 0 1-2.3-.2c-3-1-1.3.3-1.3.3 3.4 2.7 4.3 2.5 4.3 2.5 8.6.9 4.3-2.6 4.3-2.6 6.2 1.5 7.2-.8 7.2-.8 1.3 2.7 6 1.7 6 1.7-6.2 3-1.5 2.1-1.5 2.1 6.3-1.1 7.6.5 7.6.5 1.6 1.5 3.4 1.4 3.4 1.4s1.2 0 3.5.4c2.4.5 6.2 2.5 9.6 2.2 3.5-.5 4 .6 4 .6-.6-.3-2.2-.5-4.8.7-2.7 1.3-7.4 1.6-14.2 0s-7.4-1.3-7.4-1.3a9 9 0 0 1 3.4 4c.3 1.2 1.5 1.2 1.5 1.2.5-1.5 2.5-2.1 2.5-2.1a27 27 0 0 0 5 2.8c.4-.7 0-1.3 0-1.3 2.6 2.5 5.6 1.7 5.6 1.7.8-.5.6-2 .6-2 1 0 1.2.6 2 1.2.7.4 3 .1 3 .1-.8-.4-1.5-1.7-1.5-1.7 3.5-2.3 11-1.3 11-1.3 5.3 1 4.7 4.5 4.7 4.5a10 10 0 0 1 2.5 2.1c.5-1.2 0-2.5 0-2.5 2.6 1.2 3 4 3 4 3-3.2-2.7-6.8-2.7-6.8 2.7-.4 5.7-.2 7.5 0a14 14 0 0 1 6.6 3.1c2.1 1.7 5.9 2.5 5.9 2.5-.1-.7-2.2-2-2.7-2.2s-.6-.9-.6-.9c1.9.4 3.1.2 3.1.2-6.4-4-8.1-5.9-8.1-5.9 2.4.3 3.8-1.2 3.8-1.2-5.1 0-5.4-1.2-5.4-1.2.7.1 3.1.7 6.2.1s7.2 0 7.2 0c-2.2-3.6-10.7-3-13.5-2.8s-3.8-.2-3.8-.2c.4-.2.9-.6 3-.7 2.2 0 4.3.2 6.8-1.6 2.3-1.6 5.7-1 5.7-1-.8-1.6-4.7-2.2-8 0-3.5 2.1-6.5 1.5-6.5 1.5 5.3-.8 6.9-2.7 6.9-2.7-1.6-.4-2.5.1-5.8.8-3.2.6-4-.5-4-.5 3.5-2.1 6-3 6-3-3-.6-5.8-2-5.8-2-3.2 3-5.6 4.6-11.7 1.6-6-3.2-9.2-2.8-9.2-2.8a14 14 0 0 1 14.8.6c4 2.3 5 .4 5 .4-1.2-.7-1-1.5-1-1.5 9.6 4.9 13.8 2 15.9.5s-1-3.4-1-3.4c-.2 3-4 4.6-7.2 3.5-3-1-6-2.4-10.4-4.3s-10-.8-15.1.2c-5.2 1.1-5.9.6-6.4.2s-.7-1.7-3.4-.6c-2.6 1.1-8.8-1.8-12.6-2.7s-10.1-.5-15.5 2.5c-5.4 3.1-8.2 2.3-9.8 1.6-1.6-.8-2.7-2.8-.9-4.6s2-2.3 1.8-5c-.2-2.6-2.8-4.2-2.8-4.2 2.4-2.5 3-3 2.2-4-.8-1.2.4-1.2 1.8-1.8s.8-.7.5-1.5-1.2-.6-1.2-.6c-3.1.1-4.9-.8-4.9-.8-5.2-2.4-10.1 2.3-10.1 2.3-3-2.3-3.7-.7-4.2-.2q-.8.9-3 1c-1.2.2-3.1.7-3.8 1.9 0 0-.6 1 .1 2 0 0 .8 1.2-.6 2.7-1.5 1.5-2 1.8-1.5 3.3q.6 2-.3 3.3s-.7-.7-.5-1.7q.3-1.5 0-2s-1.5 1.4-1.8 2.4c0 0-.6-1.6 1.6-3.7q3.1-2.9 2.4-4c-.4-.6-2 .4-2.3.6z"/>
<path d="M448.4 338s-2.7-2-2.4-4.9c.3-2.7.3-3 0-3.7 0 0-.5.3-.4 1.4s-.2 2.1-.3 2.3c0 0-1.3-2.3-2-2.8 0 0 .6-2.4-.2-3.4q-1-1.5-2.4-.8c-1.2.4-2.1 1.5 2 4.8 0 0 1.5 1.3 2.5 3.9s2.8 3 3.1 3.2zm13-7.8s-.1-1.5 1.3-4.3a6 6 0 0 0 .3-5.6c-.3-.8-.6-.5.9-1.7 1.7-1.5-.7-3.4 2.3-6 0 0 1.8-1.6 2.3-2.3 0 0-3 1.6-5.2 2.5-2 .8-9.6 4.6-8 7.1 1.8 2.5 1.6 2.7 1.3 3.8 0 0-4.6-2.5-3-6.4 0 0 .8-1.5 2.7-3.4 1.8-1.6.8.4 4.3-1.7 0 0 2.7-1.6 4.3-3.9 0 0-2 1.2-2.6 1.4 0 0-4 .8-5.8 2.5-1.6 1.7-5.1 4.7-4 8 0 0-4-.4-5-4.7 0 0-7.6 9.4 8.4 13.8 0 0 3 .8 5.6 1z"/>
<path fill="#ffc221" d="M531.6 299c6-1 40.4-6.2 43.6-6.5 3.4-.3 4.7-.8 5.9 2 1.3 3-4.8 3.1-4.8 3.1l-41.1 4.7c-2 .2-2.5-.6-2.5-.6l-1.5-2s-.5-.6.4-.8z"/>
<path fill="#5a3719" d="M447.3 317.7s-4.4 9.3 13 11.6q-.1-.1.8-2.5c.8-1.5 2.3-4.5.8-6.4s1.2-.9 1.5-3.4c.5-2.5-.2-2.2 1-3.8 0 0-5.4 2-7.6 4.5-2 2.4 2.9 4.2 0 6.9 0 0-2.5-1-4-3.6 0 0-3.3 0-5.5-3.3"/>
<path d="M464.5 329.2s4.3 3.7 9.4 3.6c5.1-.3 7.4-1.6 8.7-3.6 0 0 1 1.5 1 2.6 0 0 4.4-3.7 12-.5s5.4 2.3 7.1 2.5c0 0-3.3-.5-10.7 2.9-7.7 3.5-27.7 2.3-27.6-7.5z"/>
<path fill="#5a3719" d="M457.3 312.6s1.9.3 3.8-1.9c0 0-2.6.5-3.8 2zM442.6 330s-3.6-2.8-1.3-3.4c0 0 1.7-.3 1.3 3.4"/>
<path d="M521.2 347.8s2-3.5 7.5-3.5 6.1 2.6 13.1 3c0 0-8.4 2.4-14.2.3-3-1.1-5.8-.2-6.4.2"/>
<path fill="#5a3719" d="M466.3 331.7s8.4 5 15.7-.5q.2 0 1.2 2s5.6-5.4 15.5.4c0 0-1.2-.1-5.9 1.8-6.1 2.7-21.4 4.5-26.5-3.8z"/>
<path d="M498.3 336.7s8 1 14.7.6c4.1-.2 8.6-1 6.4.4-2.3 1.3-1.1 1.5 8.4.7 9.4-1-.1 1.7 6.4 2.6 0 0-15.9 8-35.9-4.3"/>
<path fill="#5a3719" d="M519.2 331.7s4.6-1.7 9 .3c4.3 2 3.6 2.2 6.5 2.5 0 0-2 2.9-6.7.6s-6-2.8-8.8-3.4m5.2 14.3s4.6-2.3 9.6 0c.6.4 2 1 3.3 1.2 0 0-3.8 1.3-7.8 0-1.7-.5-3-.9-5.1-1.2m-22.7-8.2s10.3 1 15.8-.1c0 0-6.4 3 9.7 1.7 0 0 3.5-.4 3 .1-.3.5-.6 1 1.2 1.5 0 0-12 5.4-29.7-3.2"/>
<path d="M450.7 329.2s.2.7 2.4 1.7a9 9 0 0 1 4 3.9 6 6 0 0 0 3.5 2.9s-8 1.7-11.6-2.6c0 0-2.7-3 1.6-6"/>
<path fill="#5a3719" d="M513.7 347.6s-3.1-.2-7.5-1.7c-4.3-1.5-5.4-.2-7.9-2-2.4-1.9-7.3-.7-8.2-.6-1 .1-3.6 0-.3-2.1 0 0-2.6 0-3.6-1.4 0 0-1.2 1.2-5.6.8 0 0 2 3-6 2.1a10 10 0 0 0 11.1 3c0 .2-.5 2.5 3 3.5 3.8.9 4.5 1.6 6.4 2.3 0 0 .3-1.5-4.6-5 0 0 2.6-.2 6.4.7s12.2 3.1 16.8.4m2 3.7s.8 1.8 3.2 1.4a17 17 0 0 1 10.2.8s.7-3.2-7-3.4c0 0-4.8.2-6.4 1.2m-65.2-21s-3 2.5-.3 5c2.4 2.3 6.2 2.1 8 2 0 0-1-.6-2-2-1-1.5-1-2.5-3-3.4-2.1-.9-2.3-1.1-2.7-1.6m-3-12.6s-4.6 9.3 13 11.6q-.2-.1.7-2.5c.6-1.5 2.1-4.5.8-6.4-1.6-1.9 1.1-.9 1.5-3.4s-.3-2.2 1-3.8c0 0-5.5 2-7.7 4.5-2 2.4 2.9 4.2 0 6.9 0 0-2.5-1-4-3.6 0 0-3.3 0-5.5-3.3z"/>
<path d="M493.3 339.3s3.7-.6 13 2.9c9.4 3.4 13.3 2.6 14.6 2.5 0 0-5.2 2.8-13.4-.8-7.2-3.2-7.6-2-14.2-4.6"/>
<path fill="#ffc221" d="M551.8 337.2s2 0 3.4.5c0 0 .7-.7 2.7-1 0 0-1.3-1.2-6.1.5m-6.4-5.2s2.1 0 2.8-1.2c0 0-1.1-1.3-2.8-2 0 0 .4 1.6 0 3.2m-71.7-23.8s-.5-1 1.8-1.4l31.3-4.5s1.5 0 1.7 1c.3 1.1-.1 1.9-7.2 2.7l-25.6 3.2s-1.9.3-2-1"/>
<path fill="#ffc221" d="M502 306.9s0 4.1 4.2 4.7c4 .6 5.5-.2 6.5-2.3.3-.7 1.6-5-.2-5.3q-1.4-.2-2.9.3c-1.4.7-2.7 1.4-2.3 2 1 1.6 1.2 2 1 2-1.2.3-1.8-.6-2-1.2-.3-.8.5-1.2-2.2-.8q-1.9 0-2 .6zm17.5-3.2c2 .3 1.9 4.8-.6 6.9-2.8 2.2-5.4 1.3-5.4 1.3-1.4-.5-1.2-.4-.1-2 1-1.5 1.5-3.6.9-5q-.2-.8 1-1s2-.4 4.2-.2"/>
<path fill="#ffc221" d="M521.3 304.1s1.6 2-.4 5.5c0 0-.8 1 1.1.9 1.8-.2 6.1-2.2 5.7-4.8 0 0-.2-.6-1.3-.6s-.2-.5.3-.8c.4 0 1.9-.6-1.9-3 0 0-.6-.6-1.3-.3-.6.2-2.6 1-2.6 2.2q.2.9.4 1z"/>
<path fill="#ffc221" d="M525.4 300.9s3 2.1 3 2.8-.3 1.5.5 1.3c.8 0 4-.7 3-2.8q-1-3-3.2-3.4c-1.5-.6-1.9.1-3.2 1.1 0 0-.9.6-.1 1m-16.1 3s.5-1.5-2.2-2.2c0 0 1.1-1 3.4-.4 2.2.4 2 2 2 2.1 0 0-1.8 0-3.2.5m5.8-.4s3-.5 4.5-.4c0 0-1.6-3.3-5.7-2.3 0 0 1.5 1.8 1.2 2.7m5.3-.8s0-1.1 2.6-2.1c0 0-1.2-1.2-3-1-2 0-2.5.7-2.5.7s2.3.8 2.9 2.4m1-3.6s1.7.4 2.7 1.3c0 0 1.5-1.7 2.8-2 0 0-2.5-1.4-5.5.7"/>
<path fill="#5a3719" d="M435.8 290.9s7.2-6.2 11.2-5.4 2 .2 6.4-.5 9-1.1 10.8-.9c0 0-5.4-3.8-14.9-3.7 0 0-6.6 2.3-11.3 5.3 0 0-8.9-4.9-18-2 0 0 9.9 3.7 15.8 7.2"/>
<path fill="#ffc221" d="m512.2 301.4 1.2-.2s2 2.5.6 2.5c-1.2 0-.8-.3-1-1a2 2 0 0 0-.8-1.3m-9 .2s-.8 1 .6.8c1.7-.3 1.4 0 3.1-1.3 0 0 1.2-1.1 3.2-.4 0 0 1.8.6 3.2-.1 1.4-.8 1.7-.7 2.5-.6s.8.2 1.7-.6c1-.7 2.8-.1 3.9-1s2.5-.2 0-2c0 0-.5-.5-.5-1 0 0 1 .4 1.8 1 .8.8 2 .5 2.2.4 0 0 .2-2.3 2.3-4.3 2.3-2 2.3-2.2 1-2.2s-3.5-.6-4.3 0-7.2 4.8-11 5.5-7.3 1.8-9.7 5.8m-101.3-23.4s11.7 3 14.3 4.2c0 0 .6-1.9-4.7-3.4 0 0 12.9-.4 26.4 5.8 0 0 6.6-5.6 27.7-3.9 0 0 0-1.8.2-3.3 0 0-14.8-.4-28.4-8.7 0 0-12.3 6-35.5 9.3m64.7 5.6c-.7-11.8 3.8-13 3.8-13s2.1 0 4.4.5c0 0-3.6 4.3-2.6 12.8 0 0 .4 1.3-2.7 1.3s-2.9-1.5-2.9-1.5z"/>
<path fill="#5a3719" d="M469.8 291.7s-2.3-2.3-2.5-4.9c0 0 0-.6 2.2-.6s2.5-.2 3 1.1 2 4 2.3 4.3z"/>
<path fill="#ffc221" d="m474.5 285.7-.2-4.5c.1-6.6 1.2-6 1.7-5.2h2.3s-1.7-7.4-3.7-3a19 19 0 0 0-1.5 10.4q.1 3 .6 4z"/>
<path fill="#5a3719" d="M500.2 285.7s4.3.8-2.3 2.3c0 0 .3 8.2 8.2 2.5 0 0 4.7-3 8-4.2 0 0 1.6-.6 1.4-1.8 0 0 .2-1.5-1.5-1.1 0 0-1.4 0-2.3-.3 0 0-1-1.2-1.6-.8-.6.5-2.1.2-.9 1.7 1.2 1.4 1.5 1 2 .6s3.1-1.4.9.7-4.2-1.2-5-1.8zm-22 1h-2s-1 1.6-1.7-1l-.7 1.6s2.3 8.8 4.4-.6"/>
<path fill="#ffc221" d="M475.4 276.6s-1 5.8.3 9.2l21.1.5s-.2-4 0-9.7H494s-.5 4.6 0 7.5h-.5s-.4-4 0-7.5H491s-.4 4.3 0 7.5h-.5s-.4-3.7 0-7.5H488s-.5 3.9 0 7.5h-.6s-.5-3.9 0-7.5h-2.7s-.6 3.6 0 7.5h-.5s-.6-3.6 0-7.5h-2.7s-.6 4.2 0 7.5h-.6s-.4-4 .1-7.5h-2.5s-.7 3.5 0 7.5h-.7s-.4-3 .2-7.5zm22.3 10.4s-.5-10.2 1.4-13c2-2.6 2.5-2 5.8 0 3.4 2.2 7.7 4.5 8.5 4.8.6.3 1.6.5 1.6 2.4s.3 2.4-2.6 0a9 9 0 0 0-2.7-1.8c-2.6-.9.6.5 1.5 1.9.8 1 1.5 1-.6 1.5a219 219 0 0 0-12.9 4.2"/>
<path d="M505 279.6s-1.5-1.8.5-2.3 2.1 3 2.5 5.1c.3 2.2-2.5-2.1-2.8-2.7zm-2.7 9s-2.3.9-.7 1.6c1.4.7 5.5-2.7 4.2-2.5-1.6.3-3.5 1-3.5 1zm3-3s2-.3 1.6.5c-.3 1-1 .4-1.4.2s-1.6-.7-.1-.8z"/>
<path fill="#ffc221" d="M516 282.8s.6 4 4 5c0 0 2 .4 1.5-1.3 0 0-.3-1.5-.6-2-.3-.7-1.6-1-1.8-1.1-.2 0-.3-.5.6-.2 1 .3 1 .4 1-.3s-.6-.4-1.4-.8c-.4-.2 0-.4.3-.3.4 0 1.3.3 1.3-1 0 0 .1-.8-.9-.8-1.1 0-1-.6-.7-.7s1.5.8 1.9-.6-1.6-.5-1.4-1.2c.3-.8 1.7.3 1.7-.5.2-.8 1.3-1.1-.6-1.4-.9-.1 0-.6 1-.4s1.6-1.2 2.3-1.6 4.2-2.6-.6-1.9-6.1 3-6.3 3.5a13 13 0 0 0-1.3 7.6"/>
<path fill="#ffc221" d="M527 285.8q1-.1 1.4.5c.8 1.6-1 1-2 2.2s-1 1-2.4.5-2-2.5-2-2.5q0-1 1.2-.6s2.3.2 3.9 0zm-5-.8s0 .4.9.5c.7 0 3 .3 4.5-.1 0 0 .4-.1.2-1 0 0 0-.7-1.2-.4-1.3.2-3 0-3.7-.1q-1-.4-.8 1zm-.2-2.9s-.1 1.3 1.1 1.4c1.3.2 2.9.2 3.5 0 .5 0 1.4-.2 1.5-1 0-.7.2-1.2-1.3-.8s-3.4 0-3.6 0c-.1 0-1.2-.3-1.2.4m.5-2.5s-.3.6-.2 1.2q0 .7 2.5.7c2.5 0 3-.2 3.2-.7.1-.7.5-1.3-.7-1-1.3.1-3 .2-3.6 0q-1-.5-1.2-.2"/>
<path fill="#5a3719" d="M582.1 286s0 1 .9 2.2l-45.2-1.3s.6-.4.8-2.2z"/>
<path fill="#ffc221" d="M522.7 277.8s-.4 1.1.4 1.4q1.2.4 4 .1s1 0 1.3-1 .3-.4-2.3-.8c0 0-.8-.3 1.5-.3 0 0 1.4 0 1.5-.2.3-.2 2-1.7-.3-1.5-2.3 0-1.1-.5 0-.5s1.6.3 2 0 0-.2-.7-.8-.1-.5.3-.1q.6.6 1.3 0c.7-.6-.4-1.2 0-1 .3 0 .6.8 2 0 1.6-.7 3.5-.3 4 0 .6.5 2.2 1 3.1 0 1-.8-1.1-1.7-.3-1.8 1-.1 1.6.2 1.9-.5.4-.8-1.4-1.4.3-1.8s.2-5-.3-5.5c0 0-1.9 1.1-3.8 4.3-2.1 3.3-3.3 5.2-6 4.2-3.9-1.5-6 .6-6.5 1-1 .6 2 .8.2.9-1.7 0-1.7.2-1.8.4q-.2.4.3.6c.3 0 .9.6-.1.6s-1.8-.3-1.5.9l.6.3c.6 0 .8.8-.3.8q-1 0-.8.3m4.1 11.3s-.7.5.3.6c1.2 0 1.7.3 2.1-.3s1.8-.4.8-1.2-1.6-.3-3.2 1z"/>
<path fill="#ffc221" d="M531.5 275.5s3.8-3.5 6.9-1.2c3.2 2.5 3.4 2.8 3.5 2.9 0 0 .4.3-.4 1-.9.8 0 .8.9.3s1 0 1.4.5c.5.5 1.1.8-.3.8h-4.6s-2.1.2-1-.7c1-.9.8-1.9.3-2-.6 0 0 .6-.3 1q-.6.6-1.9.7-2 .3-.2 1c1.1.4-.2.7-.8.7s-3.5.2-.5.6-.3.3 2 1.5c2.4 1.4.6 4.3-.3 4.6 0 0-1 .5.2.4 1.3-.2 2-.3 1 .4-.8.6-2.6 2.9-5 1.2 0 0-1.2-.6.8-.7s-1.6-.5-2.3-1c-.5-.3-3-2.7-1.5-2.5 1.6.4 1-.5.1-.8s-1-1.6 0-1.4 2 .9 3 .8q1.2 0-1.2-.8c-1.7-.6-2.4-.7-2-2 .4-1.5 2.3.5 1.8-.6-.4-1-2-.5-1.2-1.9s1-.8 1.5-.6c.3.1 1 0-.1-.8-.8-.5 0-1.3.2-1.4"/>
<path d="M534.2 276.5s0-.5.8-.4c.6 0 .4-.2.6-.4.2 0 1.9.5.3 1-.6.3-1.6.2-1.6-.2z"/>
<path fill="#ffc221" d="M537.9 280.5s-1.3.6-.2 2c1 1 1 1.5 1 2.2-.1.8 43.4 1.3 43.4 1.3s0-2.9 1.8-4.5z"/>
<path fill="#5a3719" d="M582.8 285.2s.2-2.4 1.6-3.1c.7-.5 1.6-.3 2 1.6.6 2.7-1.7 5.1-2.7 4s-.8-2.5-.8-2.5z"/>
<path fill="#7b3c20" d="M532.9 295.4s2.9-2.5 3.4-3.6c0 0 7.8 5.6 7.3.4l.2-2.6s2.9.3 3.3-2l-7.3-.3s-.8-.1-2 1.1c-1 1.2-3.4 2.5-5.5 1.4 0 0-1-.8-1.9 0-1 .5-1 .7-.2 1.5s2.4 2.9 2.7 4zm16.8-15.4-4.3-.2s-1.5-2.2-4.6-4.6c0 0-.9-.4.8-1.8q2.5-2.3 2.3-3.5c0-.6 0-1.7.6-1 .6.8 5 4.9 5.8 3.7q.8-1.6.7-2.1c.2-.4.3-1.5 1-.3s1 .8 1.1 3.8c0 0 0 3 .5 4 0 0-5.6-1.7-3.8 2zm-18.6-9.2s3.3 2 5-.6c1.5-2.5 2.6-2.8 1.4-5.3-1.2-2.3 0-3.4.9-4.4s1.8-.8 1.8-4.6c.2-3.9 2.8-5 4-6.3s4.2-3-.4-3.7c-4.4-.8-13.4-3-15.7-6.5s-3.3-1.5-3.3-1.3-.8 2.7 1.5 7.3 4.2 7.6 6.5 9 4.2 2.3 3 5.4-3 8.6-4.7 11"/>
<path fill="#5a3719" d="M543.2 261s.6 8 6.3 10.8c0 0 1.3-3 .8-6.1 0 0 1.9.1 2.4 1 0 0 0-2.3-2.6-3.2-2.7-.7-1.4-6-.4-6.5s.6-1.7 0-2.6-.8-2.3 1.4-1.7 2-.6.5-1.7c-1.3-1.1-1.3-2.5.7-2.5s5-1.9 3.2-2.4c-2-.6-2.5-1.3 0-2 2.7-.8 4-1.7 2-2-2-.2-3.3-.9-1.4-1.2s-.3-2.3-2.5-2.3c-2.3-.2-7 .7-3.3-2.3s-5.4-.8-1.6-2.8-1.3-1.1-2-1.1-.7 0-.4-1-.5-1.6-1.7-.9c-1 .6-1 .6-1-.7 0-1.5-1.3-.4-2.1 0-.9.3-3 1.9-3.9 1-.7-.9-1.2-1.7-3.8-.2s-2 .2-2-.5 1-3.4-2.4-.5-.7-3-3.5-1-3 2.4-3.5 1.5c-.5-1-1-1.7-4 .3-3.1 1.9-.8-1.3-.5-2 .5-.6 1.8-5-.9-1.6 0 0-1.3 2.4-4.2-1.9 0 0-3 4.3-3.9 2.4-.8-2-1.5-2-2.6-.8-1 1.2-.2-.1-.7-1.2s-.7-2.9-5.8.8 1.8 1-2.1 2.7-13.5 7-4.8 5.9c8.7-1.3-4.2 3.3-1.2 4.2 3 .8 2 3.5 13.4.3 11.2-3 9.4-.4 15.2-3 5.8-2.4-1.4.9 6.4.8 7.7-.2 1.3 0 2.8 1.6s8 5.3 14.1 6c6.1.6 7.7-1.7 5.9 1-1.8 2.6-2.4 3.6-3.4 4.6-1 .8-4 3-4 6.6 0 3.7-4.8 4.3-3 8.3l4.1-4z"/>
<path fill="#5a3719" d="M553.3 269.9s-1.4-1-1.4-2.8c0 0 1 .2 1.4.8 0 0 3.5-4-.8-5.4-4.1-1.4-2-5.3-.6-5.3s1.7-.3.4-2c-1.2-1.5-1-1.6 1.3-2s2.1-1 1-1.5l-1.9-1.6s6.8-2.9 4.6-4.3 0-1 2-2.3c2-1.4 2.2-1.7 2.5-2.3 0 0-2 .3-3.4 0 0 0 1.7-.9 0-2.3s-2.3-2.6-5-2-1.8-.2-.8-1.3.6-1.7-1.3-2c0 0 .2-1.2 1.7-2.5 0 0-3.7.2-5-.4 0 0 1.6-1 1.6-2.3 0 0-2 .7-4.5.5 0 0 1.5-1.3 1.5-2.4 0 0-4.4 1-6.4 2.5q-.2.2-.8-.6c-.4-.4-.6-1-5.5.6 0 0 .5-2.2 1.7-3s1-2.6-6.5 2.1c0 0-1-.6-1.9-2.9 0 0-1.7 2.3-2.9 3.1 0 0-1 .5-1-1 .2-1.5-.7-.5-1.4 0-.8.4-1.3 1.5-1-1.5s-1-3.6-1-3.6-2.3 3.3-3.7 3.7c0 0-2.5-2.4-3.4-4s-.8-2.2-1.7.6c-.9 2.7-2 3-2 3s-1.5-1.3-1.6-2c0 0-.3.7-.8 1 0 0-1.3-1.5-1.2-3.7 0 0-8.2 4.5-9.2 7.2 0 0-7.7-.5-10.8.1 0 0 .7-2.4 2.7-3.7 0 0-2-.2-2-2.3 0 0 1.6.2 2.6 0s-1.4-3.1 1.1-3.2 4.2 1.2 3-2.2c-1-3.3-.6-3.3-.6-3.3s4.4 2.6 5.1 1.9c.8-.6-.5-2 3.4-1.4s2.8-1.5 4.4-1.7c1.5 0 2.3 1 1.3-6.1s4.8 3.5.9-7.2c0 0-1-3.3-3.3-4.7 0 0-.6 2.3-3.2.3s-7.8-2.8-5.6-4.4 3.2-3.9 2.6-5.2c0 0-2.6 2.6-7 .7-3.6-1.5-4.4 1.3-8 .5 0 0 0-1 3.1-3.4 3-2.3-1.8.8-3.6 1.3s-2.4 0 1.5-3.1c4-3 12-8.5 11-13 0 0 1.8 2.3 6.7.6s8.6-2.3 10-5a23 23 0 0 1 6.4-5.6c1.1-.5 2.4-1 .9 1.5-1.6 2.4-4 6.6-10.8 9.4s-9.5 4.8-10.7 6.3-7.4 4.8-3.3 4.3c4-.7 10.9 0 7.6-1-3.2-.9-6.9.6-3.9-2.1s3.5-3.6 7.9-5.4 9.2-6.1 8.7-1.6-8.6 9.1-10.6 10.6c-2 1.4-1.2 1.2-1.2 1.8s-.4 1.8-1.2 2.3c-.8.6-.5 1.2-.3 2.4.2 1.3-.2 1.8.4 2s1.2.2 1.4 1.1.6 1 1.8 1q1.8-.3 2 .6c0 .7 1.2 1.7 1.3-.4.1-2.2 1-2.5-1.2-1.5s-2.6.6-2.6-.4-.2-.8-1-.9c-1 0-1.3-1.3.3-2.2 1.6-.8 1.6 0 3.6-1.6s2-2 2.3-3c.3-.7-2.9 2.4-4.4 3-1.5.8-1-.5-.8-2.1.3-1.7 4-4 5.7-4s5.6 1 4 3.3c-1.7 2.3-6.4 5.2-4.5 5.4 2.1.2 2.4-.6 3.6.4s0 3.2-.4 4.4a8 8 0 0 1-2.2 2.7s-2.2-3.8-2.1-.8c0 3.1-.5 4.2 0 4.3s2.8 1.7 3.6 1.7-4.1 2.3-2 2.5c2 .1 5.3-1 6.4-3 0 0-4.2-1-5.9-2.6 0 0 4.9-1.2 3.5-5.8 0 0 4.9 1.3 2.7 3.5-2 2.1-3.3 1.8-1.5 2.4q2.8 1 2.7 1.2c-.1.2 1.3.6.5 1.6-.7 1-.7 2.6 0 2.5.5 0 2.6-1 .9-2s1.9-.8.4-1.7c-1.6-1-2-1.1-2.4-1.6-.5-.3 19.7-12.2 9.5-7.8 0 0 2.1-4.6 5.1-4.6s3.2 2.3 1.5 4.2c-1.7 1.7-2.8 4.6-6.7 5.2 0 0 5.6 2.7-1 7.2 0 0-1.5.7-1 1.2s4.5-1.7 5-3a6 6 0 0 1 3-3 38 38 0 0 0 11.2-9.6c2.3-3.9 2.8-4 7.2-7.5s3.6-2.8 4.2-3.6c.5-.9.7-2.3 2.7-3.4s9.8-5.4 12.3-7.2c2.4-1.8 7.4-5 9.6-7.8s8-6.2 9.4-5.6-.2 2.8-3.5 5.4c-3.5 2.5-12 9.3-13.3 10.4a45 45 0 0 1-11.2 6.6c-2.7.3-2.4 1.3-4 3s-5.3 5.4-6.5 6.4-4.3 3-4.4 4.5.5 1.6-1.9 3.8a50 50 0 0 1-11.9 8.1s4.5 1.6 1.8 4.6c-2.6 3-2.5 2.6-2.6 2.8 0 0 6.7-1 2 4.3 0 0-1 1.5 1.1 0 2.3-1.9 1.4-4.1 1-4.5 0 0 3.7-2.3 7.9-2.3q6 .1.2-1.4s2.7-3.2 5-1.6c2.2 1.5 1.4 2.5-.9 3.8-2.4 1.2-5.8 1.7-8.5 3.2 0 0 5 1 7.6-1.1 2.6-2 2.8-1 3-.6.5.4.8 1-.4 2.6s-1.3 1.8-1.2 2.2c0 .4-.1 1.5-2.5 2-2.3.3-3.5 1.3-2.6 2.4.7 1.2.7 4-1.2 3.7-2-.3-1.6-1.9-2.3-2.5-.8-.6-1.9-1.5-5.4.2-3.6 1.9-3.8-.3-3.7-1.5 0 0-2.3 2-4.2.2s-.2-2.6 1-3.5c1-1 5.5-3 2.8-2.5-2.7.3-6.7.4-7.6-1.6-1-2.1 2-1.9 2.4-1.7.5.2 2.3 1.7 2.5-.3 0-2 3-2.3 2-2.6s-2.5.9-2.9 1.3c0 0-2-2.9-5.4-2-3.4 1 1 .7 2 .8.8.2.3 1.8-2.7 4.6s-1.7 1.8.5 1.8 7.9 0 4.6 2.6c-3.2 2.7-4.5 4-6 3.6-1.8-.5 0-1.6.8-2.1s1.2-1.2-.4-.6-2.1.7-3.4-1.5-.8-1.6-.2-3.1 1.8-3 .4-2.5c-1.6.6-1.4.7-1.3-1s-1.7-2.1-1.7-2.1.8 1.7.1 2.8q-1 1.4.4 1.6c1 .4 2 1.3.6 2.3s-1.2.7-.4 1.3c1 .7 2.3 1.3.9 2.7s-.3 1 .4 1c.8 0 2.3.6 2.3 2 0 1.2 0 1.5 2.3.3 2.3-1.3 6.7-1.1 6.7.6s-.6 2.3 1.8.8 3.5 1.4 5.2 0c1.6-1.5 2.6-2.8 4.6-.4s1.3 3-1 4.8 1.1.4 2.9-.5 6.7-1.5 9.5-.2c2.9 1.2 3.7 1 5.8 0 2.1-.8 3.2-1 6.3 1.1 3.3 2.2 5.7 2.6 7.4 2.5 0 0-3.5 1.4-7.5 1.6q-5.8.6-6.7 1.6s2.3 1.5 2.8 3.2c0 0 2.6-.3 3.8.2 0 0-.6 1.9 1 2.9s2.7 1.4 1.5 2.7 1.9.8.1 2.7-2.1 3-2.2 4.5c0 1.6.4 1.8-1.1 2-1.6.1.2 1.9-.5 4-.7 2-5 1.7-4.8 7.2 0 0 1.2-2.7 3.8-5 2.5-2.4 2.6-2.6 2.5-4 0-1.4-.1-1.1 1.2-2.2 1.4-1-.6-2 .8-3.6 1.3-1.5.2-1.2 1.8-2.7 1.5-1.6-1.5-1.7.2-3.3 1.5-1.6-4-3.5-2.3-4.5 1.5-1 4.3-2.4-5-2.3 0 0 2.3-3.6 10-2.9 0 0-2 1.6-2.2 3l1.6.5s-.4 1.1-1.9 2.3c0 0 4.2 2.3 4.9 3.8 0 0-2.6.8-3.3 1.8 0 0 1.2 1.3 1.6 3 0 0-2.9-.4-3.2 1.7s-1.3.7-1.3 2 .1 1.7-.9 2c-1 0-.1 1.1 0 1.8.2.7.6 2.3.4 2.8 0 0-1.5 0-2.1.2 0 0 .4 3-1.3 3.5s1 1-.9 1.3-1.5.5-3.7 4.5c0 0 1.9-1 3.8-2.4 2-1.3-.2-1 3-4 3.3-3.3 2.7-3.5 2.4-5.1-.2-1.6-.3-3 .9-4.5s1.5-3.2 5.7-3c0 0-1.2-2.8-2.7-3.5 0 0 2-1.3 4-1.5 0 0-1.8-2.3-5.6-4.4 0 0 3-2.6 3.9-3.9 0 0-1.5.3-2.7 0 0 0 .6-1.3 3.4-3.1 0 0 1.5 1.4 1.4 2.9 0 0 4.8-2.7 7.5-2.4 0 0 1.4 3.4-5.3 10 0 0 4.2.3 6 0 0 0-1 3.2-6 5-5 2 1 4.2-4.1 3.8s-3.5 1.3-3.4 3.9.3 5.3.2 6c0 0-4-1.3-4 2.6.1 4-2 4.8-2.5 5.1 0 0-1.2-1-3-1.7 0 0-2.5 4.9-6.5 7.7"/>
<path fill="#7b3c20" d="M547.4 220.5s1.4-.2 3.8 1.2c2.3 1.5 4.6-1.5 2-2.3s0-1.8 2.4.2c2.4 1.9 3.3.9 4.2.3.8-.7 1.9-1.1.3-2.2s1-.6 2.3.3c1.2.7.7 1.5.6 1.7-.2.2-.3 2.9 2 .5 2.4-2.5 3.7-4.8 3.6-6 0 0 1.3.8 1.5 2.3s2-.8 2.6-1.6 1.6-3 1.5-4.4c0 0 1.6 2.5 4 0s1.4-1 4.2-1.7a18 18 0 0 0 8.5-5.2c2-2.5 2.1-.8 4.6-1.4s7.7-4.2 8.2-6.1.3-3.1-.4-2.4c-.7.6-.4 0-1.5-.6s-2.7.9-2.7.9 1.6 1.2.3 1.7c-1.2.6-2.3 2.3-4.6 1.6s-4.8 2.2-4.8 2.2 2 1.6-.7 2.7c-2.7 1-2.3 1.4-3.9.2 0 0-2.9 3.7-4.6 4.5 0 0-.7 0-1.2-.8 0 0-2 2.1-2.8 2.5 0 0-1.3-1-2.3-1.5 0 0-2.3 2.9-4.2 3.7 0 0-.6-1-1.8-1.7 0 0-.6 3.6-4.6 5.8 0 0 .2-1-1.8-2.3 0 0-5 4.3-6.9 4.7s-.2-.9 0-1.5c.4-.5 1.6-2.3-.8-3s-2 .5-2.5.7-.6-.4-2.2-.2-1.3.9-2 1.2c-.8.2-3.6-.5-3.4 1.4.1 1.8 1.5 3.1-1 4.2-2.5 1 1 .8 4.1.4"/>
<path fill="#5a3719" d="M557.5 215.3s.6-2.5-1.5-3.5c0 0 13.2-2.1 3.2-7.2 0 0 11.9-2.3 9-6.1-2.7-3.8-5.4-3-5.8-3s2.5-2.1 3.3-1.8 10.2 3.9 7.8.7c-2.4-3-2.2-2.9-2.6-3.8 0 0 3.1 0 7.9 4.6 0 0 1-1 .9-2.9 0 0 3.3 1 4.4 2 0 0 .6-1.2.3-1.8 0 0 3 1.5 4 3.2 0 0 1.3-1.2 1.5-2.6 0 0 3 1.3 3.7 2.2 0 0 1-1.3.6-3 0 0 4.9 1.3 5.5-1.6 0 0 4.9 1 1.7 2.9-4 2.5-.4-.6-4.6 2.3-3.2 2.3-5 4.9-6.6 4.4-1.1-.5-2.5 2.9-4 1.3-1.5-1.7-1.5-1-2.7.7a25 25 0 0 1-2.8 3.5s-.8-.5-1.6-1.2c0 0-.8 1.6-2 2.8 0 0-1-1.3-2.6-2 0 0-2.3 2.7-3.8 3.7 0 0-1.4-1.4-2.9-1.9 0 0-.2 3.8-3.1 5.7 0 0-.6-1.2-2.6-2 0 0-1.4 2.3-4.6 4.3z"/>
<path fill="#5a3719" d="M550.6 209.5s-1.6 1.2-.6 2.5 1.1-.2 2.4-.3c1.3-.2 17.5-3 2.8-7.3 0 0 .7-.6 3.1-.8 2.6-.3 11.8-2.7 7.5-6s-7.9 1.1-4.3-2.8c3-3.1.6-4.6.6-4.6s-8.5 5.6-10.4 6.7c-1.8 1-4.6 3-1.4 4 3.3 1 5.4-3.4 5.7-2.4s-6.4 4.8-5.4 6.4c.9 1.8.7 3.3 2.4 2.9s6 .8 2.5.7c-3.7-.1-5 1-5 1z"/>
<path d="M556.4 201.3s-1.5 1.1.5.6 5.9-1.4 5.2-2.4-3.4.2-5.7 1.8"/>
<path fill="#7b3c20" d="M582.4 184.5s7.5-.2 10.5 1.9q4.3 3.1 5.5 3.8s-.1 2.8-5 .7c0 0 .4 1.4-.2 2.8 0 0-1.7-1.2-3.8-1.7 0 0-.4 1-1 1.7 0 0-2.1-2.2-4.6-2.9 0 0-.4 1.1-.8 1.6 0 0-2.6-1.6-4.6-1.6 0 0 .4 1.7 0 2.3 0 0-5.4-4.3-10.3-3.8 0 0 2.3 3.5 3.8 5.1 0 0-9.8-.7-8-6 1.5-5.3-.2-4 6.2-4z"/>
<path fill="#5a3719" d="M536.3 199.1s-1.1 1 0 1.7c1.1.8 5-2 5.5-2.4s2-.4 0 1.1-3.8 3-5 4.6c0 0 6.4-1.8 10.6-5.4 4.3-3.7-.1-1.3 7-4.8 7.3-3.5 11.1-9.1 7.2-8.5s-7.3 5-10.4 6.7c-3 1.7-4.7 2-4.2 1s2.7-.6 6.9-4c4.1-3.3 3.2-3 3.2-4.2s-1.5-4 4.7-7.4c6.2-3.3 25.6-14.5 27.3-18.5 0 0-5.7.6-13.2 6.1a70 70 0 0 1-13.4 8.8c-2 .8-1.8.2-3.1 1.9a172 172 0 0 1-10.1 9.8c-1.3 1-1.8 1.6-1.9 3.8 0 1-8.4 7.3-11 9.7z"/>
<path fill="#5a3719" d="M562 184.3s-1.5.6-3 0c-1.3-.7-.8-3.6 2.5-5.5a50 50 0 0 1 12.6-4.8s-.5 3.8-10.1 7.1c0 0 .6 2-2 3.2"/>
<path fill="#aa5323" d="M565.4 181.8s.3 1 0 1.8c0 0 17.9 1.7 27.1-9.2 0 0-12.7 1.2-17.7 4.3 0 0 3.2-4 12.7-7.3s13.4-7.4 14.2-9.7c0 0-12 4.3-17.7 4.3 0 0-1.2 0-2.3.5-1.1.7-8.8 6.2-10.8 7.2 0 0 4.3-.4 5.9-1.8 0 0-3 8-11.4 10z"/>
<path fill="#5a3719" d="M531 192s-2.3 1.7-1.3 2.4c1 .9 2.6 1 6-1.9 3.6-3 12.1-10.2 6.8-10.5 0 0-7-.4-6.7 3.8s-4.4 6-4.8 6.2m-15.9-2.5s4.6 2.7 2.8 4.9c0 0 14-11.8 10-14.4-3.8-2.6-6.9 2.3-6 2.7 1 .6 3-.4 2.3.6a77 77 0 0 1-9 6.2zm-3.6-3.8s3 1 3.2 2.3c.1 1.2 9.2-6.4 6.8-9.7-1.1-1.5-6-2-6.4.8-.2 3 4.6-.3 3 1.8-2.2 2.7-5.9 4.4-6.6 4.8m32.6-6.4s-1.9 1.4-.1 2.3c1.8.7 2.8-.6 3.7-1.3s5.3-4 6.2-6 2.5-2.7 4.1-3.7 12.6-6.6 19.5-12.7c6.8-6.1 4-4.5 11-8.4s11.7-7.5 13.2-11.8c0 0-3.3 1-6.2 3l-10.7 6.5c-1.3.5-3 .6-4 1.6s-1 2.3-4.3 5c-3.5 2.9-21 15.3-23.2 17z"/>
<path fill="#aa5323" d="M530 183.4s2-1 5.6-.8 17.8-13.6 22-16.3a342 342 0 0 0 18.7-13.8c1.8-1.8 2-3.6 3.6-4.6 1.5-1 3-.9 6.4-2.9s20.3-12 19.3-17.8c0 0-25 15-30.7 19.8a375 375 0 0 1-24.7 17.7c-2.8 1.9-5 5-9.9 8.8-4.7 3.9-9.5 7.2-10.3 10z"/>
<path fill="#aa5323" d="M524.8 178s4.6-.4 5.2 1.9c0 0 10-6.8 12.2-9.6s-.8-1.2 4.9-4.9a594 594 0 0 0 27-19.1c2.7-2.3 7.8-5.5 11.9-8.2 4-2.8 19.9-10.6 18.1-17l-14.2 9.5c-2.7 1.8-3.9.8-6.5 2.9s-8.5 6.3-9.5 7.6a161 161 0 0 1-14.4 11c-4.4 3-14.1 8.6-18.9 12.8l-15.8 13.2z"/>
<path fill="#aa5323" d="M510.4 176.8s2.3 0 3.1.9c0 0 4.3-3.9 8.9 0 0 0 16.8-11.5 18.5-14.4 1.7-2.8 4.5-2.9 11-7.6 6.6-4.8 10.7-6.9 15-10.2 4.4-3.4 8.1-7.3 11.2-9.3s11-7.2 9.8-11.7c0 0-6.5 3.6-10.6 8.2-4.2 4.6-3.8.7-8.1 4.5a83 83 0 0 1-16.3 11.7c-5.5 2.7-2.2 2.4-6.2 5-3.9 2.5-3.6 2-5 2.5a10 10 0 0 0-5.1 3c-1.6 1.7-5.4 4-9.6 6.5a107 107 0 0 0-16.6 10.9"/>
<path fill="#aa5323" d="M515.5 168s-1-1.9.7-3.3 4.6-4.8 5-7 .1-1.9 4.8-3.8a188 188 0 0 0 38.2-21.6c1.8-1.5 6.4-4.6 8.3-6.2 0 0 .8 2.5-1.2 4.2a222 222 0 0 1-21.5 14.9 77 77 0 0 0-9.6 5.5c-1.9 1.6-1.6 2-10.2 6.3-8.5 4.1-9 4.6-8.7 4.9s4.2-1.3 6-2.4 8.8-4.3 11-6a69 69 0 0 1 7-5 296 296 0 0 0 18-11.2c3.5-2.7 4.5-3.5 5.3-3s2 .4.4 2-6.7 6-8.7 7.3-8.1 5-9.8 5.8c-1.7 1-2.4 2.5-3.4 3.2s-3.7 2.7-7 3.5-4 3.3-6.3 4.8c-2.3 1.4-18 10-18.5 10.3 0 0 .9-1 .2-3.2"/>
<path fill="#aa5323" d="M570.3 132.4s-.9.8-.4 1.2c.6.6 2.8 2.2 5.6-.6a107 107 0 0 1 12.5-10c2.3-1.5 3.6-2.8 3.5-4.7 0 0-11.4 6-21.2 14.1m15.6-1s1.7-2.9 6-5.7c4.3-2.7 10.8-6.7 11.5-7.6 0 0 1.6 1.7-1.7 3.8l-10.8 7c-.7.7-2 1.6-5 2.5"/>
<path fill="#7b3c20" d="M499 163s-4.8 2.6-3.1 4.2c1.7 1.5 4.2 1 5.4.6l3.2-1c.4 0 4.5-1.3 5.6-3.2s3.8-4.2 6-5.8 3-3.2 2.7-4.3zm-28.4 22s3.4-2 8-.7c0 0-.2-1.1-1-1.7 0 0 5.7-1.5 6.9-4s1.5-2 2.5-2.6c1.2-.8 8.7-6.8 7.8-8.1s-1-3.1-1.7-3.7c0 0-1.5 2.1-9 5.7-7.2 3.6-15.4 6.2-21.4 14.2s-5.3 12.6 2 14.7c0 0 5-3.2 17.6-2.1 12.4 1.1 16.6 5.8 17.4 6.6.8.9 3.3 4 .9 9.1 0 0 2.5 1.1 2.6-1.3.3-2.3.4-1.8 1-1.5s1.3.5 1-1.4a18 18 0 0 0-2.3-7.2c-1.1-1.5.2-.8.9-.6s3.3 2.5 1.8-1.5c-1.5-3.8-2-2-2-1.8 0 .3-.4 1.2-3.8-1.4a27 27 0 0 0-8.8-4.4c-2.3-.6-.7-.6.7-1 1.4-.6 3.1-.8 3.8-2.4 0 0-1.4.3-3.8-.6a13 13 0 0 0-11.5 2s1.2-4.5-2.5-4.3c-3.6.3-6.2.2-10 3.2 0 0-.3-4.6 3.4-7s3.2-1 5.2-1.6 2.3-2.7 1.4-3.4c0 0 4.8.9 12.8-5.8 0 0-4.3 5.7-9.5 6.8 0 0-.9 3-5.7 3.7s-4.6 3.4-4.6 4.1z"/>
<path fill="#5a3719" d="M457 212.7s2.2-14.1 15.5-15.1c11.4-1 15.1.5 17.4 1.3s8 2.4 5.8 4.2-3.5 1.5-3.5 1.5 2.5-2.9.2-3.3c-2.3-.5-2.4.9-2.7 2-.4 1.3-.5 2.6-1.6 3.6 0 0-1.2-1.4-2.9-.2s-.2 1.2.5 1 1.5-.5 1.3.5-1 2.8-3.8 4.2-2.6 1.3-5.8 1.9c-3.3.5-6.3 1.8-10.5 5.3-4.2 3.6-8.7 2.4-9.6-1.5-.8-3.4-.4-5.4-.4-5.4z"/>
<path d="M472 212.2s1.2-2.7-1-4c0 0-6.9 1.2-9-.9 0 0 7.5-.4 12.2-2.3 4.6-1.7 3.3-3 1.7-3.4s-4.6.5-4.9 2c0 0-1-1.6.2-2.6a5 5 0 0 1 4.7-.8c1.7.4 3.1 1.2 8.6-1.6 0 0 3.1.7 3.3 2.8 0 2.2-.3 3-.6 3.3q-.3.8-1.3 1c-.6-.2-1.5-.3-2.3 1.2a9 9 0 0 1-2.6 3.7s1.5-4.6-2.5-5.7c0 0-3.3 2-5.8 2.1 0 0 3.2 3-.8 5.2z"/>
<path fill="#5a3719" d="M479.3 203.8s-1.6-1.6.4-1.9c2-.1 4.6 1.4 4.2 2.7-.6 1.2-3 1.1-4.6-.8"/>
<path fill="#fff" d="M592.6 181.6s-3.7 1-.2 3.3c3.4 2.3 5 4.2 7.5 4.8 2.5.7 5 1.5 5 4s-.5 3.5-1.9 5.2.8 2.4 2.6 1.5l4.5-2.2c1.1-.7 3-.6 1.4.3-1.9 1-3.7 1.5-1.4 1.5 2.3.1 16.2.4 19.1-.6s6.8-1.2 7-5c0 0 .2-1.6 1.3-2.4 1-.7 1.8-2.3.2-1.2q-2.4 1.8-3 1.3c-.3-.3-.5-.6.7-1.1s1.8 0 2.9-1.5c1-1.6 1-1.4.4-2s-1.8-1-1.2-1.8 1.2-3-1.4-1.7-7.6 4.8-10 5.3c-2.2.5-4 1.2-7.1 1.8s-5 1.4-8.5 3.3c-3.3 1.8-3-1.1-2.5-1.5 0 0 1.3 2.3 4.7-.7 3.4-2.9 2.3-.1 10.6-2.9s6.3-3.1 9.5-4.8 6.4-1.8 4-4c-2.2-2.4-2.4-2.5-5.3 0a35 35 0 0 1-16 6.4s18.8-8 16.9-9.2a21 21 0 0 0-5.3-2.5c-1.3-.3-1.7-.6-4.7.8s-3.5 1.6-4.3 1.7q-1.6-.1-7 2.4c-3.6 1.9-5.5 2.6-8 4 0 0 1.7-3.3 9.1-5.5s11.1-4.2 10.4-4.6-2.7-.8-4-.5c-1.5.3-1-.1-5.6 1.7s-2.6 1.4-6.2 2.2c-3.7.7-5.1 1.5-6.9 2.3 0 0 .8-1 3.1-1.9 1.3-.4-1.3-.9 2.2-1h1a32 32 0 0 0 8.6-3.3c-.7-.1-5.1-.6-9.5 1.6-4.5 2-2.5 1.3-4 1.5-1.6.4-5 2.4-6 3.4-1.1.9-2.7 1.5-2.7 1.5z"/>
<path fill="#5a3719" d="M482.7 201.8s1.8.5 2.2 1.8c.5 1.2 1.6-.6 1.6-1.1-.1-.6-1.2-3-3-1.9-2 1.1-1 1.1-.8 1.2"/>
<path fill="#7b3c20" d="M477.9 226s3.7-1.8 6.9-1.5c0 0-1.3-4.4.9-3.7 2.1.8 1.5.4 2 .4 0 0 .1-2.9-.5-4 0 0 2.3.5 4.6.5 0 0-2.2-4.1.2-7a7 7 0 0 0 4.2 3.4v-2.3s1.7-.3 3 .4c1.4.8 2.5-7.6-1.5-9.3 0 0-1 1.5-4.7 2.3s-3.7 1.5-5.2 4.3-3 2.9-6.2 5c-3 2-5 6-5 6.4 0 0 1.5 2 1.3 5.1"/>
<path fill="#999" d="M603.1 177.8c1.3-.2-1.4-.9 2-1h1a32 32 0 0 0 8.7-3.3c-.7-.1-5.1-.6-9.5 1.5s-2.5 1.4-4 1.7c-1.6.3-5 2.3-6 3.3-1.1.9-2.7 1.5-2.7 1.5s-3.7 1-.2 3.4c3.4 2.3 5 4.2 7.5 4.8 2.5.7 5 1.5 5 4a7 7 0 0 1-1.9 5.2c-1.3 1.7.8 2.4 2.6 1.5l4.5-2.2c1.1-.7 3-.6 1.3.3-1.8 1-3.6 1.5-1.3 1.5 2.3.1 16.2.4 19.1-.6s6.8-1.2 7-5c0 0 .2-1.6 1.3-2.4 1-.7 1.8-2.3.2-1.2-1.5 1.1-2.8 1.7-3 1.3s-.5-.6.7-1.1 1.8 0 2.9-1.5c1-1.6 1-1.4.4-2l-1-.9s-.9-.7-1.9-.1a28 28 0 0 1-7 2.7q-2.2.2-6.5 2.4c-4.3 2.2-8.2 4.6-9 1.7l-2.8 1c-3.4 1.8-3-.7-2.5-1.4 0 0-1.8 2-1.7.2 0-1.8 1.2-1.5 3.3-2.1s5-2 3.8-3-2.7 1-4.2 1.8c-1.4.7-4.3 1.2-4.8-.9s-.4-3.6-4.3-3.8c-4-.2-3.9-2.7-2.8-3.8s2-2.8 5.7-3.5z"/>
<path d="M615.6 196.9s6.1-2.8 11.7-4.1c5.7-1.3 1.2.2.3.4-1 .3-9.7 3.2-11.8 4.2-2 1-1.7.2-.2-.4zm1.4 1.3s6.9-2.3 8.2-1.4c1.3 1 .2.6-1.3.8-1.6.1-5.7.8-6.8.8s-.1-.2-.1-.2m11-2.5s1.4-.2 1.5.4c.1.4-.6.5-1.3.4s-1.3-.5-.1-.8z"/>
<path fill="#fff" d="M446 255.9s-.3-6.2 2.8-9.2 17.8-18.5 20.1-22.8c0 0 2 1.3 2 3.8 0 0 2.5-4.3 4.5-6 0 0 1.7 1.8 1.5 5.4 0 0 3.5-1.9 9-1.9 0 0-2 2.4-2.1 3.9 0 0 7.6-1 11.7-.3 0 0-10.6 6-7.7 6.5 3.1.5 6.2 0 6.2 0s-3.4 3.3-8.8 4c0 0 6.9 0 8.2 1.5 0 0-6.6 1-12 5 0 0-.4-.2-.4-1.7 0 0-.3 1.4-1.8 2.7-1.5 1.2-5.1 4-6.5 5.3s-3.8 4-6.6 4c0 0 .6-2.1-1.4-2.8a6 6 0 0 0-6 1.5s-7 .1-9.4.5c0 0 1.6-2.6 3-2.6 1.6 0 7.6 1 8.1-3.2.6-4-3.8-3-2.2-5.4 1.7-2.4 1.3-2.2 1.4-2.6 0 0-1.4.8-2.2 3a11 11 0 0 1-4.2 6 15 15 0 0 0-4.8 5s-1.3 0-2.4.4"/>
<path fill="#fff" d="M452.8 252.2s.3-.8 2.3-1.2c2.2-.3 2.3-1.3 2-1.8s-1.5-.4.5-2.8c0 0 .8.3 1.2.8.6.6 2.9 5.5-6 5"/>
<path fill="#999" d="M447.9 247.9c0 4 5.3 2.5 5.3 2.5a21 21 0 0 0-3.8 3.6c.4-2-3-2.5-3-2.5a12 12 0 0 1 1.5-3.6m19.3-21.5 1.7-2.5s2 1.3 2 3.8c0 0 2.5-4.3 4.5-6 0 0 1.7 1.8 1.5 5.4 0 0 3.5-1.9 9-1.9 0 0-2 2.4-2.1 3.9 0 0 7.6-1 11.7-.3 0 0-10.6 6-7.7 6.5 3.1.5 6.2 0 6.2 0s-3.4 3.3-8.8 4c0 0 6.9 0 8.2 1.5 0 0-2 .3-4.6 1.2 0 0-1.9-1.8-7.6-1.5 0 0 4.4-2.6 8-3.4 0 0-1.6-2-4-.1 0 0-4.9-3.3-.8-6.2 0 0-2.8-.5-4.7.8 0 0 0-2.3 2.1-3.3 0 0-5.4-1-6.7 3 0 0-1-1.5-.5-3.4 0 0-3.3 1.9-4.8 4 0 0-.5-4-2.6-5.5M456.8 252q-1.4.3-4 .2-.2-.1 1.3-1s.4.8 2.7.8"/>
<path d="M466.6 236.7s2.5 2 3.3 3c0 0 2.3-1.4 3-2.7 0 0 1.9 1.1 2.4 2.8 0 0 1.3-.8 1.5-2 0 0 3 .6 4.2 1.6 0 0 .4-3 0-4.8 0 0 2.1.2 3.4.7 0 0-1.2-2 5-4.5 0 0-4.7 1.1-6.5 3 0 0-2 .2-2.9-.4v4.5s-1.2-.6-3.5-1.1c0 0-.6 1-1 1.2 0 0-1.5-1.2-2.1-2.7 0 0-2.3 2.1-3 3 0 0-2.3-1.6-3.8-1.6"/>
<path fill="#ffc221" d="M452.5 267.3s1 .4 3.3-1.4 8.7-5.9 9.2-9.2c.7-3.3-2-3.4-4-2.5-2.2 1-1.3 2.7-1.2 3.4 0 .6.2 2.9-3.3 6z"/>
<path fill="#ffc221" d="M451.9 268.3s-5.2-2.2-.6-4.5 6.7-2.9 7.2-4.9c.6-1.9.2-1.5-1.5-.7-1.7.7-8.2 3.8-9.2 1 0 0 2.7 1 6-.6 3.4-1.7 6.2-2.1 4-2.8a37 37 0 0 0-11 .5c-1.4.4-1 .3-1.3 1.6-.2 1.3-1.6 4-2.2 4.7-.5.8-1.8 4 .6 5.5a9 9 0 0 0 8 .2"/>
<path d="M449.9 257s-1.3.2-1 .7q.3.6 1 .4c.3 0 1-.2 1.1-.5 0-.3-.8-.7-1.1-.5z"/>
<path fill="#fff" d="M451.5 267.1s-2.4-1.1.4-2.6 5.6-3 6-3.6c0 0-1.3 1.9-6.4 6.2"/>
</svg>

After

Width:  |  Height:  |  Size: 30 KiB

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="flag-icons-asean" viewBox="0 0 640 480">
<path fill="#0039a6" d="M0 0h640v480H0z"/>
<circle cx="320" cy="240" r="144" fill="#fff"/>
<circle cx="320" cy="240" r="137.3" fill="#ed2939"/>
<use xlink:href="#asean-a" transform="matrix(-1 0 0 1 640 0)"/>
<g id="asean-a" fill="#f9e300">
<path d="M357 240c24-14.4 35-43.2 35-72h-11v1c0 9.6-1.5 44.6-27.9 71a106 106 0 0 1 27.9 71v1h11c0-28.8-11.5-57.6-35-72"/>
<path d="M377.6 169v-1h-11.5v1.4c0 9.6-2 43.2-20.7 70.6 19.2 27.4 20.7 61 20.7 70.6v1.4h11.5v-1c0-9.6-2.4-44.6-27.8-71a106 106 0 0 0 27.8-71"/>
<path d="m341.1 240 1-1a130 130 0 0 0 20.1-69.6V168h-10.5v2c0 10-1.5 42.2-14.4 70a182 182 0 0 1 14.4 70v2h10.5v-1.4c0-9.6-1-39.9-20.1-69.6"/>
<path d="M333.4 240a178 178 0 0 0 14.4-72h-11v3.4c0 12-1 41.2-7.2 68.6a336 336 0 0 1 7.2 68.6v3.4h10.6v-2c0-10-1-43.1-13.5-69.5"/>
<path d="M325.8 240a331 331 0 0 0 6.7-68.6V168h-10.6v144h10.6v-3.4c0-11.5 0-41.2-6.7-68.1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-at" viewBox="0 0 640 480">
<path fill="#fff" d="M0 160h640v160H0z"/>
<path fill="#c8102e" d="M0 0h640v160H0zm0 320h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 195 B

+8
View File
@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-au" viewBox="0 0 640 480">
<path fill="#00008B" d="M0 0h640v480H0z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
<path fill="red" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
<path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
<path fill="red" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
<path fill="#fff" d="m527 396.7-20.5 2.6 2.2 20.5-14.8-14.4-14.7 14.5 2-20.5-20.5-2.4 17.3-11.2-10.9-17.5 19.6 6.5 6.9-19.5 7.1 19.4 19.5-6.7-10.7 17.6zm-3.7-117.2 2.7-13-9.8-9 13.2-1.5 5.5-12.1 5.5 12.1 13.2 1.5-9.8 9 2.7 13-11.6-6.6zm-104.1-60-20.3 2.2 1.8 20.3-14.4-14.5-14.8 14.1 2.4-20.3-20.2-2.7 17.3-10.8-10.5-17.5 19.3 6.8L387 178l6.7 19.3 19.4-6.3-10.9 17.3 17.1 11.2ZM623 186.7l-20.9 2.7 2.3 20.9-15.1-14.7-15 14.8 2.1-21-20.9-2.4 17.7-11.5-11.1-17.9 20 6.7 7-19.8 7.2 19.8 19.9-6.9-11 18zm-96.1-83.5-20.7 2.3 1.9 20.8-14.7-14.8-15.1 14.4 2.4-20.7-20.7-2.8 17.7-11L467 73.5l19.7 6.9 7.3-19.5 6.8 19.7 19.8-6.5-11.1 17.6zM234 385.7l-45.8 5.4 4.6 45.9-32.8-32.4-33 32.2 4.9-45.9-45.8-5.8 38.9-24.8-24-39.4 43.6 15 15.8-43.4 15.5 43.5 43.7-14.7-24.3 39.2 38.8 25.1Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+186
View File
@@ -0,0 +1,186 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-aw" viewBox="0 0 640 480">
<defs>
<clipPath id="aw-a">
<path fill-opacity=".7" d="M0 0h288v216H0z"/>
</clipPath>
</defs>
<g clip-path="url(#aw-a)" transform="scale(2.2222)">
<path fill="#39c" d="M0 0v216h324V0z"/>
<path fill="#ff0" d="M0 144v12h324v-12zm0 24v12h324v-12z"/>
</g>
<path fill="#9cc" d="m142.7 28 2.9 3zm-3 6 3 3zm5.9 0 3 3z"/>
<path fill="#ccf" d="m139.7 37 3 2.9-3-3m5.9 0 3 3z"/>
<path fill="#6cc" d="m136.7 42.8 3 3z"/>
<path fill="#c66" d="m142.7 42.8 2.9 3z"/>
<path fill="#6cc" d="m148.6 42.8 2.9 3z"/>
<path fill="#ccf" d="m136.7 45.8 3 3zm11.9 0 2.9 3z"/>
<path fill="#fcc" d="m139.7 48.7 3 3zm5.9 0 3 3z"/>
<path fill="#6cc" d="m133.8 51.7 3 3z"/>
<path fill="#c00" stroke="#fff" stroke-width="3.7" d="m142.2 34-20.7 78.5L42.8 134l78.4 20.5 21 78.4 20.9-78.4 78.4-21-78.4-20.9-21-78.4z"/>
<path fill="#6cc" d="m151.5 51.7 3 3z"/>
<path fill="#9cf" d="m133.8 54.6 3 3zm17.7 0 3 3z"/>
<path fill="#fcc" d="m136.7 57.6 3 3zm11.9 0 2.9 3z"/>
<path fill="#69c" d="m130.8 60.5 3 3z"/>
<path fill="#c33" d="m137.7 62.5 1 2zm11.8 0 1 2z"/>
<path fill="#69c" d="m154.5 60.5 3 3z"/>
<path fill="#9cf" d="m130.8 63.5 3 3zm23.7 0 3 3z"/>
<path fill="#fcc" d="m133.8 66.4 3 3zm17.7 0 3 3z"/>
<path fill="#69c" d="m127.9 69.4 3 3zm29.5 0 3 3z"/>
<path fill="#9cc" d="m127.9 72.3 3 3zm29.5 0 3 3z"/>
<path fill="#cff" d="m127.9 75.3 3 3zm29.5 0 3 3z"/>
<path fill="#69c" d="m125 78.3 2.9 2.9z"/>
<path fill="#fcc" d="m130.8 78.3 3 2.9zm23.7 0 3 3z"/>
<path fill="#69c" d="m160.4 78.3 3 2.9z"/>
<path fill="#9cc" d="m125 81.2 2.9 3z"/>
<path fill="#c33" d="m131.8 83.2 1 2zm23.6 0 1 2z"/>
<path fill="#9cc" d="m160.4 81.2 3 3z"/>
<path fill="#cff" d="m125 84.2 2.9 3zm35.5 0 3 3z"/>
<path fill="#fcc" d="m127.9 87.1 3 3zm29.5 0 3 3z"/>
<path fill="#9cc" d="m122 90 3 3z"/>
<path fill="#c33" d="m128.9 92 1 2zm29.5 0 1 2z"/>
<path fill="#9cc" d="m163.3 90 3 3z"/>
<path fill="#ccf" d="m122 93 3 3zm41.3 0 3 3z"/>
<path fill="#fcc" d="m125 96 2.9 3zm35.5 0 3 3z"/>
<path fill="#9cc" d="m119 99 3 2.9z"/>
<path fill="#c33" d="m126 100.9.9 2zm35.4 0 1 2z"/>
<path fill="#9cc" d="m166.3 99 3 2.9z"/>
<path fill="#ccf" d="m119 101.9 3 3zm47.3 0 3 3z"/>
<path fill="#fcc" d="m122 104.8 3 3zm41.3 0 3 3z"/>
<path fill="#9cc" d="m116 107.8 3 3z"/>
<path fill="#c33" d="m122 107.8 3 3zm41.3 0 3 3z"/>
<path fill="#9cc" d="m169.2 107.8 3 3zm-62 3 3 2.9z"/>
<path fill="#ccf" d="m110.2 110.7 3 3zm65 0 2.9 3z"/>
<path fill="#9cc" d="m178 110.7 3 3zm-79.6 3 3 3z"/>
<path fill="#ccf" d="m101.3 113.7 3 3z"/>
<path fill="#fcc" d="m113.1 113.7 3 3z"/>
<path fill="#c33" d="m116 113.7 3 3zm53.2 0 3 3z"/>
<path fill="#fcc" d="m172.2 113.7 3 3z"/>
<path fill="#ccf" d="m184 113.7 3 3z"/>
<path fill="#9cc" d="m187 113.7 2.9 3z"/>
<path fill="#69c" d="m86.6 116.6 3 3z"/>
<path fill="#9cc" d="m89.5 116.6 3 3z"/>
<path fill="#cff" d="m92.5 116.6 3 3z"/>
<path fill="#fcc" d="m104.3 116.6 3 3z"/>
<path fill="#c33" d="m109.2 117.6 2 1zm67.9 0 2 1z"/>
<path fill="#fcc" d="m181 116.6 3 3z"/>
<path fill="#cff" d="m192.8 116.6 3 3z"/>
<path fill="#9cc" d="m195.8 116.6 3 3z"/>
<path fill="#69c" d="m198.7 116.6 3 3zm-121 3 3 3z"/>
<path fill="#9cc" d="m80.7 119.6 3 3z"/>
<path fill="#cff" d="m83.6 119.6 3 3z"/>
<path fill="#fcc" d="m95.4 119.6 3 3z"/>
<path fill="#c33" d="m100.3 120.6 2 1zm85.6 0 2 1z"/>
<path fill="#fcc" d="m189.9 119.6 3 3z"/>
<path fill="#cff" d="m201.7 119.6 3 3z"/>
<path fill="#9cc" d="m204.6 119.6 3 3z"/>
<path fill="#69c" d="m207.6 119.6 3 3zm-138.8 3 3 2.9z"/>
<path fill="#9cf" d="m71.8 122.5 3 3z"/>
<path fill="#fcc" d="m86.6 122.5 3 3z"/>
<path fill="#c33" d="m91.5 123.5 2 1zm103.3 0 2 1z"/>
<path fill="#fcc" d="m198.7 122.5 3 3z"/>
<path fill="#9cf" d="m213.5 122.5 3 3z"/>
<path fill="#69c" d="m216.4 122.5 3 3z"/>
<path fill="#6cc" d="m60 125.5 3 3z"/>
<path fill="#9cf" d="m63 125.5 2.9 3z"/>
<path fill="#fcc" d="m74.8 125.5 2.9 3zm135.8 0 2.9 3z"/>
<path fill="#9cf" d="m222.3 125.5 3 3z"/>
<path fill="#6cc" d="m225.3 125.5 3 3zm-174.2 3 3 2.9z"/>
<path fill="#ccf" d="m54 128.4 3 3z"/>
<path fill="#fcc" d="m65.9 128.4 3 3z"/>
<path fill="#c33" d="m70.8 129.4 2 1zm144.7 0 2 1z"/>
<path fill="#fcc" d="m219.4 128.4 3 3z"/>
<path fill="#ccf" d="m231.2 128.4 3 3z"/>
<path fill="#6cc" d="m234.2 128.4 3 3z"/>
<path fill="#9cc" d="m42.3 131.4 3 3z"/>
<path fill="#ccf" d="m45.2 131.4 3 3z"/>
<path fill="#fcc" d="m57 131.4 3 3zm171.3 0 3 3z"/>
<path fill="#ccf" d="m240 131.4 3 3z"/>
<path fill="#9cc" d="m243 131.4 3 3zm-206.6 3 3 2.9z"/>
<path fill="#c66" d="m51.1 134.3 3 3zm183 0 3 3z"/>
<path fill="#9cc" d="m249 134.3 2.9 3zm-206.6 3 3 3z"/>
<path fill="#ccf" d="m45.2 137.3 3 3z"/>
<path fill="#fcc" d="m57 137.3 3 3zm171.3 0 3 3z"/>
<path fill="#ccf" d="m240 137.3 3 3z"/>
<path fill="#9cc" d="m243 137.3 3 3z"/>
<path fill="#6cc" d="m51.1 140.3 3 2.9z"/>
<path fill="#ccf" d="m54 140.3 3 2.9z"/>
<path fill="#fcc" d="m65.9 140.3 3 2.9z"/>
<path fill="#c33" d="m70.8 141.2 2 1zm144.7 0 2 1z"/>
<path fill="#fcc" d="m219.4 140.3 3 2.9z"/>
<path fill="#ccf" d="m231.2 140.3 3 2.9z"/>
<path fill="#6cc" d="m234.2 140.3 3 2.9zm-174.2 3 3 3z"/>
<path fill="#9cf" d="m63 143.2 2.9 3z"/>
<path fill="#fcc" d="m74.8 143.2 2.9 3zm135.8 0 2.9 3z"/>
<path fill="#9cf" d="m222.3 143.2 3 3z"/>
<path fill="#6cc" d="m225.3 143.2 3 3z"/>
<path fill="#69c" d="m68.8 146.2 3 2.9z"/>
<path fill="#9cf" d="m71.8 146.2 3 2.9z"/>
<path fill="#fcc" d="m86.6 146.2 3 2.9z"/>
<path fill="#c33" d="m91.5 147.1 2 1zm103.3 0 2 1z"/>
<path fill="#fcc" d="m198.7 146.2 3 2.9z"/>
<path fill="#9cf" d="m213.5 146.2 3 2.9z"/>
<path fill="#69c" d="m216.4 146.2 3 2.9zm-138.7 3 3 3z"/>
<path fill="#9cc" d="m80.7 149.1 3 3z"/>
<path fill="#cff" d="m83.6 149.1 3 3z"/>
<path fill="#fcc" d="m95.4 149.1 3 3z"/>
<path fill="#c33" d="m100.3 150 2 1zm85.6 0 2 1z"/>
<path fill="#fcc" d="m189.9 149.1 3 3z"/>
<path fill="#cff" d="m201.7 149.1 3 3z"/>
<path fill="#9cc" d="m204.6 149.1 3 3z"/>
<path fill="#69c" d="m207.6 149.1 3 3zm-121 3 2.9 2.9z"/>
<path fill="#9cc" d="m89.5 152 3 3z"/>
<path fill="#cff" d="m92.5 152 3 3z"/>
<path fill="#fcc" d="m104.3 152 3 3z"/>
<path fill="#c33" d="m109.2 153 2 1zm67.9 0 2 1z"/>
<path fill="#fcc" d="m181 152 3 3z"/>
<path fill="#cff" d="m192.8 152 3 3z"/>
<path fill="#9cc" d="m195.8 152 3 3z"/>
<path fill="#69c" d="m198.7 152 3 3z"/>
<path fill="#9cc" d="m98.4 155 3 3z"/>
<path fill="#ccf" d="m101.3 155 3 3z"/>
<path fill="#fcc" d="m113.1 155 3 3z"/>
<path fill="#c33" d="m116 155 3 3zm53.2 0 3 3z"/>
<path fill="#fcc" d="m172.2 155 3 3z"/>
<path fill="#ccf" d="m184 155 3 3z"/>
<path fill="#9cc" d="m187 155 2.9 3zm-79.7 3 3 3z"/>
<path fill="#ccf" d="m110.2 158 3 3zm65 0 2.9 3z"/>
<path fill="#9cc" d="m178 158 3 3zm-62 3 3 2.9z"/>
<path fill="#c33" d="m122 161 3 2.9zm41.3 0 3 3z"/>
<path fill="#9cc" d="m169.2 161 3 2.9z"/>
<path fill="#fcc" d="m122 163.9 3 3zm41.3 0 3 3z"/>
<path fill="#ccf" d="m119 166.8 3 3z"/>
<path fill="#c33" d="m126 168.8.9 2zm35.4 0 1 2z"/>
<path fill="#ccf" d="m166.3 166.8 3 3z"/>
<path fill="#9cc" d="m119 169.8 3 3zm47.3 0 3 3z"/>
<path fill="#fcc" d="m125 172.7 2.9 3zm35.5 0 3 3z"/>
<path fill="#ccf" d="m122 175.7 3 3z"/>
<path fill="#c33" d="m128.9 177.6 1 2zm29.5 0 1 2z"/>
<path fill="#ccf" d="m163.3 175.7 3 3z"/>
<path fill="#9cc" d="m122 178.6 3 3zm41.3 0 3 3z"/>
<path fill="#fcc" d="m127.9 181.6 3 3zm29.5 0 3 3z"/>
<path fill="#cff" d="m125 184.5 2.9 3z"/>
<path fill="#c33" d="m131.8 186.5 1 2zm23.6 0 1 2z"/>
<path fill="#cff" d="m160.4 184.5 3 3z"/>
<path fill="#9cc" d="m125 187.5 2.9 3zm35.5 0 3 3z"/>
<path fill="#69c" d="m125 190.4 2.9 3z"/>
<path fill="#fcc" d="m130.8 190.4 3 3zm23.7 0 3 3z"/>
<path fill="#69c" d="m160.4 190.4 3 3z"/>
<path fill="#cff" d="m127.9 193.4 3 3zm29.5 0 3 3z"/>
<path fill="#9cc" d="m127.9 196.3 3 3zm29.5 0 3 3z"/>
<path fill="#69c" d="m127.9 199.3 3 3zm29.5 0 3 3z"/>
<path fill="#fcc" d="m133.8 202.2 3 3zm17.7 0 3 3z"/>
<path fill="#9cf" d="m130.8 205.2 3 3z"/>
<path fill="#c33" d="m137.7 207.2 1 2zm11.8 0 1 2z"/>
<path fill="#9cf" d="m154.5 205.2 3 3z"/>
<path fill="#69c" d="m130.8 208.2 3 2.9zm23.7 0 3 3z"/>
<path fill="#fcc" d="m136.7 211.1 3 3zm11.9 0 2.9 3z"/>
<path fill="#9cf" d="m133.8 214 3 3zm17.7 0 3 3z"/>
<path fill="#6cc" d="m133.8 217 3 3zm17.7 0 3 3z"/>
<path fill="#fcc" d="m139.7 220 3 3zm5.9 0 3 3z"/>
<path fill="#ccf" d="m136.7 222.9 3 3zm11.9 0 2.9 3z"/>
<path fill="#6cc" d="m136.7 225.9 3 3z"/>
<path fill="#c66" d="m142.7 225.9 2.9 3z"/>
<path fill="#6cc" d="m148.6 225.9 2.9 3z"/>
<path fill="#ccf" d="m139.7 231.8 3 3zm5.9 0 3 3z"/>
<path fill="#9cc" d="m139.7 234.7 3 3zm5.9 0 3 3zm-3 6 3 2.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

+18
View File
@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ax" viewBox="0 0 640 480">
<defs>
<clipPath id="ax-a">
<path fill-opacity=".7" d="M106.3 0h1133.3v850H106.3z"/>
</clipPath>
</defs>
<g clip-path="url(#ax-a)" transform="matrix(.56472 0 0 .56482 -60 -.1)">
<path fill="#0053a5" d="M0 0h1300v850H0z"/>
<g fill="#ffce00">
<path d="M400 0h250v850H400z"/>
<path d="M0 300h1300v250H0z"/>
</g>
<g fill="#d21034">
<path d="M475 0h100v850H475z"/>
<path d="M0 375h1300v100H0z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 556 B

+8
View File
@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-az" viewBox="0 0 640 480">
<path fill="#3f9c35" d="M.1 0h640v480H.1z"/>
<path fill="#ed2939" d="M.1 0h640v320H.1z"/>
<path fill="#00b9e4" d="M.1 0h640v160H.1z"/>
<circle cx="304" cy="240" r="72" fill="#fff"/>
<circle cx="320" cy="240" r="60" fill="#ed2939"/>
<path fill="#fff" d="m384 200 7.7 21.5 20.6-9.8-9.8 20.7L424 240l-21.5 7.7 9.8 20.6-20.6-9.8L384 280l-7.7-21.5-20.6 9.8 9.8-20.6L344 240l21.5-7.7-9.8-20.6 20.6 9.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 501 B

+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ba" viewBox="0 0 640 480">
<defs>
<clipPath id="ba-a">
<path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#ba-a)" transform="translate(80)scale(.9375)">
<path fill="#009" d="M-85.3 0h682.6v512H-85.3z"/>
<path fill="#FC0" d="m56.5 0 511 512.3V.3z"/>
<path fill="#FFF" d="M439.9 481.5 412 461.2l-28.6 20.2 10.8-33.2-28.2-20.5h35l10.8-33.2 10.7 33.3h35l-28 20.7zm81.3 10.4-35-.1-10.7-33.3-10.8 33.2h-35l28.2 20.5-10.8 33.2 28.6-20.2 28 20.3-10.5-33zM365.6 384.7l28-20.7-35-.1-10.7-33.2-10.8 33.2-35-.1 28.2 20.5-10.8 33.3 28.6-20.3 28 20.4zm-64.3-64.5 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9l28.2 20.5-10.8 33.2 28.6-20.2 27.9 20.3zm-63.7-63.6 28-20.7h-35L220 202.5l-10.8 33.2h-35l28.2 20.4-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.4-64.3 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9L138 192l-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.6-63.9 27.9-20.7h-35L91.9 74.3 81 107.6H46L74.4 128l-10.9 33.2L92.1 141l27.8 20.4zm-64-64 27.9-20.7h-35L27.9 10.3 17 43.6h-35L10.4 64l-11 33.3L28.1 77l27.8 20.4zm-64-64L9.4-20.3h-35l-10.7-33.3L-47-20.4h-35L-53.7 0l-10.8 33.2L-35.9 13l27.8 20.4z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bb" viewBox="0 0 640 480">
<path fill="#00267f" d="M0 0h640v480H0z"/>
<path fill="#ffc726" d="M213.3 0h213.4v480H213.3z"/>
<path id="bb-a" fill="#000001" d="M319.8 135.5c-7 19-14 38.6-29.2 53.7 4.7-1.6 13-3 18.2-2.8v79.5l-22.4 3.3c-.8 0-1-1.3-1-3-2.2-24.7-8-45.5-14.8-67-.5-2.9-9-14-2.4-12 .8 0 9.5 3.6 8.2 1.9a85 85 0 0 0-46.4-24c-1.5-.3-2.4.5-1 2.2 22.4 34.6 41.3 75.5 41.1 124 8.8 0 30-5.2 38.7-5.2v56.1H320l2.5-156.7z"/>
<use xlink:href="#bb-a" width="100%" height="100%" transform="matrix(-1 0 0 1 639.5 0)"/>
</svg>

After

Width:  |  Height:  |  Size: 628 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bd" viewBox="0 0 640 480">
<path fill="#006a4e" d="M0 0h640v480H0z"/>
<circle cx="280" cy="240" r="160" fill="#f42a41"/>
</svg>

After

Width:  |  Height:  |  Size: 187 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-be" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#000001" d="M0 0h213.3v480H0z"/>
<path fill="#ffd90c" d="M213.3 0h213.4v480H213.3z"/>
<path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 302 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bf" viewBox="0 0 640 480">
<g fill-rule="evenodd">
<path fill="#de0000" d="M640 479.6H.4V0H640z"/>
<path fill="#35a100" d="M639.6 480H0V240.2h639.6z"/>
<path fill="#fff300" d="m254.6 276.2-106-72.4h131L320 86.6 360.4 204l131-.1-106 72.4 40.5 117.3-106-72.6L214 393.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 353 B

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bg" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v160H0z"/>
<path fill="#00966e" d="M0 160h640v160H0z"/>
<path fill="#d62612" d="M0 320h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 225 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bh" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v480H0"/>
<path fill="#ce1126" d="M640 0H96l110.7 48L96 96l110.7 48L96 192l110.7 48L96 288l110.7 48L96 384l110.7 48L96 480h544"/>
</svg>

After

Width:  |  Height:  |  Size: 252 B

+15
View File
@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bi" viewBox="0 0 640 480">
<defs>
<clipPath id="bi-a">
<path fill-opacity=".7" d="M-90.5 0H592v512H-90.5z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#bi-a)" transform="translate(84.9)scale(.9375)">
<path fill="#18b637" d="m-178 0 428.8 256L-178 512zm857.6 0L250.8 256l428.8 256z"/>
<path fill="#cf0921" d="m-178 0 428.8 256L679.6 0zm0 512 428.8-256 428.8 256z"/>
<path fill="#fff" d="M679.6 0h-79.9L-178 464.3V512h79.9L679.6 47.7z"/>
<path fill="#fff" d="M398.9 256a148 148 0 1 1-296.1 0 148 148 0 0 1 296 0z"/>
<path fill="#fff" d="M-178 0v47.7L599.7 512h79.9v-47.7L-98.1 0z"/>
<path fill="#cf0921" stroke="#18b637" stroke-width="3.9" d="m280 200.2-19.3.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm-64.6 111.6-19.2.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm130.6 0-19.2.3-10 16.4-10-16.4-19.1-.4 9.3-16.9-9.3-16.8 19.2-.4 10-16.4 10 16.5 19.2.4-9.4 16.8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+14
View File
@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bj" viewBox="0 0 640 480">
<defs>
<clipPath id="bj-a">
<path fill="gray" d="M67.6-154h666v666h-666z"/>
</clipPath>
</defs>
<g clip-path="url(#bj-a)" transform="matrix(.961 0 0 .7207 -65 111)">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#319400" d="M0-154h333v666H0z"/>
<path fill="#ffd600" d="M333-154h666v333H333z"/>
<path fill="#de2110" d="M333 179h666v333H333z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 499 B

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bl" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v480H0z"/>
<path fill="#000091" d="M0 0h213.3v480H0z"/>
<path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 231 B

+97
View File
@@ -0,0 +1,97 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bm" viewBox="0 0 640 480">
<path fill="#cf142b" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M559.7 130.6v161.6c0 43.1-86.2 57.2-86.2 57.2s-86.4-14-86.4-57.4V130.6h172.5z"/>
<path fill="#2f8f22" d="M559.7 292.2c0 43.1-86.2 57.2-86.2 57.2s-86.4-14-86.4-57.4c0 0 0-3.5 1.8-5.4 0 0-1 7.1 4.5 12.6 0 0-4.3-7.8 0-15.3 0 0-1.7 9.8 4.4 15.3 0 0-3.3-7.9.4-16.7 0 0-1.8 14.3 4.7 17.3 0 0 1.8-8.4-.8-13.6 0 0 4.5 1.8 4.3 13.8 0 0 1.4-1.8 1.8-10.5 0 0 .2 10 3.5 12.3 0 0 1.2-1-.3-5.5-1.6-4.4.6-6 1-6 0 0-.8 5 3.4 8.8 0 0-1.8-7.9.7-9 0 0-.6 6.7 4.8 8.1 0 0 .3-1.9-.8-4 0 0-1-2.5-.3-4.5 0 0 1.7 6 4 7 0 0-1.4-3.6 0-7 0 0 .2 5 4.7 7.1 0 0-3-4-1.9-8.2l28.7 1.4 15 .7 44.7-3 7.6-6.7s3.1 4.1-1.8 10.8c0 0 4.8-.8 6.3-8.3 0 0 2 4.1-.7 8.8 0 0 5.3-5.4 6-11.3 0 0 2.1 5.8-2.9 12 0 0 4.4-1.6 6.3-8.1 0 0 1.6 4-2.7 9.5 0 0 8.1-4.1 7.9-13 0 0 3.3 4.8-.5 11.6 0 0 4-3.7 4.5-9.3 0 0 2.3 2.5-.2 9.4 0 0 5-4.8 5.8-9.9 0 0 1 4.8-3.2 10.8 0 0 2.9-.8 5.7-6.6 0 0 .7 2.4-1.8 6.6 0 0 2.8-.5 4.6-5.9 0 0 .3 3.2-.5 6 0 0 2.1-1.3 2.6-7.3a9 9 0 0 0 1.2 4.4v.8z"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M515.4 198.7s-3 .6-7-.6c-3.8-1.2-5.3-.7-6.5 0 0 0 1.5-3.1-2.3-5.6 0 0 1.2 3.2-.5 4.6 0 0-.7.7-1.6-.3 0 0-1.3-1.5-2.8-2.4 0 0 3.3-1.2 2.7-4.5s-2.4-3.6-3.3-4.1a6 6 0 0 0 0 2.4s-3.5-2 1.2-4.7 4-4.4 3.1-5.8a13 13 0 0 0-3.5-3.6s1 1.6.7 2.9c-.1 1.2-2.4 2-2-.1.5-2.4 0-2 0-4.3 0 0 4.2 1.4 6-2.8 0 0 1.6-4.3-3.8-6.4 0 0 1.3 1.8.7 3 0 0-1.2 2.2-2.5.6s-2.2-2.2-2.1-4.2c0 0 4.9.7 3.6-4.7 0 0-.9 3.6-7.2-1.2 0 0 4.2-4.2 2.5-7.6 0 0-.5-1.5-4.9-.7 0 0 3.8-2.4 2.3-4.5 0 0-.9-1.3-4.6.4 0 0 1.5-2.3-2.1-5 0 0-2.4 1.2-3.6 2.4 0 0-2.4-3-4-4.3 0 0-2.8 1.1-3.5 4.3 0 0-1.3-1.5-4.3-2.4 0 0-1.4 2.8.5 5 0 0-1.4 0-4-1.1 0 0-2.8-1.2-2.3 1.1.3 2.4.6 3 1.2 4.2 0 0-6.5-1.5-6.2 2a9 9 0 0 0 3 6.2s-3.5 4.8-6.6 1.2c0 0-1.2 1.2 1.2 4.2 0 0 2.4 2.5.3 4.2 0 0-2.5 2-3.7-2 0 0-4.1 4.1.8 7.2 0 0 3 1.8 6.3-1 0 0-1 8-4 6.4 0 0-1.9-1.2 1.4-2.9 0 0-4.8-.6-5.5 4 0 0-.6 3.5 3.5 5 0 0 3.1 1.2 0 3.6 0 0-2.5 1.7-.9 4.4 0 0 1.8 2.8-2.9 3.2 0 0-2.4 0-3.3-.4 0 0-1 2-.4 4 0 0-2.3-1.7-7.5.2-5.2 2-4.9.6-5.2 1.2l-1.6 2.4s2.8 3.6 2.9 3.3l-.6 4 1.4.6 10.8-4.8 11-5.7 8.9.4 5.6 1.3 7.2.6 5.4-2.8h7.6l8.4 4.2 9.5 5.7 5 1 3.9-.3v-7.8z"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M428.2 207.7s4.2 2.2 6-.3c0 0 2.2-4.4-2.8-6 0 0 2.8-3.2-.2-6.2 0 0-1.6-1.6-4.2-.5 0 0-1.2-2.3-3.7-2.2 0 0-2.4 0-3 2.5 0 0-3.2-1.2-4.9.6 0 0-3 3.2 1.1 5.8l2.9.3 2.8-1.4 3.3.9s-.9 3.2 2.7 6.5z"/>
<path fill="#64b4d1" stroke="#000" stroke-width="1.2" d="M521.6 200.1a7 7 0 0 1 6.9 3.8c2.6 6.2-3 9.6-3 9.6.4 1.3.5 3.2.5 3.2 7.8 1 6.4 9.8 6.4 9.8l-2.6-2.2c-4.5-1.8-9.3 2.2-12.6 8.6-3.4 6.6-1.8 9.5-1.2 17.3.6 7.7 13 12.4 13 12.4l-9.7 25c-3.8 10-12 5.9-14.3 3.7-2.3-2-2.9-.8-4 0-1.1 1 5.3 6-6.5 10.8-11.7 4.7-13.7 8.3-15.7 9.5s-10 .5-10.8-.6c-1-1-.4-1-3.5-2.9-3-1.7-8.2-3.5-13.8-6.2s-5.4-6.2-5.3-6.9c0-.7 1.9-6.5-4.7-1.9-6.5 4.7-12.1-2.2-12.1-2.2-1.2-1.7-6.8-16.4-6.8-16.4a92 92 0 0 0-4.3-12s-.4.8 4.5-2c4.8-2.7 7-7.3 8.7-11.9s0-12.5-.6-14c-.6-1.6-4.2-8.9-8.7-10.4-4.4-1.6-7.5 2.4-7.5 2.4s-1.3-9 6.6-10c0 0 0-1.8.4-3.1 0 0-5.6-3.4-3-9.6 0 0 1.8-4.3 6.8-3.8l-1.1 2.4s-1.2 12.6 17.2 4.2c18.5-8.6 18-10.2 28.7-4.8l7.6-.1s11-5.3 14.7-3c3.5 2.3 16.3 9.4 16.3 9.4s12.4 4.7 14.9-4z"/>
<path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M465.8 255s-.6-3.9-1.2-6.4c0 0-1.5-3.9 1-6.8l2.8-3.3s1.8-2.4 4-2.7c0 0 2.3 0 2.4-.5.3-.5 2.8-4.5 8.6 0 0 0 1.8-3 4.8-3.6 0 0 3-.8 4.5 1.4 0 0 3.5-2.6 6.4 1.7 0 0 4.1-2.4 7.2 2.3 0 0 4-2 6.4 2.1 2.5 4.3 2 6 2 6l2 6.8 6.5 8-15.2 5.8h-7l-13.7 3.6-24.3 1.9-6.7-8 9.6-8.3z"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M445.3 295.5s-3.6.1-5.5 1.2c-1.8.8-3.3 1.8-5.4 3.2 0 0-1 1.3-5.2.5 0 0-7.2-1.7-7.2 4 0 0-8.8.6-5.2 8.3 0 0 2.3 6 7.3 1.8 0 0-3.2 4.5 3 6.3 0 0 4.4 1.2 5.8-3.5 0 0 .7-1.8-1-4 0 0 2.1-.4 3.6-2.7 0 0-4.6 5.8.5 8 0 0 6.3 1.5 6.6-5 0 0-.6-3.2 2-4.3 0 0 5-1.2 7-6.6 0 0-7-3.9-6.3-7.2zM430.6 238s-5.6-2.5-8.4 0c0 0-3.5-2.2-7.5 0 0 0-3.7 2.4-6.3 5.2 0 0-1.8 1.5-1.2 6.4 0 0 1 3.5.5 5.1 0 0-1.2-.2-3.7 2.8 0 0-3.1 3.5-6 .3 0 0 1 4.6 6.1 3.8 0 0-2.5 2-.3 7 0 0 1.6 3.6-1 8.2 0 0 4.5-1.8 4.4-7.2 0 0-.5-3.6 1-6 0 0-1.5 2.2 1.6 7.1 0 0 2.4 3.6.5 7.2 0 0 4.4-1.6 4-7s-3-3.2-1.4-8.2c0 0 .5 2.6 1.8 4a7 7 0 0 1 2.4 7s2.6-3.4 2-6.8a13 13 0 0 0-1.3-4.4l8.4-4.8 4.3-7.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M417.8 259.5s-3.5-.2-4-3m-6.1-1.8s1.2 0 2.4 1.2c0 0 .7 1.2 1.9 1"/>
<path d="M423 249.2s-1.8 0-3-.8c0 0-.9-.7-1.5.4 0 0-1 1.6.8 2.3 0 0 2.2 1.2-1.2 3.4 0 0 4-1.6 2.4-3.6 0 0-1.8-1.2-1.2-1.7 0 0 .2-.4 1 0 .6.6 2 .4 2.7 0"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m477.6 259 2.1-.6-14-48h-.4z"/>
<path d="M431.2 312.3s-3.2-1.9-6 .3c0 0 .4-1.2 2.4-1.7 0 0 1.2-3.2 4.3-2.9 0 0-1.3 1.6-3 2.8 0 0 1.8.2 2.4 1.5z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M419.7 319.8s-5.2-3.2-2.3-8.7c0 0 .8-1.5 2.3-1.2 0 0 3.3 1 .8 5.5 0 0-1.4 2.9-.8 4.5zm10.5 5.3s-7.4-3.4-5.1-9.2c0 0 .7-2 2.4-1.8 0 0 2.8.2 2.3 4 0 0-.9 3.6.4 7z"/>
<path d="M428.7 303.6s-2.3 1.7-3.1 2.8c0 0-1-1.2-2.2-1.8 0 0 1.5-.3 2.2.3 0 0 1.2-1 3-1.3z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M435.2 323.6s6-1.4 4.8-7.5c0 0-.6-2.6-3-2.2 0 0-3 .8-1 4.6 0 0 1.1 2.6-.8 5.1z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="m461.6 196.7 5.7 1.9s5.4 2.3 12.3 0l5.2-2-3.5 5.4v2.9l2.1 3.2s-1.3.6-5.4-2c0 0-4.4-3.4-9.6 0 0 0-3 2-5.4 2l3.5-3.8-1.3-3.5-3.6-4.3z"/>
<path fill="#fff" d="M437.5 316.5s.2-.4 0-.5l-.5.2s-.6 1 0 2.4c0 0 .5.9.3 1.8v.4s.3-.1.3-.4c0 0 .4-.8-.2-1.8 0 0-.6-1.4.1-2.1"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M518 207.7s-4.2 2.2-6-.3c0 0-2.1-4.4 2.9-6 0 0-2.8-3.2.1-6.2 0 0 1.6-1.6 4.2-.5 0 0 1.2-2.3 3.7-2.2 0 0 2.4 0 3 2.5 0 0 3.3-1.2 5 .6 0 0 2.8 3.2-1.2 5.8l-2.9.3-2.9-1.4-3 .9s.8 3.2-3 6.5z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M484.8 204.4s0 .8-.8 1c0 0-1 .3-1.5-.9v-.3c0-.5-.3-2 1.4-3.3 0 0 2.6-2.1 7.6.5a192 192 0 0 0 14.8 7.5s3.1 1.6 7.9 1.8c0 0 6.5.5 9.3-4.1 0 0 2.1-3.5 0-5.8 0 0-.9-1-2.3-.8a3 3 0 0 0-1.8 1.2s-1 1.4.1 2.5c0 0 1.6 1 2.2-1 0 .2.5 1.7-.4 2.9 0 0-4 6-14.9-.1l-14.3-8.1s-7.1-3.7-11.6 2.1c0 0-3.4 4.8 1.1 7.9 0 0 3.4 2 5.4-1.2 0 0 1.8-3.1-1-4.4 0 0-2.4-1.2-3.3 1.2-1 2.4 1.8 3 2 1.3 0 0 0-.4.3 0z"/>
<path fill="#e4cb5e" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M428 229.2v-9c0-.8 0-1.2 1.2-2.2 1-.8 2.1-2.3 3.7 1.7 0 0 3.2-3.5 4.2-4 0 0 2-1.5 3.3.7 0 0 1.6-2.6 3-3.2 0 0 3.2-2 3.3 4.2l2.5-2.4s2-1.5 4.2.7c0 0 3.5 3.6 4 4.6 0 0 .8 1 1 2.7 0 0 0 2 1 3 0 0 1.1 1 2.2 1.2 0 0 2.5.1 3.6 2.6 0 0 .3-.5 1.6 11.2v21.5l-14.4 17.1-23.1-6.6-9.2-3.9-2.2-6.6 9-5.9 4.8-13-1.5-9.3-2.2-5.2z"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m491.6 240.4 1.2-1.5 2.5-2s4 10.4 4.2 12.7v3.2s6 1.6 7.2 10.7l-5 9.2-7.8-4.4-2.3-1.5z"/>
<path fill="#fff" d="M418.3 312.4s.2-.3 0-.6l-.5.4s-1.5 1.7-.2 4.4c0 0 0 .4.3.2 0 0 .3 0 0-.3 0 0-1.1-2.4.4-4z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M441.7 310.6s.1-.8-.4-1.6q-.2 0-.2-1.5m5.6-90.1s0 2.3.7 4c.6 1.6 2.9 4.5 3 5.9"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M501 295.5s3.6.1 5.5 1.2c2 .8 3.4 1.8 5.5 3.2 0 0 1 1.3 5.2.5 0 0 7.2-1.7 7.2 4 0 0 8.7.6 5.2 8.3 0 0-2.4 6-7.4 1.8 0 0 3.2 4.5-3 6.3 0 0-4.4 1.2-5.7-3.5 0 0-.8-1.8 1-4 0 0-2.1-.4-3.5-2.7 0 0 4.5 5.8-.5 8 0 0-6.3 1.5-6.7-5 0 0 .5-3.2-2-4.3 0 0-5-1.2-7.2-6.6 0 0 7.2-3.9 6.5-7.2z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m443.8 227.4 6 47.8m-4.5-47.9 6.6 44.6m-5.5-44.8 7.8 44.2"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m458.6 267.5 2.2-.7-14-48h-.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m450.7 225.3 14.1 35.5m-15-35 13.6 37"/>
<path fill="#fff" d="M427.6 321.6s-1.7-1.5-1.4-4.3c0 0 0-.6-.3-.7 0 0-.3-.1-.3.6 0 0-.5 2.9 1.5 4.5q0 .2.4.2v-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m451.5 224.8 14.3 32.4m-18.3-30.4 9 43.7"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M520 259c-6.3-3.6-7.7-11.4-7.7-11.4a25 25 0 0 1 1.6-14.3c4-8.6 11.1-10.3 11.1-10.3s-6.9 4.8-8.8 11.2c0 0-1.4 5.5-.6 10.7.8 5.5.5 4.1 1.8 8.3l2.6 6z"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m492.7 238.7-26.6 8.5-1.4 12c-6.3 9.1-19.2 10.7-19.2 10.7l10 10.7 19 4 10.2-7.8 9.2-8.4c-1-4.5-.5-11.2-.5-11.2 0-1.2.5-3.8.5-3.8s-1.5-10.7-1.2-14.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M465 256.2s17.6-5.5 28-10m-36.4 20s22-4 37.3-12.8l5.6-3.8"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m499.5 252.8-6 4.4s-24.5 11.2-43.2 11.6m43.1-3.6S474.6 275 464 275"/>
<path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width="1.2" d="M515.8 238s5.6-2.5 8.4 0c0 0 3.6-2.2 7.6 0 0 0 3.6 2.4 6.2 5.2 0 0 1.8 1.5 1.2 6.4 0 0-1 3.5-.3 5.1 0 0 1.1-.2 3.5 2.8 0 0 3.3 3.5 6 .3 0 0-.8 4.6-6 3.8 0 0 2.4 2 .3 7 0 0-1.6 3.6 1 8.2 0 0-4.6-1.8-4.4-7.2 0 0 .4-3.6-1-6 0 0 1.4 2.2-1.7 7.1 0 0-2.4 3.6-.4 7.2 0 0-4.5-1.6-4-7 .3-5.4 3-3.2 1.3-8.2 0 0-.4 2.6-1.7 4a7 7 0 0 0-2.4 7s-2.6-3.4-2-6.8c.6-3.5 1.2-4.4 1.2-4.4l-8.3-4.8-4.2-7.5z"/>
<path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M420.6 268.4s.8-3.7 4.3-2.4c0 0 1.2-6 7.7-6.2s6.8 6.4 6.8 6.8c0 0 2-2.8 5.1-2.5 0 0 5.5-.3 3.6 8.5l1 1.2s4.1-9.9 12.7-7.4c0 0 8.4 2.6 3 10.7 0 0 4.2 5.5 7.6 5 3.6-.5 6.7-1.6 10.2-7.8 3.6-6.2 11.7-7.2 13.7-6.8 2 .3 3.7 1.8 4 3.2 0 0 4.3-14.3 19.8-12.2l6.2 3.3 2.4 1-3.6 10-8.4 19.2-6.6 2-6.8-3.9-2.4 1.2v5.9l-9 6.4-6.2 2.5-6.8 4.8-1.7 4.2s-3.7-1.7-8 0l-1.4-3.6-4-3.7-15.6-7.4-2.7-9-2.9-1.3-3.2 3.6-4.5.6-7-4.8-7.4-21z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M488.2 198s-6-.2-5.7 6"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M527 263.3c-10.2-3.2-13-14.3-13-14.3a26 26 0 0 1 1.2-15.5c4.8-11 12.7-11 12.7-11a4 4 0 0 1 4.5 3.2c.4 2.4-1.3 3.3-1.3 3.3-2.7 1.5-4.5-.5-4.5-.5-1.2-1.6-.3-2.9-.3-2.9.7-1 2-.4 2-.4 1.3.2 1 1.6 1 1.6s.4-1.6-1.2-1.8c0 0-3.2-.7-6.8 3.8 0 0-4.7 6.1-4.7 14.1 0 0-.6 14.8 14.7 18.6 0 0-1.6 2.4-4.6 11.1 0 0-3.3 11.2-6.4 17.3 0 0-4.3 8.6-13.9 5.1 0 0-5.6-2.5-5.6-6.5 0 0-.3-3.8 3-4 0 0 3.3-.3 3.3 2.5 0 0 0 3-3.5 2.4 0 0-1.2-.3-1.1-1.5 0 0 .2-1.2 1.8-.6 1.5.6 0 0 0-.1 0 0-.6-.3-1.2 0 0 0-.6 0-.6 1q-.2.2.7 1.1l1.7.2s1 2 3 2.7a8 8 0 0 0 7.1-1.2 11 11 0 0 0 3-4.3 113 113 0 0 0 5.2-13.5s1.8-5.7 3.4-8.7z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M498 291.4s2-.2 2 1.5c0 0-.1 2.4-3.2 1.9 0 0-3-.6-2-4 0 0 .8-2.3 3.6-2 0 0 2.8 0 4 3.8 0 0 1 3.3-.7 6-1.8 3-6.2 5-8.4 6 0 0-8.7 3.3-11.3 5.3 0 0-4 2.9-2.2 5.6 0 0 .7 1.1 1.7 1.1 0 0 1.2 0 1.3-1.2 0 0 0 .7-.7 1 0 0-.8.4-1.7-.3 0 0-1-1-.2-2.4 0 0 1-1.6 3.6-.6 0 0 2 1.1 1.2 3.3 0 0-.9 2.1-3.4 2 0 0-1.9 0-3.2-1.2-2-2.1-2-6-.2-8 0 0 1.5-2.1 4.7-3.6l9-3.5q4-1.5 6.4-4.1s1.3-1.4 1.8-4c0 0 .4-2-.8-2.4l-1.2-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M498.2 291.4s2.1-.4 3.5 2.2c0 0 .7 1.5.8 2.5m.7-9s-2.1.3-1 3.4c1.1 2.9 3 3.7 3.5 4.2"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M461.6 204.4s0 .8 1 1c0 0 .8.2 1.3-.9v-.3c0-.5.3-2-1.2-3.3 0 0-2.8-2.1-7.8.5 0 0-4 2-6.7 3.6 0 0-7.1 3.8-8 4 0 0-3.2 1.6-8 1.8 0 0-6.5.5-9.2-4.1 0 0-2.2-3.5 0-5.8 0 0 .8-1 2.2-.8q.9 0 1.8 1.2s1 1.4-.1 2.5c0 0-1.6 1-2.2-1 0 .2-.3 1.6.5 3 0 0 4 5.9 14.8-.3l14.3-8s7.2-3.7 11.6 2c0 0 3.4 4.8-1 8 0 0-3.3 2-5.5-1.2 0 0-1.6-3 1-4.4 0 0 2.4-1.2 3.5 1.2 1 2.4-2 3-2.2 1.3 0 0 0-.4-.1 0zm-35.2 54.7c6.3-3.5 7.8-11.5 7.8-11.5 1.4-8-1.7-14.3-1.7-14.3-4-8.6-11-10.3-11-10.3s6.8 4.8 8.7 11.2c0 0 1.6 5.5.6 10.7-.8 5.5-.5 4.1-1.8 8.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M458.4 198s6-.2 5.6 6"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M419.3 263.3c10.3-3.2 13-14.3 13-14.3a26 26 0 0 0-1.1-15.5c-4.8-11-12.7-11-12.7-11a4 4 0 0 0-4.5 3.2c-.3 2.4 1.3 3.3 1.3 3.3 2.8 1.5 4.6-.5 4.6-.5 1.1-1.6.2-2.9.2-2.9-.7-1-2-.4-2-.4-1.2.2-1 1.6-1 1.6s-.3-1.6 1.2-1.8c0 0 3.2-.7 6.8 3.8 0 0 4.8 6.1 4.8 14.1 0 0 .6 14.8-14.8 18.6 0 0 1.7 2.4 4.6 11.1 0 0 3.4 11.2 6.6 17.3 0 0 4.2 8.6 13.7 5.1 0 0 5.6-2.5 5.6-6.5 0 0 .4-3.8-3-4 0 0-3.3-.3-3.3 2.5 0 0 0 3 3.6 2.4 0 0 1.2-.3 1-1.5 0 0-.2-1.2-1.7-.6-1.6.6 0 0 0-.1 0 0 .5-.3 1.1 0 0 0 .6 0 .6 1q.2.2-.7 1.1l-1.5.2s-1 2-3.2 2.7a8 8 0 0 1-7-1.2 11 11 0 0 1-3-4.3 114 114 0 0 1-5.3-13.5s-1.8-5.7-3.2-8.7l-.6-1.2z"/>
<path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M448.5 291.4s-2-.2-2 1.5c0 0 0 2.4 3.2 1.9 0 0 3-.6 1.9-4 0 0-.7-2.3-3.6-2 0 0-2.7 0-4 3.8 0 0-.9 3.3.8 6 1.8 3 6.2 5 8.3 6 0 0 8.7 3.3 11.4 5.3 0 0 3.9 2.9 2.1 5.6 0 0-.6 1.1-1.7 1.1 0 0-1.2 0-1.3-1.2 0 0 0 .7.7 1 0 0 .9.4 1.7-.3 0 0 1-1 .2-2.4 0 0-1-1.6-3.4-.6 0 0-2.2 1.1-1.2 3.3 0 0 .7 2.1 3.2 2 0 0 2 0 3.2-1.2 2-2.1 2-6 .4-8 0 0-1.7-2.1-4.8-3.6-1.9-.6-5.5-2.1-9-3.5q-4.1-1.5-6.5-4.1s-1.3-1.4-1.8-4c0 0-.3-2 .9-2.4l1.2-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M448.2 291.4s-2.1-.4-3.4 2.2c0 0-.7 1.5-.9 2.5m-.7-9s2.2.3 1.1 3.4c-1.2 2.9-3 3.7-3.6 4.2m27.4-91.1s5.2-3.3 10.4.3m-39.7 31.3s.7-3-2.6-8c0 0-2.2-4.7-3.2-7.5m7.4-3.3 2.3 6.6 3 6.8"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M441.2 238.3s2 2.1 1.8 5.6m-8.1-7.9s2.1 1 1.9 6.8c0 0-.1 4 3 6.2m-5.3 1.4s6.7-.7 7.2 3.5c0 0 0 4 2.4 4.3 0 0 3.3.3 4 3.6m-11.4-6.8s1.2 1.7 2.4 2.6m6.2-7s1.6 2.7 2 4.1m5.3-35s1.6 2.1 3.1 3m3.1 9.6s3.4 1.6 3 10c0 0-.6 5 .9 7.7"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m443.1 226.6.4.8s6 .3 9.1-3.8l-.3-.8s-5.3-.3-9 3.8z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M464.7 258.5s20.6-6 28.6-9.6"/>
<path fill="#784421" stroke="#000" stroke-width="1.2" d="m462.5 220.5-.2-.6 10.1-4 .3.8z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="m463.4 220.1 6.8 33.3m-5.6-33.6 7.7 33m-6.4-33.6 8.4 32.9m-5-34.1 11.5 24.6m-10-25 12.3 24.2M471.8 217l13.4 24.3m-15.5 12.4 5.2-1.6m-9.1-1.6s15.2-4.5 27-9.2M465.4 252s19.5-5 27.2-8.8m-21.2 24.6 1 3.3 2.8-1-1-3.1m5-1.3 1 3 2.8-.9-1-3m-16-17.6-.2-4.2 25.5-7.7 1.3 3.6m-16 .8 1.3 3.8m7.6-6.4 1.6 3.6m.5-4.3 1.6 3.3m.4-4 1.6 3.6m0-4 2.8-1.6 1.2 3.1m-2.6-2.3 1.4 3.3"/>
<path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M429.5 283.1s-5-5.1 0-10c0 0-5.5-2.6-4.6-7m13.6 21s-5.3.7-3.7-9.4c0 0-2.2 4-2.9 6a5 5 0 0 0 2 5.4c.9.6 5.5 1.8 7-1.2m-8.3-16.2s-2.1 1.9-.6 5.4m2.8-5s.2 3.5 2 5.4m-.5-6.7s0 4 2.9 6.6m-1.5-8s0 4.5 3.4 7.4m13.5-.7s1.6-3.9 5.2-3.6c0 0-1.7.8-1.7 2.5 0 0-.2 3 2.9 3.2 0 0 2.5.4 3.8-1"/>
<path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M463.1 293.1s-8.9-4.2-8-10.1c0 0 .4-3.6 4-5.4m-2 3.8s-.8 2.5 1 4.3m1.1-6s-1.2 2.8.7 4.8m1.5-6.3s-1.4 2.4.2 4.5m-8.4 11s4.8 4.3 8.6 4.3m-10.1-2.9s4.5 3.6 7.4 4.2m-9-3.2s5.5 4.9 9 5.2m13.7 4.6s-5.5 3-1.2 6.2m-2.4-9.4 9-4.6m-6.7 6.2s9-5.5 11.7-6.7m-7 7.2s7.7-5.2 11.9-7.5m-6.8 7.1s5.3-4 10.5-7.1m1.7-5.1s-2.6-3.9-11.2 0c0 0 3.3-2.9 9.5-5.2m8.5-16.3s.8 3.1 0 5"/>
<path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width="1.2" d="M486.5 285.7s1.8-2.6 6.3-4c0 0 1.2 3 4.8 2.5 0 0 5.2-1.1 3.6-7 0 0-1.1-4.2-7.2-4.7m18.1-7.3s6.1 1.2 6 6.1c0 0 .6 7.6-7.4 9m6.6-12s1.6-3.7 5.5-5.2m-4.6-2.2s1.7 2.8 2.8 3.1m-3.6-1s1.5 2.1 2 2.5m-2.6-.5 1.5 1.6M485 235.8s1.2-2 4.3-1.2m12.1 15.8s2-7.8 8.5-5m-2.6-.6s.6-3.6-1-5.5m-3.6 5.2s.9 1.5.1 2.7"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M516.2 325s7.4-3.3 5.1-9.1c0 0-.7-2-2.4-1.8 0 0-2.8.1-2.3 4 0 0 1 3.8-.5 7z"/>
<path fill="#fff" d="M518.8 321.6s1.7-1.5 1.5-4.3c0 0-.2-.6 0-.7 0 0 .4-.1.4.6 0 0 .5 2.9-1.4 4.5q0 .2-.4.2-.2 0 0-.3z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M526.7 319.8s5.2-3.2 2.4-8.7c0 0-.9-1.5-2.4-1.2 0 0-3.2 1-.7 5.5 0 0 1.2 2.9.7 4.5z"/>
<path fill="#fff" d="M528 312.4s-.2-.3 0-.6l.4.4s1.5 1.7.3 4.4c0 0-.1.4-.5.2v-.3s1.2-2.4-.2-4z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M511 323.6s-5.8-1.4-4.7-7.5c0 0 .6-2.6 3.1-2.2 0 0 3 .8 1 4.6 0 0-1.1 2.6.7 5.1z"/>
<path fill="#fff" d="M508.8 316.5v-.5s.4 0 .5.2c0 0 .6 1 .1 2.4 0 0-.5.9-.2 1.8l-.3.4-.2-.4s-.3-.8.2-1.8c0 0 .6-1.4 0-2.1z"/>
<path d="M515.2 312.3s3.4-1.9 6 .3c0 0-.2-1.2-2.4-1.7 0 0-1-3.2-4.2-2.9 0 0 1.2 1.6 3 2.8 0 0-1.8.2-2.4 1.5m2.4-8.7s2.4 1.7 3.2 2.8c0 0 .9-1.2 2-1.8 0 0-1.2-.3-2 .3 0 0-1.1-1-3-1.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M504.8 310.6s-.3-.8.3-1.6c0 0 .4-.6.2-1.5m23.4-48s3.5-.2 4-3m6-1.8s-1.2 0-2.2 1.2c0 0-.9 1.2-2 1"/>
<path d="M523.6 249.2s1.8 0 2.7-.8c0 0 1.1-.7 1.7.4 0 0 1 1.6-.8 2.3 0 0-2.2 1.2 1.3 3.4 0 0-4.2-1.6-2.4-3.6 0 0 1.8-1.2 1-1.7 0 0-.2-.4-.9 0-.7.6-2.1.4-2.6 0"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M526 205.6s.8-1.2.5-4.4 2.6-3.7 3.6-2.8c0 0 1.2 1 0 3.1a8 8 0 0 1-4.1 4.1z"/>
<path fill="#fff" d="M527 203s1.2-1.1.6-3.6l.2-.2h.3s.6 2.8-.6 4.2c0 0-.2.3-.5 0z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M525.1 204.4s0-1.4-2.3-3.6c-2.4-2.4-.5-4.4 1-4.4 0 0 1.3 0 2 2.3a8 8 0 0 1-.7 5.7z"/>
<path fill="#fff" d="M524.8 201.4s0-1.6-2.2-3.3v-.4h.4s2.3 1.8 2.3 3.8q0 .2-.3.3-.1.1-.2-.4"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M522 203.3s-.7-1-3.5-2.1c-2.9-1-2.2-3.5-1-4 0 0 1.3-.5 2.6 1.1a8 8 0 0 1 1.8 5z"/>
<path fill="#fff" d="M520.6 201.3s-.6-1.4-3.2-2.1l-.2-.3.3-.1s2.9.6 3.7 2.4l-.1.3s-.3 0-.4-.2z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M523.7 204.4s-1.3.5-4.4-1-4.4 1.1-3.8 2.3c0 0 .5 1.6 2.8 1.2a8 8 0 0 0 5.4-2.4z"/>
<path fill="#fff" d="M516.6 205.4s1.4 1 3.9 0h.3s0 .2-.2.3c0 0-2.6 1.2-4.4.1v-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M519.3 194.7s1.4.8 1.2 2.5"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M526 195s.6 1.9 0 3"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M420.2 205.6s-.8-1.2-.5-4.4c.4-3.4-2.5-3.7-3.5-2.8 0 0-1.2 1-.2 3.1a8 8 0 0 0 4.2 4.1z"/>
<path fill="#fff" d="M419.1 203s-1-1.1-.6-3.6v-.2h-.4s-.5 2.8.7 4.2c0 0 .2.3.3 0z"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M421.2 204.4s0-1.4 2.4-3.6c2.3-2.4.4-4.4-1-4.4 0 0-1.6 0-2 2.3a8 8 0 0 0 .6 5.7z"/>
<path fill="#fff" d="M421.5 201.4s0-1.6 2-3.3c0 0 .3-.3 0-.4h-.2s-2.4 1.8-2.4 3.8q-.1.2.4.3.1.1.2-.4"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M424.3 203.3s.6-1 3.5-2.1c2.8-1 2-3.5.9-4 0 0-1.2-.5-2.6 1.1a8 8 0 0 0-1.8 5z"/>
<path fill="#fff" d="M425.6 201.3s.6-1.4 3.2-2.1l.2-.3-.2-.1s-2.9.6-3.7 2.4v.3s.4 0 .5-.2"/>
<path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width="1.2" d="M422.5 204.4s1.4.5 4.4-1 4.4 1.1 4 2.3c0 0-.7 1.6-3 1.2a8 8 0 0 1-5.4-2.4z"/>
<path fill="#fff" d="M429.6 205.4s-1.3 1-3.9 0h-.2v.3s2.8 1.2 4.5.1q.2 0 0-.3z"/>
<path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width="1.2" d="M427 194.7s-1.5.8-1.2 2.5"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="1.2" d="M420.2 195s-.6 1.9 0 3"/>
<path d="M486.7 177.6s1 2.7.6 5.2c-.3 2.4.2 2.9 1 3.4.7.3 2.4-.4 2.5-2.2 0 0 2 3.8-1.8 6.3 0 0-2.7 1.7-5-.4-.8-.9-1.2-3-.7-5 0 0 .6-2.7-.5-5.5 0 0 1.6 1.6 1.2 4.9 0 0-.8 6 3.6 5.6 0 0 3 0 3-3.6 0 0-1.1 1.2-2.4.8a2.4 2.4 0 0 1-1.8-2.8c.1-1.6.6-4.3.3-6.7M482 187s-.4 4.8-4.6 5.9c0 0 .6-.9-.3-3.3 0 0-1-1.2-1-3.3 0 0-1.2 1 .3 3.8 1 1.7 0 3.6-.1 3.7-.4.1 6.9-1 5.6-6.7zm-5.6-4.5s-1.1-1.2-1.2-3.8c0-2.7-.5-3.4-.9-3.6 0 0 .5 2.3.4 3.6a7 7 0 0 0 .4 3s-2.4.3-3.9-3c-1.3-3.3-2.7-3-3.4-3 0 0 .8.1 2.4 3 1.6 3 2.1 3.7 6.2 3.7zm-10.8-7s1.2 3.2 1.4 4.8c0 0-3.1-1-4-3.5 0 0-3.2 1-2 4.7 0 0-2.9-1-4.2-3.2 0 0 1.6 1.2 3.1 1.7 0 0-.2-3.1 3.6-4.2 0 0 .6 2.7 2.6 3.3zm5-5.4s1.2 1.5 3.4 1.5a4 4 0 0 0 3.2-1.5s-.1 2.6-3.2 2.7c0 0-3.3 0-3.3-2.7zm-13.4 18.5 2 1.9s1.2 1.2 2-.3c0 0 1.3-2.4 2.9-2.2 0 0-1.2.7-2.4 3 0 0-.2.7-1.2.8-.5 0-1 .2-1.8-.7q-.2 0-1.5-2.4zm16.7-29.4c-3.2 0-.5 2.4-.5 2.4 0 4-3.1 5.4-5.3 4.2s-.4-4-.4-4-2.4 1.5-1 3.9c1.6 2.4 5.7 1.2 7.2-.9 1.5 2.2 5.7 3.3 7.1.9 1.7-2.4-.8-4-.8-4s1.8 2.9-.5 4c-2.1 1.3-5.4 0-5.2-4 0 0 2.7-2.5-.5-2.5zm2-4.4s1.2 2 1 5c0 0 .9-3-1-4.9zm-10 4.7s-.3-2.2-2.4-2.4c0 0 1.9 1.3 2.4 2.4m16 0s.3-2.2 2.5-2.4c0 0-1.8 1.3-2.4 2.4zm-19.2 3.2s1.6.5 2.6-.7zm-5.4-13.1s1.9-.1 3.8 2.7c0 0-1.9 1-2.4 1.6 0 0 0-1 1-1.7 0 0-.4-1.4-2.4-2.5zm32 0s-2-.1-3.9 2.7c0 0 2 1 2.4 1.6 0 0 0-1-1-1.7 0 0 .4-1.4 2.5-2.5zm-14.7 2.2s1.7.5 3.8-.7c0 0 2.6-1.4 4.3 0 0 0-1.4-.7-4.3.7 0 0-2.7 1.6-3.8 0"/>
<path fill="#fff" d="M476.4 153.6s1.4-2.5 6-2c0 0-1.3 3.6-6 2"/>
<ellipse cx="479.4" cy="152.8" fill="#784421" rx=".8" ry="1.1"/>
<ellipse cx="479.4" cy="152.8" rx=".5" ry=".7"/>
<path d="M466.8 148.1s2.8.3 4.6 1.2c0 0 1.8 1.2 3.8-.3 0 0 2.2-1.4 3.7-3.1 0 0-3.5 2.3-4.8 2.7 0 0-1.2-1-1.5-2.3 0 0 0-1 2-2.7 0 0-2.5.8-3 2.9a7 7 0 0 0 1.4 2.3s-.4.3-1.6-.6c0 0-2.8-.8-4.6 0zm7.2 17c-2.4 2.1 0 1.9 0 1.9s2.4.2 0-2zm-1.4-13.2s-1.8.5-4-.7c0 0-2.6-1.4-4.3 0 0 0 1.5-.7 4.3.7 0 0 2.9 1.6 4 0"/>
<path fill="#fff" d="M470.8 153.6s-1.5-2.5-6-2c0 0 1.2 3.6 6 2"/>
<ellipse cx="467.7" cy="152.8" fill="#784421" rx=".8" ry="1.1"/>
<ellipse cx="467.7" cy="152.8" rx=".5" ry=".7"/>
<path fill="none" stroke="#000" stroke-width="1.2" d="M560 130.6v161.6c0 43.1-86.2 57.2-86.2 57.2s-86.4-14-86.4-57.2V130.6z"/>
<path fill="#006" d="M0 0h320v240H0z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
<path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
<path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
<path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

+36
View File
@@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bn" viewBox="0 0 640 480">
<path fill="#f7e017" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M0 33.3v213.4l640 100V233.3z"/>
<path fill="#000001" d="M0 146.7v100l640 200v-100z"/>
<g fill="#cf1126" transform="translate(-160)scale(.66667)">
<path d="M695.7 569.7a117 117 0 0 1-49.4-17.2c-2.4-1.6-4.6-3-5-3s-.6 1.9-.6 4.1c0 6.4-2.6 9.6-9 11.3-6.2 1.6-15.6-1.6-23.2-8a68 68 0 0 0-24.7-13.5 40 40 0 0 0-28 3.6 9 9 0 0 1-2.8 1.3c-1.1 0-1-6.9.2-9 1.5-3 5.1-5.8 9.4-7.3 2.2-.8 4-1.8 4-2.3s-.8-2-1.7-3.6q-4.3-7.9 3.4-13.9c5.2-4 14-4.6 21.7-1.7l4 1.4c1 0 .4-1.5-2.4-5.6-3.2-4.7-3.9-7-3.5-12.7a15 15 0 0 1 13.5-13.5c5.8-.4 9.4 1.6 18 9.7a144 144 0 0 0 86 41.6c8.3 1 24.8.5 34.5-1a156 156 0 0 0 81.8-40.8c6.4-6 9.4-7.6 14.7-7.6 4.5 0 7.7 1.4 11 5 3 3.3 4 6.4 3.6 11.5-.2 3.2-.7 4.7-2.6 7.9-2.8 4.5-2.3 5 3.2 2.8 7.6-3 16.9-1.6 21.9 3.2 4.4 4.2 4.8 8.4 1.4 14-1.3 2.1-2.3 4-2.3 4.4 0 .6 1 .8 5.5 1.6 6 1 9.5 5.4 9.5 12.2 0 2-.3 3.7-.6 3.7s-2.6-.9-5-1.9c-7-2.9-11-3.6-19.2-3.5-6.2 0-8.3.3-12.6 1.7a58 58 0 0 0-19.5 11.5c-6.4 5.7-10.4 7.5-16.6 7.4q-8.7 0-11.8-5c-1.1-1.8-1.3-2.8-1-6.8.2-2.6.1-4.7 0-4.7-.3 0-2.5 1.4-5 3.1A81 81 0 0 1 778 560a182 182 0 0 1-82.3 9.7"/>
<path d="M706.3 525.2a136 136 0 0 1-97.9-55.7c-24.4-33.2-32-77.1-24.6-117.2 4-18.3 12-36.6 25.5-49.6a115 115 0 0 0-8.7 74.3c9 49.8 51 91.9 101.3 99.2 20 5.7 40.5-.4 59.5-6.5 42-14.8 74-54.6 77.8-99.1 3.3-24-.3-49.1-11.2-71 6.2 3.3 14 16.2 18.6 24.8 16 31 16.7 68.1 7.3 101.2-12.8 42.1-45 79-87.5 92.4a166 166 0 0 1-60 7.2z"/>
<g id="bn-a">
<path d="M512 469.9c-2.5-.4-5.3 2.1-4.3 4.7 1.8 2.6 5 4 7.8 5.2a54 54 0 0 0 23.2 3.6 50 50 0 0 0 17-3c3-1 6.8-2 8-5.4 1.3-2.1-1-4.3-3.1-3.9-3 .7-6 2-9 2.9a58 58 0 0 1-20.3 2 54 54 0 0 1-14.4-4.2c-1.6-.7-3.1-1.7-4.9-1.9"/>
<path d="M514.8 459.5c-2.5-.4-4.7 2.6-3.7 5 2 2.8 5.3 4.3 8.4 5.6a42 42 0 0 0 17 2.9h1.5a38 38 0 0 0 14.4-2.8c2.7-1.1 6.1-2.2 7.3-5.2.9-1.7.2-4.1-2-4.3-1.8 0-3.5 1.2-5.3 1.7a44 44 0 0 1-20.6 3.2c-4.4-.5-8.5-2.1-12.5-4-1.5-.7-2.8-1.8-4.5-2z"/>
<path d="M518.3 449.6c-2.2-.3-3.7 2.2-3.3 4.1.3 1.8 1.8 3 3.1 4a30 30 0 0 0 18.6 5.3h1.6a28 28 0 0 0 12-2.8c2.5-1 5.4-2.3 6.3-5.2.4-1.3.6-3.2-.9-4-1.6-.8-3.1.5-4.5 1a34 34 0 0 1-15.5 3.9 27 27 0 0 1-13.1-4c-1.5-.7-2.7-2-4.3-2.3"/>
<path d="M481.5 302.7c-3.2 3.3-.7 9.3-1 13.5 1.8 13.2 3.9 26.5 8.8 39 6 12 18.8 18.5 26.5 29.2 2.8 5.1 1.8 11.3 2.4 17q.5 23 0 46c7 3.6 14.5 7 22.5 5.7 4.7-1.1 13.5-1.8 14.5-6.5l-1-79.5c-2.7-8.1-11-12.3-17.1-17.5a156 156 0 0 1-14.2-16.1c-2.6-4.5-12.9-6-9.2 1.6 2.2 6.7 7.7 11.6 9.1 18.6.3 3.9 5 11 1 13.2a25 25 0 0 0-10.7-10c-4.4-3.3-11.7-4.7-13.3-10.5a43 43 0 0 0-11-22c1.5-7.4 0-16.7-6.4-21.5z"/>
<path d="M491.4 304.2c-3 .5-2.8 4.2-1.5 6.2a27 27 0 0 1 1.1 13.4 44 44 0 0 1 10.6 21.7c0 3 3.2 4 5.3 5.5 4.9 3.1 10.3 5.4 14.7 9.3.9 1 1.6 2 1 0-.7-2.6-1-5.4-3-7.3-2.8-3-6.2-5.6-10.2-6.4-.3-4.2-2.3-8-4.1-11.6-2-3.5-4.1-7.2-7.5-9.4 0-6.1 0-12.5-2.6-18.2-.8-1.4-2-3.1-3.8-3.2"/>
<path d="M499.7 306.6c-2 .6-1.6 3.2-1 4.7a54 54 0 0 1 1 13.2c3.9 3 6.2 7.4 8.4 11.6q2.2 4.2 3.1 8.9c3.1 1 5.8 3 8.2 5-1-2.8-3-5-4.5-7.7s-3-5.6-3.7-8.7c-3-3.1-4.6-7.6-4-12 .2-4.7-1.3-9.6-4.5-13.2-.8-.8-1.8-1.7-3-1.8"/>
<path d="M509.2 308c-1.2.2-1.8 1.2-2.4 2.1-.3.9.8 1.8 1 2.8a22 22 0 0 1 1.4 10.4q0 3.9 2 7a4 4 0 0 1 3.5-2.8c.5 0 1.4.2 1-.7q-.4-7.3-2.8-14a10 10 0 0 0-2.8-4.5q-.4-.4-1-.3z"/>
</g>
<use xlink:href="#bn-a" width="100%" height="100%" transform="matrix(-1 0 0 1 1440 0)"/>
<path d="M715.7 476a36 36 0 0 1-29.9-24c.3-2.2 3 1.2 4.3 1.5a19 19 0 0 0 8 2.6c3.5 1.5 5.7 5 9.1 6.9 1.6 1.2 7.2 3.6 6.1-.3-1.3-2-2.2-4.6-1-7 1.8-4.1 4.7-7.7 7.7-11.2 2.1-.7 3.6 3.6 5.1 5 2.1 3.3 4.7 7.3 3.4 11.3-1.2 1.5-2 6 1.3 4.6 4-1.8 7.3-4.8 10.6-7.6 3-2 6.7-2.1 9.7-4 1.5-.3 4.4-3.1 5-1.6a45 45 0 0 1-7.4 12.3 32 32 0 0 1-18.8 10.9q-6.6 1.2-13.2.6"/>
<path d="M731.5 460.2q.4-4-1.7-8-3.3-6.2-8-11.9c-2.8-1.6-4.3 3.7-6.1 5.2-2.9 4.3-6.5 8.7-6.7 14-1.6 2.5-4.6-2-5.9-3.5a19 19 0 0 1-4-12 51 51 0 0 1 3.6-20.6c2-5.6 5.1-11 4.8-17 .2-4.7-.7-9.7-4.4-12.8-3.6-2.8 2.3-3.4 4.1-2 3.2.3 4.9 5.5 7.8 4.2 1.1-2.7 1.4-6 3.8-8.1 2.3-3.2 4.7 1.3 5.5 3.5 1.7 1.8 0 6.5 2.6 6.6 3.2-2.3 5.5-6 9.6-6.9 1.7-1 4.5 0 2.3 1.8-3 2.9-5.6 6.4-6.2 10.7-.9 5.3.4 10.7 2.7 15.4 4.5 9.4 8 20 5.7 30.5-1 4.6-4.2 8.6-8 11.3-.5.3-1.3.3-1.5-.4"/>
<path d="M726.7 389.6a21 21 0 0 0-5.6-7c-2.4 0-3.9 3-5.5 4.6-1.1 2.1-2.5 5.6-5.3 2.9-4.5-2.6-5.2-8.3-5.2-13-.3-7.6 2.8-14.7 5.5-21.6 1.7-4.3 1.3-9.2.2-13.6-1.3-5-5.4-8.6-8.5-12.6.2-1.5 4.2-.7 5.7-.4 3.4.9 5.4 3.8 7.9 6 1.8-.6 1-4.2 1.9-5.9 0-2.4 3.2-5.5 4.5-2.1 2 2.2 0 6.5 2.5 7.8 2.4-.9 3.6-3.5 5.8-4.7a8 8 0 0 1 7.8-.5c.9 2.2-2.6 4-3.6 6a20 20 0 0 0-3.8 18c1.4 5 3.8 9.5 4.7 14.5a40 40 0 0 1-.5 17.2c-.9 3.4-3.8 5.6-6.8 7q-1-1.1-1.7-2.6"/>
<path d="M711.6 326.9c-3.4-2.5-4.5-4.8-4.5-9.5 0-2.3.5-3.6 2-5.8q3.6-4.7-1.3-3.3-7.8 2.3-8-4.3c0-2.2.4-3.1 3.3-6.7q3.6-4.1 2.8-4.8-.6-.7-9 7.8a124 124 0 0 1-11.4 10.6c-9.8 6.6-19.2 7.6-23.5 2.5-2.2-2.6-2.1-4 .4-5.6a27 27 0 0 0 4.4-3.7 86 86 0 0 1 16.1-11.6q5.5-2.9 2.1-3c-3 0-12.5 6.2-19.8 12.8-2.1 2-5.2 4.2-6.8 5a25 25 0 0 1-13.9 1c-2.2-.7-6.3-4.5-6.3-5.9 0-.3 1-1.1 2-1.8a30 30 0 0 0 4.6-3.2c5.8-5 16.8-10.3 25.5-12.2 2.8-.5 1.7-2-1.4-1.8a56 56 0 0 0-25 11.7c-8.3 6.9-20.8 6.2-24.8-1.3-.7-1.3-1.2-2.5-1-2.7a93 93 0 0 0 20.4-7.8 52 52 0 0 1 18.1-6.5c2.8-.5 3-1.9.3-2.2-3.6-.4-9 1.4-18.5 6-12.3 6.1-15.8 7.2-22.2 6.8-6-.4-9.3-1.9-14-6.4-3.2-3-7.6-10.5-6.8-11.4a64 64 0 0 0 15.8 1.3c8.3 0 10.6-.2 15-1.5a84 84 0 0 0 24-12.1 58 58 0 0 1 36.8-13.6c12.4 0 20.2 2.8 27.2 9.9 2.4 2.4 4.4 3.9 4.7 3.6s.6-4.5.7-9.3c0 0 3.7-.4 4.5.7 0 7.7 0 8.4 1.2 8.4q1.2-.1 2-2c1-2.5 5-6 9.2-8.2 9-4.5 24.7-4.7 37.3-.3a62 62 0 0 1 16.7 9.5 90 90 0 0 0 24 12c6.8 2 19 2.5 25.1 1l5.4-1c2.3 0-1.6 7.6-6.2 12.1-8.4 8.2-19.3 8.1-34.6-.1-9.6-5.2-21-8-21-5.2q0 1 1.5 1 5 0 18.7 6.5a54 54 0 0 0 18.3 6.5q3.5 0 .2 4.7-3.5 5-11.7 5c-5.3 0-8.3-1.1-13-5-8-6.6-27.6-14-26.9-10q.2 1 3.2 1.5a56 56 0 0 1 23.1 11l5.9 4.3c1.1.6 1.1.8.2 2.5-1.4 2.8-5.2 4.9-9.2 5.3q-7.6 1-14.5-5c-10-8.3-19.3-14.3-22.3-14.3q-3.7.1 3 3.7a80 80 0 0 1 15.8 11c2 1.9 4.3 3.7 5 4.1 1.9 1 1.8 2.4-.2 5s-5.4 3.8-9.7 3.3c-8.6-.9-15.4-5-26-16a71 71 0 0 0-8.2-7.8q-2 .2 2.2 5c3.4 3.7 4 5.8 2.7 9-1.1 2.6-3 3.3-6.8 2.2q-6-1.5-2 3.1c3.8 4.9 3.3 10.7-1.5 14.8a12 12 0 0 1-3.4 2.3q-.8-.1-2.3-2.4-4.3-6.9-8.7 0l-2 3z"/>
<path d="m726.7 233-5.2 4-4.6-3.4v27.8h9.8z"/>
<path d="M694.9 204.3a88 88 0 0 1-9 32.3l11.1-10.3 7.7 9.2 8.4-9.4 8.5 8 8.2-8.3 8.5 10 7.4-8.2 12.6 9c-4.6-10-10.7-18.6-10-32.8-12.1 9-41 10.6-53.4.4z"/>
<path d="M717 197.6q-7-.2-13.4 1a20 20 0 0 0-7.8 3c.3 8.6 41 12.1 51.9.2a20 20 0 0 0-8.2-3.3c-4-.8-8.6-.8-12.9-1v7.1H717z"/>
<path d="M724.9 154h-6.3v49.4h6.4z"/>
<path d="m724.9 155.2-2.4 23.7 24.3 11.9-12.3-16.5 16.8-5.5zm-2.7-6.1c-3.7 0-6.4 1.4-6.4 3s2.7 3 6.4 3 6.4-1.4 6.4-3-2.7-3-6.4-3"/>
</g>
<g fill="#f7e017">
<path d="M314 375.9q3.8-1.1 5.3-5.6c.5-1.6.9-3.2.8-3.6-.2-1-1.4-1-2.6.1-.9.7-1 1.1-.8 2.6.7 3.7-.7 4.7-7.7 5.4-.7 0-2.8 0-4.5-.3q-5.1-.6-3.4 1l2.1.9c1.9.5 8.8.2 10.8-.5m14.7-.6c.4-.4 1.7-1 3-1.5q2.4-.6 3.3-2.2c2.1-3 1.7-5.7-1.3-9.3-1.7-2-2.4-1.9-3.7.3-1.2 1.8-1.1 2 .5 2.4q1.4.4 2.1 1.6 2.7 4.8-1.4 5c-2.4 0-3 .4-3.7 2l-.6 1.9c0 .6 1 .5 1.8-.2m-4.8-3.5c.4-1.3.6-3.5.5-8a33 33 0 0 0-.3-6.4c-.4-.4-2.3.8-2.6 1.7a3 3 0 0 0 .5 2.1c.6 1.2.7 2.4.5 7q-.5 8.9 1.4 3.6"/>
<path d="m312.6 369 .7-5c.1-1.7.5-3.8.7-4.7q1-3.5-1.8-1.6l-1.3 1 .2 3.3c.3 3-.2 8.5-.9 10.7q-.3.9.9-.5c.6-.7 1.3-2.2 1.5-3.3zm-10 1.6c2.4-2 2.1-5.6 2.7-8.4 0-1.9 1.2-4.1.4-5.8-2.3.4-3.7 2.6-2.5 4.7 0 2.5 0 5.2-1.3 7.4-1 1.5-4.4 1.1-4.2-1 .8-3-2.9-1.5-4.3-.7-1.1.8-3.5.9-2.6-1-.6-2.7-3.9-1-5.7-1-1.7 0-.1-3.5-2.6-3-4.5-.3-9.5.1-13.5-2.6-2.3-1.1-2-3.9-.7-5.7 1.4-2.4 1.8-5.5 4-7.4 2.3-2.1-2-1.2-3-.5-2.2 1.2-.2 4.3-2 6-1 1.8-2.4 4.2-4.8 3.9-3.5-.7-5.5-4-8-6-2.2-.5-1 3.4.2 4.2a22 22 0 0 0 7.4 3.6c2.6-.5 2.7 3 5 3.5 4 2 8.6 2.5 13.1 2.8 1.8.1.8 3.3 3.1 2.6 1.3.4 4.3-.5 4.4 1-2 2.4 1.9 2.3 3.3 2 1.9-.4 4.2-1 4.7 1.4 1.5 1.7 4.3 1.4 6.2.5z"/>
<path d="M262.8 350.4a24 24 0 0 0 2.4-4.2 16 16 0 0 1 2-3.6q1.6-2-1.4-1.6-1.4.2-1.5 1.5a23 23 0 0 1-2.5 7c-1.7 2.5-1.7 2.6-1 2.6q.6-.2 2-1.7m-25-15.7c-1.9 0-2 1.2-.2 1.8q1.4.4 2.3 2.3c1.7 3.5 2.8 4.2 7.5 4.6l3 .2.2 1.9q.1 1.7.5 1.8l2.6-1c2.2-1.2 4.3-3.8 4.3-5.5 0-1-1.8-2.2-3.4-2.2-.7 0-2 .6-3.1 1.4-3.4 2.4-7 2-9-1.2q-2.3-4-4.7-4zm16.3 6.5q1.3 0 .6 2a.9.9 0 0 1-1.7 0c-.4-1 .1-2 1-2zm126.5-4c-1.3 0-1.6.2-2.4 1.4-1.3 1.9-1.4 6-.2 7.4.7.9.8.9 2.3.2 2.2-.9 2.6-.8 2.5.3 0 3-4.2 8.7-8.6 11.7a10 10 0 0 0-2.4 2c-.3.8 1.3.7 3.3-.4a21 21 0 0 0 7.9-8c1.1-2.3 1.3-3 1.5-7 0-3.8 0-5-.6-6.2-.8-1.4-1-1.5-2.8-1.5h-.5zm.1 2.5c1 0 1 .2 1.2 1.6q.1 1.4-.7 2.3c-.8.7-1 .7-1.6-.4-1-1.6-.4-3.5 1.1-3.5m-20.2 28.5c3.9-2 6.2-4.1 7.6-7.2l1.3-3.1c0-.6-1.9-1.5-3-1.5s-1.4-.8-1-3c.5-2.1 0-4.8-1-4.8q-.7.1-1.3 1.1c-.6 1-.7 1.4-.2 2.7q1 3-1.7 4.9-1.3 1-1.3 2l.1 1 2.1-1 2-1.2 1.1 1q1.1.8 1.2 1.7c0 2.4-6.8 6.4-11.4 6.8-2.5.2-3 0-3.8-.8q-1-1-.7-2l.5-2.6q.5-3-2 .6c-1.2 2-1.6 4.1-.9 5.2.6 1 4.4 1.8 7.2 1.6q2.5 0 5.2-1.4m26-14.5c2.4-2.5 3.5-5.5 3.5-10v-3.5l2-1c2.7-1.2 5.2-3.7 5.2-5.1q0-2.1-1.8.2c-.9 1.1-2 1.8-6 3.7-1 .4-1.1.7-1.4 5-.2 5-1 6.8-3.7 10.2-1.7 2-1.8 2.4-.6 2.4.5 0 1.8-.9 2.8-2zm-26.7-2.8c.2-.7-1.2-1.2-1.7-.6q-.5.4-.2.9c.4.6 1.6.4 1.9-.3m36.8-9.5c.3-.8-1.1-1.3-1.7-.7q-.4.5-.1 1c.4.6 1.6.4 1.8-.3m-44.3-25.9q-1.4 1-2.1 2.3c-.5.3-.1.6.1 1 1.7 1.7 2.4 4.2 3.2 6.5.8 2.7 1.8 5.6 1 8.4-.3 1-1.2 2.1-2.4 1.8-2-.1-4-.7-6-.7-1.9.1-3.3 1.8-5.1 1.6-1.2 0-1.2-2.4-2.2-1.7-.6 1.3-.3 2.7-.4 4q.5.3 1.1.2h3.7c.2 1.2.2 2.7 1 3.7q2 .4 4-.5c1.2-.6 1.4-2.1 1.8-3.3.4-1.3 2-1 3-1.5a6 6 0 0 0 4-5.7c-.2-3.9-1.6-7.4-2.8-11l-1.5-4.9zm-6 21.8c1.3 0 1.9 1.6 1.6 2.7-.5 1.5-2.4.6-2.7-.5-.7-1-.3-2.3 1-2.2z"/>
<path d="M296 324.8q-1 0-2 .7c-3.5 2.5-4.5 5.4-2 6.6q2.6 1.1-1.5 3.2c-4 2-7.5 1.7-14.2-1q-2.3-1-1.7 1c.4 1.5 1.8 2.3 5.1 3 3.6 1 8 .7 10.8-.5a14 14 0 0 0 4.3-3.4l2.2-2.3 2.5.3c3.1.4 3.2.4 3.2 1.9 0 1.2 0 1.2 2.9 1.5l4.7.2q1.9 0 2.4.9c.6.7.9.8 5.6.4 4.4-.4 5.2-.4 7.2.3q2.3.6 4.1.5c3.4-.4 8-3.1 8.7-5.1 0-.3 1.3-.7 2.7-1q5-1.1.4-1.8a23 23 0 0 1-4.6-1.1 12 12 0 0 0-3.5-.9c-1.7 0-3.3 1-3.3 2.2 0 .7.2.8 2.3.6 1.8-.2 2.4-.1 3.4.7q1.1.9 1 1.3c-.5.8-4.5 2.6-6.2 2.9a5 5 0 0 1-3-.5c-1.6-.8-3.8-.9-4.3-.2q-.3.4-1.3-.5l-1-1-2.4 1q-3.4 1.6-3.3-.2c0-.5-.7-.6-4.2-.3-3.9.2-4.3.1-5-.7q-1-.9-.2-1.7c.4-.8.4-1 0-1.5q-.4-.6-2.5 0c-3.9 1-5 .5-5-2.5q-.2-3-2.3-3m-1 2.8q.3 0 .7.4.5.6.3 1.3c-.3.9-2 .9-2.3 0q-.3-.8.5-1.3z"/>
<path d="M288 330.4c2.4-1.5 2.4-1.4 2.7-5.5.2-3 .2-3.2-.6-3.2q-1.8 0-1.8 3.7c0 1.6-.2 2.3-1 3-2 2-6.8 1.1-7.5-1.3q-.3-1 1.1-3c2.1-3 1.7-3.8-1-1.5-1.7 1.6-2 1.6-1.7.3q.4-2-1.8-1.4-1.1.2-1.3 1.6-.3 1.2-1.3 1.5c-1.2.3-3.2-.8-3.2-1.8 0-.7 3-4.4 6.9-8.4 1.4-1.5 2.6-3 2.6-3.1q-.2-.4-1.7-.4-2 0-1.8.8c0 .4-1.9 3-4.3 5.7-5 5.6-5.4 6.7-3 8.2a6 6 0 0 0 6.6-.2l1.6-1.1v2c0 2.5.5 3.5 2.5 4.5a8 8 0 0 0 8-.4m104.4-34.6c-1.8 1.1-.4 3.4 0 5-.8 2-3.5 2.6-5.5 3-2.8.5-4.8 2.8-5.8 5.3-.6 1.6-2 4-3.5 1.6-1.3-1.3-3.7-2.4-5.2-.8-1.2 1.1-1.5 2.7-2 4.2-.7-1.1-1-2.8-2.4-3.2-2.4.3-1.5 3.3-.4 4.5 1 1.5 2 3.3 1 5-1 2-4 3.4-5.7 1.7-1.6-.9-.5-4-2.2-4.2-.8.6-.8 3.9-2.1 2.1-1-1.5-.4-3.6-1.6-4.9-1.3.2-2.4 2.5-2 3.7 1.8 2.4 2.6 5.4 3.3 8.3.4 1.2-.1 3.5 1 4 .7-1.9 0-4 .6-5.9 1.8-.2 3.7.6 5.5.2 2.7-.3 4.7-2.6 5.6-4.9q.3-2.7-.1-5.4c2 .4 4.2.4 6.2 1 1 1.5-.3 3.7-.6 5.3-1 3.4-3.7 5.8-6.2 8-1.1.7-1.2 2.4.3 1.5a15 15 0 0 0 7.5-8c1.1-2.6.2-5.5 1-8.1 1-2 3.5-1.6 5.4-1.6s3.5-2.3 2.9-4.2c-.6-2.2 1.7-3.2 3.2-4 2.1-1 3.7-3.1 3.5-5.5 0-1.3 0-3.6-1.7-3.7m-7.3 12.5c2.2.6-.4 4.8-1.6 2.1-.4-1 .5-2.1 1.6-2.1m-10.3 3c2.9-.1 1.8 4-.6 2.2-1.3-.7-.9-2.2.6-2.2M270 327.6q0-.6-.6-.7c-.7 0-1.2.7-.9 1.3.4.7 1.3.3 1.5-.6m34-3.6q0-1-.8-.8c-1.1.2-1.3 1.7-.1 1.7q.9 0 .9-1zm-42-20.4c-1.3-.3-2.2.9-2.7 2q-1.4 2.8-4 4.3-2 .4-3.9-.8c-1.3-.7-1-2.3-1.6-3.4-1-.8-2.7.3-2.6 1.5-.1 1.6 1.3 2.5 2.6 3.1 1 .7 2.6 1 3 2.3 0 1.1.4 2.4 1.7 2 1.5 0 2 1.8 1.3 2.9a6 6 0 0 0-.7 4c.7.7 1.4-1 2-1.4l1-1.4q4 .4 8 .4c2 0 3.5-1.2 4.7-2.6 1.8-1.8 3.2-3.9 5.1-5.4 1.4-.4.7-3-.8-2.2-1.3.5-1.7 2-2.6 2.9a31 31 0 0 1-5 5.2c-1.5.6-3.1.3-4.6 0-.6-.5 1.2-1 1.5-1.6q1.4-1.1 2.3-2.7c-.5-1-1.9-1-2.9-1-2.4.2-4.3 2.3-6.8 2.5-1.9 0-.9-2 0-2.7q2.5-3 5.1-5.7c.5-.6 2.3-1.2 1.2-2q-.6-.2-1.3-.2m1.2 10c1.3.7-.8 1.8-1.6 1.7-1.1.3-1.2-.8-.2-1q.9-.6 1.8-.7m-3.8 2.6c.7 0 2.2.7.8 1.1-1 .8-2-.8-.8-1.1"/>
<path d="M289.4 317.8c0-1-1.6-.8-1.8.2q-.3.8.8.6 1-.1 1-.8m74.7-6.6c.2-.9-1-1.5-1.7-.8s0 1.9.8 1.7q.6-.1 1-.9zM248 302.1c1.1-1 1.2-1.1.7-3.3-.8-3.1-.7-3.5.5-3.8 1.5-.3 5.3 1.7 6 3.3.8 1.3.7 1.4-.4 2.4-1.2 1.1-1.2 2.4 0 2.4 1 0 3.7-2.6 3.7-3.5 0-1.3-3-4.4-5.4-5.5a11 11 0 0 0-4.6-1c-3.1 0-3.5.7-2.7 4.2q1.4 6.4-3.7 1.6a10 10 0 0 1-3.5-8.6q0-6 5.1-6.6 3.5-.6 0-1.2c-3.6-.6-6.6 1.8-7.7 6-1.3 4.7 1.6 10.4 6.7 13.3 2.7 1.5 3.7 1.6 5.3.3m139.2-5.2q.5-.5.5-1.4.1-1.3 1.1-2.4 1-1.4 1-1.8c0-.8-1.3-.8-2.3 0q-1.8 1.4-2 0l1.2-.9q2.4-1.1.4-2.1c-1.7-.8-3.5.6-3.6 3-.1 1.6 0 1.8 1.2 2.5s1.3 1 1.1 2q-.3 2.6 1.4 1.1m13-1.4q1.6-1.6 1.8-2.2t1.9-2c2.8-2 3.5-4 2.2-7.3-.5-1.3-2-3-5.5-6a26 26 0 0 0-5.4-4.4c-.9 0-.7 3.4.2 3.7 1.7.6 2.8 1.3 5.4 3.7 3.2 2.8 4.6 5.5 3.8 7-.7 1.4-1.7 1-4.5-2a14 14 0 0 0-3.2-2.9q-.5.1-.5 1.4-.1 1.4 2 3.5c2.3 2.6 2.5 4.1.7 5.5l-1.4 1a33 33 0 0 0-9-10q-.5 0-.5 1.4c0 1.3.2 1.7 1.2 2.2a38 38 0 0 1 7 7l1.8 2zm6-16.8c-.5-1.2-8.4-9.4-9.3-9.4q-.6 0-.4 1.8c0 1.6.3 1.8 1.4 2.1a20 20 0 0 1 4.6 3.7 17 17 0 0 0 3.7 3zm-47.8 92.6a1.2 1 0 1 1-2.3 0 1.2 1 0 1 1 2.3 0m4.2-1.4a1.2 1 0 1 1-2.4 0 1.2 1 0 1 1 2.4 0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

+673
View File
@@ -0,0 +1,673 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bo" viewBox="0 0 640 480">
<path fill="#007934" d="M0 0h640v480H0z"/>
<path fill="#ffe000" d="M0 0h640v320H0z"/>
<path fill="#d52b1e" d="M0 0h640v160H0z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m368.6 210.7-98 97.9-1.3-1 98-97.8 1.3 1z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M374.7 204.5c-.4.7-1.4 2.5-1 3.8l-2-1.5q.7 1.4-.1 1.8c-.3.4-1.4.3-2.1.2q1 .7 2.4 1h2c-.7.3-2.2.8-3.3 1-.5.1-1.6.2-2 0-.6.5-1.9-.4-1.3-1q-.4-.5-.4-1.4-.1-1.2.7-3l.5 1.7q.4.8 1.1 1.4-.5-.8.1-1.8.9-.7 2-.2l-1.9-1.3c.8 0 3.3-1 4.1-1.5l4.9-3.8z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m387 222.8-125.7 70.9-.9-1.2 125.7-71 1 1.3z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M394.9 218.3c-.6.6-2.2 2-2.2 3.4l-1.4-2q.2 1.4-.7 1.7c-.4.4-1.4 0-2-.3a5 5 0 0 0 2 1.5l1.7.6c-.6.1-2.3.3-3.4.2-.5 0-1.5-.2-1.9-.6-.7.4-1.6-.8-1-1.2l.2-1.4q.3-1.2 1.6-2.8v1.8q.1.7.5 1.6-.2-1 .7-1.7 1-.5 2 .3l-1.4-1.7c.8.1 3.5-.2 4.4-.5l6-2.5c-1.7 1-4.6 3-5.1 3.6z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m376.3 217.5-113 85.2-1-1.1 112.9-85.2 1.1 1z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M383.4 212.1c-.5.6-1.8 2.3-1.6 3.6L380 214q.4 1.4-.4 1.7c-.4.4-1.5.2-2.1 0q.9.8 2.2 1.2l1.9.3c-.7.3-2.3.6-3.4.6-.5 0-1.6 0-2-.3-.6.5-1.7-.6-1.1-1.1q-.2-.5-.1-1.4a6 6 0 0 1 1.1-3l.2 1.8q.3.8.9 1.6-.4-.9.4-1.8 1-.5 2 0l-1.6-1.5c.7 0 3.3-.6 4.2-1s3.8-2 5.5-3.1c-1.4 1.2-4 3.5-4.4 4z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m271.4 210.7 98 97.9 1.3-1-98-97.8-1.3 1z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M265.3 204.5c.4.7 1.4 2.5 1 3.8l2-1.5q-.7 1.4.1 1.8c.3.4 1.4.3 2.1.2q-1 .7-2.4 1h-2c.7.3 2.2.8 3.3 1 .5.1 1.6.2 2 0 .6.5 1.9-.4 1.3-1q.4-.5.4-1.4.1-1.2-.7-3l-.5 1.7q-.4.8-1.1 1.4.5-.8-.1-1.8-.9-.7-2-.2l1.9-1.3c-.8 0-3.3-1-4.1-1.5l-4.9-3.8z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m253 222.8 125.7 70.9c.2-.3.6-1 .9-1.2l-125.7-71-1 1.3z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M245.1 218.3c.6.6 2.2 2 2.2 3.4l1.4-2q-.2 1.4.7 1.7c.4.4 1.4 0 2-.3a5 5 0 0 1-2 1.5l-1.8.6c.7.1 2.3.3 3.4.2.6 0 1.6-.2 2-.6.7.4 1.6-.8 1-1.2l-.2-1.4a6 6 0 0 0-1.6-2.8v1.8q-.1.7-.5 1.6.2-1-.7-1.7-1-.5-2 .3l1.4-1.7a17 17 0 0 1-4.4-.5l-6-2.5c1.7 1 4.6 3 5.1 3.6z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m263.7 217.5 113 85.2 1-1.1-112.9-85.2-1.1 1z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.6 212.1c.5.6 1.8 2.3 1.6 3.6l1.7-1.7q-.4 1.4.4 1.7c.4.4 1.5.2 2.1 0a5 5 0 0 1-2.2 1.2l-1.9.3c.7.3 2.3.6 3.4.6.5 0 1.6 0 2-.3.6.5 1.7-.6 1.1-1.1q.2-.5.1-1.4a6 6 0 0 0-1.1-3l-.2 1.8q-.3.8-.9 1.6.4-.9-.4-1.8-1-.5-2 0l1.6-1.5a15 15 0 0 1-4.2-1c-1-.4-3.8-2-5.5-3.1 1.4 1.2 4 3.5 4.4 4z"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M300.1 283.4c4-2.6 15.1-4 16.7-3.6-8 6-16 6.3-16.7 3.7z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M300.2 283.5c.7 2.6 8.7 2.4 16.6-3.6a69 69 0 0 1-16.6 3.6z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M300.2 283.5c.7 2.6 8.7 2.4 16.6-3.6a69 69 0 0 1-16.6 3.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M300.1 283.4a41 41 0 0 1 16.7-3.6c-8 6-16 6.3-16.7 3.6z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M347.6 220.2 322 272.5c-1.3 1-2.3-.3-2.7-.2-1.5 1.7-3.6 2-4 2.5-1.8 2.4-.8 4.3-.7 4.5 1.3 1.8-1.6 3.5-1.5 4-.6 1-2.7.9-3.1 2l-4.8 9.3c-.6.5-3.7 6.1-3.7 6.1-2 0-10.2-5.2-10.4-5.1 4.6-7.3 15.6-18.5 15.3-19.2 3.1-5.2 8-10.9 10.1-10.8 3-1.6 4.5-5.7 4-6.6 2.2 0 3.5-1.4 3.6-1.5l18.8-37.6c1.6-.5 1.4.1 1.9 1 0 0 1-1.2.9-1.3.9-.4 1.8.2 1.8.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M348.6 208.8c-.6 1 .2 1 .5 1.1l1 .3c1.3 0 2 .7 2 1l-30 61.3c-1.3 1-2.5-.3-2.9-.1l20.6-41.8 10-18.8-2.8-1.2q-1.2-.4-.7-1.6l12.6-21.6-10.2 21-.1.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M348.6 208.8c-.6 1 .2 1 .5 1.1l1 .3c1.3 0 2 .7 2 1l-30 61.3c-1.3 1-2.5-.3-2.9-.1l20.6-41.8 10-18.8-2.8-1.2q-1.2-.4-.7-1.6l12.6-21.6-10.2 21-.1.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M308.8 272.4c-3 0-4.6 2-2.7 4.7m1.4-2.4c-1 .6-1.7-.3-1.7-.3m15.2-13c-1.5 5.6-4.3 9.3-5 10.4-2 2.2-3.9 7.2-3.5 8.1l-8.1 13.3"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M322 272.7c-1.4-.5-5.7-4.5-10-3.8-3.3 3.8-5.3 7.7-5.9 8.2q6.1 4.9 7.6 5.4c.7-.4 1-1.5 1-1.5.9-1-.2-1.7-.2-1.7.2-2.5 2-4.2 3.8-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.8-1.9 1.8-1.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M322 272.7c-1.4-.5-5.7-4.5-10-3.8-3.3 3.8-5.3 7.7-5.9 8.2q6.1 4.9 7.6 5.4c.7-.4 1-1.5 1-1.5.9-1-.2-1.7-.2-1.7.2-2.5 2-4.2 3.8-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.8-1.9 1.8-1.9z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M317.6 272.8c-2 0-4 .9-4.8 2.6l4.8-2.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M317.6 272.8c-2 0-4 .9-4.8 2.6m-3.5.7q.3.6 1.1.5.9-.4.6-1-.4-.8-1.2-.5t-.5 1zm2.5-3.4q.3.6 1.2.4.8-.3.5-1t-1.2-.5q-.8.4-.5 1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M345.3 226.1q1.3-.5.8-2l-4.7-1.7s-.6 0-1 .7.1 1.2.1 1.2l4.8 1.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M345.3 226.1q1.3-.5.8-2l-4.7-1.7s-.6 0-1 .7.1 1.2.1 1.2l4.8 1.8"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M294.5 286c3.9-2.7 15-4.2 16.6-3.8-7.8 6.2-15.8 6.5-16.6 3.9z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M294.6 286c.7 2.7 8.7 2.3 16.5-3.8a62 62 0 0 1-16.5 3.9z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M294.6 286c.7 2.7 8.7 2.3 16.5-3.8a62 62 0 0 1-16.5 3.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M294.6 286a40 40 0 0 1 16.6-3.9c-7.9 6.2-16 6.6-16.6 4z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m340.7 222-24.4 52.8c-1.3 1-2.4-.3-2.7-.2-1.5 1.7-3.6 2.1-4 2.5-1.8 2.5-.7 4.4-.6 4.6 1.3 1.8-1.5 3.5-1.4 4-.6 1-2.7.9-3.1 2.1-.1-.1-4.2 8.4-4.6 9.3-.6.5-3.5 6.2-3.5 6.2-2.1 0-10.3-5-10.5-5 4.4-7.3 15.1-18.7 14.9-19.4 3-5.3 7.7-11 9.9-11 3-1.6 4.3-5.7 3.7-6.6 2.3-.1 3.5-1.5 3.7-1.6l18-37.8c1.6-.6 1.3 0 1.9 1 0 0 1-1.2.9-1.4.9-.4 1.7.2 1.8.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m340.7 222-24.4 52.8c-1.3 1-2.4-.3-2.7-.2-1.5 1.7-3.6 2.1-4 2.5-1.8 2.5-.7 4.4-.6 4.6 1.3 1.8-1.5 3.5-1.4 4-.6 1-2.7.9-3.1 2.1-.1-.1-4.2 8.4-4.6 9.3-.6.5-3.5 6.2-3.5 6.2-2.1 0-10.3-5-10.5-5 4.4-7.3 15.1-18.7 14.9-19.4 3-5.3 7.7-11 9.9-11 3-1.6 4.3-5.7 3.7-6.6 2.3-.1 3.5-1.5 3.7-1.6l18-37.8c1.6-.6 1.3 0 1.9 1 0 0 1-1.2.9-1.4.9-.4 1.7.2 1.8.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M341.4 210.6c-.5 1 .3 1 .6 1.2l1 .3q2 .2 2 1l-28.7 61.7c-1.3 1-2.5-.3-2.9 0l19.7-42.2 9.6-19-2.8-1q-1.2-.4-.7-1.7l12-21.8-9.6 21.1-.2.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M341.4 210.6c-.5 1 .3 1 .6 1.2l1 .3q2 .2 2 1l-28.7 61.7c-1.3 1-2.5-.3-2.9 0l19.7-42.2 9.6-19-2.8-1q-1.2-.4-.7-1.7l12-21.8-9.6 21.1-.2.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M303 275c-3-.2-4.6 2-2.6 4.6m1.3-2.4c-1 .6-1.7-.3-1.7-.3m15-13.3c-1.5 5.7-4.2 9.4-4.7 10.6-2.2 2.2-3.9 7.3-3.5 8.1l-7.8 13.4"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M316.1 275c-1.3-.5-5.8-4.5-10-3.7-3.3 3.9-5.1 7.8-5.7 8.3a50 50 0 0 0 7.7 5.3c.7-.4 1-1.5 1-1.5.8-1-.2-1.8-.2-1.8 0-2.4 1.8-4.2 3.6-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.7-2 1.7-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M316.1 275c-1.3-.5-5.8-4.5-10-3.7-3.3 3.9-5.1 7.8-5.7 8.3a50 50 0 0 0 7.7 5.3c.7-.4 1-1.5 1-1.5.8-1-.2-1.8-.2-1.8 0-2.4 1.8-4.2 3.6-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.7-2 1.7-2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M311.8 275.1c-2 0-4 1-4.7 2.7l4.7-2.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M311.8 275.1c-2 0-4 1-4.7 2.7m-3.6.8q.4.6 1.2.4.8-.4.5-1t-1.2-.5q-.8.4-.5 1zm2.4-3.5q.4.6 1.3.5.8-.4.5-1-.4-.8-1.2-.5t-.6 1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M338.5 228q1.3-.5.7-2l-4.7-1.6s-.5 0-1 .7.2 1.2.2 1.2l4.8 1.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M338.5 228q1.3-.5.7-2l-4.7-1.6s-.5 0-1 .7.2 1.2.2 1.2l4.8 1.8"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M340.6 283.3a39 39 0 0 0-16.8-3.7c8 6.1 16.1 6.3 16.8 3.7z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M340.6 283.3c-.7 2.7-8.8 2.4-16.8-3.6a63 63 0 0 0 16.8 3.6z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M340.6 283.3c-.7 2.7-8.8 2.4-16.8-3.6a63 63 0 0 0 16.8 3.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M340.6 283.3c-4.2-3-15.8-4-16.9-3.7 8 6 16.2 6.3 16.9 3.6z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m292.7 219.3 25.7 52.9c1.3 1 2.4-.3 2.7-.2 1.6 1.7 3.7 2.1 4.2 2.5 1.8 2.4.8 4.4.7 4.6-1.4 1.8 1.5 3.5 1.4 4.1.6 1 2.7.8 3.2 2l4.8 9.3c.7.5 3.7 6.2 3.7 6.2 2.1 0 10.3-5.3 10.5-5.2-4.6-7.3-15.7-18.7-15.4-19.4-3.1-5.2-8.1-11-10.2-10.9-3-1.6-4.5-5.7-4-6.6-2.3 0-3.6-1.5-3.7-1.6l-19-37.9c-1.6-.5-1.3.1-1.9 1 0 0-1-1.2-.9-1.3-.9-.5-1.8.2-1.8.5z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M291.7 207.8c.5 1-.2 1-.5 1.2l-1.1.3c-1.2 0-1.9.7-1.9 1l30.2 61.9c1.3 1 2.5-.3 3-.1l-20.8-42.3-10-19 2.7-1.1q1.2-.3.7-1.6l-12.7-21.9 10.2 21.2.2.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M291.7 207.8c.5 1-.2 1-.5 1.2l-1.1.3c-1.2 0-1.9.7-1.9 1l30.2 61.9c1.3 1 2.5-.3 3-.1l-20.8-42.3-10-19 2.7-1.1q1.2-.3.7-1.6l-12.7-21.9 10.2 21.2.2.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M331.9 272.1c3 0 4.6 2.1 2.7 4.7m-1.4-2.3c1 .6 1.7-.4 1.7-.4M319.5 261c1.6 5.7 4.4 9.5 5 10.6 2.2 2.2 4 7.3 3.7 8.2l8.1 13.4"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M318.6 272.4c1.3-.4 5.7-4.6 10-3.8 3.4 3.8 5.4 7.7 6 8.2q-6.1 5-7.7 5.5c-.7-.4-1-1.5-1-1.5-.9-1 .2-1.8.2-1.8-.1-2.4-2-4.2-3.8-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-1.9-1.7-1.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M318.6 272.4c1.3-.4 5.7-4.6 10-3.8 3.4 3.8 5.4 7.7 6 8.2q-6.1 5-7.7 5.5c-.7-.4-1-1.5-1-1.5-.9-1 .2-1.8.2-1.8-.1-2.4-2-4.2-3.8-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-1.9-1.7-1.9z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M323 272.5c2 0 4 1 4.8 2.7l-4.8-2.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M323 272.5c2 0 4 1 4.8 2.7m3.6.6a1 1 0 0 1-1.2.5.7.7 0 0 1-.5-1q.3-.7 1.2-.5.8.4.5 1zm-2.5-3.4q-.4.6-1.3.5-.7-.4-.5-1 .4-.8 1.2-.5t.6 1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M295 225.4a1.4 1.4 0 0 1-.8-2l4.8-1.8s.5.1 1 .7-.2 1.2-.2 1.2l-4.8 1.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M295 225.4a1.4 1.4 0 0 1-.8-2l4.8-1.8s.5.1 1 .7-.2 1.2-.2 1.2l-4.8 1.9"/>
<path fill="#00e519" stroke="#000" stroke-width=".1" d="M345.6 286a38 38 0 0 0-16.6-3.8c7.9 6.2 15.9 6.5 16.6 3.9z"/>
<path fill="#ffe533" stroke="#000" stroke-width=".1" d="M345.6 286c-.8 2.7-8.7 2.3-16.5-3.8a62 62 0 0 0 16.5 3.9z"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M345.6 286c-.8 2.7-8.7 2.3-16.5-3.8a62 62 0 0 0 16.5 3.9z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M345.6 286a40 40 0 0 0-16.6-3.9c7.8 6.2 15.9 6.6 16.6 4z"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m299.5 222 24.4 52.8c1.3 1 2.3-.3 2.7-.2 1.5 1.7 3.6 2.1 4 2.5 1.7 2.5.7 4.4.6 4.6-1.4 1.7 1.5 3.5 1.4 4 .5 1 2.6.9 3 2.1.2-.1 4.2 8.4 4.7 9.3.6.5 3.5 6.2 3.5 6.2 2 0 10.3-5 10.5-5-4.4-7.4-15.2-18.7-15-19.4-2.9-5.3-7.7-11-9.8-11-3-1.6-4.3-5.7-3.7-6.6-2.3-.1-3.6-1.5-3.7-1.6L304 222c-1.6-.6-1.4 0-2 1 0 0-.9-1.2-.8-1.4-.9-.4-1.8.2-1.8.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m299.5 222 24.4 52.8c1.3 1 2.3-.3 2.7-.2 1.5 1.7 3.6 2.1 4 2.5 1.7 2.5.7 4.4.6 4.6-1.4 1.7 1.5 3.5 1.4 4 .5 1 2.6.9 3 2.1.2-.1 4.2 8.4 4.7 9.3.6.5 3.5 6.2 3.5 6.2 2 0 10.3-5 10.5-5-4.4-7.4-15.2-18.7-15-19.4-2.9-5.3-7.7-11-9.8-11-3-1.6-4.3-5.7-3.7-6.6-2.3-.1-3.6-1.5-3.7-1.6L304 222c-1.6-.6-1.4 0-2 1 0 0-.9-1.2-.8-1.4-.9-.4-1.8.2-1.8.6z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M298.8 210.6c.4 1-.3 1-.6 1.2l-1 .3q-2 .2-2 1l28.7 61.7c1.3 1 2.5-.3 2.9 0L307 232.5l-9.6-19 2.7-1q1.4-.4.8-1.7L288.8 189l9.7 21.1.2.4"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M298.8 210.6c.4 1-.3 1-.6 1.2l-1 .3q-2 .2-2 1l28.7 61.7c1.3 1 2.5-.3 2.9 0L307 232.5l-9.6-19 2.7-1q1.4-.4.8-1.7L288.8 189l9.7 21.1.2.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M337.2 275c3-.2 4.5 2 2.6 4.6m-1.4-2.4c1 .6 1.8-.3 1.8-.3m-15-13.3c1.4 5.7 4.2 9.4 4.7 10.6 2.1 2.2 3.8 7.3 3.5 8.1l7.8 13.4"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M324 275c1.4-.5 5.8-4.5 10.1-3.7 3.2 3.9 5.1 7.8 5.7 8.3a54 54 0 0 1-7.8 5.3c-.6-.4-1-1.5-1-1.5-.7-1 .3-1.8.3-1.8 0-2.4-1.8-4.2-3.6-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-2-1.7-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M324 275c1.4-.5 5.8-4.5 10.1-3.7 3.2 3.9 5.1 7.8 5.7 8.3a54 54 0 0 1-7.8 5.3c-.6-.4-1-1.5-1-1.5-.7-1 .3-1.8.3-1.8 0-2.4-1.8-4.2-3.6-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-2-1.7-2z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M328.4 275.1c2 0 4 1 4.7 2.7l-4.7-2.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M328.4 275.1c2 0 4 1 4.7 2.7m3.6.8a1 1 0 0 1-1.2.4q-.8-.4-.6-1 .4-.7 1.3-.5.7.4.5 1zm-2.5-3.5q-.4.6-1.2.5-.8-.4-.5-1 .4-.8 1.2-.5t.5 1z"/>
<path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M301.6 228q-1.2-.5-.7-2l4.7-1.6s.6 0 1 .7-.2 1.2-.2 1.2l-4.8 1.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M301.6 228q-1.2-.5-.7-2l4.7-1.6s.6 0 1 .7-.2 1.2-.2 1.2l-4.8 1.8"/>
<path fill="#a05a2c" stroke="#000" stroke-width=".1" d="m315.3 250.7 35.5-38-1.4-.9-35.6 38z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M349.8 212.2c-1.2-1-3.4-2.2-5-1.8-.5-2.2 2.5-4.4 3.8-4-.3 2.3 3.2 3.8 3.1 3.8z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M352.1 210.4c1 .8 1.4.8 2.8 1.6 1.4.7 3.2-1.1 4.1-1.7 0 0 1 3.4-1.1 5.6-2 2.3-4.6 2.8-6.5 2.1 0 0 2.6-2.5 1.5-3.6-1-1.1-1.4-1.2-2.5-1.9"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M-27.7-406.5h4.1v2.2h-4.1z" transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m308.2 290.3-1 9 1.8-2.2c.3-.6 1.5-2.1 1.8-7.4 0 0-1-2.9-1.4-2.9-.7-.4-1.2 3.5-1.2 3.5zm2.2-20.1-2.7 15.8c0 .5 1.3 1.6 2.1-1.2l1.5-10.5z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m315.9 284.6-1.4-2-.4 3.1s2 1.5 1.7 4.3l.4-.6.2-1s.5-2 .5-3.1z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M307.3 299.4s3.3-3 3.5-9.7l.4-1.9s0 1.5.8.4c.6-1.5.6-2.8.6-2.8s1.2-1.6 1.6.3l-1.2 9.6-.3 2s-.7-1-1.4.1-1.8 2.7-4 2zm4-25.1-1.5 10.5s1.2.6 1.4 3c.1 1.2.6.6.8.4.2-.8 0-2.3 0-2.3l.6-7.3s-1.2-3.4-1.3-4.3z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m310.1 298.8-.2 2.6s1 0 1.7-1.2c.8-1.1 1-2.8 1-2.8s-.7-1.1-1.3 0c-.5 1-1.2 1.4-1.2 1.4zm1.8-10.6c.6-1 .8-2.6.7-2.8l-.7.5c.2 1.2 0 2.3 0 2.3z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M315.3 287.1a4 4 0 0 0-1.3-1.5l-1.5 12s-.4 3-2.3 3.7c0 0 1.1 10.3 4.5 7.5.4-.4 1-3.6.9-5.5l-.9-6a27 27 0 0 1 .5-4.7l.6-2.6c.2-.2 0-1.8-.5-2.9z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m316.9 285.3 1 1c.3 0-2.3 19.3-2.3 19.3s0-2-.7-6c-.6-3.2.2-7.5.9-9.6 0 0 .8-.5 1-4.7z"/>
<path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m312.6 278.8-.7 7.1s1.8-2.4 2.2-.2l.4-3.2s-1.5-2.4-2-3.7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.3 287.8s-.6-6.1-3.6-1.8a10 10 0 0 0 0 3c0 .8.9 1.8 1.2 2.3.7 1 1.3-.2 1.3-.2s.7-1 1-3.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M287.8 237c-.1-3.5-1.2-9.3-1.3-13.3l-12-12.2s-1.4 9.9-5.8 15.5l19 10"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="M288.7 237.3c.5-2.4 1-5 1.5-10.2l-7.7-7.6c0 3.2-3.6 8.1-3.9 14"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M295.3 244.7c1-4.3-1.3-4.8 2-10.8l-7.2-6.8c-1.3 4-2.2 6.6-2 10l6 4.4"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M267.6 270c-1.5-4.2.5-12.7.2-18-.1-3.5 2.5-16.7 2.4-20.6l-14.1-8.8s-.6 14.3-2.3 29.9q-2 12.1-.4 21.5c1.5 8.7 3 12.2 6.5 15.9 6.3 6.5 19.7 2.7 19.7 2.7 11.3-2.3 17.8-9.4 17.8-9.4s-3.7.8-9.6 1.4c-13-.9-18.2 2.4-18.6-11"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m305.4 278.8.2-.1-5.9 1.9-8 .6c-17.2.4-15-10.3-14.3-27.5.1-6.6 1.4-14.8 1-17.7l-11.5-6.6c-3.8 10.6-2.6 18-3.3 23.5-.4 6-1.7 17.4.2 22.4 2.7 11.6 11.8 11.2 24.2 10.1 6.1-.5 9.4-2 9.4-2l8-4.6"/>
<path fill="#007a3d" stroke="#000" stroke-width=".1" d="M305.6 278.5a34 34 0 0 1-6 2.2l-8 .8c-12.5 1-19.8-7.7-18.2-27.6 0-7 .2-10.2 2.6-19.5l7 4v.7c-.5 2-1.5 7-1.5 9.2 0 16 10.1 28.2 23.9 30.3h.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M260 230.6c1 2 8 12.5 12 14.5m-11-7.6c1.3 2 9.8 14 13.6 14.6m-15.5 3.6c2 2.4 4 7 9.7 10m-7 3.3c4 3.7 13.6 11.6 23 12m-23-6c2 2.3 6.2 13.3 24 8.3m-26.7-6.3c1.2 2.6 10.1 17.3 26 11.6"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M277.8 264.8c-1.5-4.3.5-12.7.2-18.1-.1-3.5 1.5-15.5 1.5-19.5l-13.2-9.9s-.6 14.3-2.3 30a84 84 0 0 0-1.5 23.9c1.8 10 6.6 12.8 7.5 13.6 6.7 6 22 5.4 23.5 4.9 10.8-4 15.6-10.8 15.6-10.8s-5.2-.1-11.1.5c-13-1-19.7-.4-20.1-13.8"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="M315.6 273.5h.2l-5.9 1.8-8 .6c-17.2.5-15-10.2-14.3-27.5.1-6.5.3-12.4 0-15.3l-10.3-7.6c-3.8 10.7-2.8 16.7-3.5 22.2-.4 5.8-1.7 17.3.2 22.3 2.7 11.7 11.8 11.2 24.2 10.2 6.1-.5 9.4-2.1 9.4-2.1l8-4.6"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M315.9 273.4c-2.4 1.2-6 2.1-6 2.1l-8 .8c-12.5 1-19.8-7.7-18.2-27.6 0-7-.3-7.5 2.2-16.9 3.8 2.5 11.1 8.8 11.1 8.8s-2 2.8-1.5 6.7c0 16 6.4 24 20.2 26.1l1.5-13"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M270.1 225.3c1.2 2 8.1 12.6 12 14.6m-10.8-7.7c1.2 2 9.7 14 13.5 14.7m-15.5 3.6c2 2.3 4 7 9.7 10m-7 3.3c4 3.6 13.6 11.6 23 12m-23-6c2 2.3 6.2 13.2 24 8.3m-26.7-6.4c1.2 2.7 10.1 17.3 26 11.7"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m256.2 224-.7 6q-.2 6.6.1 9.8c0 .2.9 5.5.6 5.8-1 1.1-1.1 1.2-2.2.4-.1-.2.5-5.6.5-6.3l.4-9.9c0-1 1-6.4 1-6.4s0-1.2.3.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m256.2 224-.7 6q-.2 6.6.1 9.8l.7 5.8c-1 1.1-1.2 1.6-2.3.7-.1-.2.5-5.9.5-6.6l.4-9.9c0-1 1-6.4 1-6.4s0-1.2.3.5z"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="M256 222.2s-1 6-1.2 9.6l-.3 7.9-.5 4.5c-.1.7.1.2 0 .2-.9.5-1.5.1-2-.3-.2-.1 1.4-3.8 1.4-4.5.9-10.8 2.4-17 2.4-17s-.6 3.7.3-.4"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M256 222.2s-1 6-1.2 9.6l-.3 7.9-.5 4.5c-.1.7.1.2 0 .2-.9.5-1.5.1-2-.3-.1-.1 1.4-3.8 1.5-4.5.8-10.8 2.3-17.1 2.3-17.1s-.6 3.8.3-.3zm-.4 17.3s-1 .4-1 .2m0-1.3s.7 0 .8-.2m0-1s-.6.3-.8 0m.8-1.6h-.6m.6-1.5h-.6m.5-2.1s-.3.1-.4-.1m.5-1.7h-.5m-.5 9.5s-.9.2-1-.1m1.1-2s-.9.1-1-.1m1-1.3h-.7m.9-1.5h-.7m.7-1.7h-.5m.7-1.5h-.6m.6-1.7s-.4.3-.4 0m0 9s-.9 0-.9-.3m12.8-19.8-.7 6a63 63 0 0 0 0 9.8c0 .3 1 5.5.7 5.8-1 1.2-1.1 1.3-2.2.4-.1-.1.5-5.5.5-6.3l.4-9.8c0-1.1 1-6.5 1-6.5s0-1.1.3.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m266.4 218.7-.7 6a73 73 0 0 0 .1 9.8l.7 5.8c-1 1.2-1.2 1.6-2.3.7-.1-.1.5-5.8.5-6.6l.4-9.8c0-1.1 1-6.5 1-6.5s0-1.1.3.6z"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M266.3 217s-1.2 6-1.3 9.5l-.3 8-.5 4.4v.3c-.9.5-1.5 0-2-.4-.2 0 1.4-3.7 1.4-4.5a127 127 0 0 1 2.4-17l.3-.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M266.3 217s-1.2 6-1.3 9.5l-.3 8-.5 4.4v.3c-.9.5-1.5 0-2-.4-.2 0 1.4-3.7 1.4-4.5.9-10.8 2.4-17 2.4-17zm-.5 17.2s-1 .5-1 .2m0-1.2s.7 0 .8-.3m0-1s-.6.4-.8.1m.7-1.7h-.5m.6-1.5h-.6m.5-2s-.4 0-.4-.2m.5-1.7h-.5m-.5 9.6s-.9.1-1-.2m1.1-1.9s-.9 0-1-.2m1-1.3h-.7m.9-1.4h-.7m.7-1.7-.5-.1m.7-1.4-.6-.1m.6-1.6s-.4.2-.4 0m0 9s-.9 0-.9-.4"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M274.3 211.3s.5 5.1.2 8c-.3 3.5-.3 4.5-.6 6.6v3.9c.8.5 1.5.2 2 0 .3-.1-1-3.3-1-4 .5-8.9-.4-14.3-.4-14.3l-.2-.2"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M274.3 211.3s.5 5.1.2 8c-.3 3.5-.3 4.5-.6 6.6v3.8c0 .5-.1 0 0 .1.8.5 1.4.2 2 0 .2-.1-1-3.3-1-4 .5-9-.4-14.3-.4-14.3zm-.3 14.6s.9.2 1 0m-.8-1.7s.9.2 1 0m-1-1.2h.9m-.8-1.2h.7m-.5-1.4h.5m-.5-1.3h.5m-.4-1.4s.4.2.4 0m-1 7.4s1 .1 1-.1"/>
<path fill="#005000" stroke="#000" stroke-width=".1" d="M306 221.7h.8z"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M316.7 256.4s-.3-.2-.4 0l.1.2zm-1 1.1 2.1-.1"/>
<path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M292.2 284.2c-.2 3-7.4 6.6-12.7.1-5.7-4.5-4.5-11.4 0-12.3l54.7-53.3c2.2-1.2 2.4-2.3 3.5-3.5 2.3 2.5 7 6.8 9.6 9q-2.6 1.9-3.2 3.5z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M337.8 215c2.6-3.5 12.8 5.8 10 8.7-2.6 2.8-12.4-5-10-8.6z"/>
<path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M347 223c-2 1.4-9.3-4.8-8.1-7.2 2-2.2 10.1 5.7 8 7.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M344 227.9a16 16 0 0 1-9.9-9m-23 44.8a16 16 0 0 1-11.4-11.6m9.1 14.3a16 16 0 0 1-11.4-11.6m-2.1 25.8c-5.8-1.8-10.4-6-12.2-12.1m9.8 14.8a18 18 0 0 1-12.3-12.2"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M279.4 285q-.4 2-2.1 1.4m13.7-2c-2.1 3.5-4.5 2.4-6.5 2.5"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M276.4 285.2q.2 1.6 1.7 1.6a2 2 0 0 0 1.7-1.6q-.1-1.6-1.7-1.6c-1.6 0-1.7 1-1.7 1.9"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M279.5 284.9q-.5 2-2 1.3m13.5-1.7c-2.1 3.4-4.5 2.3-6.5 2.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m331.8 290.3 1 9-1.8-2.2c-.3-.6-1.5-2.1-1.8-7.4 0 0 1-2.9 1.4-2.9.7-.4 1.2 3.5 1.2 3.5zm-2.2-20.1 2.7 15.8c0 .5-1.3 1.6-2.1-1.2l-1.5-10.5z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m324.1 284.6 1.4-2 .4 3.1s-2 1.5-1.7 4.3l-.4-.6-.2-1s-.5-2-.5-3.1z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.8 299.4s-3.4-3-3.6-9.7l-.4-1.9s0 1.5-.8.4c-.6-1.5-.6-2.8-.6-2.8s-1.2-1.6-1.6.3l1.2 9.6.3 2s.7-1 1.4.1 1.8 2.7 4 2zm-4.1-25.1 1.5 10.5s-1.2.6-1.4 3c-.1 1.2-.6.6-.8.4-.2-.8 0-2.3 0-2.3l-.6-7.3s1.2-3.4 1.3-4.3z"/>
<path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m329.9 298.8.2 2.6s-1 0-1.7-1.2c-.8-1.1-1-2.8-1-2.8s.7-1.1 1.3 0c.5 1 1.2 1.4 1.2 1.4zm-1.8-10.6a6 6 0 0 1-.7-2.8l.7.5c-.2 1.2 0 2.3 0 2.3z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M324.8 287.1a4 4 0 0 1 1.2-1.5l1.5 12s.4 3 2.3 3.7c0 0-1.1 10.3-4.5 7.5-.4-.4-1-3.6-.9-5.5l.9-6a27 27 0 0 0-.5-4.7l-.6-2.6c-.2-.2 0-1.8.5-2.9z"/>
<path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m323.1 285.3-1 1c-.3 0 2.3 19.3 2.3 19.3s0-2 .7-6c.6-3.2-.2-7.5-.9-9.6 0 0-.8-.5-1-4.7z"/>
<path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m327.4 278.8.7 7.1s-1.8-2.4-2.2-.2l-.4-3.2s1.5-2.4 2-3.7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M328.7 287.8s.6-6.1 3.6-1.8c0 0 .2 2.4 0 3 0 .8-.9 1.8-1.2 2.3-.7 1-1.3-.2-1.3-.2s-.7-1-1-3.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M352.2 237c.1-3.5 1.2-9.3 1.3-13.3l12-12.2s1.4 9.9 5.8 15.5l-19 10"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="M351.3 237.3c-.5-2.4-1-5-1.5-10.2l7.7-7.6c0 3.2 3.6 8.1 3.9 14"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M344.7 244.7c-1-4.3 1.3-4.8-2-10.8l7.2-6.8c1.3 4 2.2 6.6 2 10l-6 4.4"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M372.4 270c1.5-4.2-.5-12.7-.2-18 .1-3.5-2.5-16.7-2.4-20.6l14.1-8.8s.6 14.3 2.3 29.9q2 12.1.4 21.5c-1.5 8.7-3 12.2-6.5 15.9-6.3 6.5-19.7 2.7-19.7 2.7-11.3-2.3-17.8-9.4-17.8-9.4s3.7.8 9.6 1.4c13-.9 18.2 2.4 18.6-11"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m334.6 278.8-.2-.1 5.9 1.9 8 .6c17.2.4 15-10.3 14.3-27.5-.1-6.6-1.4-14.8-1-17.7l11.5-6.6c3.8 10.6 2.6 18 3.3 23.5.4 6 1.7 17.4-.2 22.4-2.7 11.6-11.8 11.2-24.2 10.1-6.1-.5-9.4-2-9.4-2l-8-4.6"/>
<path fill="#007a3d" stroke="#000" stroke-width=".1" d="M334.4 278.5a34 34 0 0 0 6 2.2l8 .8c12.5 1 19.8-7.7 18.2-27.6 0-7-.2-10.2-2.6-19.5l-7 4v.7c.5 2 1.5 7 1.5 9.2 0 16-10.1 28.2-23.9 30.3h-.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M380 230.6c-1 2-8 12.5-12 14.5m11-7.6c-1.3 2-9.8 14-13.6 14.6m15.5 3.6c-2 2.4-4 7-9.7 10m7 3.3c-4 3.7-13.6 11.6-23 12m23-6c-2 2.3-6.2 13.3-24 8.3m26.7-6.3c-1.2 2.6-10.1 17.3-26 11.6"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M362.3 264.8c1.4-4.3-.6-12.7-.4-18.1.2-3.5-1.4-15.5-1.4-19.5l13.2-9.9s.6 14.3 2.3 30a84 84 0 0 1 1.5 23.9c-1.8 10-6.6 12.8-7.5 13.6-6.7 6-22 5.4-23.5 4.9-10.8-4-15.6-10.8-15.6-10.8s5.2-.1 11.1.5c13-1 19.7-.4 20.1-13.8"/>
<path fill="#ffe000" stroke="#000" stroke-width=".1" d="M324.4 273.5h-.2l5.9 1.8 8 .6c17.2.5 15-10.2 14.3-27.5-.1-6.5-.3-12.4 0-15.3l10.3-7.6c3.8 10.7 2.8 16.7 3.5 22.2.4 5.8 1.7 17.3-.2 22.3-2.7 11.7-11.8 11.2-24.2 10.2-6.1-.5-9.4-2.1-9.4-2.1l-8-4.6"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M324.1 273.4a34 34 0 0 0 6 2.1l8 .8c12.5 1 19.8-7.7 18.2-27.6 0-7 .3-7.5-2.2-16.9-3.8 2.5-11.1 8.8-11.1 8.8s2 2.8 1.5 6.7c0 16-6.4 24-20.2 26.1l-1.5-13"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M369.9 225.3c-1.2 2-8.1 12.6-12 14.6m10.8-7.7c-1.2 2-9.7 14-13.5 14.7m15.5 3.6c-2 2.3-4 7-9.7 10m7 3.3c-4 3.6-13.6 11.6-23 12m23-6c-2 2.3-6.2 13.2-24 8.3m26.7-6.4c-1.2 2.7-10.1 17.3-26 11.7"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m383.8 224 .7 6q.3 6.6-.1 9.8c0 .2-.8 5.5-.6 5.8 1 1.1 1.1 1.2 2.2.4.1-.2-.5-5.6-.5-6.3l-.4-9.9c0-1-1-6.4-1-6.4s0-1.2-.3.5"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m383.8 224 .7 6q.3 6.6-.1 9.8l-.7 5.8c1 1.1 1.2 1.6 2.3.7.1-.2-.5-5.9-.5-6.6l-.4-9.9c0-1-1-6.4-1-6.4s0-1.2-.3.5z"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="M384 222.2s1 6 1.2 9.6l.3 7.9.5 4.5c.1.7 0 .2 0 .2.9.5 1.5.1 2-.3.2-.1-1.4-3.8-1.4-4.5-.9-10.8-2.4-17-2.4-17s.6 3.7-.3-.4"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M384 222.2s1 6 1.2 9.6l.3 7.9.5 4.5c.1.7-.1.2 0 .2.9.5 1.5.1 2-.3.2-.1-1.4-3.8-1.4-4.5-.9-10.8-2.4-17.1-2.4-17.1s.6 3.8-.3-.3zm.4 17.3s1 .4 1 .2m0-1.3s-.7 0-.8-.2m0-1s.6.3.8 0m-.7-1.6h.5m-.6-1.5h.6m-.5-2.1s.4.1.4-.1m-.5-1.7h.5m.5 9.5s.9.2 1-.1m-1.1-2s.9.1 1-.1m-1-1.3h.7m-.9-1.5h.7m-.7-1.7h.5m-.7-1.5h.6m-.6-1.7s.4.3.4 0m0 9s.9 0 .9-.3"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="m373.6 218.7.7 6a73 73 0 0 1-.1 9.8c0 .3-.8 5.5-.6 5.8 1 1.2 1.1 1.3 2.2.4.1-.1-.5-5.5-.5-6.3l-.4-9.8c0-1.1-1-6.5-1-6.5s0-1.1-.3.6"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m373.6 218.7.7 6a73 73 0 0 1-.1 9.8l-.7 5.8c1 1.2 1.2 1.6 2.3.7.1-.1-.5-5.8-.5-6.6l-.4-9.8c0-1.1-1-6.5-1-6.5s0-1.1-.3.6z"/>
<path fill="#f7e214" stroke="#000" stroke-width=".1" d="M373.7 217s1.2 6 1.3 9.5l.3 8 .5 4.4v.3c.9.5 1.5 0 2-.4.2 0-1.4-3.7-1.4-4.5a127 127 0 0 0-2.4-17l-.3-.4"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M373.7 217s1.2 6 1.3 9.5l.3 8 .5 4.4v.3c.9.5 1.5 0 2-.4.2 0-1.4-3.7-1.4-4.5-.9-10.8-2.4-17-2.4-17zm.5 17.2s1 .5 1 .2m0-1.2s-.7 0-.8-.3m0-1s.6.4.8.1m-.7-1.7h.5m-.6-1.5h.6m-.5-2s.4 0 .4-.2m-.5-1.7h.5m.5 9.6s.9.1 1-.2m-1.1-1.9s.9 0 1-.2m-1-1.3h.7m-.9-1.4h.7m-.7-1.7.5-.1m-.7-1.4.6-.1m-.6-1.6s.4.2.4 0m0 9s.9 0 .9-.4m-10.5-22s-.5 5.2-.2 8.1c.3 3.5.3 4.5.6 6.6v3.9c-.8.5-1.4.2-2 0-.2-.1 1-3.3 1-4-.5-8.9.4-14.3.4-14.3l.2-.2"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M365.7 211.3s-.5 5.1-.2 8c.3 3.5.3 4.5.6 6.6v3.8c0 .5.1 0 0 .1-.8.5-1.4.2-2 0-.2-.1 1-3.3 1-4-.5-9 .4-14.3.4-14.3zm.3 14.6s-.9.2-1 0m.8-1.7s-.9.2-1 0m1-1.2h-.9m.8-1.2h-.7m.5-1.4h-.5m.5-1.3h-.5m.4-1.4s-.4.2-.4 0m1 7.4s-1 .1-1-.1"/>
<path fill="#005000" stroke="#000" stroke-width=".1" d="M334 221.7h-.8z"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M323.3 256.4s.3-.2.4 0l-.1.2zm1 1.1-2.1-.1"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M291.7 215.5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5l.2.9c0 .3-.5 1.6-2 2.7a12 12 0 0 1-4.1 1.5z"/>
<path fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m291.6 214.7 29.7 38.4 1.4-1.3-30.2-39.1z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M291.2 207.2s3.2-.4 2.8-2.2-2.6-1.8-3.5-1.9c-1 0-4 .7-4.8 1.5-.9 1-2.7 2.5-2.1 5s1.3 4.4 2.3 6 .7 3.2.4 3.9c0 .3-.4 1.3.4 1.6 1.2.5 1.5.5 2.5-.6s2.5-3 2.5-5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5 0 0-.7-1.2-1.8-1-1.1 0-3.4-1-4.6-2.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M291.2 207.2s3.2-.4 2.8-2.2-2.6-1.8-3.5-1.9c-1 0-4 .7-4.8 1.5-.9 1-2.7 2.5-2.1 5s1.3 4.4 2.3 6 .7 3.2.4 3.9c0 .3-.4 1.3.4 1.6 1.2.5 1.5.5 2.5-.6s2.5-3 2.5-5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5 0 0-.7-1.2-1.8-1-1.1 0-3.4-1-4.6-2.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M291.2 207.2c-.4 0-1.7-.6-2.6-.3-.9.4-2.7 1.4-2.4 3m10.4-.3s-1.8.8-3.1 1.7c-.6.3-2.4 2-3.5 3.2-1 1-1.3 2.4-3.5 3.9m9-9-1.4 1q-.9.6-1.2 1.3"/>
<path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M347.8 284.2c.2 3 7.4 6.6 12.7.1 5.7-4.5 4.5-11.4 0-12.3l-54.7-53.3c-2.2-1.2-2.4-2.3-3.5-3.5a133 133 0 0 1-9.6 9 10 10 0 0 1 3.2 3.5z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M302.2 215c-2.6-3.5-12.8 5.8-10 8.7 2.6 2.8 12.4-5 10-8.6z"/>
<path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M293 223c2 1.4 9.3-4.8 8.1-7.2-2-2.2-10.1 5.7-8 7.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M296 227.9a16 16 0 0 0 9.9-9m23 44.8q8.6-2.5 11.4-11.6m-9.1 14.3q8.7-2.6 11.4-11.6m2.1 25.8c5.8-1.8 10.4-6 12.2-12.1m-9.8 14.8a18 18 0 0 0 12.3-12.2"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M360.6 285q.5 2 2.1 1.4m-13.7-2c2.1 3.5 4.5 2.4 6.5 2.5"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M363.6 285.2q-.2 1.6-1.7 1.6a2 2 0 0 1-1.7-1.6q.1-1.6 1.7-1.6c1.6 0 1.7 1 1.7 1.9"/>
<path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M360.5 284.9q.5 2 2 1.3m-13.5-1.7c2.1 3.4 4.5 2.3 6.5 2.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.6 175.5c1.8 2.9 4.4 8 5.2 12a23 23 0 0 1-7 20.8c-5.2 4.7-13.3 6-16.7 6.8s-5.7 1.8-6.3 2.5q-.1-.7.5-1.6c1.6-.7 4.1-1 7.8-1.8 7.2-1.5 14.8-4.2 19-12.2 5.4-10.3 2.2-18.4-2.5-26.4z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.6 206.2a.4.6 49.9 0 1-.6-.6.4.6 49.9 1 1 .6.6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.6 205q-1.7.7-3 1l-3.7 1.4c-.8.3-1.6 1.3-1.6 1.3s1.2 1.3 2.6 1.1q1.6-.2 2.3-.7c.6-.3.6-.6 1.4-1.2 1-.7 1.6-2 2-3zm-5.7 1.1q-.6.7-1.6.5l-.2.2q1 .1 2-.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.6 205q-1.7 1.6-4.7 2.8a14 14 0 0 1-5 1l-.2.3c1.4-.1 3.4-.4 5-1.1a15 15 0 0 0 4.9-3zm-2.4 4.6c-2-.1-3 .5-4.8.9s-3.7-.5-4.8 1.1c4.4 2.9 7.6 1 9.6-2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.2 213.6c-.8-.8-8-3.2-9.2-.5 1.7 2 6.8 2.4 9.2.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m338.5 215.5-2.5-.4c-1-.1-1.3-.3-1.9-.4-1-.1-2.3-1.6-6-.5 1.4 3.4 6.4 4 10.4 1.3zm1.6-1.9c-3.8.8-8.3 0-10.1-1l-.3.2a16 16 0 0 0 10.4.8zm4-4c-2.2 1.5-5.2 2.6-11.4 1.8v.2c8.5.7 9.3-.8 11.4-2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 215.5c-3 .1-4.7 1.4-10.3-1.3l-1.4-.6-.5.2 1.4.4c7 3 6.8 1.6 10.8 1.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.3 211.6a.4.6 66.2 1 0 .4.7.4.6 66.2 0 0-.4-.7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M327.1 212.3c-.6.1-.8.9-.8 1.3l-.4.2q.2-1 1.2-1.7z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M346 186.8a.4.6 15.8 1 1-1-.2.4.6 15.8 0 1 1 .2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M341.6 203.2c-.1-2.1-1.1.8-3.2-3.9-.6-1.4-.6-2.2-1-4.3 1.2 1.8 3 2.3 3.8 3.6s.5 3.5.4 4.6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M337.5 195.2s1 2.4 2.4 4a8 8 0 0 1 1.8 3.7"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 197.2c1.3 1.7 3 3.8 3 6h.3c-.3-2.8-2-4.1-3-5.6zm10.8 2.7q-1.6 1-2.7 1.4l-1.4.9-1.4.5c-.7.5-2 2-2 2s1.3 1.1 2 1c2.4-.5 3.1-1.4 4.3-2.3 1-.8 1-2.5 1.2-3.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m340.7 204.8-.2.4c1.3-.2 3.5-1.5 5-2.2 1.8-1 3-1.7 3.7-3a9 9 0 0 1-3.9 3c-1.5.7-3.7 2-4.6 1.8zm9.4-9.5q-1.3 1.2-2.4 1.8l-1.3 1.1-1.2.8c-.6.6-1.5 2.2-1.5 2.2s.7.7 1.4.4c2.4-.3 3.1-1.4 4-3.5q.9-1.4 1-2.8z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.5 199.4a.6.4 62 1 0 .8-.3.6.4 62 0 0-.8.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m342.5 201.6-.2.3c2.9-1.3 6.6-3.9 7.8-6.5a17 17 0 0 1-7.6 6.2zm8.3-10.7q-1.2 1.3-2.2 2l-1 1.1-1.2.9c-.5.6-1.2 2.2-1.2 2.2s.8.9 1.5.5l2.1-1.6c.5-.4.6-1.4 1.2-2.2q1-1.4.8-2.9z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M348.7 193.8q-2.1 2.6-4.6 3.8l-.2.4c2.6-1.5 3.7-2.8 4.9-4.1zm1-5.6q-.6 1.4-1.6 2l-.8 1.2-1 .9-.7 2.1s.6.6 1.2.2l1.8-1.6 1-2.2a4 4 0 0 0 .2-2.6zm-4.3-1.1-.5 1.6v-.4q0-.6.4-1.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M348.4 191a13 13 0 0 1-3.8 4v.3c2.2-1.6 3-3 3.8-4.2zm-5.6 10q-.2-.8-.6-1.4.4.7.4 1.6l.1-.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.9 181.3a.4.3 39.5 0 1-.5.5.4.3 39.5 0 1 .5-.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m343.1 182.5-1.2-.8 1.3 1v-.2zm5.6.4c-1.2 2.4-3.9 4-2.8 7.5 2.8 2.6 3-4.5 2.8-7.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.1 177.7c-.5 2.4-2.6 4.4-1.2 7.6 4 1 2-4.3 1.2-7.6z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.7 174c2 3.7 2.5 5.9.2 8.3 0 0-1.3-1.1-1.6-3.3-.2-1.8 1.2-4 1.4-5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.4 171.8c.5 2.4-1.5 3.5 1.4 6.5 2.1-2.4 1.1-3-1.4-6.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.6 176c-3.3.3-2-2.6-3-5.3 2 1.5 4.7 2.1 3 5.3zm2.2 4.4c-1-4.4-4-2.6-5.6-4.6.9 2.9 2.1 4.8 5.6 4.6zm1.4 4.1q-4 0-6.2-4.4c2.7 1.2 5.7 1.4 6.2 4.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.6 188.3c-1-1.2-1-2-1.5-2.7a9 9 0 0 0-3-3.7c0 3 .4 6.5 4.5 6.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M344.2 191.6a20 20 0 0 0-5.6-5.7c1 2.2.6 6.3 5.6 5.7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.7 196c-5-.1-4.5-4.8-4.5-7l2.8 3.5c.9 1 1.8 2.2 1.7 3.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.1 198.8c-.4-1 0-1.4-1-2.3-1-1-2.8-2.7-3.7-4.6-.1 1.7-.2 4.4 1.2 5.3 1 .7 2 .9 3.5 1.6zm-4.3 7.3c-3.9-3-1.6-5.6-1.2-7.9 1 2.6 3.7 4.8 1.2 7.9zm1.6-29.2c-1.3-2.3-2-3.6-3.7-6 2 2.7 2.8 4.5 3.9 6.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.9 206.8c.1-3-.7-5.7-1.3-8.5.5 3 1.3 6 1 8.8zm4.6-7.4c-.4-1.8-4.1-3-5-7.5.7 4.4 4.5 5.5 4.8 8zm.8-2.5-.1.5c-.6-3-4-4.4-5-8.4 1.5 4.3 4.3 4.9 5.1 7.9zm.7-4.4c-1.7-2.6-4.1-3.6-6.4-6.7 2.1 3 4.8 4.4 6.4 7zm0-3.5q-3-1-6-7.1c1.4 3 3 5.8 6 7.6zm-1-4c-2.1-1.7-5-2.8-7-4.9 1.7 2 5 3.3 7.1 5.2v-.3zm-1.6-4.3c-2.2-1.5-4.4-2-6.2-4.8 1.5 2.8 3.8 3.5 6.3 5zm6.3 2.2c-.8 3.1-1.5 6.3-3.6 8.4v-.4c1-.5 2.5-3.7 3.6-8zm-2.6-5.1c-.1 3.2 0 6.5-1.7 8.3l-.1-.3c1.6-1.4 1.5-5 1.8-8zm-2.2-3.6c.5 2.8.6 5.3-.2 9.5l-.1-.3c.4-2.4 1-5 .3-9.2zm-3.4-2.3c1.1 2.4 2 4.8 1.2 7.4l-.2-.3c.9-2.4-.1-4.7-1-7zm-4.4 31.2c1.4 3.2-.4 5.6-2.5 7-1.6-4.7 1.8-4.2 2.5-7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M336.2 203.1c.2 2-2 4.2-2.6 7.6l-.3.2c1-4 3-5.6 2.9-7.8z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.7 181.2a.3.4 1.9 1 1-.6-.1.3.4 1.9 0 1 .6.1z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.5 183v-1.6h-.2v1.7z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M342.8 180.9a.3.4 2 0 1-.5.2.3.4 2 0 1 .5-.2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m343.2 182.3-.5-1.1.4 1.4v-.2z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M344.7 186.9a.4.3 80.5 1 1-.7 0 .4.3 80.5 0 1 .7 0z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m344.9 188.6-.4-1.4h-.1l.4 1.6v-.2z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.6 187.2a.4.3 57 1 1-.5.5.4.3 57 0 1 .5-.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m344.8 188.6-1.2-1v.1l1.3 1.1z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.4 199.1a.3.4 12.7 1 1-.7-.2.3.4 12.7 0 1 .7.2z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M342.8 200.8q.3-.7.2-1.5l-.4 1.7z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M344 199.9a.3.4 50.5 1 0 .5.4.3.4 50.5 1 0-.5-.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m342.7 201 1.3-.8v.1l-1.3 1z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M340.7 205a.3.4 40.4 1 1-.4-.6.3.4 40.4 0 1 .4.5z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m339.5 206.2.9-1.3h-.1l-1 1.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M338.8 204.5a.5.6 10 0 0 1 .1.5.6 10 1 0-1 0z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.4 205c-.3.7 0 1 0 1.2l-.1.3q-.4-.5-.1-1.5zm-12.1 9.5q-1-.1-1.3-.8h-.3q.5.9 1.5 1v-.3z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.3 215.2a.6.4 9.5 0 1 .2-.9.6.4 9.5 1 1-.2.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.7 206a5.5 5.5 0 0 1-4 6.4c-.9-4 2.8-4 4-6.3z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.7 206.1a21 21 0 0 1-4.8 7.2h-.5c2.7-2.1 4.2-4.9 5.3-7.2z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.8 213.3a.5.4 9.8 1 1-.4-.7.5.5 9.8 0 1 .4.7z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m326 213.8 1.4-.7h-.1l-1.7.6h.3zm2.5-5c0 1.2-1 2.4-2 3.2s-1 1.2-2.2 1.6c-1.2-2.8 2.8-3.3 4.2-4.8z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M328.5 208.8c-1.3 2.5-3.5 3.8-4.7 5.4h-.1c1.6-2.2 3-2.7 4.8-5.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.4 175.5c-1.7 2.9-4.4 8-5.1 12a23 23 0 0 0 7 20.8c5.2 4.7 13.3 6 16.6 6.8s5.8 1.8 6.4 2.5q.1-.7-.5-1.6c-1.6-.7-4.2-1-7.8-1.8-7.2-1.5-14.9-4.2-19-12.2-5.4-10.3-2.2-18.4 2.5-26.4z"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M314.1 213.6c-.2.4-4 3.7-7.5 3.5-2.5-.2-2.9-.8-2.9-.8s-.2-.7 2-1.1 6.2-2 8.4-1.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M303.8 216.3c2.7.3 5.5-.8 7.7-1.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.2 208.7a11 11 0 0 1 4.6 3.7c.9 1.5.7 1.9.7 1.9s-.2.3-1.3-1c-1-1.2-3.4-3.3-4-4.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M316.5 214.2c-.9-1.7-2.5-3-3.7-4.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.3 175.8c-.1-.3.3-3.4 2-4.4 1.3-.7 1.8-.5 1.8-.5s.3.3-.5 1.3c-1 1-2.1 3.2-3.3 3.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M304 171c-1.4.7-2.3 2.2-3 3.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 177.4c-.2-.2-1-3-.2-4.7.5-1.3.9-1.4.9-1.4s.3 0 .1 1.3-.2 3.8-.8 4.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M300 171.4q-.7 2.1-.6 4.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 177.5c.2 0 2.7-.8 3.9-2.1q1-1.4.8-1.3c-.2.1-.2-.2-1.1.5-1 .8-3 2-3.6 2.9z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M304 174.1q-1.5 1.7-3.3 2.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 179.6a10 10 0 0 1-.9-5.2c.3-1.6.6-1.7.6-1.7s.4 0 .4 1.4c0 1.5.3 4.2-.1 5.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M298 172.7c-.5 1.7-.2 3.6 0 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.3 181.6c-.3-.2-2.3-3-2-5.2 0-1.7.5-2 .5-2s.3-.1.6 1.4c.3 1.6 1.2 4.3.9 5.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M295.7 174.5c-.2 1.8.5 3.7 1 5.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.2 184.1a10 10 0 0 1-2.4-4.7c-.2-1.5 0-1.8 0-1.8s.4-.1.8 1.3 1.6 3.9 1.6 5.2z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M293.9 177.7c.1 1.7 1 3.4 1.5 4.8"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 179.6c.3 0 3.2-.2 4.6-1.7 1-1 1-1.5 1-1.5s-.2-.3-1.4.4c-1.1.8-3.4 1.8-4.2 2.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M303.7 176.5c-1 1.2-2.7 1.9-4 2.5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.3 181.6c.2 0 3.2 0 4.6-1.4 1.1-1 1-1.4 1-1.4s0-.3-1.2.3-3.6 1.5-4.4 2.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M303 178.9q-2 1.5-4.1 2.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.4 184.2c.2 0 3.4-.2 4.9-1.7 1-1.1 1-1.5 1-1.5s-.1-.4-1.4.3c-1.2.8-3.7 1.8-4.5 2.9z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M302.3 181q-2 1.9-4.3 2.5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.8 183s-.3-.5-.3-1q.1-.9.2-.8l-.2-.2-.1.9v.3l-.5-.5-.1-.4h-.2l.3.7c.5.4.8 1.1.8 1.1"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 180.3a.5.4 83.5 1 1 .1 1 .5.4 83.5 1 1-.1-1z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.8 180.3a.4.5 19.3 1 1-.3 1 .4.5 19.3 1 1 .3-1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m296.7 183 1-.7q.4-.6.3-.7h.2l-.4.8-.2.2.6-.1.4-.2.1.1-.6.4-1.3.3"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 181.6a.4.5 45.6 1 0-.8.8.4.5 45.6 1 0 .8-.8z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.4 180.8a.4.5 19.8 1 0-.3 1 .4.5 19.8 1 0 .3-1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 186.9c-.2-.2-2.4-2.6-2.8-4.8-.3-1.6 0-1.9 0-1.9s.3-.1.8 1.3 2 4 2 5.4z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M292.6 180.3c.2 1.8 1.2 3.5 2 4.9"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 186.9c.3 0 3.5-.4 5-2 1-1.3 1-1.7 1-1.7s-.2-.4-1.4.5-3.8 2-4.6 3.2z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M301.5 183.2c-1 1.4-2.8 2.2-4.2 3"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.2 189.6c.3 0 3.5-.9 5-2.6 1.1-1.3 1-1.7 1-1.7s-.1-.2-1.4.7c-1.2 1-3.8 2.5-4.6 3.6z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M301.2 185.4c-1.1 1.4-3 2.4-4.3 3.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 189.6c-.3 0-3.3-2.2-3.8-4.5-.3-1.7 0-2 0-2s.5-.3 1.2 1.2c.7 1.4 2.5 3.8 2.7 5.3z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M291.3 183.2c.3 1.8 1.5 3.5 2.5 4.8"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.2 193a11 11 0 0 0 4.6-3.6c.9-1.5.7-1.8.7-1.8s-.2-.3-1.3 1c-1 1.2-3.4 3.1-4 4.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M300.5 187.7q-1.7 2.4-3.8 4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 193.2c-.3 0-3.6-1.7-4.4-4-.7-1.6-.4-2-.4-2s.4-.4 1.3 1 3.1 3.5 3.5 5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M290.3 187.2c.5 1.8 2 3.4 3.2 4.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 191.6s-.4-.5-.5-1v-.9h-.3v.8l.2.4-.6-.4-.3-.5-.2.2.5.6c.6.2 1.1 1 1.1 1"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M293 189a.6.4 69.4 1 1 .4 1.2.6.4 69.4 1 1-.4-1.1z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M294.3 188.7a.4.6 5.2 1 1 0 1.2.4.6 5.2 1 1 0-1.2z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 191.6s.6-.5.8-1l.2-.8h.3l-.3.8-.1.4.6-.3.4-.4.1.2-.6.5c-.6.1-1.2.7-1.2.7"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.5 189.4a.4.6 31.5 1 0-.6 1 .4.6 31.5 1 0 .6-1z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.3 188.9a.4.6 5.7 1 0-.1 1.1.4.6 5.7 1 0 0-1.1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 196.2a12 12 0 0 1-5.1-4c-1-1.7-.8-2.1-.8-2.1s.2-.3 1.4 1c1.3 1.4 3.8 3.6 4.5 5.1z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M289.5 190.2c1 1.8 2.8 3.3 4.2 4.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 196.2c.4 0 4-1.9 5-4.4.6-1.8.3-2.3.3-2.3s-.4-.3-1.4 1.2c-1 1.4-3.4 3.8-3.9 5.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M300.9 189.6c-.7 2-2.3 3.7-3.6 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.6 199.3c.3-.1 3.7-2.3 4.5-4.8.7-1.9.4-2.3.4-2.3s-.4-.3-1.3 1.3c-1 1.5-3.2 4-3.6 5.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M301.5 192.3c-.7 2-2.2 3.8-3.4 5.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.3 199.3c-.4 0-4.7-1.3-6.2-3.8-1-2-.9-2.5-.9-2.5s.4-.4 1.8 1c1.5 1.4 4.5 3.5 5.3 5.2z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M289.3 193.1c1.1 2 3.3 3.6 5 4.8"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.1 205.7c.3-.2 2.6-3 2.8-5.6.2-1.8-.2-2-.2-2s-.3-.2-.8 1.4c-.5 1.7-1.8 4.6-1.8 6.2z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M302.8 198.1c-.1 2-1 4-1.8 5.6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300 205.6c-.5.2-5.4 0-7.7-2.1-1.6-1.6-1.5-2.2-1.5-2.2s.2-.5 2.1.5 5.7 2.3 7 3.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M290.9 201.4c1.7 1.7 4.4 2.6 6.5 3.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 203c-.4.1-4.8-1-6.8-3.1-1.6-1.6-1.5-2.1-1.5-2.1s.2-.4 2 .8c1.6 1.2 5 3 6.3 4.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M290 197.9c1.6 1.7 4 3 5.8 4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.4 203c.4-.2 3.6-2.9 4-5.6.2-2-.2-2.5-.2-2.5s-.5-.2-1.2 1.5c-.7 1.8-2.6 4.7-2.6 6.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M302.2 195c-.2 2.2-1.5 4.3-2.5 6"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="m297.4 201.5-1-.8-.5-.9h-.3l.8 1.2-.8-.1-.5-.3v.2l.7.4c.7 0 1.6.5 1.6.5"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M294.2 199.8a.7.5 45.9 1 1 1 1 .7.5 45.9 1 1-1-1z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 198.8a.7.5 71.6 1 1 .4 1.3.7.5 71.6 1 1-.4-1.3z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.5 201.4s.4-.6.4-1.3l-.1-1h.2l.1 1.3.6-.5.2-.6.2.1-.4.8c-.6.5-1 1.4-1 1.4"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.1 198.2a.5.7 8 1 0-.2 1.3.5.7 8 1 0 .2-1.3z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.6 198.1a.7.5 72.2 1 0 .4 1.3.7.5 72.2 1 0-.4-1.3z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M301.8 207.6c-.3.2-4.3 1-6.8-.3-1.8-.9-2-1.4-2-1.4s0-.5 2 0c1.8.4 5.2.7 6.8 1.7z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M293.1 206c2 1 4.4 1.2 6.3 1.4"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M302 207.5c.2-.1 2-2.5 1.9-4.8 0-1.7-.4-2-.4-2s-.3-.2-.6 1.3-1 4-.9 5.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M303.5 200.8c.2 1.8-.4 3.6-.9 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M305.5 210.3c-.3.3-5 1.5-8 .3-2-1-2.1-1.5-2.1-1.5s0-.5 2.2-.1c2.1.3 6.2.4 8 1.3z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M295.5 209.2c2.2 1 5 1 7.3 1.1"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M305.8 210.3c.2-.3 1.2-3.8 0-5.6-1-1.4-1.5-1.3-1.5-1.3s-.4 0 0 1.5c.3 1.5.5 4.3 1.5 5.4z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M304.4 203.4c1 1.4 1.1 3.4 1.3 5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.3 208.7s-.5.4-1.2 0q-.9-.6-.8-.7l-.3.2 1 .7.3.2-.9.2-.6-.1v.3h1l1.5-.5"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.5 208.7a.8.5 24.1 1 1 1.4.7.8.5 24.1 1 1-1.4-.7z" overflow="visible" style="marker:none"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.3 207.2a.8.5 49.9 1 1 1 1.2.8.5 49.9 1 1-1-1.2z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.4 209s.6-.5.2-1.2l-.6-.9.1-.2.7 1 .2.3.2-.9v-.6h.2v1l-.5 1.5"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.7 205.1a.8.5 69.5 1 0 .6 1.5.8.5 69.5 1 0-.6-1.5zm-1.5.8a.8.5 43.7 1 0 1 1 .8.5 43.7 1 0-1-1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M308.3 211.8c-.3.4-4.2 3-7.4 2.3-2.3-.4-2.6-1-2.6-1s-.1-.6 2-.8c2.2-.1 6-1 8-.5z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M298.4 213.1c2.5.6 5.2 0 7.3-.5"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M310.8 212.6s-.5.7-1.3.5l-1.2-.5-.3.3 1.3.4.5.1-.9.6-.7.1v.3l1.2-.3c.2 0 1.4-1 1.4-1"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M306.6 214a.9.6 5.4 1 1 1.7.2.9.6 5.4 1 1-1.7-.1zm.4-2a.9.6 31.2 1 1 1.5 1 .9.6 31.2 1 1-1.5-1z" overflow="visible" style="marker:none"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M309.5 212.2c.2-.3.7-4-1-5.6-1.1-1.2-1.7-1-1.7-1s-.5.1.1 1.5 1.4 4.2 2.6 5.1z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M306.8 205.6c1.4 1.2 1.9 3.2 2.3 4.7"/>
<path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.4 213s.2-.7-.5-1.2q-1-.7-1.1-.6v-.4l1.2.7.4.3c.4.3 0-.8-.2-1l-.4-.7.3-.2.5 1 .2 2"/>
<path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M309.7 209a.9.6 42.7 1 0 1.3 1.1.9.6 42.7 1 0-1.3-1.2zm-1.2 1.5a.9.6 17 1 0 1.7.6.9.6 17 1 0-1.7-.6z" overflow="visible" style="marker:none"/>
<path fill="#452c25" d="M319.1 209s-2.3 5.4-1.5 6c0 0 2.4-4.3 4.4-5.8 1.1-1 1.8 0 2-1 0-.8-3-2.1-3-2.1l-1.8 2.7"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M319.1 209s-2.3 5.4-1.5 6c0 0 2.4-4.3 4.4-5.8 1.1-1 1.8 0 2-1 0-.8-3-2.1-3-2.1l-1.8 2.7"/>
<path fill="#452c25" d="M310.6 213.1s-3.4 6-2.5 6 4.5-7.5 4.5-7.5l-1.3.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M310.6 213.1s-3.4 6-2.5 6 4.5-7.5 4.5-7.5l-1.3.2z"/>
<path fill="#452c25" d="M311.6 211.5s-3.6 5.8-2.7 5.9c1 .1 4.8-7.4 4.8-7.4l-1.3.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M311.6 211.5s-3.6 5.8-2.7 5.9c1 .1 4.8-7.4 4.8-7.4l-1.3.1z"/>
<path fill="#452c25" d="M312.3 210.5s-4 5.4-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M312.3 210.5s-4 5.4-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
<path fill="#452c25" d="M313.4 209.5s-4.8 4.9-3.9 5.2 6.2-6.2 6.2-6.2l-1.2-.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M313.4 209.5s-4.8 4.9-3.9 5.2 6.2-6.2 6.2-6.2l-1.2-.1z"/>
<path fill="#452c25" d="M313.6 207.7s-4.2 5.4-3.3 5.6 5.5-6.9 5.5-6.9l-1.3.1-1 1.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M313.6 207.7s-4.2 5.4-3.3 5.6 5.5-6.9 5.5-6.9l-1.3.1-1 1.2z"/>
<path fill="#452c25" d="M312.5 212.4s-4 5.5-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M312.5 212.4s-4 5.5-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1z"/>
<path fill="#452c25" d="M314.8 211.3s-2.4 4.5-2.1 4.6c.3.2 3.1-2.5 4.6-5.2 1.4-2.6-2.6.5-2.6.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.8 211.3s-2.4 4.5-2.1 4.6c.3.2 3.1-2.5 4.6-5.2 1.4-2.6-2.6.5-2.6.5"/>
<path fill="#452c25" d="M315 210.8s-2.3 5.5-1.5 6c0 0 3-3.3 3.7-5.9s0-.1 0-.1l-.2-2.9-2 2.7"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M315 210.8s-2.3 5.5-1.5 6c0 0 3-3.3 3.7-5.9s0-.1 0-.1l-.2-2.9-2 2.7"/>
<path fill="#452c25" d="M313.8 210.4s-4.7 4.8-3.9 5.1 6.3-6.1 6.3-6.1l-1.3-.1-1 1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M313.8 210.4s-4.7 4.8-3.9 5.1 6.3-6.1 6.3-6.1l-1.3-.1-1 1z"/>
<path fill="#452c25" d="M314.2 211s-4.7 5-3.9 5.2 6.2-6.2 6.2-6.2h-1.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.2 211s-4.7 5-3.9 5.2 6.2-6.2 6.2-6.2h-1.2z"/>
<path fill="#452c25" d="M314.6 211.8s-4.8 4.9-4 5.2c1 .3 6.3-6.2 6.3-6.2h-1.2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.6 211.8s-4.8 4.9-4 5.2c1 .3 6.3-6.2 6.3-6.2h-1.2z"/>
<path fill="#452c25" d="M315 205.1s-3.6 4.5-3 5.3c.4.8 3.6-2 4.7-4 1-2-1.7-1.4-1.7-1.4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M315 205.1s-3.6 4.5-3 5.3c.4.8 3.6-2 4.7-4 1-2-1.7-1.4-1.7-1.4"/>
<path fill="#452c25" d="M314.8 209.9s-3 5.8-2.2 5.5c.8-.4 3.8-4.7 4.2-5.7.3-1 .2-2 .2-2l-2.3 1.5.2 1.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.8 209.9s-3 5.8-2.2 5.5c.8-.4 3.8-4.7 4.2-5.7.3-1 .2-2 .2-2l-2.3 1.5.2 1.1"/>
<path fill="#452c25" d="M314.8 208s2.5-4.6 0 .9-3.4 4.5-3.4 4.5c-.2-.3 2.2-4 2.2-4s1.7-2.8 2.1-3.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.8 208s2.5-4.6 0 .9-3.4 4.5-3.4 4.5c-.2-.3 2.2-4 2.2-4s1.7-2.8 2.1-3.1"/>
<path fill="#452c25" d="M317.5 207.4s2.8-4.6 0 .9-3.9 4.5-3.9 4.5c-.2-.3 2.5-4 2.5-4s2-2.8 2.4-3.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M317.5 207.4s2.8-4.6 0 .9-3.9 4.5-3.9 4.5c-.2-.3 2.5-4 2.5-4s2-2.8 2.4-3.1"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M316.5 205.5s-3.5 4.5-3 5.2 3.7-2 4.7-4-1.7-1.4-1.7-1.4"/>
<path fill="#e8a30e" d="M352.8 251a32.8 37 0 1 1-65.6 0 32.8 37 0 1 1 65.6 0"/>
<path fill="none" stroke="#390" stroke-width=".8" d="M293.7 251c0-17 12-30.2 26.3-30.2s26.3 13.1 26.3 30.3" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none"/>
<path fill="#007934" stroke="#eee" stroke-width=".1" d="M287.2 253c1 19.5 15.3 35 32.8 35s31.9-15.5 32.8-35z"/>
<path fill="none" stroke="#000" stroke-width=".4" d="M352.8 251a32.8 37 0 1 1-65.6 0 32.8 37 0 1 1 65.6 0z"/>
<path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M314.5 225.4q-.4 2 .7 3.6 1 1.4.9 2.7l-.7.5-5.5-3.7 3.7 5.5-.2.2a5 5 0 0 0-3-.3 5 5 0 0 1-3.7-.8 5 5 0 0 0 3.1 2.1 5 5 0 0 1 2.6 1.3l-.2.8-6.6 1.3 6.6 1.3v.3a5 5 0 0 0-2.4 1.9 5 5 0 0 1-3 2q2 .5 3.6-.7a5 5 0 0 1 2.7-.9l.4.7-3.6 5.6 5.4-3.7.3.2a5 5 0 0 0-.4 3 5 5 0 0 1-.7 3.6 5 5 0 0 0 2-3.1 5 5 0 0 1 1.4-2.5l.8.2 1.3 6.5 1.3-6.5h.3a5 5 0 0 0 1.8 2.3 5 5 0 0 1 2.1 3.1 4 4 0 0 0-.7-3.6 5 5 0 0 1-.9-2.8l.7-.4 5.5 3.7-3.7-5.5.2-.3q1.5.7 3 .4a5 5 0 0 1 3.7.7 5 5 0 0 0-3.1-2 5 5 0 0 1-2.6-1.4l.2-.8 6.6-1.3-6.6-1.2v-.4a5 5 0 0 0 2.4-1.8 5 5 0 0 1 3-2 5 5 0 0 0-3.6.7 5 5 0 0 1-2.7.8l-.4-.7 3.7-5.5-5.5 3.7-.3-.2q.7-1.5.4-3a5 5 0 0 1 .7-3.6 5 5 0 0 0-2 3 5 5 0 0 1-1.4 2.6l-.8-.2-1.3-6.5-1.2 6.5h-.4a5 5 0 0 0-1.8-2.3 5 5 0 0 1-2-3.1z" overflow="visible" style="marker:none"/>
<path d="M325.9 236.7c-1.7-1.4-3.8-1.6-4.9-.6q-1.3 1.7.2 3.8l-.3.2a5 5 0 0 1-.3-4.1c1.5-1.3 3.7-1.4 5.2.7"/>
<path d="M323.3 236.3c-1 0-1.2.2-1.6.5l-.7.4.1.2q.3 0 .9-.6.6-.4 1.3-.3c1.3 0 2 1 2.1 1s-.7-1.2-2.1-1.2"/>
<path d="M325 237.5c-1-1-2.7-1-3.4 0h.2c.8-1 2.5-.6 2.6 0"/>
<circle cx="323.1" cy="237.4" r=".6"/>
<path d="M321.6 237.6c.7.6 2.2.7 3.3-.1h-.5q-1.2 1-2.5 0"/>
<path d="M325 237.8c-1.2 1-2.4.9-3.1.5q-.9-.7-.6-.6l.8.4q.9.5 2.9-.2m-3.5 2a.4.4 0 1 1-.6.5c0 .1-.3.6-.9.6h-.1l.1.2.9-.2a.6.6 0 1 0 .6-1m.9 3c-.7-.5-1-1-1.7-1l-.7.1h-.1l.1.2c.3 0 .7-.3 1.2 0zm-.3 0c-1.4-.5-1.7-.2-2.1-.2h-.1l.1.3c.6 0 .9-.4 2.1-.1"/>
<path d="M322.4 243c-1.6-.2-1.1.8-2.4.8h-.1l.1.2c1.6 0 .9-.9 2.4-1m-8.2-6.3c1.6-1.4 3.7-1.6 4.8-.6q1.3 1.7-.2 3.8l.3.2a5 5 0 0 0 .3-4.1c-1.5-1.3-3.7-1.4-5.2.7"/>
<path d="M316.7 236.3c1 0 1.2.2 1.6.5l.7.4-.1.2-.9-.6q-.6-.4-1.3-.3c-1.3 0-2 1-2.1 1s.7-1.2 2.1-1.2"/>
<path d="M315 237.5c1-1 2.7-1 3.4 0h-.2c-.8-1-2.5-.6-2.6 0"/>
<circle cx="-316.9" cy="237.4" r=".6" transform="scale(-1 1)"/>
<path d="M318.4 237.6c-.7.6-2.2.7-3.3-.1h.5q1.3 1 2.5 0"/>
<path d="M315 237.8c1.2 1 2.4.9 3.1.5q1-.7.6-.6l-.8.4q-.8.4-2.9-.2m3.5 2a.4.4 0 1 0 .6.5c0 .1.3.6.9.6h.1l-.1.2-.9-.2a.6.6 0 1 1-.6-1m-.9 3c.7-.5 1-1 1.7-1l.7.1h.1l-.1.2c-.3 0-.7-.3-1.2 0zm.3 0c1.4-.5 1.7-.2 2.1-.2h.1l-.1.3c-.6 0-.9-.4-2.1-.1"/>
<path d="M317.6 243c1.6-.2 1.1.8 2.4.8h.1l-.1.2c-1.6 0-.9-.9-2.4-1"/>
<path fill="#007934" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M323.2 258.4q2.5.4 4.7-.3a10 10 0 0 1 4.2-.6c0-.2.5-.3.2-.5l-1.8-.6q-1.4-.8-2.7-2c-.1 0-.6-.3-.6-.5 2.2 3.2 7.5 1.5 12 1.2.4.1 1.5-.2 2.4-.5 1-.4 3.6 0 4.3-.5l-1.3-1c-.6-.8-2.3-.7-3-1.5-1.3-1.5-3.3-1.9-4.9-3q-.6-.3-1.6-.3c-.6-.6 0-.5-5-4.7-4.5-1.8-4.2-3.2-7-4.3-1-.5-1.9-1.4-2.7-1.1a30 30 0 0 0-6.3 3c-1.2.6-2.7 2-3.8 2.8-.2.2-3.4 2.9-7 4.8a115 115 0 0 1-9.2 4.8c8-.4-7.3 2.3 29.1 4.8z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M303.3 249c2-1 10-5.3 12.4-8.4-.4 0 .6 1 .5 1.4.8 0 .4-1 1-1q.7 0 1.3-.3c.5 0 .2.2.2.4q-1.2 1.7-3.2 2.9l.2.4q.7 0 1.1-.2l.1-.3q.5.3.1.7c-.3.6-1.4.5-1.8 1a6 6 0 0 1-1.5 1.7q.7-.8 1.7-1c1 0 1.3-.7 2.2-.9.9-.1 1.5-.9 2.2-1.4-.3.4-.9.7-.7 1.2l.6.2c-.7.8-2 1.4-2.4 2.4-.4-.2-.7.2-1 .2-.4.1-.3.8-.6 1q-1.7 1.2-2.3 2.7l-1.3.7c-.7.3-4.6 3.4-4.7 3-.3-2.1-4.3 1.6-13.3-1.6m30.6-.1-.2-.2c.1-.3-.5-.4-.5-.7 1 0 1.8 1.2 2.5.5.1-.1-.3-.4.4-.6l-.1-.2h-.8l-.8-.3q-.6-.3 0-.6c1-.1 1.9.5 2.6.2l1.7-.5c.3-.1 1.2 0 .9.2q-.4.2-1 .2-.8.2-1.4.6c.3 0 .2.3.7.2l2-.4v-.5h.3c-.3-.5.6-.2 1-.6l.1.1c-.5.2-.3.5-.4.8q-.2 0-.2.2c.2.2.2-.2.5 0h.6q.6 0 .5-.4-.5-.3-.6-.8l-.1-.1q.8 0 1.1.4t.8.7c.8.2.7-.2.7-.6.7 0 1.6.3 1.4.6q-.2.5-1 .5c-.8 0-.2.3-.4.3q-.7 0-1 .2-.2.4.3.9h1.8q.2-.4.9-.6c.4-.3-.2-.5-.5-.7-.3 0 0-.1 0-.3.3-.3.9 0 1-.2l.1-.8q.4 0 .4.3l.7-.2q.5.1.4.4-.8.3-.7.8c0 .2-.5.3-.3.5q.5.4.5.9.5.5 1.6.3c-.2-.7 1.4-.4 2-.5q.1 0 0-.2-.4-.2-.3-.6l-.1-.1c1 .3 2.8.8 3.6 1.4-1 .2-2.8-.2-3.8 0a15 15 0 0 1-3.7.6l-1.6-.3m-11.3-.7-.4-.1"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M321.2 259.1c2 0 2.2 1.4 3.5.1 1.1.2 2.2-.2 2.2-.3 2.7.6 11.1-.2 10.6-.8-.9-1-2.3-1.4-3.4-2.2l-1.1-.4c-.7-.2-1.5 0-2-.3l-2.6-1.5-1.2-1.4q-1-.5-2-.7-1.2-.7-2.2-1.9l-1.1-.4c-.7-.3-1.2-1.1-1.9-1-1 .2-1.7 1-2.8 1.6-1 .4-1.4 1.1-2.2 1.6-.2.2-2.6 1.8-5.3 2.9l-6.6 2.5s2.4 1.7 8 1.5l3.4 1 1.9-.3z"/>
<path fill="#007934" stroke="#000" stroke-width=".1" d="M309.8 254.8c1.2-.6 6-2.9 7.4-4.5-.1 0 .5.5.4.7.5 0 .2-.4.6-.5l.8-.1q.3 0 .1.2-.8.8-2 1.5l.2.2h.7v-.3q.4.2.1.4c-.2.4-.9.3-1.1.6l-1 .9q.5-.4 1.1-.5l1.3-.5q.9-.2 1.4-.8-.4.3-.4.7l.4.1c-.4.4-1.2.7-1.5 1.2l-.6.1-.4.6q-1 .6-1.4 1.4l-.8.4c-.4.2-2.8 1.8-2.8 1.6-.2-1.1-2.6.5-8-1.2"/>
<path fill="#00a6de" stroke="#000" stroke-width=".1" d="M320 214.2c-18.1 0-32.8 16.5-32.8 36.9S301.9 288 320 288s32.8-16.5 32.8-37c0-20.3-14.7-36.9-32.8-36.9zm0 8.2c13.2 0 24.7 12.3 24.7 28.7s-11.5 28.6-24.7 28.6-24.7-12.2-24.7-28.6 11.5-28.7 24.7-28.7z" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none"/>
<path fill="#e8a30e" d="M324.7 266.8q.1.2-.4.3t-.5-.2q0-.2.5-.2.4-.2.4 0z"/>
<path fill="#e8a30e" d="m324.8 266.8-.5.2h-.5q0-.2.5-.3h.5zm-2.8 9c.8-2.2 1-3.8-.2-6 2-1.9 3.3-1.2 4.6 0-1.2 2.3-1 4-.2 6a4 4 0 0 1-4.2 0"/>
<path fill="#e8a30e" d="M324 268.6v7.7h.1v-7.7z"/>
<path fill="#e8a30e" d="M324.4 268.6a45 45 0 0 0-.3 7.7q0-4.2.4-7.6zm.7-2.4c-.4.4-.6.4-.4 1q.5-.4.4-1"/>
<path fill="#e8a30e" d="M324.3 266.4c.2.3.6.4.3 1q-.4-.3-.3-1"/>
<path fill="#e8a30e" d="M324.3 267c.2.3.5.3.3.9-.3-.3-.4-.3-.4-.8z"/>
<path fill="#e8a30e" d="M324.2 267.4q.4.2.3 1c-.4-.4-.3-.4-.3-1"/>
<path fill="#e8a30e" d="M324 267.9q.6.1.4 1c-.4-.4-.2-.5-.4-1"/>
<path fill="#e8a30e" d="M324 268.4c.2.2.6.3.4 1-.3-.4-.4-.4-.4-1m1.3-1.7q-.5 0-.6.8.6-.3.6-.8"/>
<path fill="#e8a30e" d="M325.3 267.1q-.5.1-.7.7c.6-.2.5-.2.7-.7"/>
<path fill="#e8a30e" d="M325.2 267.6c-.2.1-.6 0-.7.7.6-.3.6-.2.7-.8z"/>
<path fill="#e8a30e" d="M325.2 268.1q-.5-.2-.7.7.4-.1.7-.7"/>
<path fill="#e8a30e" d="M325 268.6c-.4.1-.5 0-.6.7.5-.3.4-.2.5-.7zm.2.3c-.7 2.1-.8 4-.7 7.4h.1c0-3.4.1-5.2.8-7.3h-.1zm1.2-2.2c-.4.3-.6.2-.5.8q.5-.1.5-.8"/>
<path fill="#e8a30e" d="M325.6 266.8q.5.2.1 1-.4-.4 0-1z"/>
<path fill="#e8a30e" d="M325.4 267.4c.3.3.5.3.2.8q-.3-.2-.2-.8"/>
<path fill="#e8a30e" d="M325.3 267.7q.3.3.1 1c-.3-.4-.3-.4-.1-1"/>
<path fill="#e8a30e" d="M325 268.1q.6.4.3 1c-.4-.4-.2-.5-.3-1"/>
<path fill="#e8a30e" d="M324.9 268.6q.5.4.2 1c-.3-.4-.3-.4-.2-1m1.6-1.4c-.2.2-.6 0-.7.7q.6-.1.7-.6z"/>
<path fill="#e8a30e" d="M326.4 267.7q-.4-.1-.8.5c.6-.1.6 0 .8-.5"/>
<path fill="#e8a30e" d="M326.3 268c-.3.2-.7 0-.9.7.7-.2.6-.2.9-.6z"/>
<path fill="#e8a30e" d="M326.1 268.6c-.2 0-.6-.2-.8.5.4 0 .4-.2.8-.5"/>
<path fill="#e8a30e" d="M325.8 269q-.4-.1-.7.6c.5-.2.5-.1.7-.6m.1.4c-1 1.9-1.1 3.6-.7 6.8l.2-.1c-.4-3-.2-4.7.6-6.6zm1.6-2.2c-.5.2-.7.2-.7.8q.5-.2.7-.8"/>
<path fill="#e8a30e" d="M326.7 267.2c.1.3.4.5 0 1-.3-.5-.2-.5 0-1"/>
<path fill="#e8a30e" d="M326.4 267.8q.4.2 0 .8c0-.4-.2-.4 0-.9z"/>
<path fill="#e8a30e" d="M326.2 268c.1.3.4.5 0 1-.3-.4-.2-.4 0-1"/>
<path fill="#e8a30e" d="M326 268.5c0 .3.4.5 0 1-.3-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M325.7 268.9c.2.3.5.5 0 1q-.2-.4 0-1m1.8-1.1c-.2 0-.6-.1-.8.5.6-.1.5 0 .8-.5"/>
<path fill="#e8a30e" d="M327.3 268.2q-.4-.2-.8.4c.6 0 .6 0 .8-.4"/>
<path fill="#e8a30e" d="M327.1 268.5q-.4-.1-.8.5c.6 0 .5 0 .8-.5"/>
<path fill="#e8a30e" d="M327 269c-.3 0-.7-.3-1 .4.5 0 .5-.1 1-.4m-.5.4q-.4-.1-.7.5c.5-.1.5 0 .7-.5m-3-.7q.3 3.5.4 7.6h.1q.2-4.2-.4-7.6zm-.6-2.6c.4.4.5.4.4 1q-.5-.3-.4-1"/>
<path fill="#e8a30e" d="M323.7 266.4q-.6.2-.4 1 .5-.3.4-1"/>
<path fill="#e8a30e" d="M323.7 267q-.5.3-.3.8c.2-.3.3-.2.3-.7z"/>
<path fill="#e8a30e" d="M323.8 267.4q-.4.1-.3 1c.4-.4.3-.4.3-1"/>
<path fill="#e8a30e" d="M324 267.9q-.6.1-.5 1c.5-.4.2-.5.4-1z"/>
<path fill="#e8a30e" d="M324 268.4q-.6.1-.4.9.4-.3.4-.9m-1.3-1.8c.2.2.6.2.6.8-.5-.3-.5-.2-.6-.8"/>
<path fill="#e8a30e" d="M322.7 267.1q.5 0 .6.7c-.5-.3-.5-.2-.6-.7"/>
<path fill="#e8a30e" d="M322.8 267.5c.2.1.6.1.6.8q-.6-.2-.6-.8"/>
<path fill="#e8a30e" d="M322.8 268c.2.1.7 0 .7.8q-.4-.2-.7-.7z"/>
<path fill="#e8a30e" d="M323 268.5c.3.2.5.1.5.8q-.5-.2-.5-.8m-.2.5-.2.1c.7 2 1 3.9.9 7.2h.1a19 19 0 0 0-.8-7.3m-1.2-2.4c.4.3.5.3.5.8q-.5-.1-.5-.8"/>
<path fill="#e8a30e" d="M322.4 266.7q-.5.3-.2 1c.3-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M322.6 267.3q-.6.3-.2.9c.2-.4.3-.4.2-.9"/>
<path fill="#e8a30e" d="M322.7 267.6q-.5.4-.1 1c.3-.4.2-.4.1-1"/>
<path fill="#e8a30e" d="M323 268.1q-.6.3-.3 1c.4-.5.1-.5.2-1z"/>
<path fill="#e8a30e" d="M323 268.6c-.1.2-.5.4-.1 1q.3-.4.2-1zm-1.5-1.5c.2.1.6 0 .7.7-.6-.2-.5-.2-.7-.7"/>
<path fill="#e8a30e" d="M321.6 267.6q.4-.1.7.5c-.5-.1-.5 0-.7-.5"/>
<path fill="#e8a30e" d="M321.7 268q.5-.1.8.6c-.6-.2-.6-.2-.8-.7z"/>
<path fill="#e8a30e" d="M321.9 268.5c.2 0 .6-.2.8.6q-.5 0-.8-.6"/>
<path fill="#e8a30e" d="M322.2 269q.4-.1.6.5c-.5-.2-.4-.1-.6-.6zm0 .5h-.2c.9 2 1 3.6.7 6.6h.2c.3-3 .2-4.6-.8-6.6zm-1.7-2.5c.4.3.6.2.6.8q-.5-.1-.6-.8"/>
<path fill="#e8a30e" d="M321.3 267c-.1.3-.4.6 0 1 .3-.4.2-.4 0-1"/>
<path fill="#e8a30e" d="M321.6 267.6q-.5.3-.1.9c.1-.4.3-.4 0-.9z"/>
<path fill="#e8a30e" d="M321.8 268q-.4.2 0 1c.2-.5.2-.5 0-1"/>
<path fill="#e8a30e" d="M322 268.4c-.1.3-.4.5 0 1 .3-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M322.3 268.8q-.5.4-.1 1 .3-.4 0-1zm-1.8-1.2q.4-.1.8.5-.7.1-.8-.5"/>
<path fill="#e8a30e" d="M320.6 268q.5-.1.9.5c-.6-.1-.6 0-.9-.5"/>
<path fill="#e8a30e" d="M320.8 268.4q.5-.1 1 .5c-.7-.1-.7 0-1-.5"/>
<path fill="#e8a30e" d="M321 268.9c.3 0 .7-.3 1 .5-.5 0-.5-.3-1-.5"/>
<path fill="#e8a30e" d="M321.4 269.3q.4-.1.7.5c-.5-.1-.4 0-.7-.5m2.2-3.2c.3.4.5.4.3 1q-.4-.4-.3-1"/>
<path fill="#e8a30e" d="M324.3 266.4q-.4.1-.4 1 .6-.3.4-1"/>
<path fill="#e8a30e" d="M324.4 267q-.6.2-.4.8c.2-.3.3-.2.4-.7z"/>
<path fill="#e8a30e" d="M324.4 267.4q-.4.1-.4 1c.4-.4.4-.4.4-1"/>
<path fill="#e8a30e" d="M324.5 268q-.6 0-.5.8c.5-.3.3-.4.5-.9z"/>
<path fill="#e8a30e" d="M324.5 268.4c-.2.2-.6.3-.4.9.3-.3.4-.3.4-.9m-1.2-1.8c.2.2.6.2.6.8-.5-.3-.5-.3-.6-.8"/>
<path fill="#e8a30e" d="M323.3 267q.4.1.6.8-.6-.2-.6-.8"/>
<path fill="#e8a30e" d="M323.4 267.4c.2.2.6.2.6.9-.5-.4-.5-.3-.6-.9"/>
<path fill="#e8a30e" d="M323.4 268c.2.1.7 0 .6.8-.4-.2-.3-.4-.6-.8"/>
<path fill="#e8a30e" d="M323.6 268.5c.2.1.4.1.4.8-.4-.4-.4-.3-.4-.8m-.4.3c.5 2.5.7 4.7.6 7.5h.2q.2-3.7-.7-7.5m-1-2.4c.4.4.6.3.5 1q-.5-.4-.5-1"/>
<path fill="#e8a30e" d="M323 266.6q-.5.2-.2 1c.3-.4.3-.4.2-1"/>
<path fill="#e8a30e" d="M323.1 267.2q-.5.2-.2.8.3-.3.2-.8"/>
<path fill="#e8a30e" d="M323.3 267.5q-.5.3-.2 1 .4-.3.2-1"/>
<path fill="#e8a30e" d="M323.5 268q-.6.3-.3 1c.4-.4.2-.5.3-1"/>
<path fill="#e8a30e" d="M323.6 268.5c-.2.3-.6.4-.3 1q.4-.4.3-1M322 267q.6-.1.8.6c-.6-.2-.6-.1-.8-.6"/>
<path fill="#e8a30e" d="M322.1 267.4c.2.1.7 0 .8.6-.6-.2-.6-.1-.8-.6"/>
<path fill="#e8a30e" d="M322.3 267.8c.2.1.6 0 .7.7q-.7-.1-.7-.7"/>
<path fill="#e8a30e" d="M322.4 268.3c.2 0 .6-.1.8.7-.5-.1-.5-.3-.8-.7"/>
<path fill="#e8a30e" d="M322.7 268.8q.4-.1.6.6c-.5-.2-.5-.1-.6-.6m-.8.9q.9 2 .7 3.7l-.3 2.5h.1q1-3.6-.5-6.2"/>
<path fill="#e8a30e" d="m322.5 269.2-.1.1c.8 2.1.9 4 .7 7h.1c.2-3 .1-5-.7-7zm-1.4-2.4c.4.3.5.2.5.8q-.5-.1-.5-.8"/>
<path fill="#e8a30e" d="M321.8 266.9c-.1.2-.4.4 0 1q.4-.4 0-1"/>
<path fill="#e8a30e" d="M322 267.4c-.1.3-.4.4 0 1 .1-.4.2-.4 0-1"/>
<path fill="#e8a30e" d="M322.3 267.8c-.2.2-.5.4 0 1 .2-.5.1-.5 0-1"/>
<path fill="#e8a30e" d="M322.5 268.2c-.2.3-.5.5 0 1 .2-.5 0-.5 0-1"/>
<path fill="#e8a30e" d="M322.7 268.7c-.1.2-.5.5-.1 1q.4-.4.1-1m-1.7-1.3q.4-.1.8.5c-.6-.1-.6 0-.8-.5"/>
<path fill="#e8a30e" d="M321.1 267.8q.5-.1.8.5c-.5-.1-.5 0-.8-.5"/>
<path fill="#e8a30e" d="M321.3 268.1c.2.1.7 0 .9.6-.6-.1-.6 0-.9-.6"/>
<path fill="#e8a30e" d="M321.5 268.7c.2 0 .6-.3.9.5-.5 0-.5-.2-.9-.5"/>
<path fill="#e8a30e" d="M321.9 269c.3.1.4 0 .6.6-.4-.1-.4 0-.6-.5zm-2-1.6q.7.1.8.7-.5 0-.7-.7z"/>
<path fill="#e8a30e" d="M320.7 267.4c0 .3-.3.5.2 1 .2-.5.1-.5-.2-1"/>
<path fill="#e8a30e" d="M321 267.9c0 .3-.3.5.1.9.1-.4.2-.4 0-.9z"/>
<path fill="#e8a30e" d="M321.3 268.2c0 .3-.3.5.1 1 .2-.5.2-.5 0-1z"/>
<path fill="#e8a30e" d="M321.6 268.6c0 .3-.4.5.1 1 .2-.6 0-.5 0-1z"/>
<path fill="#e8a30e" d="M322 269c-.2.3-.5.6 0 1q.2-.4 0-1m-2-1q.4-.2.9.4c-.6 0-.6 0-1-.4z"/>
<path fill="#e8a30e" d="M320.2 268.4c.2 0 .6-.2.9.4-.6 0-.6 0-.9-.4"/>
<path fill="#e8a30e" d="M320.4 268.7q.5-.2 1 .4c-.6 0-.6 0-1-.4"/>
<path fill="#e8a30e" d="M320.7 269.2c.2 0 .6-.3 1 .4-.5 0-.5-.2-1-.4"/>
<path fill="#e8a30e" d="M321.1 269.5q.4-.1.8.5c-.5 0-.5 0-.8-.5m3.8-.7a26 26 0 0 0-.7 7.5h.2q-.2-4 .7-7.4zm1-2.3c-.4.3-.5.3-.5.9q.5-.2.5-.9"/>
<path fill="#e8a30e" d="M325.1 266.6q.5.4.2 1c-.3-.4-.3-.4-.2-1"/>
<path fill="#e8a30e" d="M325 267.3q.6.2.2.8c-.2-.3-.3-.3-.2-.9z"/>
<path fill="#e8a30e" d="M324.9 267.6q.5.2.2 1-.5-.4-.2-1"/>
<path fill="#e8a30e" d="M324.7 268q.5.4.2 1c-.4-.4-.1-.5-.2-1"/>
<path fill="#e8a30e" d="M324.5 268.5c.2.3.6.5.3 1-.3-.4-.3-.4-.3-1m1.6-1.5c-.2.2-.6 0-.7.7q.6-.1.7-.7"/>
<path fill="#e8a30e" d="M326 267.5q-.4-.1-.7.6c.5-.2.5-.1.7-.6"/>
<path fill="#e8a30e" d="M325.9 267.9q-.5-.1-.8.6c.6-.2.6-.1.8-.6"/>
<path fill="#e8a30e" d="M325.7 268.4c-.2 0-.6-.2-.7.6q.4 0 .7-.6"/>
<path fill="#e8a30e" d="M325.4 268.8c-.2.1-.4 0-.5.7q.5-.1.5-.7m.2.4c-.9 2.1-1 4.1-.8 7h.2c-.2-3-.1-4.9.7-7zm1.5-2.3c-.5.3-.6.2-.6.8q.4-.1.6-.8"/>
<path fill="#e8a30e" d="M326.3 267c.1.2.4.5 0 1-.3-.5-.2-.5 0-1"/>
<path fill="#e8a30e" d="M326 267.5q.6.4.1 1c-.1-.5-.2-.5 0-1z"/>
<path fill="#e8a30e" d="M325.9 267.8c.1.3.4.5 0 1-.3-.4-.2-.4 0-1"/>
<path fill="#e8a30e" d="M325.6 268.3q.5.4.1 1c-.3-.5 0-.5-.1-1"/>
<path fill="#e8a30e" d="M325.4 268.7q.5.3.1 1c-.2-.4-.3-.4-.1-1m1.7-1.2c-.2.1-.6 0-.8.5.6 0 .6 0 .8-.5"/>
<path fill="#e8a30e" d="M327 268q-.4-.2-.8.4c.6-.1.5 0 .8-.5z"/>
<path fill="#e8a30e" d="M326.8 268.3q-.5-.1-.8.5c.6-.1.5 0 .8-.5"/>
<path fill="#e8a30e" d="M326.6 268.8c-.2 0-.6-.3-.8.5.4 0 .4-.3.8-.5"/>
<path fill="#e8a30e" d="M326.3 269.2q-.5-.1-.7.5.4 0 .6-.5zm0 .5c-1.1 2-1 4-.6 6.3h.2l-.3-2.9a6 6 0 0 1 .8-3.3h-.1zm1.9-2c-.5.1-.7 0-.8.6q.6 0 .8-.7z"/>
<path fill="#e8a30e" d="M327.4 267.5c0 .3.3.6-.2 1-.2-.5-.1-.5.2-1"/>
<path fill="#e8a30e" d="M327 268q.4.4 0 .9c-.1-.4-.2-.4 0-.9"/>
<path fill="#e8a30e" d="M326.8 268.3q.3.4-.1 1c-.2-.5-.2-.5.1-1"/>
<path fill="#e8a30e" d="M326.5 268.7c0 .3.4.6-.1 1-.2-.6 0-.5 0-1z"/>
<path fill="#e8a30e" d="M326.2 269c.1.4.4.7 0 1-.2-.4-.2-.4 0-1m2-.8c-.3 0-.6-.2-1 .4.6 0 .6 0 1-.4"/>
<path fill="#e8a30e" d="M327.9 268.6c-.2 0-.6-.2-.9.3.6 0 .6 0 .9-.3"/>
<path fill="#e8a30e" d="M327.7 268.9c-.3 0-.7-.2-1 .4.7 0 .6 0 1-.4"/>
<path fill="#e8a30e" d="M327.4 269.4c-.2 0-.6-.4-1 .3q.6 0 1-.3"/>
<path fill="#e8a30e" d="M327 269.7q-.4-.2-.8.4.5.1.8-.4m-3.5 2.7h1.1q1.1 0 1.2.4t-1.2.3h-1.1q-1.2 0-1.3-.4c-.1-.4.6-.3 1.3-.3"/>
<path fill="#e8a30e" d="m322.7 272.4-.4.6h.4l.4-.6zm.9 0-.4.6h.4l.4-.6zm.9 0-.4.7h.4l.4-.7zm.8 0-.3.7h.4l.3-.6h-.2z"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="m316.5 268.8.5 2.7.2.2v1.1l.5 1.6.3.6h.4l.1.2-.2.2h-.6l-.3-.1v-.3h-.2l-.1-.6-.8-1-.2-.5-.3-.3c-.5-1-1-3-1-3m-6.4-1 1.8.4-.5 2.6q-.4 1-.2 1 .2.7 1.1 2.3l.6.4.5.3h.5l.1-.2-.5-.2c0-.3-.5-.8-.5-1.2-.3-.7-.2-.7-.2-1.5l.5-1.6q.4-1 .5-2l-.8-1.7-.5-.7m-1.6-1.1c-2.9 1-1.7 3.5-.9 3.6m9.2-8.1.4-1v-.4l-.7.9"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M319.2 262.4h.4v-.6q-1-.4-1-.7v-.2c0-.2-.8-.3-1-.4l-.4-.2h-.2c-.8 0-1.1.7-1.2 1.2 0 0-.2 2.1-.5 3l-.2.3-.2.2-4.2-.2c-.8 0-1.8.7-1.8.7s-1 .6-1.1 1.6q-.1.5.1 1c1 2.7 1.8 0 2.1.1h.4c.5 0 1.4 1.5 2.7 1.8 4 .9 5-1.2 5-5.8v-.2l.2-.4v-.8l1-.2.2-.1"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="m317.3 261 .4-1v-.4l-.9 1m-8.9 7.6.7 1.8q-.1.6-.3.7h-.2l-.2.6v.6c0 .7.4 2.2.4 2.3q.2 0 .3.2v1.2q.1.3.3.3h.6l-.4-.4v-.2q0-.3.3-.5v-.3l-.1-.2-.1-.9v-1.1l.2-.2.1-.2 1-.6.8-1 .2-.5v-.2l-.3-.9-.6-.8m5.9 1.8c-.5.4-1.8.7-1.8 1 0 0 0 1.6-.2 2.2l-.3.6-.2.7-.3 1v.3l.4.3h-.4l-.6-.2V274l-.2-1.4.1-1-.1-3.6m4.7-5.4q.3.4 1.3.1.2.3.6-.2m-.3-.5h.2s.1 0 0 0z"/>
<path d="M317.8 261.4q.3.4.6.1-.3-.3-.5-.1z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M329.1 272.9v2.9c.2.2 1 .2 1.2 0v-17.2h-.9v4.9l-.1.8v3.2q-.2.4 0 .8v.7l-.1.8z"/>
<path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M329.1 273.6c.3.2 1 .1 1.2 0m-1.2-.7h1.2m-1.2-.8h1.2m-1.1-.7h1.1m-1.1-.8h1.1m-1.1-.8h1.1m-1-.8h1m-1-.7h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.7h1m-1-.8h1m-1-.8h1m-.9-.8h.8m-.8-.8h.8m-.8-.8h.8m-.8-.7h.8m-1 15.5h1.1m-1.2.7h1.2"/>
<path fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".1" d="M331.5 257h2.1l-.8-.3h2.2l-1-.5 2.2.1-1-.5c.9 0 1.2 0 2 .2l-.9-.5 2.5-.2a9 9 0 0 0-8 .8l1-1.1h-.7q.5-.6 1.2-1l-.7.1 1.4-1-.9.1 1.6-1.1h-1l2-1.3c-3.3.4-5.1 2.8-5.3 4.8a7 7 0 0 0-6.6-3.6q1.5.5 2.4 1l-1 .1q1.1.3 2 1h-1l1.8.8-.8.1 1.5.8h-.8c1 .4 1.1.6 1.3.7a8 8 0 0 0-7.3 3l2.2-1-.5.8q.9-.6 2-1l-.4.7 1.8-1-.4.8 1.7-.7-.5.7 1-.4a6 6 0 0 0-2.9 5.8l.9-2v1l1-2v1l1-2v1l1.1-1.9v.8l.3-.6.7-.9.2.3q.4.7.5 1.8l.2-.9c.3.7.7 1.8.7 2.4l.2-1c.3.5.6 1.8.7 2.3l.3-.9q.4 1.3.5 2.3c.8-3-.4-4.9-1.8-6.3q.6.2 1.3 1l-.3-.9 1.5 1.4-.2-.8q.9.8 1.5 1.6l-.2-1a6 6 0 0 1 1.3 1.8l-.1-1q1 1 1.3 1.7c0-2.7-3.1-5-6-5.3z"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M330.3 257.1c3.1-.5 7.2 2.3 7.2 5.3l-1.3-1.8.1 1-1.3-1.7.2 1q-.6-.8-1.5-1.6l.2.8-1.5-1.4.3 1q-.8-1-1.3-1.1m-1.8-1.5c-1.9-1.2-5.8-1-8.7 2.3l2.2-.9-.5.8q.9-.6 2-1l-.4.7 1.8-1-.4.8 1.7-.7-.5.7 1-.4"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M329.7 256.6c-.4-2.2-3-4.8-6.9-4.6q1.5.5 2.4 1l-1 .1q1.1.3 2 1h-1l1.8.8-.8.1 1.5.7-.7.1c1 .4 1 .6 1.2.7m1.5 1c-2.6.8-5.1 3.3-4.7 6.7 0-.4.5-1.5.8-2v1l1-2v1l1-2v1l1.1-1.9v.8l1-1.5m-1.6.2-.5 1.4m-.5-.8-.5 1.9m-.5-1-.5 2"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M329.9 258.6v-.6" class="bo-fil1 bo-str2"/>
<path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M332.6 261.3v1.3m-1-3 .1 1.6m-1-2.7.1 1.3m4.8-.4.6 1.2m-2-2.1.8 1.4m-2-1.8.7 1.2m-10.6-.8a5 5 0 0 1 1.7-1.2m-.2 1c.4-.6.6-.9 1.6-1.3m-.2 1q.5-.6 1.7-1.1m-.4 1.2q.7-.6 1.6-1m-3.7-4q1.2 0 2.2.6m-1.2.4q1 0 1.8.4m-1 .4q1 0 2 .6m-1.3.2a4 4 0 0 1 1.7.6m.9.2a9 9 0 0 1 8.5-1.2l-2.4.2q.6.1.8.4h-2q.6 0 1 .4H334l1 .3h-2.2l.8.3q-1.4 0-2 .2m4.8-1.6a6 6 0 0 0-2.2-.4m1 .7a6 6 0 0 0-2.5-.2m1.3.6a7 7 0 0 0-2.5-.2m1.3.7a5 5 0 0 0-2-.1m.8 1q.5.5.8 1.1m-3-3.1c.2-2 2-4.4 5.3-4.8l-2 1.3h1q-.9.4-1.6 1.1h.9l-1.4 1 .7-.1-1.2.9h.7l-1 1.1m2-4q-.8.2-1.6.7m1 .4-1.5.5m.9.4q-.7.2-1.5.7m1 .2a3 3 0 0 0-1.4.8m-.5 2.4-.3 1.1m1.2-2c1.8 1.6 4.1 3.7 3 7.6a6 6 0 0 0-.4-2.2l-.3.9a7 7 0 0 0-.7-2.4l-.2 1-.7-2.4-.2.9q0-1.4-.7-2"/>
<path fill="#e8a30e" stroke="#000" stroke-width=".1" d="m293.3 233.5 1.3.7.3-.6q.2-.5.1-.6 0-.3-.5-.5t-.7-.2q-.3 0-.5.4l-.2.5q0 .2.2.3m1.6 1 1.7.8h.3l.3-.5.3-.6v-.4l-.2-.2-.3-.2q-1.1-.6-1.7.3l-.4.7m-2.6-.8.6-1.2.6-.7.6-.4h.9q.3.1.4.6.2.3.1.7l1-.6 1 .1q.4.3.6 1t-.4 1.7l-.7 1.3-.3.7-1.4-.9-1.8-1-1.5-.7.3-.6m9-10.8q-1.2 1 .3 2.6.8 1 1.5 1 .6.2 1.3-.3.5-.4.4-1a3 3 0 0 0-.8-1.5q-.8-1-1.4-1.2-.8-.1-1.4.4m3.8-.2q.7 1 .7 2a3 3 0 0 1-1.2 2 3 3 0 0 1-2 .7 2 2 0 0 1-1.8-1 3 3 0 0 1-.7-2q0-1 1-2a3 3 0 0 1 2-.7q1.1 0 2 1m8-2.6.3 1 1.9-.7h.3l.3.7-.5.1-2.4.7-.7.2-.4-1.6-.5-2-.5-1.5.6-.2.7-.2.3 1.6.6 2m9.2-3v-1.6h.8l.7.1-.3 1.7-.2 2-.1 1.6h-.7l-.7-.1.3-1.7.2-2m9.9 5.3 3.1-2.7.4.2.4.2-4.7 3.6-.5-.3.2-2 .4-3.8 1.2.7-.5 4m8.4 4 1.2-1.3.4.6.5.4-1.3 1.1-1.5 1.4-1.1 1.1-.5-.5-.5-.5 1.3-1 1.5-1.4m5 10 1.3-1.4h-2l.7 1.4m-1.1-1.3-2 .1-.1-.3-.2-.4h5.9l.3.6-4 4.3-.2-.7-.3-.6 1.4-1.3-.4-.8-.4-1" font-family="Linux Biolinum" font-size="100" font-weight="700" letter-spacing="60" style="line-height:125%;text-align:center" text-anchor="middle" word-spacing="0"/>
<path fill="#e8a30e" stroke="#000" stroke-linecap="square" stroke-linejoin="round" stroke-width=".1" d="m325 280.6-.8 2.2h-2.4l1.9 1.5-.7 2.2 2-1.3 1.8 1.3-.6-2.2 1.8-1.4h-2.3zm9-3.9-.7 2.2H331l1.8 1.5-.7 2.2 2-1.3 1.9 1.3-.7-2.2 1.9-1.4h-2.4zm14.2-25-.8 2.3h-2.3l1.8 1.4-.6 2.3 1.9-1.4 1.9 1.4-.7-2.3 1.9-1.4h-2.4zm-6.7 17.9.7 2.2h2.4l-1.9 1.4.7 2.3-2-1.4-1.9 1.4.7-2.3-1.8-1.4h2.3zm4.7-8.2.8 2.2h2.3l-1.9 1.5.7 2.2-1.9-1.3-2 1.3.8-2.2-1.9-1.4h2.3zm-31.1 19.2.8 2.2h2.3l-1.9 1.5.7 2.2-2-1.3-1.8 1.3.6-2.2-1.8-1.4h2.3zm-9.2-3.9.8 2.2h2.4l-2 1.5.8 2.2-2-1.3-1.9 1.3.7-2.2-1.9-1.4h2.4zm-14-25 .7 2.3h2.3l-1.8 1.4.6 2.3-1.9-1.4-1.9 1.4.7-2.3-1.9-1.4h2.4zm6.6 17.9-.7 2.2h-2.4l1.9 1.4-.7 2.3 2-1.4 1.9 1.4-.7-2.3 1.8-1.4h-2.3zm-4.7-8.2-.8 2.2h-2.3l1.9 1.5-.7 2.2 1.9-1.3 2 1.3-.8-2.2 1.9-1.4h-2.3z"/>
<path fill="#e7e7e7" d="M321 248.1v-.5h.1l-.8-.5h-.7l-.8.5v.5h2.3"/>
<path fill="#e7e7e7" d="M321 248.1v-.5h.1l-.8-.5v-.7h-.6v.7l-.9.5v.5h2.3zm.3.6v.2h-2.6v-.2z"/>
<path fill="#e7e7e7" d="M321.3 248.7v.2h-2.6v-.2zm-2.5 0v-.5h.1v.5-.5h-.1v-.1h2.4v.1h-.2v.5-.5h.1v.5"/>
<path fill="#e7e7e7" d="M318.9 248.7v-.5zv-.5h-.1v-.1h2.4v.1h-.2v.5-.5h.1v.5"/>
<path fill="#e7e7e7" d="M319.4 248.6v-.4h-.4v.4z"/>
<path fill="#e7e7e7" d="M319.1 248.3v.2h.2v-.2zm1.8.3v-.4h-.3v.4z"/>
<path fill="#e7e7e7" d="M320.7 248.3v.2h.1v-.2zm.2-.3v-.3h-.3v.3z"/>
<path fill="#e7e7e7" d="M320.7 247.7v.2h.1v-.2zm-1.3.3v-.3h-.4v.3z"/>
<path fill="#e7e7e7" d="M319.1 247.7v.2h.2v-.2zm.8.3v-.3h-.3v.3z"/>
<path fill="#e7e7e7" d="M319.7 247.7v.2h.1v-.2zm.7.3v-.3h-.3v.3z"/>
<path fill="#e7e7e7" d="M320.1 247.7v.2h.2v-.2zm.4.2v.8h-1v-.8z"/>
<path fill="#e7e7e7" d="M320.5 247.9v.8h-1v-.8zm-1 .2h1m-.9.6v-.6m.7.6v-.6m.5-.5-.5-.4h-.6l-.5.4zm-1-.5h.4m-.3-.1h.2zm.1 1h.1zm.3 0h.1"/>
<path fill="#e7e7e7" fill-rule="evenodd" d="M319.8 246h.4v.4h-.4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M320 245.6v.4m-.2-.2h.4"/>
<path fill="#452c25" d="M317.1 210.3s-2.3 5.4-1.5 6c0 0 3-3.3 3.7-5.9s0-.2 0-.2l-.2-2.8-2 2.7"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M317.1 210.3s-2.3 5.4-1.5 6c0 0 3-3.3 3.7-5.9s0-.2 0-.2l-.2-2.8-2 2.7"/>
<path fill="#452c25" d="M317.6 207.7s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.1 0-.1 0-.1l.7-3.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M317.6 207.7s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.1 0-.1 0-.1l.7-3.9"/>
<path fill="#452c25" d="M320.5 206.4s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.2 0-.2 0-.2l.7-3.8"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M320.5 206.4s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.2 0-.2 0-.2l.7-3.8"/>
<path fill="#452c25" d="m356.8 195.6 3.4 1.9s.8.7-1 .3a42 42 0 0 1-12.8-6.4c-3.3-2-4.3-2-4.3-2l4.5.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m356.8 195.6 3.4 1.9s.8.7-1 .3a42 42 0 0 1-12.8-6.4c-3.3-2-4.3-2-4.3-2l4.5.1z"/>
<path fill="#452c25" d="m358 194.8 3.3 1.9s.8.7-1 .3a45 45 0 0 1-12.8-6.4c-3.3-2.1-.6 1.7-.6 1.7l.5-2.5 10.5 5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m358 194.8 3.3 1.9s.8.7-1 .3a45 45 0 0 1-12.8-6.4c-3.3-2.1-.6 1.7-.6 1.7l.5-2.5 10.5 5z"/>
<path fill="#452c25" d="M363.5 196.6s-4-.7-5.4-1.8c0 0 .2.5-1.7-.4 0 0 .7 1.7-4.8-2s-3.6-2-3.6-2l1.6-.3 9.3 3.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M363.5 196.6s-4-.7-5.4-1.8c0 0 .2.5-1.7-.4 0 0 .7 1.7-4.8-2s-3.6-2-3.6-2l1.6-.3 9.3 3.7z"/>
<path fill="#452c25" d="m342.6 198.1 1.4 1.9s-.5 1.8-5.1-1.7-4.4-3.2-4.4-3.2l2.6-.3 5.6 3.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m342.6 198.1 1.4 1.9s-.5 1.8-5.1-1.7-4.4-3.2-4.4-3.2l2.6-.3 5.6 3.2"/>
<path fill="#452c25" d="M336.6 199s2.2 2.9 1.7 3.2-3 .2-4.8-2.5c-1.9-2.8 0-.2 0-.2v-4.4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M336.6 199s2.2 2.9 1.7 3.2-3 .2-4.8-2.5c-1.9-2.8 0-.2 0-.2v-4.4l3.2 3.8"/>
<path fill="#452c25" d="M338.8 197.8s2.1 2.6 1.9 3-3.2.2-5.5-2.5c-2.3-2.6-.3-3.4-.3-3.4l3.9 2.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M338.8 197.7s2.1 2.7 1.9 3.1-3.2.2-5.5-2.5c-2.3-2.6-.3-3.4-.3-3.4z"/>
<path fill="#452c25" d="M350.6 196.2s6 2.5 1.6 2.4c0 0-8.6-2.3-13-6.2l1.2-1.6 10.2 5.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M350.6 196.2s6 2.5 1.6 2.4c0 0-8.6-2.3-13-6.2l1.2-1.6 10.2 5.2"/>
<path fill="#452c25" d="M353.8 195.4s3.1 2 3.4 2.7-10-1.9-15.3-6.3l2.4-1.2 9.4 4.8z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M353.8 195.4s3.1 2 3.4 2.7-10-1.9-15.3-6.3l2.4-1.2 9.4 4.8z"/>
<path fill="#452c25" d="M344.5 197.2s2.3 1.9 2 2.1-5-.5-8.6-3.3l.4-1.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M344.5 197.2s2.3 1.9 2 2.1-5-.5-8.6-3.3l.4-1.7 6.2 2.8"/>
<path fill="#452c25" d="M348.4 197s2.3 1.6 1.8 1.8-2.2 1.6-10.7-3.4l-1-.6 1.3-2z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M348.4 197s2.3 1.6 1.8 1.8-2.2 1.6-10.7-3.4l-1-.6 1.3-2z"/>
<path fill="#452c25" d="M339.7 192.4s2.8 2.4 2.4 2.8-3.6-.4-5-1.5c-1.5-1-2.6-2.4-2.6-2.4l3-.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M339.7 192.4s2.8 2.4 2.4 2.8-3.6-.4-5-1.5c-1.5-1-2.6-2.4-2.6-2.4l3-.7z"/>
<path fill="#452c25" d="m336.4 188.3 5 3s4.1 2.8 3.7 3.1-3.7-.8-6-2c-2.2-1.3-5-4-5-4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m336.4 188.3 5 3s4.1 2.8 3.7 3.1-3.7-.8-6-2c-2.2-1.3-5-4-5-4"/>
<path fill="#452c25" d="M333.2 202.4s1 2.4.4 2.6-2-.2-3-2.3c-1.2-2.2 1-1.3 1-1.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M333.2 202.4s1 2.4.4 2.6-2-.2-3-2.3c-1.2-2.2.7-1.3.7-1.3z"/>
<path fill="#452c25" d="M334.9 200.9s1.4 2.3 1.1 2.6c-.3.2-2.2 1-4.2-2s2.1-2.3 2.1-2.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M334.9 200.9s1.4 2.3 1.1 2.6c-.3.2-2.2 1-4.2-2s2.1-2.3 2.1-2.3z"/>
<path fill="#452c25" d="M330.7 190.4s4.8 9.3 4.4 9.8-2.3 0-3.4-2.5-1.9-5.6-1.9-5.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M330.7 190.4s4.8 9.3 4.4 9.8-2.3 0-3.4-2.5-1.9-5.6-1.9-5.6z"/>
<path fill="#452c25" d="M336.3 192.8s4 3.3 3.2 3.8q-1.2.8-4.8-2.5c-2.3-2.3 1.6-1.5 1.6-1.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M336.3 192.7s4 3.5 3.2 3.9q-1.4.8-4.8-2.5c-3.4-3.3 1.6-1.4 1.6-1.4z"/>
<path fill="#452c25" d="M334.4 192.8s2.8 5.3 2.5 5.8c-.4.5-2.5-1.3-3.6-2.7-1-1.3-1.9-3.3-1.9-3.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M334.4 192.8s2.8 5.3 2.5 5.8c-.4.5-2.5-1.3-3.6-2.7-1-1.3-1.9-3.3-1.9-3.3"/>
<path fill="#452c25" d="M312.9 203.6s-.2 3.1 0 3.3c.2.3 1.7.3 1.8-2 .1-2.4-.3-2.5-.3-2.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M312.9 203.6s-.2 3.1 0 3.3c.2.3 1.7.3 1.8-2 .1-2.4-.3-2.5-.3-2.5l-1.5 1.1"/>
<path fill="#452c25" d="M313.8 199.9s-1 3.4 0 4.1 1.9-3.4 2-4.3c0-1-2 .2-2 .2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M313.8 199.9s-1 3.4 0 4.1 1.9-3.4 2-4.3c0-1-2 .2-2 .2z"/>
<path fill="#452c25" d="M314.6 204.3s.2 3.2.8 3.4 1.6-1 1.6-1.8-1-2.8-1-2.8l-1.4 1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.6 204.3s.2 3.2.8 3.4 1.6-1 1.6-1.8-1-2.8-1-2.8l-1.4 1"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M314.6 200.4s-1 3.5 0 4.2 1.9-3.4 2-4.4c0-.9-2 .2-2 .2z"/>
<path fill="#452c25" d="M314.7 194.8s-1.6 1.7-1.6 2.6 2.4-1.2 2.6-1.6-1-1-1-1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M314.7 194.8s-1.6 1.7-1.6 2.6 2.4-1.2 2.6-1.6-1-1-1-1z"/>
<path fill="#452c25" d="M313.6 194s-1.3 2.3-1 3 1.6-.5 2.2-1.4-1.2-1.7-1.2-1.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M313.6 194s-1.3 2.3-1 3 1.6-.5 2.2-1.4-1.2-1.7-1.2-1.7z"/>
<path fill="#452c25" d="M331.5 190.8s2 3.8 1.5 4q-1 .1-2.3-1.9c-.8-1.1.8-2.1.8-2.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M331.5 190.8s2 3.8 1.5 4q-1 .1-2.3-1.9c-.8-1.1.8-2.1.8-2.1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M331.6 198.6s.7 3.3 0 3.6c-1.2.5-2-2.3-2-3.4s2-.2 2-.2zm-2.6 5.1s.2 2.5-.2 2.7c-.3.2-1.2.2-2.1-1.8l-.5-1.2 2.3-1.2.5 1.3"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M331.4 203.2s.2 2.5-.3 2.6c-.5 0-1.9-.8-2.5-2.3-.6-1.8 2.4-1.3 2.4-1.3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M329 195.3s2.6 6 2.1 6.7c-.8 1.7-3.2-3.5-3.9-5.6-.8-2.2 1.7-1 1.7-1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.7 196.3s3.6 6.5 2.1 6.6c-1.5.2-4.3-4.6-4.7-5.8-.5-1 2.6-.8 2.6-.8z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.5 197.7s1.8 6.2.6 5.6c-1-.5-2.5-5.2-2.6-6.2s2 .6 2 .6zm6.2-8.8s2.7 4.1 1.8 4.2c-.8.2-4-2.7-4-3.2-.1-.5 2.2-1 2.2-1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M332 189s3.5 4.8 2.4 5c-1 .2-1.1-.5-1.1-.5s-2.8-2.5-3-3.1c-.1-.6 1.6-1.4 1.6-1.4m3.5.1s2.4 2.5 1.8 3.3-4-3.1-4.4-3.6 2.9.2 2.9.2m-6 3.5s3.8 7.5 3 8.2c-.6.8-4.9-5.6-5-6.5-.2-.9 2-1.8 2-1.8"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.5 193.2s1.5 2.3 1.4 3.6c0 1.2-2.3-1.8-2.5-2.4s1-1.2 1-1.2zm3.1-1.2s1.2 2.4.8 3.1-2-1.4-2.5-2.3 1.7-.8 1.7-.8z"/>
<path fill="#452c25" stroke="#000" stroke-width=".2" d="M325 194.4s2 2 1.9 3.1-2.8-1.6-3-2c-.3-.6 1.2-1.1 1.2-1.1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M337.2 188.4s2.8 2.5 2.4 3c-.5.3-4.3-2.4-4.9-3-.6-.5 2.5 0 2.5 0z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="m334.8 188.2 2.2 1.9s2 1.3 1.7 1.7-3.6-1.1-4.1-1.8q-.8-1.2-.6-1.4zm7.3.6s8.4 3.4 8 4.2c-.3.8-8.8-2.7-10-3.7-1.4-.9 1.8-.6 1.8-.6"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M342.4 189.8s6.3 3.6 5.5 4-5.2-1-7.5-2.5l-3.3-2.5 2.8-.6zm-15.5 4.4s1.2 2.4.8 3c-.4.8-1.5-.5-2.1-1.4s1.3-1.6 1.3-1.6zm.3 5.4s1 3.5-.1 4.2c-1.1.6-1.8-3.6-1.8-4.5s1.9.3 1.9.3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M322.3 193.8s3.5-1.5 4.1-1.4c0 0 .8-.2 1.1-.5l1.3-1s-.6-4.3 3.9-3.8l11.5 1.1a45 45 0 0 1 6.5 2l9 3.9 4 2.3c.8.5-.1.1-.1.1s-10.7-5.7-14.5-6.4c-1-.2 0 1 0 1l-3.4-1.3a6 6 0 0 0-2.9-.6 6 6 0 0 1-2.2-.3c-.6-.2-3.8-.3-4.4-.4l-1-.2.3.4-1.6-.2-.5.6s-1.5.3-1.6-.2-1 2.3-1.3 3c-.4.9-1.9.9-2.3 1.4l-1 .9c-.2.1-1.3.8-1.7.8l-2.9.2-.6-1zm4.6 10-.1 3.3c-.2.2-1.8.1-1.8-2.2s.5-2.4.5-2.4l1.5 1.2"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.3 201.4s-.3-1.4-.5-1.6 0-.3 0-.3-.5-1.4-.9-1.6c-.3-.2.1-.4.1-.4s-.6-1-1-1.2c-.4-.3 0-.4 0-.4s-.5-1.2-1.5-1.8c0 0-.7-.7-1.4-.9q-1.2-.4-4.5-.3c-2.2 0-3.2 1.5-3.2 1.5l-.1 1.8.3-.2-.5 2.2c0 .5.5 1.4.5 2.5v1q.2 1.5.8 2.9v.2c.2-.2.5.6.7 1 0 0 0 1 .2.6l.6 1.1c0 .2.5 1.4.5.9 0-.6.4 1.3.4 1.5l.5-.7.2.8h.5l-.2.8s1.2-1 1.3-1.4v-.6l.4-.4.6-1s1.5 1.2 1.7 1.7l.3.7.4-.3.3.8.3-.4.2.6.1.3c.1.1.4.2.8-.6q.8-1.7.6-2c0-.3.3.2.3.2s.6-1 .5-1.6.3-.4.3-.4v-2.2q.2-.4.3-.3l-.2-2.3c-.2-.2.3-.2.3-.2z"/>
<path d="M324.3 196.7q.4.1.6.6-.2-.6-.6-.8zm.3 1.2q.7.8.5 1.8v.1q.1-1.1-.5-2zm1.1.7a3 3 0 0 1 .4 1.6q.1-1-.4-1.7m.4 2.5q0 .6-.2 1v.2zm-.4 1.9v.7-.8m.7 0q.3.2.3.6v-.1l-.3-.7zm0-2.6.4.5v-.2l-.5-.5zm-1.4 2v1zm-.7.7v1-1.1z"/>
<path fill="#452c25" d="M310.7 194.3s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M310.7 194.3s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3z"/>
<path fill="#452c25" d="M312.6 194.3s-1.6 1.7-1.6 2.6 2.4-1.3 2.6-1.7-1-.9-1-.9"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M312.6 194.3s-1.6 1.7-1.6 2.6 2.4-1.3 2.6-1.7-1-.9-1-.9z"/>
<path fill="#452c25" d="M285 194.5s-3.3 1.7-3.6 2.4 10-1 15.8-5l-2.3-1.4z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M285 194.5s-3.3 1.7-3.6 2.4 10-1 15.8-5l-2.3-1.4z"/>
<path fill="#452c25" d="M289 195.2s-6 2.2-1.7 2.3c0 0 8.7-1.8 13.3-5.4l-1.1-1.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M289 195.1s-6 2.3-1.7 2.4c0 0 8.7-1.8 13.3-5.4l-1.1-1.7z"/>
<path fill="#452c25" d="M298 189s-6.5 3.4-5.8 3.7 5.3-.6 7.7-2l3.4-2.4-2.9-.8-2.5 1.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M298 189s-6.5 3.4-5.8 3.7 5.3-.6 7.7-2l3.4-2.4-2.9-.8-2.5 1.6z"/>
<path fill="#452c25" d="M295.5 196.3s-2.3 1.9-2 2.1 5-.5 8.6-3.4l-.5-1.7z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M295.5 196.3s-2.3 1.9-2 2.1 5-.5 8.6-3.4l-.5-1.7-6.2 2.9"/>
<path fill="#452c25" d="M291.5 196s-2.2 1.7-1.7 1.8 2.3 1.5 10.6-3.9l1-.6-1.5-2-8.4 4.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M291.5 196s-2.2 1.7-1.7 1.8 2.3 1.5 10.6-3.9l1-.6-1.5-2z"/>
<path fill="#452c25" d="M289.8 189.6a66 66 0 0 0-13.9 7.2l17.9-7m11.2 10.6s-1.5 2.3-1.2 2.5 2.1 1.2 4.3-1.7c2-3-2-2.5-2-2.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M305 200.4s-1.5 2.3-1.2 2.5 2.1 1.2 4.3-1.7c2-3-2-2.5-2-2.5z"/>
<path fill="#452c25" d="M306.6 202s-1 2.4-.5 2.6 2-.1 3.2-2.2c1.2-2.2-.6-1.1-.6-1.1zm-3.3-3.5s-2.2 2.7-1.7 3.1c.4.4 3 .3 4.9-2.4l-.5-2.5-2.7 1.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M306.6 202s-1 2.4-.5 2.6 2-.1 3.2-2.2c1.2-2.2-.6-1.1-.6-1.1zm-3.3-3.5s-2.2 2.7-1.7 3.1c.4.4 3 .3 4.9-2.4l-.5-2.5-2.7 1.7"/>
<path fill="#452c25" d="M301.2 197.1s-2.2 2.6-2 3c.2.5 3.2.3 5.6-2.2s.5-3.5.5-3.5l-4 2.6"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M301.2 197.1s-2.2 2.6-2 3c.2.5 3.2.3 5.6-2.2s.5-3.5.5-3.5l-4 2.6"/>
<path fill="#452c25" d="m297.4 197.3-1.4 1.9s.3 1.8 5.1-1.5l4.5-3-2.5-.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m297.3 197.2-1.3 2s.3 1.8 5.1-1.5l4.5-3-2.6-.5z"/>
<path fill="#452c25" d="m282.2 194.5-3 1.3s-.7.6 1 .7c1.8 0 5.5-.5 11.9-4 2.8-1.7 4.7-3.3 4.7-3.3l-2.4-.8-12.2 6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m282.2 194.5-3 1.3s-.7.6 1 .7c1.8 0 5.5-.5 11.9-4 2.8-1.7 4.7-3.3 4.7-3.3l-2.4-.8-12.2 6z"/>
<path fill="#452c25" d="M277 196.4s4.4-.5 6-1.6c0 0-.3.5 2-.4 0 0-1.2 2 5.3-2 6.5-3.8 0 0 0 0l7.2-4.1-.4-.8-14.7 6.2c-1 .3-5.4 2.7-5.4 2.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m290.3 192.4 7.2-4.1-.4-.8-14.7 6.2c-1 .3-5.4 2.7-5.4 2.7s4.4-.5 6-1.6c0 0-.3.5 2-.4 0 0-1.1 2 5.3-2z"/>
<path fill="#452c25" d="M308.5 202s-.4 3.4.1 3.5 2-1 2.6-3c.6-2.2-2.4-2-2.4-2l-.4 1.3"/>
<path fill="none" stroke="#000" stroke-width=".2" d="M308.5 202s-.4 3.4.1 3.5 2-1 2.6-3c.6-2.2-2.4-2-2.4-2l-.4 1.3"/>
<path fill="#452c25" d="M310.8 203.5s-.3 2.4 0 2.6c.4.3 1.3.4 2.3-1.6s.5-1.3.5-1.3l-2.3-1.2-.5 1.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M310.8 203.4s-.3 2.5 0 2.7c.4.3 1.3.4 2.3-1.6s.5-1.3.5-1.3l-2.3-1.2z"/>
<path fill="#452c25" d="M311.4 199s-1.9 4-.8 4 2.5-3 2.7-3.7-1.9-.3-1.9-.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M311.4 199s-1.9 4-.8 4 2.5-3 2.7-3.7-1.9-.3-1.9-.3z"/>
<path fill="#452c25" d="M311.3 199s-.8 4.5.2 4c1-.3 1.6-3.7 1.7-4.4s-2 .4-2 .4"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M311.3 199s-.8 4.5.2 4c1-.3 1.6-3.7 1.7-4.4s-2 .4-2 .4z"/>
<path fill="#452c25" d="M312.8 199.4s-1.1 3.5 0 4.2c1 .7 1.8-3.4 1.9-4.3 0-1-2 .1-2 .1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M312.8 199.4s-1.1 3.5 0 4.2c1 .7 1.8-3.4 1.9-4.3 0-1-2 .1-2 .1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M308.4 198.3s-1 3.2-.4 3.5c1.2.6 2.3-2.2 2.4-3.3.1-1.2-2-.2-2-.2zm-7.9-6.6s-2.8 2.4-2.5 2.7 3.6-.2 5.1-1.3l2.1-1.5-2.5-1.6z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M303 189.3s-1.8 1.5-1.5 1.9 3.6-1 4.2-1.7.6-1.3.6-1.3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M304.9 189s-2.5 2.1-1.9 2.9 4-2.6 4.5-3-2.9 0-2.9 0"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="m303.8 188.2-5 2.3s-4.2 2.7-3.8 3 3.7-.6 6-1.7a38 38 0 0 0 5-3.1m-.9 2.1s-5.3 4.7-4.5 5.1c.8.5 4.4-1.4 6.8-3.7"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M305.8 192.4s-3 5-2.7 5.6c.4.5 2.6-1.2 3.7-2.5s2-3.2 2-3.2"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M307.6 192.8s-3.3 6.1-3 6.6c.4.5 2.4.1 3.5-2.3s1-4 1-4z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M309.5 193.1s-3.7 7.6-3 8.3 4.8-5.7 5-6.6c.3-1.6-2-1.8-2-1.8m-7.7-4.9s-3.3 1.6-2.7 2c.7.2 3.8-1.2 4.2-1.3s-1.5-.7-1.5-.7z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M302.3 188.6s-2 1.6-1.6 2c.4.5 3.5-1.2 4-1.7.7-.5-2.4-.3-2.4-.3zm4.3.2s-2.8 3.7-2 3.8c.9.2 4.1-2.4 4.2-2.8 0-.5-2.2-1-2.2-1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M307.8 189.6s-3 3.7-2.1 4 1-.4 1-.4 2.3-2 2.4-2.5-1.2-1.2-1.2-1.2"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M308.7 190.5s-2.1 3.7-1.6 4 1.5-.8 2.4-1.9-.8-2.1-.8-2.1z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M309.3 192.2s-1.3 2.3-1 3 1.6-.5 2.2-1.3-1.2-1.7-1.2-1.7zm.5 6.5s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3z"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M315.7 194.4s-.9-.3-1.5-.3c0 0-1.9-1.4-3-1.6-1-.1 0-.2 0-.2s-.2-2.4-.5-2.6c0 0-.1-2.5-1.7-2.6s-5.1.1-5.7-.1-2.6-1-6.3 0c-3.8 1-11.2 4.3-11.6 4.4-.4 0 8.5-2 11-3l3.3-.5s-2.8 1.4-.2.8 2 0 2 0-.2.6 1.3.3c1.4-.4 1.4 0 1.4 0s1.7.6 3-.2c0 0 .7 2.3 1.6 2.6 0 0 1 2.2 3.1 2.6l1.2.9 1.2.4 1.3-1"/>
<path fill="#452c25" stroke="#000" stroke-width=".1" d="M298.3 188s-8.6 3-8.3 3.9c.4.8 9-2.4 10.3-3.2 1.4-1-2-.7-2-.7"/>
<path d="m321.8 194.6.5.2-.3-.3-.7-.3.1.2zM315 201l.3.8v-.2q0-.4-.3-.7zm1.2-6.5.9-.2v-.1l-.9.1zm1.7-.2.8-.1v-.1zm-3 1.5v.2zm-.1 4.6v.7-.1z"/>
<path fill="#bd8759" d="M316.6 213.9s-1 .7-1 1l-.2.8s.8-.1.7.3c0 0 .3.2.8-.8q.6-1.5 1.1-1.5.6.2 1 .6.2.4.8.3s-.4-.6-.2-.7l.6-.1s-.3-.7-.9-.8q-1-.2-1-.6c.2-.2 1-2.4 1-2.4l-1-1.5-.5 1.3.2 1-1 2.1c0 .1-2.4 1-2.7 1l-.8.9v.5s.3-.4.4-.2q0-.2.6-.2l.1.2.5-.4.1-.1.6-.1"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M316.6 213.9s-1 .7-1 1l-.2.8s.8-.1.7.3c0 0 .3.2.8-.8q.6-1.5 1.1-1.5.6.2 1 .6.2.4.8.3s-.4-.6-.2-.7l.6-.1s-.3-.7-.9-.8q-1-.2-1-.6c.2-.2 1-2.4 1-2.4l-1-1.5-.5 1.3.2 1-1 2.1c0 .1-2.4 1-2.7 1l-.8.9v.5s.3-.4.4-.2q0-.2.6-.2l.1.2.5-.4.1-.1.6-.1"/>
<path fill="#bd8759" d="M323.1 209.2v2.1q0 .6-.2 1.1t-.7.5c-.3 0-1 0-1.2.3l-.3.4s.5-.3.6 0l-.2.6.9-.2.8-.3.4.2v1c0 .4 0 1.2.3 1.2l.4-.5.5.5-.1-1.2-.3-1 1.5.6q.2.4.5.5c.1 0 0-.5.2-.5h.4s-.4-.8-1-1l-1.2-.6-.3-.9v-2.8l-1-.2"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M323.1 209v2.3q0 .6-.2 1.1t-.7.5c-.3 0-1 0-1.2.3l-.3.4s.5-.3.6 0l-.2.6.9-.2.8-.3.4.2v1c0 .4 0 1.2.3 1.2l.4-.5.5.5-.1-1.2-.3-1s1.4.5 1.5.7l.5.4c.1 0 0-.5.2-.5h.4s-.4-.8-1-1l-1.2-.6-.3-.9v-2.8z"/>
<path fill="#dcddde" d="M315 197.3s0-1.3.3-1.4c0 0 .1-1.2 1.7-1 0 0 .5-.9 1.4-.4 0 0 .8-.4 1.3-.2l1 .7s.7-.1 1 .1.2 1.1.2 1.1.8.6.8 1.1v.9s.3.3.2.7q-.2.8-.4 1c-.1 0 0 1-.3 1.3l-.8.5c-.2 0-.6.6-1 .6-.3 0-.8-.5-.8-.7s-.6-.4-.6-.4-1 1.2-1.8 1-1.1-.8-1.2-1l-.3-1s-.8-.4-.7-.9c0-.4.4-1 .4-1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m317.8 212-.2-.1m.6-.9-.3-.1m0 .6h.2m5.5.5.5.2m-.2-.6h-.3m.4-.5h-.5m0 1.8.4.1m-.4.5h.2m-.1 1.6h.3m-5.1-2-.3.1m1-.1q-.2.1-.3.4m-4.5.5.4.3m10-1-.3.3m.7-.1v.2"/>
<path fill="#d9c0b9" d="M313.4 215h.6s-.3.7-.2.8-.5-.3-.3-.7"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M313.4 215h.6s-.3.7-.2.8-.5-.3-.3-.7z"/>
<path fill="#d9c0b9" d="M315.6 215.5s-.7 1 .1 1.5c0 0 0-1 .6-1.1z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M315.6 215.5s-.7 1 .1 1.5c0 0 0-1 .6-1.1z"/>
<path fill="#d9c0b9" d="m319.6 214.5-.2-.5.2-.3h.6s.4.9 0 1.3c0 0 0-.5-.2-.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m319.6 214.5-.2-.5.2-.3h.6s.4.9 0 1.3c0 0 0-.5-.2-.5z"/>
<path fill="#d9c0b9" d="M321 213.4h.3l.1.3v.3l-.3.2s-.5-.2-.4.5c0 0-.3-1.2.2-1.3"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M321 213.4h.3l.1.3v.3l-.3.2s-.5-.2-.4.5c0 0-.3-1.2.2-1.3z"/>
<path fill="#d9c0b9" d="m323.5 215.9.4-.4.4.2-.3 1.2-.2-.3z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m323.5 215.9.4-.4.4.2-.3 1.2-.2-.3z"/>
<path fill="#d9c0b9" d="m326 214.8.5 1s.6-.6-.2-1.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m326 214.8.5 1s.6-.6-.2-1.5z"/>
<path d="m323.3 195.9.2.2v-.1zm.1 2.2.4.7v-.2l-.4-.7zm-.4-1.6.5.6v-.2zm.5 3.5q0 .5-.2.8v.2q.3-.5.2-1.1zm.5 1v.6zm1.8 3.9.1 1.3-.1-1.5zm-.3.8-.4 1 .4-.8zm-10.3-2.9.7 1.2v-.1zm1.8 0-.5-.4v.2c.2 0 .3.4.5.4zm-1 1.8.5 1v-.2l-.5-1zm1.2.4.5.8v-.1q-.1-.5-.5-.8m0 1.3.2.7v-.1zm1.1.3.1.7v-.9.2m-.5 1q0 .5.3 1v-.2zm.2-4.4.8.3v-.1zm.2 1.2 1 .4-1-.6zm.3 1.2.6.6v-.1zm.4 1.6.2.7-.2-.8zm1-4v.5zm2.3-.9-.2.5v.1l.2-.4zm1 0v.9zm.2 1.6v.7-.8m.7 1.5q0 .5-.5.8v.1q.5-.2.5-.8m-2.4-1.5-.2.4v.1zm.3 1.8-.4.4v.1q.3 0 .4-.3zm-.9 1q-.4-.6-.3-1.3v-.1q-.2.8.3 1.5v-.2m-1-1-.1.5v-.6m2.6 1.3q0 .4-.3.7v.1l.3-.6zm1.7.7-.5.7v.2zm.8.8-.2 1.3v.1zm1-1.6v.5zM315 202l.1 1.3v-.2l-.1-1z"/>
<path fill="#fff" d="M318.8 196.3c.7-.6 1.7-1.3 2.7-1v-.2c-1-.2-2 .5-2.7 1.1zm3.5.8c-.8-.5-2-.6-2.7 0 .7-.5 2-.3 2.7.2zm-2.8 1.1q.6 1.5.5 3 .1-1.5-.5-3m-1.1.6v3zm1.5-.7q1.6.4 2.4 1.7v-.1a4 4 0 0 0-2.4-1.7zm-.8 1.3-.2 1.8q.3-.8.2-1.8m1.4-.1a3 3 0 0 1 1.2 2v-.1a3 3 0 0 0-1.2-2m-4.3 1.7q.3-.5.8-.7v-.1q-.6.1-.8.7zm1.4-5q-.2-.9-1-1.2v.1q.8.4 1 1.2zm-.8 0-1.5-.2v.1q.7 0 1.5.3zm1.5 0q.1-.9-.4-1.3.5.4.4 1.2m1.8.7q.8-.3 1.5-.2v-.2l-1.5.2zm.9 1.2a3 3 0 0 1 1.7 1v-.3a3 3 0 0 0-1.7-1zm-3.1 2c-.2.6 0 1.5-.9 1.8v.2c.8-.3.7-1.1.9-1.8z"/>
<path fill="#fff" d="M319.5 199q.6 1 .5 2.2v.3q.2-1.4-.5-2.7zm1-.1q1.1.2 1.4 1.4v-.2a2 2 0 0 0-1.4-1.5zm0 1q.3.9.1 1.8v.2c.3-.7 0-1.5 0-2.2v.2m-.4-2.6q1.1-.3 2.2.3v-.3q-1.1-.6-2.2-.2zm-1.4-1.5q.2-.9 1.2-1.3v-.2q-1 .3-1.3 1.3zm-.6.4q-.1-1-.7-1.9v.2q.5.8.6 1.8zm-.6.4a2 2 0 0 0-1-1.4v.3q.8.4 1 1.3zm-1-.3-1.2-.5v.2q.7.1 1.2.5zm2.2 3q.2 1-.2 1.9v.2q.5-1.1.2-2.3z"/>
<path fill="#fff" d="M319.4 198.9q.4 1 .4 2a6 6 0 0 0-.4-2.3zm.5-1q1 .4 1.7 1v-.3a4 4 0 0 0-1.7-.9zm-1.7-1.4v-1.7zm-1.2-.4-1.2-.8v.2l1.2.9zm-.2 3.3q-.4.3-.6.8v.2l.6-.7zm.9.5q0 .8-.6 1.2v.2q.6-.6.6-1.3s0-.3 0 0m2.1-3.6c.4-.6 1.3-.7 1.9-.9v-.2c-.6.2-1.5.2-2 .8v.3m-4 0-.5-.3v.2l.4.2v-.2m.1 3-.4.3v.2l.4-.2zm.5.1-.6.6v.2l.6-.6zm1 .3c-.1.6-.8 1.2-.3 1.8v-.2c-.3-.5.2-1 .4-1.4zm.7 0q0 .9-.2 1.7v.2l.2-2m1.9-.6q.6.7 1 1.8v-.2a5 5 0 0 0-1-1.9zm.2-.5q1.1.7 2 1.8v-.2q-.9-1.1-2-1.8z"/>
<path fill="#fff" d="M320.5 197.8h.8l.6.5.6.4.3.9v-.2l-.2-.7q-.1-.3-.5-.5l-.7-.4-.9-.2z"/>
<path fill="#fff" d="m322.3 199.3.2.6v-.1l-.2-.7zm-2-3.6 1.5-.4v-.3l-1.5.4zm-2 .2q0-.3.3-.7l.4-.8v-.3l-.4.7-.4.9zm-1.7 4.6.1 1.3v-1.2s0-.1 0 0m1 .7q-.3.4-.1 1v-.2zm.8-.5-.2.7v.2zs0-.2 0 0m0-1.5v.4zm-.3.2v.3-.7zm-.5-.2-.1.5v.2l.1-.4zm-.4 0-.8.6v.3l.8-.7zm-.6 0-.5.3v.3q.3 0 .5-.3v-.2m-1-.3-.4.2v.2q.3 0 .4-.2zm2.9 0v.4-.6zm.4-.2.1.6v-.7.1m.3 0v.3h.1l-.1-.6zm.4-.2.4.2v-.2l-.4-.2zm.2-.3.6.3v-.3l-.6-.3zm.5-1h.4v-.2l-.4-.1zm-.3-.6.4-.3v-.3l-.4.4zm-.4-.5.2-.5v-.2zm-.3-.2.4-.8v-.2l-.4.7zm-.9-.8v.9zm-1.3.2.2.3v.6l.1-.5-.3-.6zm-.2.5-.6-.4v.2l.6.5zm.8.2q0-1-.2-1.7v.3q.3.5.2 1.2zm1.2-.7v-.2z"/>
<path fill="#fff" d="m317.7 196.3.2-1v-.2l-.2 1zm3.5 2q.5 0 .7.6v-.4q-.2-.5-.7-.6zm-1 2v.7h.1v-1 .3m-.8-.5v1.2s0 .2 0 0v-1.4zm-.4.4-.3 1.2v.3s0 .1 0 0l.3-1.2zm.5.2v1.4-1.6zm-2.6.2v.5q.2-.4 0-.8zm1.2-.8v.4-.8zm.3 0h.1v.2-.2l-.1-.5v.2zm.4-.3.1.3v-.3l-.1-.4v.3m.8-.2.5.6v-.4l-.5-.6zm.5-.8.3.6v-.4l-.3-.5zm-4.3-2-.4-.2v.4l.4.3zm1.3-.5v.2zv-.4.2zm1-1v.8q-.2 0 0 .2v.1l.1-1.2v-.1.2m.2 1.5.5-.7v-.3l-.5.6zm.7 0 .2-.3v-.4l-.2.2v.4m1 .2h-.8v.4h.8zm-.3.9 1 .6v-.4l-1-.6z"/>
<path fill="#fff" d="m320 198 .8.5v-.4l-.8-.5v.2zm-2-1.4.1-.5v-.2.6m-2.3-1q.3.5.9.8l.6.7s.1-.4 0-.4l-.6-.6-1-.9v.4m.6 1-.4-.4v.3l.4.5zm-.3 2.5-.3.6v.4l.3-.6zm.3.4-.1.6v.3zv-.2zm1 1.8q.3-1 .2-2v.2q0 .8-.2 1.4zm.6-1.5v.9-1.3.2zm.6-.2q.3.3.2 1v.1q.2-.7-.2-1.5z"/>
<path fill="#fff" d="m318.6 199.3.3 1.7v-.3l-.2-1.7v.3m.5-.1.6 1v-.3l-.6-1zm1.1-1q-.1-.2-.5-.1v.3q.3 0 .5.2v-.3"/>
<path fill="#fff" d="M319.7 198.1h1.1v-.4h-1c-.1 0 0 .4 0 .4m.6-3q-.4.7-.5 1.3v.3s0 .1 0 0q0-.6.5-1.1zm-1.5.4.2 1v-.4l-.2-1zm-.3.5-.3-.5v.4l.2.5v-.3m-.5.2-1.2-.6v.4l1.2.6s.1-.4 0-.4"/>
<path fill="#dba05f" d="m318.5 196.2-2.2.4-1.8.2-1.3-.4c-.3 0-1.6-.2-2 .3l-.9.8c-.1.1-.7.6-.7.9q0 .4.4.5c.3 0 .9.6.9.7 0 .3.8.5 1.5.5 1.3 0 2-.7 4-.5 1 .2 3-.7 3.4-1.2q.7-.7.2-1.7c-.3-.6-1.4-.5-1.5-.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="m318.5 196.2-2.2.4-1.8.2-1.3-.4c-.3 0-1.6-.2-2 .3l-.9.8c-.1.1-.7.6-.7.9q0 .4.4.5c.3 0 .9.6.9.7 0 .3.8.5 1.5.5 1.3 0 2-.7 4-.5 1 .2 3-.7 3.4-1.2q.7-.7.2-1.7c-.3-.6-1.4-.5-1.5-.5z"/>
<path d="m311.4 198.1.1-.1.1-.2.4-.3h.5-.2.2-.2l-.3.1z"/>
<path fill="none" d="m311.3 198 .4-.4.6-.3h.3"/>
<path fill="none" d="m312 197.4-.4.3q-.1.3-.3.3m.7-.5h.5m-.6 0h.5"/>
<path d="m312.4 197.9-.2.1-.1.1-.3.2-.3.1.4-.2-.4.2.4-.1-.3.1h.1s.3 0 .7-.4"/>
<path fill="none" d="m312.3 197.8-.3.2-.3.2-.2.1m.4-.1.2-.2.2-.2m-.4.4-.3.1m.4-.1-.3.1"/>
<path fill="#c6262c" d="M312.9 196.5s0-.6-.6-.8l-1.3-.2-.5.2-.6.2-.1.2q-.3.3-.3.6c.2.3 0 .3.2.3s-1 .3-.8.8c.3.6.5.4.6.3l.5-.2.7-.7 1-.4h.5z"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M312.9 196.5s0-.6-.6-.8l-1.3-.2-.5.2-.6.2-.1.2q-.3.3-.3.6c.2.3 0 .3.2.3s-1 .3-.8.8c.3.6.5.4.6.3l.5-.2.7-.7 1-.4h.5z"/>
<path d="M312.2 197.8q0 .2-.3.3h-.3s.1-.4.3-.4z"/>
<path fill="#d9c0b9" d="M308.6 200.2s-.7-1.2 1.2-1.8c0 0 .6.3.8.6 0 0-.4.5-1.5.7 0 0-.5.1-.5.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M308.6 200.2s-.7-1.2 1.2-1.8c0 0 .6.3.8.6 0 0-.4.5-1.5.7 0 0-.5.1-.5.5z"/>
<path fill="#d9c0b9" d="M308.8 200s.8.2 1.3-.2q.7-.4.7-.1l-.2-.7-1 .5q-.6.1-.8.5"/>
<path fill="none" stroke="#000" stroke-width=".1" d="M308.8 200s.8.2 1.3-.2q.7-.4.7-.1l-.2-.7-1 .5q-.6.1-.8.5z"/>
<path fill="#7a2e26" d="M311 199.6h.5v-.1zm-.3-2-.1.2v.1zm.5.2.3-.2v-.1q-.3 0-.3.2zm.5.8.2-.2h-.2zm.4-.2.4-.3v-.1zm-.7-.7q0 .2-.3.4v.1q.2-.1.3-.4m.3 2q.6 0 1-.2h-1zm1.6 0q.6-.5 1-1.3a2 2 0 0 1-1 1v.2m.3-.8q.4-.2.6-.8v-.1l-.6.8zm-.2-2 .7.4v-.1l-.7-.4zm6.3 1q.2-.8-.2-1.4.4.6.2 1.2zm-4.8-.7c.3.2 1 .7.8 1.2.3-.5-.4-1-.8-1.3zm2.1 2 .1-.3v.3"/>
<path fill="#5e3f17" d="m317.9 199.2.5-.2m-8.5-.3q-.6.1-1 .7.4-.6 1-.6"/>
<path fill="#842116" d="M309.7 197.3q.2 0 .3.2v.1-.3l-.3-.1m.7.4-.1-.6v.5m.6-.5q0-.5-.3-.6v.1q.3.2.3.6zm.5-.1q0-.5-.2-.6v.1l.2.3zm-.8-.7c.4-.2 1.4-.3 1.8.2v-.2c-.4-.4-1.4-.3-1.8 0"/>
<path fill="#7a2e26" d="M309.5 198.1v-.5s-.1 0 0 .1zm4.7 1.4.3-.5-.3.3zm.7 0 .1-.3v-.1.3m4.3-2.4v.8zm-.5.5v.7q.2-.4 0-.9zm-.4.3"/>
<path fill="#452c25" d="M324.3 210.5v.2l.1.1-.1-.4z"/>
<path fill="#dcddde" d="M314.4 195c-1.7 0-3.3-1-3.3-1a3 3 0 0 1-2.3-2.4c-.8-.4-1.6-2.5-1.6-2.5-1.3.7-3 0-3 0s0-.4-1.4 0c-1.5.3-1.3-.3-1.3-.3s.6-.6-2 0 .2-.8.2-.8c-.8.2-3.3.4-3.3.4q-1.3.2-2.8.8l-2.3.6-6.8 3-5.5 2.1c.2 0 3.4-2.1 7.5-4a88 88 0 0 1 10.3-3.9 10 10 0 0 1 6.5 0c.6.2 4.2 0 5.7 0 1.6.3 1.8 2.9 1.8 2.9.3.1.4 2.6.4 2.6s-1 0 .1.1c1 .2 2.9 1.7 2.9 1.7h.7s.4-.5.9-.7l1.5-.5h2l2 .3 1.2.3h.5c1-.5 3-1.2 3.4-1.1 0 0 .7-.2 1.1-.5l1.3-1s-.6-4.5 3.9-4l11.5 1.2a44 44 0 0 1 6.5 1.8l5.2 2.4 4 1.7c2.3 1 4 2.4 4 2.4l-3.7-1.8-2.6-.9-3.6-1.7c-3.5-1.6-3.5-1.7-4.9-1.8-1 0 .7 1.2.7 1.2l-4.1-1.7a6 6 0 0 0-2.9-.5 6 6 0 0 1-2.2-.3c-.6-.2-3.8-.3-4.4-.4l-1-.2.2.4-1.5-.3-.5.7s-1.5.3-1.6-.2-1 2.2-1.3 3-2.2.6-2.7 1l-1.6 1h-1.3c-.6 0-.1 0-1 .3 0 0-.9 0-1.2-.2l-1.4-.4-3.5-.2a5 5 0 0 0-2.7 1.1"/>
<path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M314.4 195c-1.7 0-3.3-1-3.3-1a3 3 0 0 1-2.3-2.4c-.8-.4-1.6-2.5-1.6-2.5-1.3.7-3 0-3 0s0-.4-1.4 0c-1.5.3-1.3-.3-1.3-.3s.6-.6-2 0 .2-.8.2-.8c-.8.2-3.3.4-3.3.4q-1.3.2-2.8.8l-2.3.6-6.8 3-5.5 2.1c.2 0 3.4-2.1 7.5-4a88 88 0 0 1 10.3-3.9 10 10 0 0 1 6.5 0c.6.2 4.2 0 5.7 0 1.6.3 1.8 2.9 1.8 2.9.3.1.4 2.6.4 2.6s-1 0 .1.1c1 .2 2.9 1.7 2.9 1.7h.7s.4-.5.9-.7l1.5-.5h2l2 .3 1.2.3h.5c1-.5 3-1.2 3.4-1.1 0 0 .7-.2 1.1-.5l1.3-1s-.6-4.5 3.9-4l11.5 1.2a44 44 0 0 1 6.5 1.8l5.2 2.4 4 1.7c2.3 1 4 2.4 4 2.4l-3.7-1.8-2.6-.9-3.6-1.7c-3.5-1.6-3.5-1.7-4.9-1.8-1 0 .7 1.2.7 1.2l-4.1-1.7a6 6 0 0 0-2.9-.5 6 6 0 0 1-2.2-.3c-.6-.2-3.8-.3-4.4-.4l-1-.2.2.4-1.5-.3-.5.7s-1.5.3-1.6-.2-1 2.2-1.3 3-2.2.6-2.7 1l-1.6 1h-1.3c-.6 0-.1 0-1 .3 0 0-.9 0-1.2-.2l-1.4-.4c-.5-.2-3.1-.2-3.5-.2a5 5 0 0 0-2.7 1.1"/>
<path fill="#452c25" d="M314.6 194.4s-.2.2-.2.5v.2"/>
<path fill="#574f4c" d="m323.3 194 .7.5-.1-.1-.7-.6v.1"/>
</svg>

After

Width:  |  Height:  |  Size: 100 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bq" viewBox="0 0 640 480">
<path fill="#21468b" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M0 0h640v320H0z"/>
<path fill="#ae1c28" d="M0 0h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 221 B

+45
View File
@@ -0,0 +1,45 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-br" viewBox="0 0 640 480">
<g stroke-width="1pt">
<path fill="#229e45" fill-rule="evenodd" d="M0 0h640v480H0z"/>
<path fill="#f8e509" fill-rule="evenodd" d="m321.4 436 301.5-195.7L319.6 44 17.1 240.7z"/>
<path fill="#2b49a3" fill-rule="evenodd" d="M452.8 240c0 70.3-57.1 127.3-127.6 127.3A127.4 127.4 0 1 1 452.8 240"/>
<path fill="#ffffef" fill-rule="evenodd" d="m283.3 316.3-4-2.3-4 2 .9-4.5-3.2-3.4 4.5-.5 2.2-4 1.9 4.2 4.4.8-3.3 3m86 26.3-3.9-2.3-4 2 .8-4.5-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.1m-36.2-30-3.4-2-3.5 1.8.8-3.9-2.8-2.9 4-.4 1.8-3.6 1.6 3.7 3.9.7-3 2.7m87-8.5-3.4-2-3.5 1.8.8-3.9-2.7-2.8 3.9-.4 1.8-3.5 1.6 3.6 3.8.7-2.9 2.6m-87.3-22-4-2.2-4 2 .8-4.6-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.2m-104.6-35-4-2.2-4 2 1-4.6-3.3-3.3 4.6-.5 2-4.1 2 4.2 4.4.8-3.3 3.1m13.3 57.2-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.1-4 2 4.2 4.4.8-3.3 3.1m132-67.3-3.6-2-3.6 1.8.8-4-2.8-3 4-.5 1.9-3.6 1.7 3.8 4 .7-3 2.7m-6.7 38.3-2.7-1.6-2.9 1.4.6-3.2-2.2-2.3 3.2-.4 1.5-2.8 1.3 3 3 .5-2.2 2.2m-142.2 50.4-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2M419 299.8l-2.2-1.1-2.2 1 .5-2.3-1.7-1.6 2.4-.3 1.2-2 1 2 2.5.5-1.9 1.5"/>
<path fill="#ffffef" fill-rule="evenodd" d="m219.3 287.6-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2"/>
<path fill="#ffffef" fill-rule="evenodd" d="m219.3 287.6-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m42.3 3-2.6-1.4-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .5-2.3 2.1m-4.8 17-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m87.4-22.2-2.6-1.6-2.8 1.4.6-3-2-2.3 3-.3 1.4-2.7 1.2 2.8 3 .5-2.2 2.1m-25.1 3-2.7-1.5-2.7 1.4.6-3-2-2.3 3-.3 1.4-2.8 1.2 2.9 3 .5-2.2 2.1m-68.8-5.8-1.7-1-1.7.8.4-1.9-1.3-1.4 1.9-.2.8-1.7.8 1.8 1.9.3-1.4 1.3m167.8 45.4-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m-20.8 6-2.2-1.4-2.3 1.2.5-2.6-1.7-1.8 2.5-.3 1.2-2.3 1 2.4 2.5.4-1.9 1.8m10.4 2.3-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.3-.3 1.1-2 1 2 2.3.5-1.7 1.6m29.1-22.8-2-1-2 1 .5-2.3-1.6-1.7 2.3-.3 1-2 1 2.1 2.1.4-1.6 1.6m-38.8 41.8-2.5-1.4-2.7 1.2.6-2.8-2-2 3-.3 1.3-2.5 1.2 2.6 3 .5-2.3 1.9m.6 14.2-2.4-1.4-2.4 1.3.6-2.8-1.9-2 2.7-.4 1.2-2.5 1.1 2.6 2.7.5-2 2m-19-23.1-1.9-1.2-2 1 .4-2.2-1.5-1.7 2.2-.2 1-2 1 2 2.2.4-1.6 1.6m-17.8 2.3-2-1.2-2 1 .5-2.2-1.6-1.7 2.3-.2 1-2 1 2 2.1.4-1.6 1.6m-30.4-24.6-2-1.1-2 1 .5-2.3-1.6-1.6 2.2-.3 1-2 1 2 2.2.5-1.6 1.5m3.7 57-1.6-.9-1.8.9.4-2-1.3-1.4 1.9-.2.9-1.7.8 1.8 1.9.3-1.4 1.3m-46.2-86.6-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.2-4 1.9 4.2 4.4.8-3.3 3.1"/>
<path fill="#fff" fill-rule="evenodd" d="M444.4 285.8a125 125 0 0 0 5.8-19.8c-67.8-59.5-143.3-90-238.7-83.7a125 125 0 0 0-8.5 20.9c113-10.8 196 39.2 241.4 82.6"/>
<path fill="#309e3a" d="m414 252.4 2.3 1.3a3 3 0 0 0-.3 2.2 3 3 0 0 0 1.4 1.7q1 .8 2 .7.9 0 1.3-.7l.2-.9-.5-1-1.5-1.8a8 8 0 0 1-1.8-3 4 4 0 0 1 2-4.4 4 4 0 0 1 2.3-.2 7 7 0 0 1 2.6 1.2q2.1 1.5 2.6 3.2a4 4 0 0 1-.6 3.3l-2.4-1.5q.5-1 .2-1.7-.2-.8-1.2-1.4a3 3 0 0 0-1.8-.7 1 1 0 0 0-.9.5q-.3.4-.1 1 .2.8 1.6 2.2t2 2.5a4 4 0 0 1-.3 4.2 4 4 0 0 1-1.9 1.5 4 4 0 0 1-2.4.3q-1.3-.3-2.8-1.3-2.2-1.5-2.7-3.3a5 5 0 0 1 .6-4zm-11.6-7.6 2.5 1.3a3 3 0 0 0-.2 2.2 3 3 0 0 0 1.4 1.6q1.1.8 2 .6.9 0 1.3-.8l.2-.8q0-.5-.5-1l-1.6-1.8q-1.7-1.6-2-2.8a4 4 0 0 1 .4-3.1 4 4 0 0 1 1.6-1.4 4 4 0 0 1 2.2-.3 7 7 0 0 1 2.6 1q2.3 1.5 2.7 3.1a4 4 0 0 1-.4 3.4l-2.5-1.4q.5-1 .2-1.7-.4-1-1.3-1.4a3 3 0 0 0-1.9-.6 1 1 0 0 0-.8.5q-.3.4-.1 1 .3.8 1.7 2.2 1.5 1.5 2 2.4a4 4 0 0 1 0 4.2 4 4 0 0 1-1.8 1.6 4 4 0 0 1-2.4.3 8 8 0 0 1-2.9-1.1 6 6 0 0 1-2.8-3.2 5 5 0 0 1 .4-4m-14.2-3.8 7.3-12 8.8 5.5-1.2 2-6.4-4-1.6 2.7 6 3.7-1.3 2-6-3.7-2 3.3 6.7 4-1.2 2zm-20.7-17 1.1-2 5.4 2.7-2.5 5q-1.2.3-3 .2a9 9 0 0 1-3.3-1 8 8 0 0 1-3-2.6 6 6 0 0 1-1-3.5 9 9 0 0 1 1-3.7 8 8 0 0 1 2.6-3 6 6 0 0 1 3.6-1.1q1.4 0 3.2 1 2.4 1.1 3.1 2.8a5 5 0 0 1 .3 3.5l-2.7-.8a3 3 0 0 0-.2-2q-.4-.9-1.6-1.4a4 4 0 0 0-3.1-.3q-1.5.5-2.6 2.6t-.7 3.8a4 4 0 0 0 2 2.4q.8.5 1.7.5h1.8l.8-1.6zm-90.2-22.3 2-14 4.2.7 1.1 9.8 3.9-9 4.2.6-2 13.8-2.7-.4 1.7-10.9-4.4 10.5-2.7-.4-1.1-11.3-1.6 11zm-14.1-1.7 1.3-14 10.3 1-.2 2.4-7.5-.7-.3 3 7 .7-.3 2.4-7-.7-.3 3.8 7.8.7-.2 2.4z"/>
<g stroke-opacity=".5">
<path fill="#309e3a" d="M216.5 191.3q0-2.2.7-3.6a7 7 0 0 1 1.4-1.9 5 5 0 0 1 1.8-1.2q1.5-.5 3-.5 3.1.1 5 2a7 7 0 0 1 1.6 5.5q0 3.3-2 5.3a7 7 0 0 1-5 1.7 7 7 0 0 1-4.8-2 7 7 0 0 1-1.7-5.3"/>
<path fill="#f7ffff" d="M219.4 191.3q0 2.3 1 3.6t2.8 1.3a4 4 0 0 0 2.8-1.1q1-1.2 1.1-3.7.1-2.4-1-3.6a4 4 0 0 0-2.7-1.3 4 4 0 0 0-2.8 1.2q-1.1 1.2-1.2 3.6"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m233 198.5.2-14h6q2.2 0 3.2.5 1 .3 1.6 1.3c.6 1 .6 1.4.6 2.3a4 4 0 0 1-1 2.6 5 5 0 0 1-2.7 1.2l1.5 1.2q.6.6 1.5 2.3l1.7 2.8h-3.4l-2-3.2-1.4-2-.9-.6-1.4-.2h-.6v5.8z"/>
<path fill="#fff" d="M236 190.5h2q2.1 0 2.6-.2.5-.1.8-.5.4-.6.3-1 0-.9-.4-1.2-.3-.4-1-.6h-2l-2.3-.1z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m249 185.2 5.2.3q1.7 0 2.6.3a5 5 0 0 1 2 1.4 6 6 0 0 1 1.2 2.4q.4 1.4.3 3.3a9 9 0 0 1-.5 3q-.6 1.5-1.7 2.4a5 5 0 0 1-2 1q-1 .3-2.5.2l-5.3-.3z"/>
<path fill="#fff" d="m251.7 187.7-.5 9.3h3.8q.8 0 1.2-.5.5-.4.8-1.3t.4-2.6l-.1-2.5a3 3 0 0 0-.8-1.4l-1.2-.7-2.3-.3z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m317.6 210.2 3.3-13.6 4.4 1 3.2 1q1.1.6 1.6 1.9t.2 2.8q-.3 1.2-1 2a4 4 0 0 1-3 1.4q-1 0-3-.5l-1.7-.5-1.2 5.2z"/>
<path fill="#fff" d="m323 199.6-.8 3.8 1.5.4q1.6.4 2.2.3a2 2 0 0 0 1.6-1.5q0-.7-.2-1.3a2 2 0 0 0-1-.9l-1.9-.5-1.3-.3z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m330.6 214.1 4.7-13.2 5.5 2q2.2.8 3 1.4.8.7 1 1.8c.2 1.1.2 1.5 0 2.3q-.6 1.5-1.8 2.2-1.2.6-3 .3.6.7 1 1.6l.8 2.7.6 3.1-3.1-1.1-1-3.6-.7-2.4-.6-.8q-.3-.4-1.3-.7l-.5-.2-2 5.6z"/>
<path fill="#fff" d="m336 207.4 1.9.7q2 .7 2.5.7t.9-.3q.5-.3.6-.9.3-.6 0-1.2l-.8-.9-2-.7-2-.7-1.2 3.3z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="M347 213.6a9 9 0 0 1 1.7-3.2l1.8-1.5 2-.7q1.5-.1 3.1.4a7 7 0 0 1 4.2 3.3q1.2 2.4.2 5.7a7 7 0 0 1-3.4 4.5q-2.3 1.3-5.2.4a7 7 0 0 1-4.2-3.3 7 7 0 0 1-.2-5.6"/>
<path fill="#fff" d="M349.8 214.4q-.7 2.3 0 3.8c.7 1.5 1.2 1.6 2.3 2q1.5.5 3-.4 1.4-.8 2.1-3.2.8-2.2 0-3.7a4 4 0 0 0-2.2-2 4 4 0 0 0-3 .3q-1.5.8-2.2 3.2"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="m374.3 233.1 6.4-12.4 5.3 2.7a10 10 0 0 1 2.7 1.9q.8.7.8 1.9c0 1.2 0 1.5-.4 2.2a4 4 0 0 1-2 2q-1.5.4-3.1-.2.6 1 .8 1.7.3.9.4 2.8l.2 3.2-3-1.5-.4-3.7-.3-2.5-.5-1-1.2-.7-.5-.3-2.7 5.2z"/>
<path fill="#fff" d="m380.5 227.2 1.9 1q1.8 1 2.3 1t1-.2q.4-.2.7-.8t.2-1.2l-.7-1-1.8-1-2-1z"/>
</g>
<g stroke-opacity=".5">
<path fill="#309e3a" d="M426.1 258.7a9 9 0 0 1 2.5-2.6 7 7 0 0 1 2.2-.9 6 6 0 0 1 2.2 0q1.5.3 2.8 1.2a7 7 0 0 1 3 4.4q.4 2.6-1.4 5.5a7 7 0 0 1-4.5 3.3 7 7 0 0 1-5.2-1.1 7 7 0 0 1-3-4.4q-.4-2.7 1.4-5.4"/>
<path fill="#fff" d="M428.6 260.3q-1.4 2-1.1 3.6a4 4 0 0 0 1.6 2.5q1.5 1 3 .6t2.9-2.4q1.4-2.1 1.1-3.6t-1.6-2.6c-1.4-1.1-2-.8-3-.5q-1.5.3-3 2.4z"/>
</g>
<path fill="#309e3a" d="m301.8 204.5 2.3-9.8 7.2 1.7-.3 1.6-5.3-1.2-.5 2.2 4.9 1.1-.4 1.7-4.9-1.2-.6 2.7 5.5 1.3-.4 1.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bs" viewBox="0 0 640 480">
<defs>
<clipPath id="bs-a">
<path fill-opacity=".7" d="M-12 0h640v480H-12z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#bs-a)" transform="translate(12)">
<path fill="#fff" d="M968.5 480h-979V1.8h979z"/>
<path fill="#ffe900" d="M968.5 344.5h-979V143.3h979z"/>
<path fill="#08ced6" d="M968.5 480h-979V320.6h979zm0-318.7h-979V2h979z"/>
<path fill="#000001" d="M-11 0c2.3 0 391.8 236.8 391.8 236.8L-12 479.2z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 557 B

+89
View File
@@ -0,0 +1,89 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bt" viewBox="0 0 640 480">
<path fill="#ffd520" d="M.1 0h640.1v480H.1z"/>
<path fill="#ff4e12" d="M.1 480h640.1V0z"/>
<g stroke="#000" stroke-width=".5">
<g fill="#fff" stroke-width=".4">
<path d="M345.4 150c-4-1.3-6.6.7-6.4 5.9 0 5.1 2.8 8 6.8 6.1z"/>
<path d="M348.9 140.4c-3.3-2.6-6.4-1.5-8 3.4s.1 8.6 4.5 8z"/>
<path d="M354.4 131c-2.8-3-6-2.4-8.4 2.2-2.3 4.6-1.3 8.5 3.2 8.7zm-3.6 45.5c-4.9 1.8-5.4 8.5-2.3 12.6 3 4.1 8.7 4.9 11.8 0z"/>
<path d="M345.1 162.3c-4.6-1.5-8.8 4.7-9.5 10.3-.9 7-11 9.4-5.4 20.1 1.2-6.8 5.7-10.6 9.3-10.8s9-1 11.3-5.4zm14.7 27.6c-5.4 1.3-6.2 8.5-2.3 13.6 3.3 4.4 13.7 3.4 13.4-1zm15.3 43.4c.3-4.7-7.2-6.5-10.8-5.6s-10.5-.1-12-4c-1.4 3.1.5 6.5 5.7 8.2 4 1.2 3.9 4 2.7 5.4 3 .5 11.7.5 14.4-4z"/>
<path d="M370.9 203.7c-5.3-2.4-8.4 1.2-10.4 4.6-3 5-12.1-1.4-15.2 5.3 4.2-1.8 8.4 2 10.4 3.3 5.7 3.7 16.6 2.6 18.2-6.2z"/>
<path d="M374 209.8c-5.3 4-7.4 8.8-7.2 12 .1 3.2 4.6 10.3 9.5 10.7 2.8-5.8 4.3-18-2.3-22.7zm-22 24.9c0-2 2.8-2.7 4.8-2 1.9.6 4.9 2.5 3.8 4.6zM323 224c-.5-2.3 3.2-6.3 8.2-4.1s5.7 6.4 3.6 8.1z"/>
<path d="M335.2 228.4c-.4-1.3 3.3-3.9 9.4-2.4 6.2 1.6 7.7 5.6 7.5 8.7zm-12.9-4.3c3.3-2.4 2-7-.9-8.5-5.2-2.6-3.3-9.2-6.7-10.5-3.3-1.3-6.5-3.6-6.7-6-1.6 3.3-.6 6.2 1.7 8.3 2.3 2-1.8 10.4 1.2 12.6zm-69-1.8c-2.7-4.2-9.1-3.5-11.8-.5s-2.3 7.3.2 9.3zm15.5-6.3c-1-5.7-7.9-6.3-11.6-4.9-3.8 1.4-6.3 7.1-3.9 11.2z"/>
<path d="M279 215.2c2.5-4.7-2.3-11.8-7.7-12.8-4.5-1-9.8-.9-11.6-5.3-1 3.8 1.8 6.3 5.2 8.5 3.3 2.2-.6 7.8 4.8 11z"/>
<path d="M278.6 215.4c-1.2-3.4 1.1-8 5.7-7.6 4.7.3 7.3 3.6 5.3 7.9z"/>
<path d="M288.9 215.7c-.7-3.6 2.2-7.8 6.8-6.8s6.6 4.7 4 8.5l-10.8-1.8z"/>
<path d="M299 217.3c-.4-3.6 2.7-7.6 7.2-6.4s6.4 5 3.6 8.7l-10.7-2.3zm-77.6 59c-8.7 0-10.8 2-12 11-1.6 11 13.5 12.3 12-11z"/>
<path d="M225.2 264.7c-13.2-5-20.4 16-33.6 12.2 4.7 7.5 16.1 0 20.4.8 7.2 1.3 22.8-1.4 13.2-13zm-8.6 28.7c-6.6-3-13.6 7-12.4 11.5 1.7 5.5 16.7 1 12.4-11.5zM186 336.7c3.6 1 8 3 7.2 10s-14 21.1-25.8 22c-11.8.7-16 15-26.3 11 9.6-1.8 9.6-12.6 17-16-5.4-2-8.2 10.3-15.2 10.3s-10.3 11.1-18.8 10.3-9.3 13.5-26.4 13.7c-13 .1-29 15.3-34.9 8.7 12.7-1.8 17.8-8.8 25.3-16.5 12-12.3 25.7-6.8 30.4-17.7a32 32 0 0 1-18.3 5.4c-8-.2-16.6 12.6-25.5 7 5.1-.7 8.5-2.9 13.9-8.6 5.5-5.8 13.7-2 20.1-8 10-9.2 18.7-1.5 28.3-13-2.7-1.4-8.5-.5-13.9 2.4-5.4 2.8-12.3-2-18.5 1.4.7-7.6 15.2-3.3 24.2-8.5 10.2-6 18.6-4.2 26.6-3.5-11.2 0-15.5-10.7-31-7.6-6.7 1.4-12.1-9.3-18.8-3.9.2-4 7.2-7.2 14.4-3.3s10.1-3.4 24.5 5.7c6 3.7 16.1-2.4 22.5 1.6-.8-2.4-4.5-4-8.8-3.6 2.7-5.6 20.2-4.9 27.8.7z"/>
<path d="M197.4 328.3c-5.6-4.4-13.5.9-19-1.2 0 3.6 1.9 9 7.8 11.1 1.8-1.3 10-8.4 11.2-9.9z"/>
<path d="M206.3 315.8c-8.9-4.5-10.4 6.7-17.4 4.4.3 3.2 2.9 7.2 8.5 8.1z"/>
<path d="M211.6 305.6c-13.1-5.1-14.8 7.5-22.5 5 1.8 4.4 12.8 6.8 18.5 5.2zm18-55.2c-3.5-5-10.8-1-12 4.9-1.1 5.8 1.7 13.9 6.6 12z"/>
<path d="M238.5 235c-6-1.5-13-.8-12.2 5-2.4 1.1-3 8.7 3.3 10.4z"/>
<path d="M242.5 231c-6-7-12.5-6.9-16.2-4-6.9 5.5-13.5 2.4-13.7 7.8 4.1-3.2 7.8.6 11-.5 3.4-1.2 5.9 5.3 15.2 2.6zm-14.3 103.9c.9 1.7 6.4 2.4 9.1-.4 3.6-3.8-.3-14.2-6-15-5.7-.7-6.2 11.8-3.1 15.4z"/>
<path d="M221.8 335.1c8 3 11.5-3.7 7.2-8a80 80 0 0 1-7.2 8z"/>
<path d="M191.4 346.2c-1.6 4.7-9.6 5.4-18.6 19.8s-17.6 8.4-19.8 18.3c10.8-8.7 19.3-3 25.8-11.6 9.7-13.1 17.8-11.2 21.6-20 5.4-12.7 29-12.4 30.4-32.3-8-1.5-33.3 19.9-39.4 25.8zm203.2-194.7c10.3 3.4 10.5 16.7 22.4 21.1s13 15 22.7 12.4c-9-2.5-8.4-12.9-17.8-15.5-11-3-15.2-19.8-24-22.4m44 74.3c1.8 4.2 1.5 11.5-5 13.4 3.5 2.2 8.7.2 11.5-4.6-4.2 9.4-1.4 17.9 5.3 19.6-3.2-6.6 4-9.7 1.7-14 4.2 1.9 8 7.7 7.8 11.3 5.6-6.2-4-14.5-2.3-20.3zM375 287.6c-6.3-5.5-9 1.5-12-1-3-2.2-6.8-2.5-8.3-.3 5.4.2 2.8 4.4 13.3 5.4-10.5.7-8.6 12.5-15.6 11.9 7.4 7 11.3-6.3 17.4-4.1-1.8.5 2.8 4.7-.4 10.4 5.2-.1 7.3-7.3 8-11zm-139 60.2c-2.2-2-9-2.9-11.5-1.3-2.6 1.5-1.7 2 1.4 2.2s7 5.2.4 5.5c-3.1.1-2 7.6-8.5 8.1 2.6 3.2 10.2 1.1 12.9-2.4-.5 2.9 3.3 5.5 1.8 9 4.7.5 2-9.7 9.5-9.2-3 .4-1.8 7.4 3.6 5.6-3.2 1.5-1.5 5.3 2 4.4-2.2.7-3 3.7.2 5.4 3.1-4.3-.4-19.5-11.7-27.3zm280.6-142.1a17.9 17.9 0 1 0 0-35.7 17.9 17.9 0 0 0 0 35.7z"/>
<path d="M423.4 227.2c5.5-5.1 13.7-7.7 19.4-3.8 5.6 3.8 24.4 8.4 33.7 2s13.7-9.8 17.8-9q4.5 6.8 11.4 7.2c1.4 1.6 6.5 2.8 9.3 2.5 4.1 1 9.1-.3 13.1-4.7 6.2 1 12-3.7 14.2-10.7 6.6-.7 7-8 2.8-13-3.8-.7-.9-13.8-14.9-11.2 6 3.6 1.4 10.8 6.3 14.2-3.3 0-7.7 1.4-8.7 6.4 1.3-3.4-.2-5.8-1-6.5 0-3-6.5-10.3-12.7-7.6 4.4 1 2 8 5.2 10.8a8 8 0 0 0-6.2 3.3c-1.7-3-7.6-6-11.2-6.3 0-1-.2-3-.7-4.1-1.6-3.1-3-6.8-2.3-11.5a48 48 0 0 0-7.2 11.4c-4.9-3.4-17 1.5-22.7 2.8s-24.7-1.8-29-6.4a49 49 0 0 0-21-9.8c-11-3.2-11-15.2-23.1-23.5-.3 15 22.4 62.4 27.5 67.5zM297.2 341.1a17.3 17.3 0 1 0 0-34.6 17.3 17.3 0 0 0 0 34.6z"/>
<path d="M256 327.8c3.5 4.5 9.4 4.2 11.9 3.9 2 5.4 8.6 5.2 11.4 8.2s12.5 2.7 15.3 1c-2.5-.2-5.9-1.8-9-4.5-4-3.2-2.2-9.8-5.2-12a11 11 0 0 0 2.2-8.6c2.4-1.4 4.2-3.7 4.4-4.9a15 15 0 0 0 9.6-4.1c2.2 2 7.7-.6 10.7 2.8.6-8.5-7.5-13-13-10.1-2.1-1.2-7.9-.4-9 1.1-1.7-.8-6.8 1.8-9 3.5 2.5-1.4 2.9-5.7 1.9-7.2 2.2-1 4.6-3.9 4.9-6 3 .5 7.7-1.6 9.7-1.1-3.3-4.4-8.8-6-14.5-5.5-5.9.3-8.4 4.4-9.2 8.8-3.4 2.1-4.6 9-3.3 11.5-2 0-3.9 1.9-4.6 3a27 27 0 0 0-9.4-2m1.3-7c-1.2-3.4.3-6.4 1.1-9 2-6.8.8-8.6-5.3-7.7a47 47 0 0 0 4.2 16.7z"/>
<path d="M248.6 282.3c1.6 1.6 7 2.3 7.6-2.6.7-5.6-1.6-7.8-6.5-5.6-.4 1.3-.8 6.5-1 8.2z"/>
<path d="M249.8 273.9c2 .8 6.5 2.5 9-2.3 2-4-.7-7-5-6.8-1 1.2-3 5.3-4 9.1z"/>
<path d="M253.6 264.4c.5 1.6 5.8 6.7 9.6 3 3.9-3.7 3.9-9.3-1.9-11.3-1.5.2-6.2 5.6-7.7 8.3z"/>
<path d="M261.3 256c1.1 3.3 4.8 8.8 11.5 6.3s3.8-11 .7-12.7a33 33 0 0 0-12.2 6.5z"/>
<path d="M273.5 249.6c-.5 2.9 0 10.6 9.2 10.5 9.1-.2 6.6-10.9 4.2-12.4-3.7 0-10 .1-13.4 2z"/>
<path d="M287.3 248c-1 2.3-3.3 16.7 14.6 12.7 2.3-.5 8.3-13.8-14.6-12.6z"/>
<path d="M297.1 249.4c-1.8 1.8 2.8 16.3 15 13.9 12-2.5 1.9-16.3-15-14z"/>
<path d="M307.4 251.6c-2 4 1 15.8 15.9 15.8 13.5 0-.7-15.6-15.9-15.8z"/>
<path d="M319.1 255c-1 2.3-2.1 14.8 15.5 15.9 12.7.8 9.6-17.3-15.5-15.9z"/>
<path d="M338 260.3c-2.1 3.9-4.4 13.5 14.9 14.3 12.3.5 4.7-14-14.8-14.3z"/>
<path d="M354.1 263.3c-2.8 3.8-.7 11.4 6.5 12.8 9 1.8 10.3-6.7 4.1-10.8-6.2-4-10.6-2-10.6-2z"/>
<path d="M363 265c-2.1 3.7-.9 12.4 12.8 12.4 2.8 0 13.6-11-12.9-12.3zM257.1 433a20 20 0 1 0 0-40 20 20 0 0 0 0 40z"/>
<path d="M404.1 141.7a35 35 0 0 0-5.4 8c-6.7 20 11.2 35 21.6 56.7a63 63 0 0 1-5.6 60.7c-4.4 5.8-3.1 7.5-8.8 13.4-2.2 2.3-4.6 5.2-3.8 13.4 3.6-1.3 8.7 2 9.7 5 2.6-1.4 6.2-.9 7.5.7 4.4-2 8-1 11.9 3 3.3-.4 7 0 10.3 3.7 1.8-3.6 5.4-5 8-4.1-.3-4.7 4.3-8 8.4-6.2a7.6 7.6 0 0 1 9.8-9c4.7-3.6 14-3.9 18.6 1.5-8.3-2.3-8 6.5-15 5.7 1.8 5.1-2.8 8.1-7.4 9.8 3-1.4 6.2-3.1 7.2-1.3 2.6-2.3 7.7-1.4 9-.3 3.4-1 6.7-.2 8.2 3.9 4.7 2.8 7.8 10 4.4 15.4-1-5.6-4.9-5.4-6.4-7.7-3.6 1.3-7.2 1.3-8.3-1-2 2-9 3.9-12 .8-1.2 4.6-5.2 8.5-9.9 8.5 1.3 3.6-2.3 9.7-5.1 12.8 4.4 2.3 3 7.5 2 10.6 6.8 1 1 7 12.7 10.8-5.7 1.8-16.8 0-18.3-7-5.7-.2-9.5-5.9-9.3-11.8-4.4-4.1-5-10 1-14.2-5.1 1.6-8-6.7-15.4-3.3-3.7 1.7-13.5-1.2-13.4-4.6-1.5 2.5-11 1.5-12.2-2.9-3.1 1.7-10.3-1.1-10.2-5.4-4 1.8-9.4-1.4-9.1-5.5-3.8-.5-4.2-3.9-4-6.7-3.3-1.6-2.4-4.8-1-8.6-2.4-2.6-1.4-6.2.4-9.6-2.5-2.6-2-5.6-1.3-9.3-12.3-1-27.8-4-63.3-14.9-53.6-16.5-68 22.2-56.2 46.4 13.7 28-1.5 34 3.1 54.8 5 1 7.5 5.2 7.2 9.6 3 .1 5 2.8 4 8a9 9 0 0 1 7.6 2.3c1.8-3.4 7.8-4.2 10.8-.3 6.7-.5 10.1 5 9.8 11.6a18 18 0 0 1-1.5 19.3c.4-2.7 0-6.5-.1-8.9-.3-4.2-6.2-5.1-5.6-8.6-3 .3-6-1.4-7-3.7a7 7 0 0 1-6.6 1.3c3.4 1.5 6.2 7.7 5.1 11.8 1.8 3.1 1.4 8.8-.7 11.2-1 5-5 6.8-10 4.6 2.9-1.8 3.9-5 3.8-7.7a10 10 0 0 1-2.9-6.3c-5 .8-12-3.5-13.2-5.2a20 20 0 0 0-20 20.1c-.6-4.1-5.8-8.2-5.1-11.7-3.1-9.5 1.3-18.4 13.9-20.2-1.6-3.6 3.8-7.3 1.8-11.4a97 97 0 0 0-14.7-20.1c4.4-7.5 3-17.5.5-23.7-3.7-8.9-7.2-6.7-20.3 7.7-21.4 23.5-50 17-75.2 32.5-6.7 4-13.4 5.6-6.2-1.6s26.2-14.4 38.6-20.6c23.2-11.6 42.8-30.9 50.5-68.5 18.1-88.4 85-59.2 127.2-42.8 39.7 15.5 32.5-19.5 12.4-40.7-24.2-25.3-19.3-45.3-8-61.3 20.3-2.8 59.4 4.3 51.5 11.1z"/>
<path d="M475.9 358.8a22 22 0 1 0 0-44.1 22 22 0 0 0 0 44z"/>
</g>
<g fill="none" stroke-width=".4">
<path d="M391.8 142.7c-5 21.7-.8 31.5 6.4 41 14.9 19.7 26.8 64.6 9.8 94"/>
<g stroke-linecap="round">
<path d="M417.5 252.3c2-.7 6-3.2 6.8-7.4m-5.2-2c.6-3.7 6.4-5.3 6.5-9.3m-6.4-5.2c-.4-3.9 5.8-7.4 4.9-11.2m-8.3-2.7c-.5-2.2 5.2-6.3 3.6-9.8m-7.8-3.8c-1.2-2.4 2.7-5.2 1-7.8m-7.2-3c-.4-1.6 2-5.3.7-7.5m-6.9-5.2c.5-.7 2.6-2.2 1.8-4.1m-6-5.3c.8-.4 3.3-1.2 3-3"/>
<path stroke-linejoin="round" d="M266 410.9c-5-1.8-11.5.7-12.8 5.1m3.9 4c.6-4.4 7.3-6.3 9.3-4.3-4.2-2.3-6.3 6-2.5 6.2m34.6-103.8c-3 1.6-4 7.2 0 11.5m4.6-10.2c-2.1 1.8-2 7.2 1.2 8.5-2.7-2 0-5.3 2-5.4 1.9-.1 3.2 2.2.8 4.5m177 5.2c-7.2-2-13 6.4-6.4 13.9-.2-7.2 5-12 11.3-10.7m-3 5a2.7 2.7 0 0 0-2.7 2.7c0 1.4 1.2 2.8 3.2 2.8 1.3 0 2.4-1.5 2.4-2.7m22.6-161c1.2 4.4 7.2 6.3 12 5.2m0-2.8c-3.7.1-6.8-3.4-6.6-6.3 0 2.2 5 3.2 6.6 1.8"/>
<path d="M267.9 331.7c-1-2.6 3-5.2 3.2-7.6.1-2.5 4.6-4.4 9.3.2m-2.2-27.4-2.5 1.2m11.4 12.8c-1.1 0-3.4 0-4.6-.9m0 5.8c-.8.5-2.8 1.2-4 1.5m-40.1 76.3c-.2 2.3 2.2 5.7 3.4 6.7m6.6-12.2a10 10 0 0 0-1.3 7.6m20.5 0c-2.3-1.5-.8-5.4-1-8-.3-2.6 2.7-6.7 8.5-3.2M246 381c2.3-.4 4.7-.3 6.3.4m23-7.7a8 8 0 0 0-1.4 4m12.3-4.3c-1.8 0-3.4 1.3-4.2 2.6m-20.8-68.5c2 .7 7.4 4 7.6 7.4m14.3-24.2c-6.3-.1-8.8-6.5-4-6.5m15.3 15.2c-2.4 1-1.3 5.2 2.2 7.3m-17.3 33.1c-1.2-1.6.4-6 4.4-4.7m5 51.7c.3-4 5.2-6.2 7.2-1.8m-25.5 13c-.3-4.3 2-5.7 3.8-6 2-.2 4.7 1.4 6 4.2m-48.1 5c.2-2.6 2.4-5.3 4.7-4.9m231-109.4c-1.7 1.2-2.8 6.7 3.5 7.2M458 296c0 .6.8 1.5 1.3 2m29 8.3c-1.6-1.3-6 4-2 7.7m-39 35.6c-.9-3.7 2.5-4.7 5.8-3.9m-14-22.2c2-1.2 4-2.7 6.4-3.3m-7.4 17.5c0-3 1.6-5.7 3-6.4m8.4-29.1a16 16 0 0 0 2.4 9.2m28.2-9q-3 .7-4.2 2.9m2.1 7.7q1.6-1.3 2.4-2.3m46.3-110.2c0 3.6-4.5 5.6-7.5 3.3m17.3-3.1c2 1.5 8.9 0 7.3-4M528 221.4a11 11 0 0 1-4.9-3m19.1-7.7c-2.3.5-3.9 0-5-.5m-31.6 13.4a17 17 0 0 0 6.5-1.6M502 200.8q-2.5-.3-3.9.8m29.8 5.5a11 11 0 0 1-3 5.2"/>
<path stroke-linejoin="round" d="M497.5 212.8c3.2-1.4 7.2 9.5 15 5.7m.6-11.4a11 11 0 0 0-1.8 5.6"/>
</g>
<path d="M359 190.4c1-.2 2.9-.5 3.3-1.8M226.5 310.3c3.9 2.2 6.6 5.9 5 11.4m172.1-143.2c1.2.8 5.5.8 8 0m3 2.6c0 1.8.5 8.6-3 10m1.3-.8c3.2 1 9.6.6 11.7-5.3m-4.5 5c1.7 2.6 2.2 7.6-2.8 10.3m4-6c3.8 1.2 12.4 1.4 11.5-6m-3 6c2.7 3.5 14 7.8 12.2.3m-22.5 10c4.3 1.1 10.5-1.9 8-9.6m12.3 3.9c.6 3 15 6 13.1-.7m-2.7 3.9c2.7 6.2 17 5.7 12.5-2.6m-2.3 6.5c2.8 3.4 15.5 1.4 10.4-7m-.1 6.8c7.9 6 17-2.5 7-8.7m4.6 6.8c7 5.5 15.5-4.5 9.4-7.3m-64.4 5c2.2.6 6.8.4 7.9-3.6m-1.8 2.7c-.2 5.8 9.6 8 12.1 1.3m-3.3 3.7c1.8 3.9 10.5 5.4 11.9-.1m-1.4 2.6c1.4 3.8 8.9 3.4 11-.6m-2.8 2.6c2.3 5 11.9 5 14-2.3m-1.6 3.2c3.7 2.3 11.7 1.4 11-5.8m-1.5 5.2c5.6 4.5 13.4.1 9.5-7.5m-.3 13.4c3-.5 4.5-6.4 1.4-8m-70 9c6-3.3 7.3-9 3-14.5m2.2 8.9c3.9 2.3 11.2-.2 12.5-5.8m-7.2 6.4c2.2 2.8 2.6 6.3-.3 9.5m2-5.9c6.9-4.2 15.4 3.6 9 8.4m-1-8.8c1.5-.4 4.2-3.2 4.4-6.4m-1.4 9.4c2.9-3 22.2 3 10 9.3m-1-17.4c3.8 1.4 5.7 6.7 0 8.5m5 4.4c4-4.3 17-1.6 12.3 3.8m-3.1-5.5c2.3-7.9 16.1-3 11.6.2m-14.4-8c.4 1.5.5 5.3-2 7.4m13.6-9a6 6 0 0 1-.8 5.3m9.5-5.2c.8 1.4 2 4.1-.8 6.3m-109.4-65.5c.1 7.3 2.7 12.2 12.6 7.6m-9.5 1.1c-5 6.6.6 13.7 10.3 6.6M365 165c6.7 7.2 18.7 2 11-9m8 15.2c-1.2 7.1 4.6 8.5 9.3 5.3m-34.2-10.3c1.2 7.1 8.5 12.7 15.6 8.4m-6.9 1.4c0 10.2 14 11.3 17.3.8m-5 6.4c4.5 9.3 14.3 5.5 17.5-.1m-27.4-14.7c1.8 4.5 5.4 9.5 13.7 5.8m-39.5-8c1.2 3.7 7.9 8.2 15.6 3m-10.8 1.8c-4.2 6 4 11.7 14 2.7m-9.1 4.7c1.6 8.5 5 15.4 17 4.4m-6 4.4c4.4 5.4 11.1 8.7 17.4-.4"/>
<path d="M387.3 188.8c-.4 6.5.8 9.7 5.9 9.4 4-.2 7.7-3.3 9.9-6.7m-10.8 6.7c-.2 7.4 5.6 13.2 16.5 5.7m-12 3c-2 5.5 4.1 14.5 16.2 9.9m-41.9-24.6c-.7 7 5.8 11.8 16.4 2.7m-11.2 5.1c.4 5.8 7 12.8 16.6 2.7m-12 4.7c-.7 9.9 8.4 12.7 16.1 5.1M367.2 200c2 .2 3.7-1.6 4.7-3m-.4 10.2c1.8.4 5-1.2 6-3.3m-1.4 15c2 2.3 9 .7 9.9-2.3m-2.2 2.2c3.8 9 14.1 8.7 18.4-1.5m-2 3.6c2 5.3 6.9 8.6 14.9 6.8m-11-1.4c-4.5 7.3 1.4 16 11.5 7.5m-9 3.5c-.5 4.6 3.7 9.9 9.5 10.5m-28.6-24c-1.5 10.4 6 15.4 15.3 9.8m-26.2-4.8c2.4 1.9 6.8 2.1 11 .6m5 6c-2.4 8.8 6.6 15.1 14.3 5.3M380 230.2c.2 4.5 4.5 9.4 12.1 8m21.3 9c-5.2 3.4-6.2 9.6 1 13.6m-13.6-15.4c.2 5.2 2.7 8.2 8.5 8.7m-16.1-11.4c-7.8 7-.2 15.3 9 8.3m-3.6 2.2c-2.6 8.1 7 13 12.2 4.8m-28.2-22c-2.8 8 .8 13.2 7.4 12.7m-17.6-14.3c.4 4.8 4.5 6.5 9.2 5.4m-6.2-.4c-3.5 6.7 1.8 10.3 8.8 7.8m21 15c-1 4.2-.4 7.2 5.9 8.7m-5.4-2.7c-7.6 3.4-8.3 10.8-2.4 15.5m-3.8-23.7a7.6 7.6 0 0 0 1.2 12.3m-35-35.8c-4.3 4.3-.2 16.2 9.5 9.7m15.7 5.3c-6 5-3.3 13.8 6.5 11.4m-16.3-15c-3.1 8.7-.2 11.8 6.8 11.9"/>
<path d="M359.3 236.1a8.2 8.2 0 0 0-1.5 12.2c2.3 2.6 6.7 1.4 8-1.9m-17.6-13.8c-5.9 7.6 0 16.6 8.4 14m23.3 8.6c-6 2.1-10.7 7.6-7 12.5 2.3 2.8 11.8 3.2 14.5-7.8M369 248.1c-3.5 5-2.4 9.8 4 12.2m-4.4-2.8c-3.8 2-6.2 4.5-5.3 9m-3.1-16.9c-1.4 6 .3 9.8 4 11.6m-4.1-4.4c-5.8-.4-8.8 2-6.8 7.8m.5-6.4c-5.7-2-6.6-7-4.1-12m-.8 7.6c-6.2.2-9 3.3-9 7.5"/>
<path d="M340.5 229.7c-4.5 1.9-6 8-4.3 11.3s7 3.6 10.2 1.4M328 224.9c-4.1 4.6.6 13.7 8 11.5m-18.6-15.1c-3.8 5.4.4 14.4 10.3 11.8m.5 25.1c-1-6.4 5.7-10.6 14-2.3m-4-13a10 10 0 0 0-3.3 8.5m-28-33.2c-4.3 7.2.9 13.8 10 11.2m13.8 6.7c-6 6-4 12.1.5 15.6m-4.4-8.5c-9.1.1-9.6 10.7-2.2 14m-4.7-24.6c-3.8 2.6-5 9.7 1.5 12.5m-1.8 3.4c-3.9-1.8-8.5.4-8.1 4.9m2.3-4.8c-3.5-8.2-13.6-6.8-12.7 1.7m15.5-11.9c-2.1.4-6.5 1.7-8.2 5m.6-14.3a7 7 0 0 0 2.5 11.4M296.7 216c-.8 5.6 1.4 8.3 8.4 7.8m-6-.7c-2.6 6.7 1 9.7 8 9.3m-6.4-1c-4.1 4.9-1.3 10.1 2.7 12.3m-4.6-6.1c-7.4-1-8.5 7.6-6 11.5"/>
<path d="M292.9 215.5c-4.5 2-7.1 7.6-4.7 11 2.5 3.5 7.4 2.4 10 .6m-8.4 1c-3.8 5.7-.4 10 3.6 11.6"/>
<path d="M275.3 214.8c-3 3.1-1.1 9.4 6 9.6 5.9 0 8.8-5.4 7-9.3m-8 9.3c-2.3 5.1-.8 10.7 8 9.8m3.6 8c-5.3-2.4-12.6 0-9.5 6.5m-.7-15.6c-2.2 3.1-1.5 7.5 1 10.2m-1.4-2c-3.6.7-7.1 2.6-5 8.3m-.5-4.6c-4.6-1.4-10.5 2-7 6.7m-.7-4.5c-4-.7-8.7 3.6-4.9 7.8m-1.5-3.5c-3.6 1-7.9 5-4.1 8.3m22.3-28.5c-5.2 2.3-5.7 8.1-3.3 12.4m-2.2-23c-7.7 3-7.6 13.2 1 16.4m-3.7-2.3c-4.6 2.7-5.5 7.9-2.4 11.2m-5.7-29.2c-3 1-2.8 10.5 5.4 10.3m-13.9-7.1c-6.2 4.1 1.3 14.5 11.3 7m-5.5 2.7c-.9 4.2.3 8.8 7.1 9.4m-6.7-3.8c-4.9 1.8-5.8 11.9 3 12.7m-18.6-21.8c-6.3 5.8 5.2 10.8 9.4 2.4m-18.1 7.2c-3.1 3.8 7.7 13.6 12.5-2.8m1.1-.3q.4 6 7.3 6.5m0 3.7c-7.7 1.2-10.1 10.7-1.6 12.8m-12.5-14c-.3 3.5 3.5 6.5 7.7 5.9m3.9 7.8c-7 1.6-7.9 10.6-1.7 10m-3.2 8.4c-5.8-1.7-6-8.6-.8-11.2"/>
<path d="M245.7 267.8c-4.9 3-3 10-.4 11s4.7-.2 5-2.4m-.5 10c.6 3.3-11.9 2-5.5-8.4m0 8.9c-4.2 6.6 2.6 12 6.9 6.3m-6.4 1.6c-1.7 5.3 4.7 9.1 8.8 5M231 245.4c-2.3 4.7 9.3 6.5 10-3.3m-13.2 10.3c-2.3 9.3 15.2 7.4 10.7-4.6m.4 6.2a8.2 8.2 0 0 0 11.6-6.3m-5.3 6.6a10 10 0 0 0 4.7 6.3m-13.1-3.9c-.8 5 4.3 9.2 10 8.8m-9.1-3.9c-2.8 3.9-3.7 11.3 5.2 11.8M224 263c-1.4 4 7 8.1 11.8 1.5m-14.4 8.7c-.7 3 6.8 7 11-5.8m-3.3 6.5c1.8 3.2 7.9 5.8 11.6-.5m-6 3.9c-1.6 4.5 2.7 8.7 7.8 7.5m-17.5-8.5c-1 6.4 6.5 10.1 11 6.8m-15.9-4c-2.2 8.2 8.4 11.3 12.4 5.1m-2.7 2.5c.4 4.6 7.6 8.6 13.2 4.8m-26.1-1c-.5 2.1 8.1 4.2 9.4-3m-4.4 4.9c2 5.2 9 6.5 13 0m-2.3 2.6c1 5 7.2 7.7 12.8 4.3m2.3 2c-1.4 6.5 5.4 11.8 9.6 8.2m-20.6-9.4c-2 7.2 7 11.3 12 7.3m-22.8-11c-.5 6.8 4.8 10.8 10.8 7.8m-22.3-7c-1.8 4.3 7.8 7.9 12.3 4.2m-18.2 7.7c2.5 2.8 11 0 11.7-6.3m-2.3 4.6c3.1 3.6 10.5 5.6 13.4-2.2m-2.6 4c0 5.6 9.8 9.6 13-.6m11.7 2c-1 2.7 1.2 7 5.7 7.5m-13.9-9.2c-.6 3 3.9 7.4 8.7 5.7m.9 1.3c-1.3 3.3-.2 8.1 4.3 8m-3.9-1.8c-3.4 2.8-2 7.9 2.9 8m-4.6-3.2c-4.8 3.2-3.1 10.3 3.2 9.9M239 313c0 7 8.7 8 10.3 1.6m-3.3 4c-1.3 4.2 2 8.2 7.3 7m-6.3 42.8c1.2 1.7 6-1.2 4.7-4s-6.4-1.3-5.8 1.7m4.6-2.9c.6-5.6-6-6.5-7.7-1.6m2.4-2.9c1.7-2.8-4-6.7-6.3-2.5m2-1.7c1.6-4.1-4.8-6-5.3-2.2m-1.5-5.4c.8-2 8-.8 5 3.5m5.5 5.1c2.8-2.6-2-7.8-5-6m24 13.9c-2.2.2-4.5 1.7-2.9 6.5 1.2 3.3 6.1 3.4 6.9 1.5"/>
<path d="M260.5 365.9c-2.2-1.5-7 1-4.8 5.6 1.6 3.5 5.8 2 6.4.2m-14 .8c1.2 2 6.6 1 7.6-1m-3.8-5.4c1.2-.8 3.3.2 3.7 1.2m-4-33c-3.8 2.5-1.5 10 4.3 8m-5.6-1.9c-3 2.3-.2 9.6 5.3 6.8m-4.3 0c-2.1 2.1-.1 7.8 5.2 6.7m-6-3.8c-1.2-.5-4.2-.2-5.5 1.8m2.1-28c-2.8 2.8-1.4 8.3 3.8 8.8m-4.8-3c-4 2-4 10 4 10.3m-4.3-1.3c-2.3 1.8-1.2 8.8 4.6 7.9m-2.8-.3c-.8.9-1 3-.2 3.9m-2.3-6.5c-2 0-4.8 1.5-5.5 3.7m-3.7-7.5c.7-2 7.1-2 7.6 4.1m.6-7.2c-.9.2-2.6 1-3 2.8m.2-21.7c-2.7 2.6-4 10.5 4.3 12m-9.9 4.4c0-2.1 5.8-4 7.8-.8M232 322.8c.8 1.6 4.8 3.8 7.2 2m-28-14.6a6.3 6.3 0 0 0 7.2 6.5c4.3-.5 5.2-4.2 3.9-6.7m-3.2 6.9c-2.9 3.4.6 8.3 3.8 6.9m-.6-9.4c1.7-.6 7.2-1.4 8.9 1.2m-26.8-.2c-1.3 2 6.7 3.9 9.4.2m-2.7 1.9c-.3 2.6 1 7 7.6 5.1"/>
<path d="M219.8 326.6c1-2.2-3.8-5.8-7.6-1.8s.6 8.5 2.9 7M202.7 318c-2 3.4 5.5 9.5 9.8 3.8"/>
<path d="M197.7 323.8c-2.7 2.8.7 7.9 4.7 6.3 4.1-1.5 3.7-5.8 2.7-6.9"/>
<path d="M192.5 329c-2.2 2 0 6.6 3 6.6s4.9-2.3 4.3-5.4m5-1.6c-.4 3 4 5 6.9 2.2m0-5.4c.5-.6.2-1.7-.5-2.3m-23.4 9.8c-2.5 2 3 7.6 6.3 2.5m13.1-3.5c-1.6 1.5 1 5.5 3.6 4.3m-12.4-1.5c.4 2.7 5.8 4.8 9.2.6m-6.3 2.1c-.8 1.8.9 4.5 3 4.2m48.3 11.8c-2 3.9 4.4 8.5 9 3.7m-4.4 2.1c-1 2.1.2 5.1 2 6.2m-8-1.7c.4-2 3.2-3.8 5.7-2.9m-9-2.2c.3-1.8 2.6-3.5 4.4-3m147.2-77.4c-9.2.1-5.3 14.8 2.6 11.9m-5.6-1c-1.8 2.9 1.7 7.6 5.6 4.8m-1 .6c-2.8 4.5 6.9 11.4 10.8 4.3m-3.1 2.7c0 4.3 12.5 7 10.7-1.5m-1.2 4.6c3 5 14 5.5 12.9-2m-2.5 5.2c2.3 3.4 13.2 5.4 12.8-1.5m-56.7-40.8c1.5 4 6.8 5.4 12.6 3m-16-.2c3.7 2.3-1.6 12.9-7.1 8.6m7.2-2c4 1.9 8.9.5 10.3-5.2m-2.5 4.4c.4 3 4.7 5.3 10.2 4.1m-20.1-1c5.2 4.4-2.3 13.4-5.7 9.3m7.6-6c2.5 1.8 8.8.8 9.4-4m-2.8 4c.5 3.1 3 4.3 6.4 4.4m-14.4-.1c2.6 3.6 9 4.6 11.9-.1m-2.9 2.7c-.2 3.4 3.6 6.3 7.6 5.5M375 295c3.3 1.7 7-4.7 4.1-9m-.2 15.7c4 .2 4.5-5.8.7-9.2m8.4 14.7c3.4-.8 2.3-8.1-5.8-8.7m16 14.1c3.2-.9.6-9-8.3-8.5m20.5 11.4c2.2-3.4-5-9-11-6m17 10.6c4 1.2 6.8-9.4-5.9-7.7m13.3 7.7c3.5-1 6-7.2-4.2-5.2m12 5.7c3 1.6 4.4-7.5-5-5m-47-23c3.9 2.1 10-.4 9.4-5.3m-1.5 4.2c1.3 2.3.8 6.8-1.7 8m2-2.6c2.6 1 6.1.1 8.2-4m-3.6 4c.7 1.8 1 5.4-.7 7.2m1.3-4.1c2.9 1.6 6.2-.5 7.6-3.5m-1.8 2.6c2 1.3 3.9 7.3.4 9.8m2-2.8c2.4 0 6 0 8.3-3m-1.7 1.7c2.2.6 4.8 4.2 3.9 7.4m.1-1.1c2.5-.3 6.7-2 7.9-5m-1.2 2a7 7 0 0 1 3.2 6.5m0-2.1c2.5-.1 4.7-1.4 5.3-4.1m-.6 1.8c1.8.6 4 2.7 4.1 5.1m-.3-1.5q2.6-.5 4.3-3.2m4.9-.3c2.3 2.3-.8 10-5.6 8.6m-43.9-164.7c-4.7 2.9-18.3 2-11.6-9.2m13 1.6c-9.5 3.8-21-3.5-9-11.3m-3.2-2.6c-7.8 0-13.1 12.6-2.6 17M348.6 138c-2 4 5.3 8.4 10.3 4.4 3.9-3.1 3.6-11.5 1.3-14.7m-15.6 19.8c-2.6 8.5 16.4 9 13.4-4.5m-14.4 17.2c.6 6.4 18.1 4.3 12.5-8.7m2-3.6c1.4 2 5.3 5.3 11.9 4.6m-9-13.5c.6 2.3 4.5 4 9.5 2.3M185.4 334.8c-4.5 3.1 2.4 8.1 4.9 2.6m-8.4-.2c-4.4 3.2 2.4 8.2 4.9 2.7m-8.6-.3c-4.4 3.2 2.4 8.1 5 2.7m-8.8-.5c-4.3 2.3.7 7.8 5 3m-9.2-.9c-4.3 2.3.7 7.8 5 3m16.6-9.6c-.1 3.3 6.1 4.6 8.4-.3m-4.5 3.3c-2 2.5 1.6 5.5 3.5 4.4m-11.8-4.8c-.2 2.8 5.2 4.4 7.8 1.3m-4.9 1.6c-1.7 2.2 1.7 5.3 4 4.4m-10.5-4.8c.2 2.2 3.3 4.7 6.6 3.3m-4.6-.3c-1.3 1.1-.7 3.8 1.1 4.7m-7.8-5c-.5 2 2.9 5.6 6.4 3.3m-5.7-1c-2 1.7-1.8 4.1.8 4.5m-5.8-4.7c-.2 1.4 1.5 3.6 3.7 3.3m-14.7-3.4c-2 1.1 3.2 6.7 6.5 1.5m-11.6.8c-2.6 1.2 3.8 7.4 6.7 1.1m10-1.3c-2 .4-3.3 3.3-1.6 4.5m-5-3.5c-.2 1.2 2.3 3 4.3 2.4m-5.9-1.9c-2 1.2-.9 4.6 1.4 4.1m-8.3-1.8c-1.8 1.3-.5 4 2 3.4m1.3-3.6c0 .7 1.7 1.8 3 1.3m-12.5-2.5c-2.3 1-2.1 6.6 5.5 3.6m-10.6-1.3c-3.2 1.5-2.1 5.8 4.8 1.7m.5.3c-.8.7-1.7 3.5 1.5 2.4m-7.2-1c-1.3 1.1-.5 3.5 2.3 2.6m-9-2.2c-2.3 1.3 2.8 3.1 6.2-.5m-4.6 2.1c-1 1-1 4.1 1.6 3m-8.2-1.7c-1.5 1.1 1 2.7 6 .5m-4 1.1c-1.9 1.5-1.7 3.4 1 2.8m-6.4-2c-2 1.9.9 3.1 4.4 1.6m-4.4.5c-3.4 1.5-1.9 4.4.2 3.3m113.8 6.5c-.8 1.7 1.8 3.1 4.3 2.7 2.3-.3 4.6-2.3 2.8-5m.1 3.4c2.4 1.8 6.5-.3 6.5-3"/>
</g>
<g fill="#fff" stroke-width=".4">
<path d="M396.8 103c-10.3-5-31.7-14.6-37.8-6.9 5.6-2.3 21.8.1 35.2 12.5z"/>
<path d="M403 102.5c-11.9-13.9-19-10.8-27.5-15.5-8-4.5-20.8-5.4-23.3 1.7 11.7-5.7 22.5 3 29.2 4.2 9 1.4 14.2 8.5 16.9 11.7l4.7-2zm44.9-1.8c-6.2-14.1-19.4-10.4-25.2-16.4-8.5-8.8-30-17-39-10.9 19.6-1 28 13.5 38.4 18.6 7.5 3.6 15.5 11.3 25.8 8.7z"/>
<path d="M424.7 99.2c-10.5-13.1-26.8-24.7-34.2-20.4 9.8.6 12.9 7.4 19.8 11.8 7 4.3 3.9 10.7 14.4 8.6zm-50.2 23.2c-11-4.1-32.7-6.2-42.8 6.4 16.8 2.9 42 1.3 42.8-6.4z"/>
<path d="M372.4 127.3c-11-5.2-19.7 2-30.1 1-19.8-2-34-.8-35.8 8.8 11.3-10.2 30.4-1.8 38.1-3.9s36.3-.3 45.3 3.6c-4.6-5.7-11.8-7.2-17.5-9.5zm34.8-29.5c-2.6-8.5-2.4-17.5 10.3-16.9-3.2-4-15-6-17 8.9-14-10.3-29.4-12.1-32.2-3.2 7.2-6.2 18.4-1.7 31.8 13.5a24 24 0 0 1 7.1-2.3z"/>
<path d="M387.9 109.5c-8-5.2-18.8-13.5.1-16.9-8-4.3-20-2.4-18.7 12.5-21.6-8.7-37.1-5.8-40.4 2.9-3.6 9.5 9.8 14.8 12.1 8.7-2.4 1-10.8-1.8-6.4-7.2s26.8-1.3 48.1 9.8c6 3 26.3 2.6 5.2-9.8z"/>
<path d="M382.2 123.7c-6.1-12.6-26.1-1.2-30.1-13.4-5.6 17.9 28.4 8 30.1 13.4zm127.1 13.6c4.2 2.1 7.8-1.2 1.4-3.7 4.2 2 7.9-1.1 1.5-3.7 4.2 2 7.8-1.1 1.4-3.7-1.7 1.7-4.1 8-4.3 11.1zm2.2-24.2c9.3-9.8-.7-13.1 10.6-23.2 9.3-8.2 1.8-13.7 10.5-20 2.9-2.1 9-6.2 9.6-10.4 3.7 9.3-11.6 10.6-10.6 25.5.7 9.5-5.8 8.7-8.2 24.8-.5 3.3-2.9 10.8-11.9 3.3z"/>
<path d="M515.6 117.5c5.2-11 11.1-10.9 14-15.2 5.4-8.3 16.8 1.4 26.5-6-1.7 10.5-14.7 6.8-20.4 13.5s-10.3 9.7-20 7.7z"/>
<path d="M517 121.1c9-7.2 15.6-2.4 21.8-6.2 15.7-9.5 22 2 36-2.6-3.6 9-24.4 1.3-33.4 8s-40.7 13.2-24.5.8zm-26.3 51.4c-.2-4.1-4-9.4-9.4-10-5.4-.7-7.8-6.4-11.9-6.6-4.1-.3-6.8-8.5-12.5-8.4-5.6.1-8 7.5 5.3 14.2s28 14.4 28.5 10.8zm-16.8 3.5c-5.6.2-6.4 8.5-11.8 8.7 7.4 4 12.9-1.8 16.7-7L474 176z"/>
<path d="M478.6 177c-5 4.1-6.4 12.7.7 15.2-4.2-5.9 7.5-8.5 3.9-14z"/>
<path d="M483.4 177.3c-3.8 7.4 6.1 8.3 3.5 14 5.7-1.3 6.6-12 1.4-14.8l-4.9.7z"/>
<path d="M445.6 161.3c9.3-.5 17.7 4.5 23.4 12.6 3.6 5.1 15.7 7.2 19.9 3 4-4 1.8-12.8-8.5-10-2.6-4.3-10-2.8-13.7-6.4s-17.5-13.9-21.1.8z"/>
<path stroke-linecap="round" d="M480.4 167c-2.5.5-3.3 4.7-1.7 6.9m7-4.4c.7 1.3.2 3.1-.2 4m-25.2-11.8c4.7.2 5.6 3.7 10.8 5"/>
<path d="M457.1 150a161 161 0 0 1 37.6 12.3c8.1 4.6 20.7 6 31.6 2.8 11-3 32.2-5.9 31.1 7.8 5.8-6.9-1.5-14.2-16.2-15.5.3-6.7-6.9-12.7-12-8.7 4.7-.7 8.8 8.2-.6 11.8a8.4 8.4 0 0 0-11.7-9.8c4.4 1.3 9 8.8-1 11.6-6.3 1.8-15.4-.5-22.2-4.6s-45-19-36.6-7.8z"/>
<path d="M498.6 143.3c-5.1 2.3-1.8 7.7-9.7 10.8-8 3-13.6 10.1-11.8 16.2 5.4-11.9 15-11.3 18.3-16s8.3-11.4 3.2-11z"/>
<path d="M500 144c-.2 9.4-7.6 6-4.7 19.2.9 4.1 2.6 10.8-.3 17.5 8.3-6 3-18.7 6.7-23.5 1.8-2.4 4.2-6 5-9-1.9 5.3-1.7 15.4 3.5 18-4.2-10 11.5-18.3.7-30-1.6 3-6.5 8-10.8 7.8zm-26.2-9.4c1.3 2 2.6 6.8 1.4 9.6 2.6-1.6 6.3-5.6 7.5-8.3 5.3.8 7.3 7.3 2.3 10.2 3 0 8.4 0 11.3-3.5-3.6-4-14.8-10.2-22.5-8z"/>
<path d="M393.7 116.1a10 10 0 0 0-4.8-2c-7.8-1.6-3.7-8.6 2.9-8.5 14.2-15.5 22.1-3.6 39.4-8.4 6-1.8 10.2-1.3 13.4.2 7.8-5.2 16.8-3.8 23.4 2.3a5 5 0 0 1 3-2.4c6.1-1.7 11 3.4 12.7 10.1 4.7-.8 10.1 1.5 13.7 4.7q7.4-3.8 9.5 0c4.4-2 10-3.4 12.9 3.6s-6.7 4.9-8.3 19.6c-1 9-11 12.6-19 7.2-12.8-8.7-25.3-10-31.5 3-6.1 13.2-11 20.8-26 16.5a16 16 0 0 0-16.7 6.5c-4.4 6-11 .4-19 1 10-1.5 6.1-4 14.9-4.6 8-.5 5.9-8 11-9-20 5.1-19.3-2.4-35.8 2.8 7.2-9.3 18.6-4.1 24.2-9.5-14.9-.3-21.6-10-28.3-6-10.5 6.5-6 24.8-33.5 23.2-13.4-.7-21.9 1-29.8 9 13.9-28.8 32.8-13 42-22.1a68 68 0 0 0 12.3-14.7 6 6 0 0 1 4-3.2c-22.9-7.2-9-18.5 13.4-19.3z"/>
<path stroke-linecap="round" d="M506.9 112q.5 1.2.5 3c0 5.6-8.5 5.8-9 14.2-.3 4.4-.8 6.8-3.7 6.3s-5.6-5.1-2.8-10.5"/>
<path d="M398 107.7a11 11 0 0 0-6.2-2.1m52.8-8.3c6.8 3 10.1 10 20 10.4 9.6.3 15.5 14.2 31.5 5.1l1.2-.6M468 99.7a13 13 0 0 0-1.4 8.2m-29.8 21c-12 0-15.2 6.1-15.2 12s5.7 13.7 15.7 13.7 15.5-6.2 15.5-12.9-6.2-12.9-16-12.9z"/>
<path d="M439 154.3c-.2-3.3-6.3-2.8-6-5.4s3.3-3.6 3.3-7.2 5.4-3.9 7.2-1c1.8 2.8 7.2 8.3 8.4 5.5m-8.4-5.5a10 10 0 0 0-.4 13.1m4.3-8.8c-1 2-1.2 5-.1 6.8"/>
<path fill="none" d="M495.5 135.6c9.5.8 11-9.7 4-10.3m-15.7-17.8c-3.2-4.2-10.8-5.6-11 3.2"/>
<path d="M472 120.8c-3.2-8-11.5-9.1-15.8-5.1-3.7 3.3-3.8 12 4 13.8 2.8-3.3 8-7.5 11.8-8.7zm-3.5-5c-4.7-4.1-11.5 3.7-5.3 10.8m-83 8.7c3.2-.7 7.7.8 14.7 4 4.3 2.1 17.5 6.5 25.7 2.1-8.5 3.1-15-9.7-21.4-8.2-6.4 1.6-18.2 4-23.1-.8 12 .8 18.5-8.8 32.4-.5a24 24 0 0 0 13.1 3.6c-11.3-13.6-26.2-4.9-27.8-16 6.8 7.4 23.5-1.6 32 12.1m-29.5-10c-1.6-2-1-4-2.6-5.5"/>
</g>
<path stroke="none" d="M483.8 107.5c-2.8-3-9-.7-7.2 5.4a10 10 0 0 1 7.2-5.5zM466.3 124a21 21 0 0 1 5.7-3.2 12 12 0 0 0-3.8-5.2c-1.5-1-5.7 4.7-1.9 8.3z"/>
<path fill="none" stroke-linecap="round" stroke-width=".4" d="M458.7 113.5c-4.6-3.1-8.9-2.8-10.3-.3-3.3 0-6.1 2.4-6.2 7.2m7.1 2.1c-5.5-3.8-13.1-2.4-12.6 6.1m-3.4 4.9c2.7-2.2 6.6-3.8 9.6 0m31.8-8.4c-1 1.4-1.8 3.6-.1 7-2-2.8-7.2-2.8-12.8 4.4m25.1-11.8c-6.7.8-6.5 5.2-1.1 7m-46.5-23.4c-5.7-1.1-9.8 2.2-2 5m12.8-8.8c-8-2-11.2.1-7.6 2m-15.5 30c-.2 2.9 1.3 6.6 6 2.4m-4.4 6.1q.1 1.3-.7 2.4m-17.9-40c-4.9-1.5-5.8-6 0-5.6m-1.6 16c-5.4-1.9-5.4-7.1-1-6.6m11 3.8c-6.3-1.5-6.5-5.9-1.8-5.2m2.6-8.2c-3.4-.2-8.5 3.5.1 5.7m9.3 1.8c-7.9-1.1-7.7 2-3.1 4.1m9-11.6c-6-1.1-8.1 2.5-4 4m-15 18.3c-1.5-1.2-2.7-7 4.3-5.3m10.3 3.5c-4.7-1.3-9.2 3.4-4.9 6m11.2-11.5c-5-1-9.2.5-6.5 2.3"/>
<path fill="#fff" stroke-width=".4" d="M483.6 107.5a10 10 0 0 0-7 5.4"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bv" viewBox="0 0 640 480">
<defs>
<clipPath id="bv-a">
<path fill-opacity=".7" d="M0 0h640v480H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#bv-a)">
<path fill="#fff" d="M-28 0h699.7v512H-28z"/>
<path fill="#d72828" d="M-53-77.8h218.7v276.2H-53zM289.4-.6h381v199h-381zM-27.6 320h190.4v190.3H-27.6zm319.6 2.1h378.3v188.2H292z"/>
<path fill="#003897" d="M196.7-25.4H261v535.7h-64.5z"/>
<path fill="#003897" d="M-27.6 224.8h698v63.5h-698z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 582 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-bw" viewBox="0 0 640 480">
<g fill-rule="evenodd">
<path fill="#00cbff" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M0 160h640v160H0z"/>
<path fill="#000001" d="M0 186h640v108H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 264 B

+18
View File
@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="flag-icons-by" viewBox="0 0 640 480">
<defs>
<clipPath id="by-a">
<path d="M0 0h200v608h8v284l-8 8H0z"/>
</clipPath>
</defs>
<path fill="#ce1720" d="M0 0h640v480H0Z"/>
<g fill="#fff" clip-path="url(#by-a)" transform="matrix(.52885 0 0 .53333 5 0)">
<g id="by-c">
<path id="by-b" d="M36 0v14h-9v14H16v16H8v13H-8V24H8V6H-8V0Zm26 77v15h-8v12h-8V92h-8V77h-8V57h8V42h8V30h8v12h8v15h8v20Zm-17-1h10V58H45ZM19 183h8v-18h-8zm54 0h8v-18h-8ZM-8 305H6v13h6v16h9v15h12v-15h9v-16h8v-13H38v-15h21v10h13v17h11v19h-8v14h-7v13h-6v14h-9v12h-7v11h-9v14H24v-15h-9v-14H8v-9H-8v-23H8v-20H-8Z"/>
<use xlink:href="#by-b" transform="matrix(-1 0 0 1 200 0)"/>
<path d="M96 0v32h8V0h32v14h-8v14h-12v16h-8v13H92V44h-8V28H72V14h-8V0Zm-2 274v-11h-6v-13h-7v-14h-8v-14h-8v-10h-9v-14H44v14h-9v10h-7v14h-8v14h-6v13H8v17H-8v-44H8v-20H-8v-33H8v14h10v14h10v-14h10v-14h8v-18h-8v-14H28v-14H18v14H8v14H-8v-41H8v-19H-8V77H8v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v28h-16v19h16v41h-16v-14h-10v-14h-10v14h-10v14h-8v18h8v14h10v14h10v-14h10v-14h16v33h-16v20h16v44h-16v-17h-6v-13h-6v-14h-8v-14h-7v-10h-9v-14h-12v14h-9v10h-8v14h-8v14h-7v13h-6v11zm2-167v27h8v-27zm-4 58v-14H82v-14H72v14H62v14h-8v18h8v14h10v14h10v-14h10v-14h16v14h10v14h10v-14h10v-14h8v-18h-8v-14h-10v-14h-10v14h-10v14zm4 46v27h8v-27z"/>
</g>
<use xlink:href="#by-c" transform="matrix(1 0 0 -1 0 900)"/>
<path d="M-8 408H8v14h7v8h8v14h7v12h-7v14h-8v8H8v14H-8Zm216 0v84h-16v-14h-7v-8h-8v-14h-7v-12h7v-14h8v-8h7v-14ZM62 459h8v-18h-8zm76 0v-18h-8v18zm-42-59h8v-18h-8zm0 100v18h8v-18Zm-50-75h14v-11h10v-10h5v-10h6v-14h8v-14h4v-13h14v13h4v14h8v14h6v10h5v10h10v11h14v50h-14v11h-10v10h-5v10h-6v14h-8v14h-4v13H93v-13h-4v-14h-8v-14h-6v-10h-5v-10H60v-11H46Zm50 9v-15h-8v-10h-8v25h8v9h5v14h-5v9h-8v25h8v-10h8v-15h8v15h8v10h8v-25h-8v-9h-5v-14h5v-9h8v-25h-8v10h-8v15z"/>
</g>
<path fill="#007c30" d="M110 320h530v160H110Z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

+145
View File
@@ -0,0 +1,145 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-bz" viewBox="0 0 640 480">
<defs>
<radialGradient id="bz-a">
<stop offset="0" stop-color="#ffef5d"/>
<stop offset="1" stop-color="#ea5700"/>
</radialGradient>
<radialGradient id="bz-b">
<stop offset="0" stop-color="#952d1a"/>
<stop offset="1" stop-color="#570a00"/>
</radialGradient>
<radialGradient xlink:href="#bz-a" id="bz-c" cx="247.1" cy="238.3" r="36" fx="247.1" fy="238.3" gradientTransform="scale(1.22624 .8155)" gradientUnits="userSpaceOnUse"/>
<radialGradient xlink:href="#bz-a" id="bz-d" cx="322" cy="152.9" r="10.6" fx="322" fy="152.9" gradientTransform="scale(.93615 1.06821)" gradientUnits="userSpaceOnUse"/>
<radialGradient xlink:href="#bz-b" id="bz-e" cx="364.2" cy="237.8" r="36" fx="364.2" fy="237.8" gradientTransform="scale(1.2242 .81686)" gradientUnits="userSpaceOnUse"/>
<radialGradient xlink:href="#bz-b" id="bz-f" cx="468.1" cy="156.1" r="10.7" fx="468.1" fy="156.1" gradientTransform="scale(.95596 1.04607)" gradientUnits="userSpaceOnUse"/>
</defs>
<path fill="#ce1126" d="M0 0h640v480H0z"/>
<path fill="#003f87" d="M0 34.3h640v411.4H0z"/>
<circle cx="320" cy="240" r="188.6" fill="#fff"/>
<circle cx="320" cy="239" r="156.3" fill="none" stroke="#552300" stroke-width="3.9"/>
<path fill="#007f00" d="M302 73.2c14-15.2 26.9 2.3 26.5 10.6C328.2 92 314 110 301 95.5c13.4 3.4 17.4-11.5 24.1-11.7-6.7.2-9.5-14.6-23.2-10.6zm-147.2 119c-7.4-19.4 14-23 21.3-19 7.3 3.9 17.3 24.6-1.6 29.6 9-10.4-2.7-20.5.2-26.6-2.9 6-17.5 2-19.9 16M471.9 173c19.4 7.6 7.6 25.8-.2 28.4-7.9 2.7-30-4-21-21.2 1.6 13.6 17 12 19.7 18.1-2.6-6.2 10.3-14 1.5-25.3M218.8 377.4c-20.7-2-14.3-22.7-7.5-27.4s30-4.3 26 14.7c-5.3-12.6-19.7-6.8-24-12 4.3 5.2-6 16.3 5.5 24.7m209.3-15c.3 20.7-21.1 16.8-26.6 10.6s-7.7-29 11.8-27.3c-12 6.6-4.6 20.2-9.4 25 4.8-4.8 17.1 4 24.2-8.2zM170 153c-1.9-20.6 19.8-18.3 25.7-12.6 6 5.8 10 28.4-9.6 28.2 11.5-7.6 3-20.5 7.4-25.6-4.4 5-17.3-2.8-23.5 10m22.2 193c-20.5-3.5-12.7-23.7-5.6-27.9s30.1-2.3 25 16.4c-4.5-13-19.3-8-23.1-13.6 3.8 5.5-7.2 16 3.7 25zM354.3 74c18.6-9.2 24.3 11.7 21 19.3-3.2 7.5-23 19.4-29.8 1.3 11.2 7.9 20.3-4.7 26.7-2.4-6.4-2.3-3.7-17-17.9-18.2M394 388.3c-9.3 18.5-26.5 5.3-28.5-2.7s6.5-29.3 23-19c-13.8.5-13.4 16-19.8 18 6.4-2 13.3 11.4 25.3 3.7m90.5-178.7c15.6 13.7-1.7 26.8-10 26.7-8.2-.1-26.8-13.8-12.5-27-3 13.4 12 17 12.4 23.6-.3-6.7 14.5-9.8 10-23.3zm-263-108.8c4.7-20 24.5-11.2 28.4-3.9s.5 30-18 23.8c13.3-3.7 9.3-18.6 15-22-5.7 3.4-15.5-8-25.4 2.1m-61.6 172.5c-18.2-10-4.2-26.5 4-28.1 8-1.7 29.2 7.7 18 23.7.2-13.7-15.4-14-17.2-20.5 1.8 6.5-12 12.7-4.8 25zm263.6-159.6c20.6-3 19.4 18.7 14 24.8-5.5 6.2-28 11.4-28.9-8 8.2 11 20.8 1.9 26.2 6-5.4-4.1 1.9-17.3-11.3-22.8M306.3 408.1c-19 8.4-23.8-12.7-20.3-20 3.6-7.5 23.9-18.6 30-.1-11-8.4-20.5 3.8-26.8 1.3 6.3 2.5 3 17.2 17.1 18.8M476.8 293c8.6 18.8-12.6 23.7-20.1 20.2s-18.8-23.6-.2-29.7c-8.4 10.9 4 20.3 1.4 26.6 2.5-6.3 17.3-3 19-17.1zm-325.1-60.6c-12-17 8-25.7 16-23.6s22.8 19.8 5.7 29.2c6.2-12.3-7.6-19.3-6.3-25.9-1.3 6.6-16.5 6.1-15.4 20.2zM264 395.6c-19.6 7.1-23-14.2-18.9-21.4 4-7.2 25-16.9 29.9 2-10.3-9.1-20.7 2.4-26.8-.5 6 2.9 1.8 17.3 15.8 19.9m-5.7-314c11.6-17.2 27-2 28 6.3.9 8.1-10.3 28.2-25.4 15.8 13.8 1.3 15.4-14 22-15.2-6.6 1.2-11.7-13-24.6-7zm200.2 252.1c1.3 20.6-20.3 17.7-26 11.7-5.8-5.9-9.1-28.6 10.4-27.8-11.7 7.2-3.6 20.4-8.2 25.4 4.6-5 17.3 3.3 23.8-9.3m-5.3-194.4c20.4 4 12 24 4.7 28s-30.2 1.3-24.4-17.2c4 13.1 19 8.7 22.6 14.4-3.6-5.7 7.7-15.7-3-25.2zm-258.4-14.6c.2-20.6 21.5-16.2 26.8-9.9s7 29.3-12.4 27c12.2-6.3 5-20 10-24.7-5 4.7-17-4.5-24.4 7.6M169 311c-18.6-9.4-5.1-26.4 2.9-28.3s29.5 6.7 19 23c-.4-13.7-16-13.4-18-19.8 2 6.4-11.6 13.1-4 25zM392 91c19.5-7.3 23 14 19 21.2s-24.9 17.1-29.9-1.7c10.4 9 20.7-2.6 26.9.3-6.2-2.9-2-17.3-16-19.8m-41.3 314.8c-15.2 14.2-26.7-4.1-25.8-12.3s16.3-25.3 28.2-9.9c-13-4.3-18 10.4-24.9 10 6.8.4 8.5 15.3 22.5 12.2m132.7-158c14.2 15.1-4.4 26.5-12.6 25.5s-25.4-16.3-9.8-28c-4.4 13 10.3 18 10 24.7.3-6.7 15.4-8.4 12.4-22.2"/>
<path fill="#005800" d="M301 95.5c13.4 3.4 16.7-11.3 23.5-11.5-4 4.7-14.2 16.7-23.5 11.5m1-22.3c14-15.2 26.9 2.3 26.5 10.6-11.5-20-15-17-26.6-10.6zM174.4 202.8c9-10.4-2.8-19.9 0-26 2.6 5.6 8.9 20.1 0 26m-19.7-10.7c-7.4-19.3 14-22.9 21.3-19-23.1 1.4-22 6-21.3 19m295.9-11.8c1.6 13.5 16.7 11.3 19.3 17.5-5.9-2-21-7.1-19.3-17.6zm21.2-7.3c19.4 7.6 7.6 25.8-.3 28.4 14.7-17.8 10.5-20 .3-28.4M237.3 364.7c-5.3-12.6-19.2-6.4-23.4-11.7 6.2.3 22 1.2 23.4 11.7m-18.5 12.7c-20.7-2-14.3-22.7-7.5-27.4-9.2 21.1-4.6 22.1 7.5 27.4m194.5-31.7c-12 6.6-4.2 19.6-9 24.3-.4-6-1.3-21.8 9-24.3m14.8 16.7c.3 20.7-21.1 16.8-26.6 10.6 22.3 6.6 22.7 2 26.6-10.6M186 168.4c11.5-7.5 2.7-19.8 7-25 1 6.1 3 21.8-7 25M169.9 153c-1.9-20.6 19.8-18.3 25.7-12.6-22.7-4.9-22.8-.2-25.7 12.6m41.5 181.5c-4.4-13-18.7-7.6-22.5-13.2 6.1.7 21.9 2.7 22.5 13.2M192.1 346c-20.5-3.5-12.7-23.7-5.6-27.9-10.6 20.5-6 21.8 5.6 27.9M345.4 94.6c11.3 7.9 19.7-4.7 26.1-2.5-5.4 3-19.3 10.6-26 2.5zm8.9-20.6c18.6-9.2 24.3 11.7 21 19.3-3.5-22.8-8-21.1-21-19.3m34.2 292.6c-13.8.5-12.8 15.6-19.3 17.6 2.5-5.6 9-20 19.3-17.5zm5.5 21.7c-9.3 18.5-26.5 5.3-28.5-2.7 16.7 16 19.2 12 28.5 2.7m68-179c-3.1 13.4 11.9 16.3 12.2 23-4.9-3.8-17.2-13.7-12.2-23m22.5.3c15.6 13.7-1.7 26.8-10 26.7 19.9-12 16.7-15.4 10-26.7m-252.6-89c13.3-3.6 8.8-18 14.6-21.5-1 6-4 21.5-14.6 21.6zm-10.4-19.8c4.7-20 24.5-11.2 28.4-3.9-20-11.7-21.6-7.2-28.4 4zm-39.5 168c.1-13.6-15.2-13.3-17-19.8 5.6 2.7 19.9 9.7 17 19.9zm-22 4.5c-18.3-10-4.3-26.5 3.9-28.1-16.8 15.9-13 18.6-4 28.1zm248.6-142.8c8.2 11 20.2 1.6 25.6 5.7-6.1 1.2-21.7 4.1-25.6-5.7m14.9-16.8c20.6-3 19.4 18.7 14 24.8 3.7-22.7-1-22.5-14-24.8M316 388c-11-8.4-19.9 3.9-26.1 1.4 5.5-2.8 19.7-9.8 26-1.4zm-9.7 20.1c-19 8.4-23.8-12.7-20.3-20 2.7 22.8 7.2 21.4 20.3 20m150.2-124.7c-8.4 10.9 4 19.7 1.5 25.9-2.8-5.4-10-19.5-1.5-26zm20.3 9.5c8.6 18.8-12.6 23.7-20.1 20.2 23-2.8 21.6-7.2 20.1-20.2m-303.3-55c6.2-12.3-7.7-18.6-6.4-25.2 3.8 4.8 13.5 17.3 6.4 25.2m-21.8-5.7c-12-16.9 8-25.5 16-23.5-22.1 7-19.8 11-16 23.6zm123.3 144c-10.3-9.1-20 2.5-26.2-.4 5.7-2.4 20.4-8.5 26.2.3zm-11 19.4c-19.6 7.1-23-14.2-18.9-21.4 1.1 23 5.7 21.9 18.9 21.4m-3-291.9c13.7 1.3 14.7-13.8 21.3-15-3.1 5.3-11.4 18.8-21.4 15zm-2.7-22.2c11.6-17.1 27-1.8 28 6.3-14.5-18-17.6-14.3-28-6.3M443 317.6c-11.7 7.2-3.3 19.8-7.9 24.8-.7-6.1-2.3-21.8 8-24.8zm15.6 16.1c1.3 20.6-20.3 17.7-26 11.7 22.4 5.7 22.7 1 26-11.7m-25-183.6c4 13.1 18.5 8.3 22.1 14-6-1-21.8-3.5-22-14zm19.7-10.8c20.4 4 12 24 4.7 28 11.3-20.1 6.8-21.6-4.7-28m-244 2.6c12.2-6.4 4.7-19.6 9.6-24.2.3 6.1.8 21.9-9.6 24.2m-14.4-17.2c.2-20.6 21.5-16.2 26.8-9.9-22-7.1-22.6-2.4-26.8 10zm-4 181c-.3-13.7-15.6-12.8-17.6-19.2 5.7 2.4 20.2 9 17.6 19.2M169 311c-18.5-9.4-5-26.4 3-28.3-16.2 16.4-12.3 19-3 28.3m212.2-200.4c10.4 9 20-2.8 26.2 0-5.7 2.6-20.3 8.7-26.2 0M392 91c19.5-7.3 23 14 19 21.3-1.2-23-5.8-21.9-19-21.3m-38.9 292.6c-13-4.3-17.4 10.2-24.2 10 4.3-4.5 15.4-15.8 24.2-10m-2.4 22.2c-15.2 14.2-26.7-4.1-25.8-12.3 10 20.7 13.8 17.9 25.8 12.3M461 245.3c-4.4 13 10.2 17.3 9.9 24-4.5-4.2-15.8-15.3-9.9-24m22.4 2.5c14.2 15.1-4.4 26.5-12.6 25.5 21-9.9 18.1-13.6 12.6-25.5"/>
<g fill="#730000" stroke="#000" stroke-width=".5">
<path d="M349 120.3s.6-1.3 1.7-.6c1 .8 1.3 4.2 1.3 4.2l-1.6.8s.9-1.3-1.3-4.4zm-8.8 30.7s.8-1-.3-3.4l1.5-.5s.6 1.8-.2 3.9h-1m27-5.4-3.7 2.3 1.9.8 4.5-2.6-2.7-.5m-49.7 14.6c-1 .8-1 2.1-1.7 3-.4.7-2 1.8-2 3-.2 1.1-.3 1.9.2 3.5.6 1.5 3 8.5 2 13.7-1 5.3-.6 7.5-.3 8.3.4.8 1.6 3 2.3 3 1.6-.2.9-.7 1.5-1.7 1.4-2.5 0-22.2-.7-27.6-.5-4.2-2.5-8-2.7-8.4l-.8-2.6c-1.5-3.5-3.3-6.5-3.3-13.9 0 0-4.7 1.1-8.8-8.2-2.2-4.7-5.3-4.2-9-5.7l1.6-1.1s3.2 1.6 4.7 1.6c1.6 0 1-3.2 1-3.2l1.7-1.5v6.8c0 3.1 4.3 7.4 6.8 8.7 1.6.8 3.6-2.4 3.1-5.6-.5-3 0-7.3 0-7.3l2.2 1.3s-.8 1.3-.6 2.1 1.3-.7 2.1-1.5q-.1.1 1 .2l-2.3 4c-.8 1.2-.8 6.2-.8 8 0 2 .7 6.2.7 7.6 0 1 1.8 5 3.3 7.4l1.6 3.5c1.2 1.9 1.3 3.2 2 4.7q.6 1.1 1.6 7l.7 7c.2 2.4 2.2.6 4.5-1 2.4-1.8 2.4-6 2.4-6s1.8-1.6 1.5-.7c-.2 1 1 2 1 2-1.4 3.3-.6 2.9.9 2.8s6.5-4 6.5-4c.7-.2 3.8-.2 3.3 0s-1.4 1.7-1.4 1.7l3.3-.4c-1.1.9-5.5 3.4-6.5 4a91 91 0 0 1-8.6 4.1c-2.3 1-6.7 3.2-6.9 5.4 0 2.3.3 8.3 0 10.3l-1 10.6h-10.4s2-7.6 0-9.7c-2.1-2.1-7-8.4-10-10.5-3.2-2 2-.5 2-.5v-2.1l4.8 5.7s8.3-7.3 0-17.3c-2.6-3.1-5.3-7.9-7.3-8.4-2.2-.6-3.3-1-6.9 0-3.7 1.1-12.6 1.1-16.3-4.8l3.1-.5 2.7-1s-1.1 3.7 6.3 3.7 8.4 0 7.8-6.8l2.2-1.1 1.6 1.5s-1.1 3.8-.5 5.3c.5 1.6 3 2.7 5.1 4.2q1.4 1 2.2.8c.9-.1 1-.1 2.2-1.3 1.8-2 1.4-1.8 3.2-3.4l1-1.6z"/>
<path d="M319 155c.5-.4 1.2-1.9 2-3.1 1.1-2 2.5-3.2 4-5.6 1.5-2.2 2-5.6 1.5-7.9l1.4.8v3.7l2.7-2 .8.4s-5.9 6-11.3 15.9zm-51.3-20.3c.8 1.4 1.6 4 3.9 6l1.6-.4s-3.6-4.2-3.6-6l-1.9.4m9.2-2.4s.5 5-.8 6.9l1.6-.8s1-3.4.7-5.3zm51.4-15.7s-.3 7 1.1 11.3l1.9-.5s-.3-1.3 1.2-1.9c1.6-.5 5.3-2 7.2-3.6l-.6-1.6s-2.8 2.3-4.2 2.9c-1.3.5-2 1-3.1.7s-2.4-2-1.6-6l-1.9-1.3m20.7 32.8s-.4 5-.2 7.2l1.7.4s-.4-6 .7-6.5l-2.2-1m7.5 3.7s-1.9 3.2-4 3.5l3.4-.7s1-.5 2.4-2l-1.8-.8"/>
</g>
<g fill="#289400" stroke="#030" stroke-width=".5">
<path d="m326.6 138.4 1.3.8 1.3.2 3.2 2.6c1.2 1 1.2-.2 1.2-.2l.8 3.1h1l-.2 3.2 1.8-1.6 2.2 1.9s1.5-1.4 2.3-1.4 1.1-.8 1.1-.8h.1q-8-3.6-5.9-7.6c2.6-4.4 6.8-1.6 8.1-1l19 10.2s1.3-.8.4-1.6-1.4-2.7-1-3.5c.2-.8 2.4 2.4 3.4 2.7l3.5.7v-1s3 2.2 3 3.3c0 0 2.3-1.2 1.5-1.9s3.5 1.7 3.7 3l1-1c-.2 0 .2-3.2 1.3-4.6a5 5 0 0 1 2-1.9s1-1.7 2-1.7c0 0-1-.6-1.4-1.4-.5-.8-1.6-1.2-1.6-1.2s1.4-1 1.8-1.5q.7-.8.8-.7c.1.1-2.2-1.9-3.8-2.2 0 0-.1-2.5-2-2.7h.8s-1.4-2.8-2.8-2.8c0 0 .9-1 1.6-1.1 0 0-1.6-2.2-3.9-1.4l1.5-.6s-1-1.1-4.4-.6c0 0 .3-1.3-1.2-2.4 0 0-1.2 0-1.2 1 0 0-1.2-1-2.7-1-1.4 0 .5 1.6.5 1.6s-2-1.3-3.1-1c0 0 .5-2.2-.8-3.3 0 0-1.4.7-1.8 1.7l-.4-1s-2 2.4-2.4 1.7c-.3-.4-.6-2-.6-2l-1.1 1.7.2-2.4s-1.4.8-2.5 3.3c0 0-1.3 1.3-1.3 2.4 0 0-1.1-1.2-2 0-1 1.4 0 1.1 0 1.1s-.5.5-1.5.7l.2.8s-1.2-.7-2.2-.4l.5 1.2s-2.6.2-2.7-2c0 0-2.1-1-2.4.2l-1.6 1s-.5-1-1.3-1.2c-1-.3-.2 1.3-.2 1.3s-.3-1.2-1.5-1.8c-1.2-.5-.2 1-.2 1s-1.5-1.2-.8-2.2c0 0-1.4 1.4-.7 2.7l-1 .7s-.5-.5-.4-1c0-.3-1.7 1.3-1.7 1.3s-1-2.6 0-2.6c.1 0-1.8 0-2.1 2.2 0 0-1.3 0-2.5.4s1 1.3 1 1.3-2-.4-3 .2l.7.9s-.7-.7-2.4-.1.4.8.4.8-1.7-.4-2.6 0 .3 1 .3 1-3.2-1-3.7-.6c-.5.3 1 1.8 1 1.8s-2 .5-2.3 2l1.8.7s-.8.4-1.2 1.1 1.2.4 1.2.4-2.2 1.6-2.2 2.8c0 0 1.6.5 2.7-.7s.4-.8.4-.8l.1.8s2.3-1 2.3-1.6c0-.5-.4.8-.4.8l2.2-1.2z"/>
<path d="m324.7 108-.5-2.2 5 .6.9-2s2.4 1 3.1 1.8c0 0 4.6-1.2 6-.7l-.6 2.1s4.2.3 5.6.8c1.2.5-.6 1.6-.6 1.6s4.8.6 6.8 1.8c2.2 1.3 2.2 2.4 1.1 2.7l2.6 4.2s-4.2.5-5 1.5c-.7 1.1-1.5-1-1.5-1l-.8 2.9s-2.6-1.4-3.7-2.4c0 0-1.3 1.6-.5 2.4l-4.8-3.1s-2-.3-2 1.5l-3-3.4-2.6.8s-.8-1-1.7-1.4c-1.1-.2-.3 1.4-.3 1.4l-1.6-1.9-1.6-1.8s-1.3 1.8-2.4 1.8-1-1.2-.8-2.1c.3-.8-3.1-1-3.4 0 0 0-1-4 2.6-5l3.7-1zm-19 13.3-1.6 1.6-1-.5-1.9 2.1-.4-1.1-1 1.7-1.7-.6-.8 1.3-1.5-.3s-1.2 1.2-2 1.5c-.8.2 0-1.8 0-1.8s-1.2 2-2 2-.6-1-.6-1-.5 1.4-1.4 1.6c-.9 0-.5-1-.5-1l-1.6 1.2v-1l-.7-.3s.4-1.8 1.1-2.2-.7-1.5-.7-1.5l.7-.8s-2-.5-2-.1c0 0 1-2.6 2.4-3.1l.1-3s1.4-1.1 2.6-1.2c1.4-.2-.4-2.3-.4-2.3l3.2-1.8.4-2.3 4.7.4 1-2 3.8 1 3.3-1.7 2.3 2.7 3.5.3v3.1s4.1 1.3 4.6 1.7c0 0-.8 2.5-.8 3 0 0 3-.8 3.8-.6l.4 3.4s5 1.6 5.3 2.5c0 0-1 .7-1.7 1.6 0 0 .6 3 .6 4l-.4.5s-1.4-1.3-2.6-1.5l-1 2.1-1.7-1.1h-1.1s-.9-1-1.6-1v-1l-1.4.9s-2.2-1.1-2.2-1.8l.1-1.5-2.2 1.5s-.5-1.1-.4-1.6-.9 1.1-.9 1.1-1.2-2-1-2.4l-.4 1.7s-2.3-.8-2.6-2.4z"/>
<path d="M274.5 130.9s4.1 2 4.1 3c0 0 1.1-2.1.5-3l1.6 1.1s.5-1.9-.1-2.5c-.5-.5 3.5-2.1 4.4.5 0 0 2.4-2.5-2.3-4.7 0 0-.4-1.6 2.5-1.2 0 0-.2-1-.9-1.3h2.7s-1.6-1.4-4-1.8-1-.7-1-1.2c-.2-.5 0-2.2 0-2.2s-1.4-.5-2.5 0l.4-.4s-2.5-.7-3.5-.1c0 0-1.5-.6-1.3-2.1 0 0-1.5-.1-2.1 1.4 0 0-1.4 1.6-3.3 1.6-.3 0-1.7-.8-1.7-.8l-1.2 2.7H265l.5 1s-2.8-.8-3.7 0c0 0 1.1 1.7.8 2.8 0 0-2.2.4-2.7.8s.8.7.8.7-2.6.8-3.2 1.6l1 .7-1.2 1.6 1 .2-2.5.8c-.9.3 1.5.5 1.5.5l-1.1 1 1.8.3s-1.4 4-1.5 5.8c0 0 2.2-2.7 2.8-3l-1.8 3s3.4-1 3.7-1.6l.5-1 .1 1.6s1.3-1.7 1.5-2.4 2 .7 2 .7v-1l2.4.7q1-.2.8-.3l1.6-.2-.3 1.4s1.2-.8 1.5-1.6c.2-.8.8 0 .8 0l.8-3.1zm-13.4 13.8 1.6 3.3c-1.3 0-3.1 1.5-3.1 1.5.3 5.4-1 5.1-1 5.1.3 1-.3 2.8-.3 2.8l7.7-4.6.1-.5 9.2-4.3.3.5 2.6-1.5 1.9 4.9-1.9 1c.1 1.7 2.1 4.6 2.1 4.6l2.4-.6 2.7-1v1c0-.3 2.9-1.3 2.9-1.3l1.3 1.3c1-.1 2.7-2.5 2.7-2.5l2 .8s.7-1.2.7-2 2.6-.8 2.6-.8l1.7 1.2 2.3-1.8s.7 1.3 1.6 1.5 3.4 2 3.4 1.6 1-2.5 1-2.5l4.1 1.6c-.5-1.8-2-4-2-4s2-1.6 1.7-2-1.6 0-1.6 0l1.2-2.4h-1.6l.5-.6-2.5-1 1.3-2.8c-.6-.7-7.3-2-7.3-2l1.6-1.5s-.8-1.2-1.6-1.2-4.9.1-5-.3l-1.8-1.8-2.6 1.9-1.3-.4-2.2.8s0 1.3-.3.4-2.3-2.8-2.3-2.8c-.4.7-3 3.8-3 3.8s-.5 1.7-1.3.5c-1-1.2-3-2.4-3.4-1.5-.2 1.1-2.1 2-2.5 1.8-.4-.3-2.5-.1-2.7.5-.1.7-2.5 2.4-2.5 2.4-1.4-.7-3.8-.3-3.8-.3s-.7 1.1-.8 2zm44.2 39.6v-2l2.3 1.5 1.4-1.5 1.8 1.7 1-1.7v2.8l2.7-2.3 1.5.6v-2.2s1.9-3.1 1.1-3.7l1.6-.5s-2.7-2.6-3.4-3.1c-.8-.6-1.9-.6-1.9-.6s-2-2-3.4-2.7c-1.3-.5-2 .6-2 .6s-.8-1.5-2.2-1.8c-1.3-.3-1.3 1-1.3 1s-1-1-2.2-1.4c-1.3-.6-.4 1.2-.4 1.2l-4.5-1.4.6 1.4-4.2-1.1.5 1.5-3-.5-.2 1.3-4.2.8.8 1.4-2.6-1.1v1.9l-3 1 1.1 1-4.7 2.4c-.7.5 1.6 1.6 1.6 1.6l-4.2-.6 1.6 1.4-3.7 3.4 2.6 1.9-1.6 2.3 4 .8 1.5 2.6 3.2-.6v3l4.7-3.7s3.4 3 3.7 2.1c.2-.8.2-3.4.2-3.4h1.7V187l1.2 1 2.2-3.1 2.8 3.9 2.2-5zm19.1-11.8-.4-4.5-1.4 1.4.6-4.2-2.2-.4.8-4.1-1.6-.8.4-2 1.6-1.1 2.8-2.8 6.6.1.7-2.1 4.7.8c.8.8 3.3-1.8 3.3-1.8h1l1 2s3.4-.4 5 .6l-1.9 2.6 3.5.3 2.3.5 2.4-.8 3.2-.2.7 1.3h3l-1 1.1 3.8 1.8-.8.8s2.2.8 3.7.8h.8s.8 1.8-.3 2.6c0 0 1.1 2.6 3.4 3.1 2.4.5 2.4.5 2.7 1s0 3.2-2.7 3.2v2.7s-2 1.8-2.3 2.6l-1.6-1s-1.3 1.5-1.3 2.5c0 0-3.5-4.5-4.7-4.7-1.4-.2-1 2.6-1 2.6l-3.8-3.1-.5 2.1-3.1-2.6-1.9 1.3-3.3-3.5-3.2.4 1.2-1.6h-3.9l-.7-3.4-.6 2.8-2.4-1.6-3 3.3s-.4-.4-.9-2c-.5-1.5-1.8 2-1.8 2l-1.1-2.5-1.3 2.4s-1-1.8-2.1-2.4c-1-.5-2 3-2.4 4.5zm.6 10.3.2-1.6 5.6-2.2 4.7-1.7 2.3-1.1 1.1 1.9 1.4-2.7 2.1 2.8 1.2-1.5 1.8 1.4h1.6l.3 2s3.9.3 4.2-.5.8 2.7.8 2.7l3.7.5.8 4.2s1.8 3.9 1.2 5.4c-.5 1.7-2-2-2-2s-.3 2.9-.6 3.7-5-.8-5-.8l-2 3.9s-2.2-3.1-3.2-3.1-1 3.1-1 3.1l-4.5-5.3c-1.3-1.5-1.6 1.6-1.6 1.6s-2-3.4-2-4.4-1.9-2.2-1.9-2.2-3.2 3.7-5.6 4.7c0 0 .3-2.3-.5-3-.7-.9-3 1.5-3 1.5s-1.7-3.6 0-7.4z"/>
</g>
<g fill="none" stroke="#004b00" stroke-width=".5">
<path d="m350.8 124.5.5 2s1.8-.4 3-.3l-.7 2.2s2.3-.4 3.4.3l-.5 1.2 2.7 1.2-2.5 2s4 1.5 4.9 2.7c0 0-2.7 1.8-3 1.7-.5-.2-.2.8.5 1.7l-2.2-.1s.9 2 .8 2.8c-.2.8-3.8.6-3.8.6m14.1-5.3s.7-3.9-.4-4.9c0 0 2.5 2.2 4.2 2.3s0-3.2 0-3.2 2.3 1.2 3.5 1.5c1.2.2-.9-2.4-.9-2.4s.7-1.3 2.7-.1m-45.4-15.5s0-1-.3-1.4c-2.4-3.2 2.4 2.4 3.4 2.6m4.5 0s1.6 1.2 2.3 1.2c.8 0-.5-3.1-.9-3.5-.3-.4 2.9 1.3 4 1.4 1.2.3 1.4-2 1.4-2s3.6.7 4.4 1.2m-25-.7-.5-3m-24.2 12.7c-.2-.3 1-2 .5-2.9 0 0 .7.6 1.4.7s.4-2.2.4-2.2l.7.3s2-1 1.7-1.8 1.4 1.2 1.4 1.2 1.1-1.2 1.1-1.7 1.4 1.2 1.4 1.2 1.5-.3 1.5-1.2 1.8.3 1.8.3.8-1 .7-1.8m-19.7 9.8s.9-2-.1-3.4m-23.6 9.8c0-1 .5-3.6 0-4s1 .4 2.2.7m9.3-.4c-1.2-1.1-1.9-1.7-3.7-1.7m-16.2 8.3c.3-.7.8-2.4.5-3.3m25 51.7 1.3-2.6 1.6 3.7 1-2.3.4.7 2.4-2.5 2.5 3.8m40.7-16.5 1.7-3.3 2.3 1.2 1-3.3 2.4 1.5 1.3-3 2.7.7.2-2.2s1.8 1 2.3 1.9c.6.7 0-2.7 0-2.7l2.2 1s1.5-1.6-.6-2.4"/>
<path d="m343.6 163.1 2.3 3.4 2-2.2 1.7 3.8 2.3-1.4 3.2 1.9 1.5-1.2 3.5 2.5 1.4-3 3.2 1 2-3.5m-84.4-9.2s1.4-2.3 1-3.4c-.7-1 2.8 1.8 2.8 1.8s.7-2.3.3-3.4c-.6-1 3.9 3.2 3.9 3.2s.7-3.7 0-4.4c-.8-.8 4.3 1 4.3 1s2-.6 1.2-1.6c-.8-1.1 3.4 1.5 3.4 1.5s1-2.6 0-3.6 3.2 1.3 3.2 1.3l-1.6-2.8 3.4.2-.3-3.2m30.3 45.1 2.2-1 2 2 2.2-3.5 2.6 2.5.4-2.5 2.8 1.2.6-1.6 3.1 1.7.3-2.4 1.6.5.3-1.5"/>
</g>
<path fill="#9dd7ff" d="M283.1 298.1a70 70 0 0 1-6-13l42.4-37.2 42.3 37.1a65 65 0 0 1-6.2 13.3l-.3.5-3.2-1.2s-1.4 1.3-2.5 1.4c-1.4.2-2.7-1.3-2.7-1.3s-1.8 1.6-3.7 1.3c-1.9-.2-2.6-1.4-2.6-1.4s-2 1.6-3.4 1.3c-1.2-.3-2.1-1.2-2.1-1.2s-1.2 1.5-2.8 1.2-3-1.2-3-1.2-2.5 1-4 1.3c-1.6.3-3-1.4-3-1.4s-2 1.4-2.8 1.4-3.7-1.4-3.7-1.4-3 1-4.1 1-4-1.3-4-1.3-2.9.8-4.1.8c-1.4 0-3.4-.8-3.4-.8s-2.3 1.1-3.6.8q-2.2-.6-2.4-.8c-.2-.2-2.6 1.1-4.2.8s-3.4-1.4-3.4-1.4-.3.8-3.4 1.4"/>
<path fill="#fff" stroke="#000" stroke-width=".7" d="M319.5 205.1V248l-42.3 37.4a84 84 0 0 1-4.4-27.1V205h46.7"/>
<path fill="#ffd83c" stroke="#000" stroke-width=".7" d="M319.5 205.1V248l42.2 37.4a84 84 0 0 0 4.3-27.1V205h-46.5"/>
<g stroke="#000" stroke-width=".5">
<path fill="#730000" d="M292.2 289.2c3.2 1.7 2 1.2 8.7 3.5a62 62 0 0 0 20.7 2.8c8 0 12.4-.7 15-1.4s3.1-1.8 3.1-1.8l-6.5 6.7s-26.3 1.4-31-1.7c-2-1-6-4.2-10-8z"/>
<path fill="none" d="M330.8 276.8s8.4 4.8 0 14m-37.8-1 12-11.6-1.3 15.4m6.3 1.4v-25.8m20.8 25.8v-27.4m-10.5 27.9V266"/>
<path fill="#ff0018" d="m310 270.6-5.4 1.7 5.4.6v-2.3m10.3-4-5.8 2.1 5.8.2v-2.4m10.5 1.6-5.8 2.2 5.8.3V268zm3.4 12.4c-.3-1.1 3.4-1 3.4-1s1 3.9 0 6.3l-3.1-.6s.3-2.6-.3-4.7z"/>
<g fill="#fff">
<path d="m294.8 288.1 10.3-10-.5 6s-5.3 3.5-5.3 5.9l-4.5-1.9m5.5 2.1s1-3.1 4-4.7l-.3 6.3zm14.7-17.3s4.2-.6 7.4 0c0 0-.5 4.2 0 5 0 0-5.8-1.4-8.1.8 0 0-.8-4 .7-5.8zm-8.9 1s4.2-.5 7.4 0c0 0-.8 4.8-.3 5.5 0 0-4.7-2.6-7-.4 0 0-1.6-3.3 0-5z"/>
<path d="M305.9 279.4s4.2-.4 7.3 0c0 0-.5 4.3 0 5 0 0-5.5-1.2-7.8.8 0 0-1.1-3.9.5-5.8zm8.4-.7s6-.8 9.1-.3c0 0-1.2 3.4.3 5.7 0 0-6.5-1.7-9 .3 0 0-2-3.9-.4-5.7zm-9 6.5 8.2.6s-.8 6-.3 6.7c0 0-6.6-1.5-7.8.6 0 0-2.2-5.4 0-7.9zm9.2 0s7-.5 10.3 0c0 0-1.9 4.5.2 8.4 0 0-9.2-2.6-10.5-.5 0 0-2.1-5.4 0-7.9zm10.8-12.3s4.2-.6 7.3 0c0 0-.5 4.2 0 5 0 0-5.8-1.4-8 .8 0 0-.9-4 .7-5.8zm0 5.8s4.2-.5 7.3 0c0 0-.5 4.2 0 5 0 0-5.8-1.3-8 .7 0 0-.9-3.9.7-5.7zm.5 6s4.2-.6 7.4 0c0 0-1 6.6-.6 7.4 0 0-4.8-2.3-7-.3 0 0-1.4-5.2.2-7z"/>
<path d="M334.5 285.2s1.3 5 3 5.6l-2.2 2.8s-2.9-2-3.2-4.4c0 0 1.9-2.1 2.4-4z"/>
</g>
</g>
<g stroke="#000" stroke-width=".6">
<path fill="#006ac8" stroke="none" d="M355.4 298.7a66 66 0 0 1-36 28.3 67 67 0 0 1-36.3-28.8h.1c3-.7 3.4-1.5 3.4-1.5s1.8 1.1 3.4 1.4 4.2-.8 4.2-.8 1 .5 2.4.8 3.6-.8 3.6-.8 2 .8 3.3.8 4.1-.8 4.1-.8 3 1.3 4 1.3c1.1 0 4.2-1 4.2-1s2.9 1.4 3.7 1.4c.7 0 2.8-1.4 2.8-1.4s1.4 1.7 3 1.4c1.5-.2 4-1.3 4-1.3s1.4.9 3 1.2 2.8-1.2 2.8-1.2.9.9 2.1 1.2c1.4.3 3.3-1.3 3.3-1.3s.8 1.2 2.7 1.4c1.8.3 3.7-1.3 3.7-1.3s1.3 1.5 2.7 1.3c1.1-.1 2.5-1.4 2.5-1.4l3.3 1"/>
<path fill="none" stroke-width=".5" d="M353.7 301.2c-1.4.1-1.6-.8-1.6-.8s-2 1.6-3.8 1.3c-2-.3-2.9-1.5-2.9-1.5s-2 1.6-3.4 1.3a5 5 0 0 1-2.3-1.1s-1.3 1.4-3 1.1-3-1.1-3-1.1-2.7 1-4.4 1.3c-1.6.3-3-1.5-3-1.5s-3.8 1.2-4.6 1.2c-.9 0-3.6-1.2-3.6-1.2s-1.9 1.1-3 1.1-4.2-1.3-4.2-1.3-3 .8-4.3.8c-1.4 0-3.5-.8-3.5-.8s-2.5 1-3.9.8l-2.4-.8s-2.7 1-4.4.8c-1.6-.4-3.6-1.4-3.6-1.4s-.3.7-3.5 1.4h-.1"/>
<path fill="#5ac800" d="M293.1 305.2s-.3.7-2.8 1.2l-.7.2.6-.2-.7.3a44 44 0 0 0 11.7 11c4.5 3 9.6 6.6 18.4 9.2a71 71 0 0 0 17.8-9c6-4.5 9.2-7.2 12.6-11.7-2.7 1.5-2.3 1.5-3.7 1.3-1.3-.3-2.3-1.3-2.3-1.3s-1.3 1.5-3 1.3c-1.6-.3-3-1.3-3-1.3s-2.2 1.5-4.4 1.4c-1.6-.1-3-1.6-3-1.6s-3.8 1.3-4.6 1.3c-.9 0-3.6-1.3-3.6-1.3s-1.9 1.2-3 1.2-4.2-1.4-4.2-1.4-3 .8-4.3.8-3.4-.8-3.4-.8-2.5 1-4 .8c-1.3-.3-2.4-.8-2.4-.8s-2.7 1-4.4.8c-1.6-.3-3.6-1.4-3.6-1.4z"/>
<path fill="#ffd800" d="M319.6 326.9a89 89 0 0 0 17.1-8.6c-1 0-4-1-2.9-1.2 0 0-1.2 1-2.3 1s-4.2-1.3-4.2-1.3-3 .7-4.3.7c-1.4 0-3.4-.7-3.4-.7s-2.6 1-4 .7l-2.4-.7s-2.8 1-4.4.7-3.6-1.3-3.6-1.3-2.4 1.3-4 1.4a55 55 0 0 0 18.4 9.3z"/>
</g>
<g stroke="#000" stroke-width=".5">
<path fill="#b34b00" d="M313.2 249c1.9-1.6 3-3 2.3-4.2-.7-1-1.8.6-3 .2 0 0-2-1.1-2.5-2-1-1.2-2.5-2.3-3.3-3.4-.9-1-4.2-5.3-9.1-10.3-1.5-.9-1.1-4.4-2.2-5.5 0-.8-10-10.6-13.4-14-1.5-1.1-2.2-1.8-4.7.5-2 1.7-2.7 3.6-.1 5.8l12.8 11.7c1.9 1.8 4.5 2.1 5.6 3l13 13.4c1.7 1.4 2.5 2.4 1.5 3.6-1 2 .1 2.3.3 2.3.2.1 1.1.1 1.7-.4z"/>
<path fill="none" d="m280.7 214 13.4 13.2"/>
<path fill="#fff" stroke-width=".6" d="m298.8 220 1.1-2.5c.2-.4 3.8-6.2 5.6-6.3l11.3 8.2c0 .5-5 7.8-5.3 7.2 0 0-13.2-5.5-12.7-6.6z"/>
<path fill="#ccb8c8" stroke="none" d="M306 222c-1.6-1.2-4.1-2.4-6.2-3.8l-.9 2c.7.8 10 5.1 11.6 6 0 0-1.8-2-4.6-4.2z"/>
<path fill="none" stroke-width=".4" d="m299.8 218 5 3.1c2.7 2 4.4 4 6.4 5.2"/>
<path fill="#782121" d="m277.1 253 25.5-31.7c.5-.4 2.9-.4 3.2 2l-24.2 33s-2.7-.3-4.5-3.4z"/>
<path fill="#730000" d="M362.7 253.3c-1 .7-2.4.8-2.4.8-1.7-1.9-3-4-5.4-6.5l-25.5-31.3 2.7-2.6 23 26.9c.6.7 4.6 4.9 8.4 9.8 0 0 .3 2-.8 2.9z"/>
<path fill="#fff" d="m338.1 220.3-4-5s-3.2.5-3.8 2.1c0 0-2.2 3.7-8.2 4.1 0 0 1.7 7 8.6 10.7 0 0 2.5-7.2 5-8.4 0 0 2.5-1.9 2.4-3.6z"/>
<path fill="#730000" d="M327.9 242q-.9-.3-2 .4c-.9.5-1.8.3-1.7-.7 0-.8 0-.7 1-1.4a6 6 0 0 1 5-.5l-2.3 2.1m27.8-27.7c-.2-.7-.4-1.4.3-2.2s.7-2.2-1-1.5q-2.7 1-.9 5.4z"/>
<path fill="#fff" d="m327.3 242.5 28.9-28.7 7.1 7.6s-1.5-.6-2-.2.5 1.9.5 1.9-1.3-.5-1.9-.1c-.7.4 0 2 0 2s-1.2-.8-1.8-.5c-.5.4 0 2.3 0 2.3s-1.5-.5-2-.1c-.3.4 0 2 0 2s-1.5-.7-2.3 0 .4 1.9.4 1.9-2-.8-2.7.4.1 2.2.1 2.2-1.6-.7-2-.4c-.4.4 0 2.3 0 2.3s-1.3-.8-2.2.2.1 2 .1 2-1.3-.8-2-.4.2 2.2.2 2.2-1.2-.9-2.1 0 0 2 0 2-1-1-2.2 0c-1 1 0 2.1 0 2.1s-1.5-.8-2.1 0 .2 1.9.2 1.9-1.2-.7-2-.3c-.7.4 0 2.1 0 2.1s-1.1-1.3-1.6-.6 0 2.4 0 2.4-1-1.3-1.6-.6c-.7.6.4 2 .4 2s-2-.8-1.5-.8z"/>
<path fill="#7e4b7e" stroke="none" d="m354.5 216.2-2.2 2.2.5 7.7s.5-2.2 1.1-.7c0 0 .2-1.8.7-1.5-.4-.2 0-7.8 0-7.8m-4.3 4.3-1.6 1.5.6 7.7s.4-2.9 1.1-.6v-8.6m-17.6 17.2-1.5 1.7.4 4.7s.5-3 1.1-.7l-.2-2.6z"/>
<g fill="none" stroke="#7e4b7e" stroke-width=".9">
<path d="M330.9 218.3c1 1 4 5 4 5m-2.6-2.9c-.2.6-.6 2.3-1.5 3.2m2-2.8c-.2.4-.2 1.7-1.5 3m2-2.4q-.3 1-.8 1.7m1-1q-.1.5-.4.8m-3.2-2.7a29 29 0 0 1-4.8 2.8m4-1.8a14 14 0 0 1-3.1 2.2m2.8-1c-.5.4-1.5 1.4-2.3 1.7m1.8-.5q-.7.7-1.5 1.1"/>
<path stroke-linecap="square" d="M311.3 224.7c.3-.6.9-1.8 1.6-2.8 1-1.4 1.3-1.6 1.8-2"/>
</g>
</g>
<path fill="#289400" stroke="#060" stroke-width=".5" d="M217 303.4c1.5.7 0-4.8.5-6.8.6-2.2 4.8 5.2 6.8 6.2 2.2 1 15.3-5.2 15.3-5.2l3.1-5.8 1.7 4.8s3.6-4.2 4.6-5.8c1.1-1.6 0 3.1-1 4.7-1.1 1.5 3.1 2.1 2.6 5.3-.5 3 4.2-2.2 4.2-2.2l12.1 1s2-7.3 5.3-11.5l1 4.8 5-5.1a66 66 0 0 0 41.3 39.2 67 67 0 0 0 40.2-36.6l6.7 7s5.3-1.6 6.3-2.2a70 70 0 0 1 15.5 5.6c1 .7.3-3.5.3-3.5s5.8 1.1 5.3 4.2c0 0 1.2-2.9 2.3-3.4s3.6 2.7 4.2 3.7c.5 1 13 2.6 14.7 3.6 0 0 1.3 1.6 1.3 2.7 0 0 2.7-.3 4.7-.3 0 0-1.5.8-1.5 2.4q0 2.5-2.4 3.6c-1.5.8 0 1.4 2 1.6 2.2.3 0 3-4.1 4.5 0 0-1 2.3.8 3.1 0 0-3.7.3-4.2-.8 0 0-1.3 2.5-1.3 3.8 0 0-4-1.3-5-1.9 0 0-1.6 1.6-.5 2.3 0 0-7.1-.7-8.5-3.4 0 0-2.5.8-2 1.7 0 0-5-3.4-6.6-3.4l-1 1.7s-3.5-2-4.5-2-.2 1.5-.2 1.5l-4.8-2.9-1.9 3-5-2.7c-1-.8-1.2 1.6-2 1.9 0 0-1.6-2.2-3.7-1.9 0 0-.8 2.6-.5 3.4l-7.1-1.5c-1.1-.3-.5 1.2 0 2.3 0 0-4.5-1.3-5.5-2l-.3 2s-3.7-.3-4.5-1l-2.3 3.1h-3.5l-.7 2.9s-6.6-1.9-7.2-.8c-.5 1 .3 2.6.3 2.6l-5.7-.7-.5 2.3s-6.7-2-8.2-1c0 0-2 2-3.4 2.6-1.3.5 0-.8 0-.8l-2-2.9s-2.4 1.3-3.8.8-5.5 2-6.8 1.3c0 0 0-1.9-1.1-2.4-1-.4-2.8-.4-3.6.8l-2.2-3c-1.2-2.2-3.1.1-3.1.1l-.3-2.5-3.6-.3c-2.2-.3-2.6-2.2-2.6-2.2s-5.6.6-6.4.3l1.4-1.3s-7.6 1.6-9.2 1c-1.7-.5 1.8-2.6 1.8-2.6l-8.4-2c-1.3-.4-9 1.2-10 1.2s-1.6-1.8-1.6-1.8-1.8 1.6-3.4 2.1c0 0-1.3-3.1-.5-3.4 0 0-5 1.3-5.3 2.6 0 0-1.2-2-1-3 0 0-2.4 3.8-3.5 4.6-1 .8-.2-1.9-.2-1.9s-2.9 3.7-4 4v-2.6s-8.4 4.5-10.7 3.9c0 0 0-1.9.8-2.4l-5.3-.2-4.2-1.1c-1.3-.2 1.9-1.6 4-1 0 0-5.8-2.1-7.6-1 0 0-.8-2.2 2.3-3 0 0-4-3.9-6.3-3.6 0 0 2.6-1.6 4.8-.8 0 0-2.5-6.6-4-7.4 0 0 5.5-1 7.1-.2z"/>
<path fill="#730000" stroke="#000" stroke-width=".5" d="M208.9 188.8 280 152c.3-2-.7-3.4-1.9-5-20.3 10-38.8 22.2-61.4 29.5-1.3.5-12.5 5.2-18.3 12.1a8 8 0 0 0-2 4.5s.2 3.1.9 4c0 0 .1.8 1.2 1.5 0 0 .7.3 1.1.2s1.4 0 2.6-2a52 52 0 0 1 6.7-8z"/>
<path fill="#fff" stroke="#000" stroke-width=".5" d="m266.1 152.4 9.2-4.4s3.1 2.3 2.8 5c0 0 .7 6 8.2 10.2 0 0-6.3 8-17.4 8.6 0 0 1.2-10.4-1.1-13.5 0 0-.4.4-.2-.1.3-1-.2-4.5-1.7-5.3z"/>
<path fill="none" stroke="#7e4b7e" stroke-width=".8" d="M276.9 153.6c-2 .8-8.3 4.1-8.3 4.1m5.2-2.1c0 1-.6 3.3 0 5m-.8-4.7c0 .5-.8 2.2 0 4.6m-1-4.1c-.2 1-.4 1.5 0 2.6m-.8-2v1.2m5.8-1.5c.3.7 2.9 4.8 4.5 6.5m-4.1-4.7c.3.8 1.7 3.6 2.8 4.7m-3-3c.4 1 1.1 2.7 2 3.7m-2-1.8a8 8 0 0 0 1.1 2.5"/>
<g stroke="#000" stroke-width=".5">
<path fill="#b34b00" d="m342.3 148.3 26.1 12.8c5.2 2.5 7.1.2 10 1.5l51.6 26.2c4.5 2 7 2.5 6.3 4.8-.1 3.7 1.7 3.7 2.2 3.8.4 0 2.1-.2 2.8-1.2l.6-.6c.6-.6.5-.7.7-1 2.1-3 3.3-5.8 1-7.5-2.5-1.3-2.8 1.5-5.6 1.2 0 0-4.8-1.8-6.6-3.1-3.2-1.8-7.8-3.9-8.8-5-3.3-.6-28-14.6-42.1-21.6-1.5-1.2-2.3-5.9-5.3-7.4-.8-1.3-19.8-10-29.8-15-3.6-1.3-5.7-2.2-8.3 2.3-2.3 4.4-1.8 6.8 5.2 9.8z"/>
<path fill="none" d="m344.5 142.8 29.2 14.6"/>
</g>
<g fill="#ffa54b" stroke="#000" stroke-width=".5" transform="translate(-40)scale(.96)">
<path fill="url(#bz-c)" d="M309.7 165.1c-.2.6-.7.2-.7.4-.4 2.2-.3 3.3-.8 4.5a7 7 0 0 1-3.1 2.6c-2 .7-4.5 3.1-8.5.9l-.6-.5s1.1 4.1-3 6.2l-15.7 8.2s-1.5 2.8-.5 6.5c0 .6.3 1.1-.3 1.5-1 .7-2.7 2.8-3.7 6 0 0-3-1.3-3-3.2s1.2-3 1.5-4.4c.3-1.3 1-4.7.7-5.7-.4-1.1-2.3-1.5-3-2-.6-.3-1.4.5-1.3 1.4.1 1 .8.8 1.6 1 0 0-.9 2-.8 3.4l-9.2 4.8 1.6 2.3c.4.7 1.3 10.2 4 14.7s3.7 3.2 4.3 3.8l2 2c.8.5 4 .8 4.5-1a9 9 0 0 1 3.2-4.1c2-1.6 6-5.4 6-7.2 0 0 2.3 6.8 2 12.4 0 0 8.5 1.7 16.1 1.9 7.6 0 11.5-1.5 11.5-1.5s1-6.4.6-7.7c0 0 1.2 4.2 2.2 5.6 1 1.8 2.1 5.3 4.3 5.5 2.2.1 4-2.1 4.2-3v-6.8h8.7s3.8 1.5 5 1.3 2-1.3.8-1.7l-.4-.3c1.2 0 2.6.7 2.6.7h4.3l-.1-.5c-.3-1.2-2.6-2.2-4.2-3-1.6-.5-3.5-1.2-4.7-1.3a20 20 0 0 0-6.2.4c-.8 0-3.9.4-5.8 1.3-.5.3-1 .4-.8-1 .3-1.3.2-7.8-1.3-10.5-1.2-2-1-3.6-.9-5.2a87 87 0 0 0 0-8.8c-.3-1.7-2.5-4-6.6-4.4-3.8-.5-7-3.7-7.3-6.2-.3-2.6.4-7.2.8-9.3"/>
<g fill="none">
<path fill="url(#bz-d)" d="M292.4 153.6c-.7 3.3-.7 6.1-.6 9.3.1 2.1 1.1 4.6 2 6.7a10 10 0 0 0 2.8 3.9c3.6 2.3 7-.2 8.9-1a6 6 0 0 0 2.7-2.5c.5-1.2.3-2.1.8-4.5l.7-.4c1-1.5.7-2 1.2-3s-.5-2.2-1.8-2q1.1-3 .4-5.9c-.2-.6.5-2.2-.6-1.8-4.6 1.8-10 1.4-14.8 1.4-.4 0-.8-.8-1.4-.7l-.3.5"/>
<path fill="#000001" d="M292 155.3q-.8-.5 0-3.2c.7-2 0-2 1.1-3.2s.9-1.6 1.6-1.9 2.8-.2 3.5-.5a11 11 0 0 1 9-.3c1.5.8 2.5 2.8 3.4 3.6 1 .7 1.7 3.6 1.5 7.9-.3 4.3-1.2 3.5-1.2 3.5s-1.2-2-2.2-.3c0 0 0-1.7.2-3 .1-1.1-.6-3.4.1-4.9 0 0-5.8 1.8-8.7 1.7-3-.2-7.4-.9-7.6-1.6l-.7 2.2"/>
<path fill="#fff" stroke="#fff" d="M295 151.8c-.3-.6-1.8-2.9-.6-3.6 1-.6.4 2.8 2 3.5 0 0-.6 1.5-1.4.1z"/>
<path d="m298.3 160.1-.9 3.2m10.6 1.6c.2.6.4.3 1 .4m.3-4c.5-.5 1.2-.2.8 1.3m-17.7-4.9 2.8 1c1.5.6.6 2.9.2 4.3-.2.7-1 2-.6 2.5.5.8 1.1.3 2 .4 0-.3.6-.5.8-.5.7 0 1.1.5 1.7.3s.5-1.2.3-1.7m-.1-4.5c0-.4 1-.8 1.5-.9 2.1-.4 3.6-.7 5.4.5m-5.7 11.1c-1.8.4-3.6.7-5.2-.2m0-.8c.8-.4 1.1-.8 2.1-.3l1.1-.4q1.1 0 2.2.8m-5.5.3c1-.3 3.3-.3 5.4.1"/>
<path fill="#fff" stroke-width=".3" d="M292.3 160.1c.7 0 1.6-.9 3.2.3 1.1.8-1.8 1.5-1.3 1.4-1.4.2-1.8-.5-1.9-1.2zm8.4.8c.7-1.4 1.8-1 2.8-.8 1 .3.7.1 1.7.7-1.2.1-.9.2-1.7.6q-1.4.8-2.3.3-.5-.3-.7-1 0 .3.2.3z"/>
<path fill="#000001" stroke-width=".3" d="M293.8 161.4q.6-.1.7-.8 0-1-.7-1-.8 0-.9 1 0 .7.9.8zm8.6.2q.6 0 .7-1a1 1 0 0 0-.8-.8q-.6 0-.7.8.1 1 .8 1z"/>
</g>
<g id="bz-g">
<g fill="none">
<path d="M345.9 213.7a4 4 0 0 0-1.9-1.4l-2-1-2.4-.9m.5 2.6-.9-.5-1-.2-.2-.2a4 4 0 0 1-2.4-1.3m-62.8-9.3c1 .7 3.2 2.2 3.4 5.1a11 11 0 0 0 1 3M264 202c.5 1.7.6 7.4 6 13.4m-5-21.4c-.4 1.1-1 2.2.2 3m14.4 10.7c1.1-2.6 4.6-2.4 4.6-4.8"/>
<path d="M284.8 207.3c-.3-2.9-1-4.5-.4-8.7.2-1.2.4-5.9 0-8.1 0 0 1.6 7.8-3.7 9.3m34.4 12.5c0-4 1-6.2 1-6.2 1.2-5.6-1.2-7.7-.3-9.1.9-1.2 2-3.8.5-8.9 0 0 2.8 10.5-4.5 10.5-7.5 0-7.2-2.7-7.2-2.7"/>
<path d="M284.4 190.5c0 2 0 8.4 9 8.4 2.8 0 5.8-2 7.4-3.3m2.2-2.7q-.4-3-.3-7m-13.6-3.4c2.4-.3 4.4-.6 9-.6m.2-6.3c.5 2.2-.3 5.8 4 6.3m4.3-7.1c-.6 1.6-.6 3.3-.8 4.4m.2 2.7c1.7 0 5-1.1 9-.3m1.4 22.8c.9 1.6 1 3.8 3.6 6.2m-31.7-11.4c.2 1.3-1.8 5.7-.3 9.3a12 12 0 0 1-1.2 11m6.7-19c-.9 1.7-2.3 3.3-2.6 4.7m6.6-1.6c0 1-2.7 8.7-4.7 10.9 0 0 3.6 1.4 3 6.6m7.4-21c0 1.2-.2 1.6 1 2.4m2.4 0c1.3 1.6 5.5 6.5 4.6 9.2m-7.4-6.5c.3 1 .3 6.3-.6 9m-2.1-.2c-1.1 0-2.8.8-3 2.7m8.7-3c1.1-.3 3.3 1.6 3.3 7m15.7-10.2c-2.1.6-3 1.7-2.4 1.1-1.1 1-2.2 1.6-2.2 1.6"/>
</g>
<path fill="#000001" stroke-width=".3" d="M289.8 198q1 0 1.1-1-.1-.6-1.1-.7-.9.1-1 .8.1.8 1 .9zm23 .3q1 0 1.1-1-.1-.6-1-.7t-1.1.8c-.1.8.5.9 1 .9z"/>
<path fill="#fff" d="M280.5 239.8c1.3-8 5-14.5 5.1-15.2 0 0 3.9.9 10.6 1.5s8.4.4 11.5.2l6.8-.8s1.2 2.4 1.3 4.8c.3 5.2 2.3 27.7 2.5 33.7 0 0 .8 3.6.8 12.3 0 9.6 2.6 29 2.6 39.4l-2.6.5s-14.5 1.1-14.5-.8c0-2.1-.8-27 1.4-42.1 0 0-.5-3-1.4-5.5s-4.3-10-4.3-11.7c0 0-5.7 16-6 18.8-.3 2.6-1.2 38.4-1.7 41.3 0 0-8.2 6.3-9.3 7-1.1.4-9-3.4-9.3-4.4a211 211 0 0 1 4.6-33.2c1.4-7.1.6-8.4.6-10.4s.1-27.5 1.3-35.4z"/>
<path fill="none" d="M294.3 275q-.8 3.4-3.6 5.7m-2.7-53.6c-.3 1.3-2.3 7.3-7.2 10.9m14.3-9.8c-1.1 3.6-5.5 22.7-6.3 45.4m-.3 7.1-1.7 20.8m-.8 3a71 71 0 0 0-2.7 18.7m32.2-36c-.2 2-1 15.7 3.6 28m-18.5-86c-.3 2.3-.8 16.7-.8 17.8s1.6 2.8 2.4 3c0 0-1.6.6-2 6m-4-12.8c-.3 1.7-2 8.5-3 11.3m13-25.5s5 1 5.3 0c0 0 1.6 29.5 3.8 46m-11.2-42.2-.6 16.5m2.5 2.1s1.9 2.8 1.4 4m-17.8-28 3 .8m5.2 1.6c-.3.9-.6 4.6-.6 4.6m8.8 38.9c.6.8 1.4 2 .8 4.4"/>
<path fill="#9b5f00" d="M285 224.4s0-3.2 1.1-4.8c0 0 3.5.7 8.4 1.2q7.4 1 12.6.5c3.7-.4 7.4-1.3 7.4-1.3s1 4.8.5 5.5c0 0-4 .8-8.3 1a86 86 0 0 1-14.5-.8 57 57 0 0 1-7.3-1.3z"/>
<path fill="#fff" d="m288 224.8.7-4.8h1l-.2 5.1-1.4-.2m22-4.1.1 5.5 1.3-.2-.1-5.6-1.3.3m-15.6 0-.4 5.3h.7l.7-5.3h-1"/>
<path d="M276.8 320.8q-.6 2-1 5.5c0 .5-.6 3.3 1 3.4 1 0 1.4-2.9 1.4-2.9s-1 3.3.3 3.7c1.8.4 2-3.6 2-3.6-.2 1.1-1.4 4 .3 4.3 1.9.3 2.4-3.9 2.4-3.9s-1.6 4.2.3 4.3c1.7 0 1.7-4 1.7-4s-.9 5 1.5 4.5c1.4-.2 1.7-2 2-3 .4-1.5 1.3-3.4.2-6.6-.8-2.3-.5-3-.5-3s-2.9 2.2-5.1 3.6c-1 .6-6.5-2.3-6.5-2.3zm29.7-4.4c-.5-.3-.4 1.9-.6 2.9s.2 3.2 3.6 3 6.7-1 8.9-.5c2.1.6 5.3.7 7 .7q2.5 0 3.7-.5c.7-.3 2.2.4 3 .4s1.7-1 1.6-1.8c0-1.3-1.3-1.3-3-1.4a22 22 0 0 1-5-1c-1.1-.3-3.1-1.5-5.7-2l-5.9.2c-1 0-7 .3-7.6 0z"/>
</g>
<g fill="none">
<path fill="#ffb366" d="M255.7 189.8c-.5.3-1.1-2 .4-2.9 0 0 .4-2 2-2.1 0 0 1.4-1.9 3.3-1.7 0 0 2.2-1.5 3-1.3.9.1 3 2.1 3 2.9.2.7 0 1.9-.5 2.4s-1-.1-1.1-1c0 0 .4 1.6-.8 2.2s-1.1.2-1.2-.6c0 0-.4 1.6-1.2 1.9s-1.3-.5-2-.5c0 0 1.1.9.4 1.5q-1.2.6-2-.1c-.5-.5-1.2-1.9-3.3-.6z"/>
<path d="M265.7 186c-.5-1.5-2.2-3-4-2.8m2.2 4.4-.8-1.2c-.9-1.5-2.8-1.4-4.4-1.8m2.4 4.5c-.6-.4-.8-1.2-1.4-1.5q-1.4-.8-3.3-.7"/>
</g>
</g>
<g stroke="#000" stroke-width=".5" transform="translate(-40)scale(.96)">
<path fill="url(#bz-e)" d="M439.1 165.1c.7-.3.5.6.6 1 .4 1.3.4 2.7.9 3.9s.8 1.5 1.8 2c1.6 1 6.4 3.6 9.8 1.5l.7-.5s-1.3 4.1 3 6.2l15.6 8.2s1.5 2.7.6 6.5q-.5.9.2 1.5c1 .7 2.6 2.8 3.8 6 0 0 3-1.3 3-3.2s-1.3-3-1.6-4.4c-.2-1.3-1-4.7-.6-5.7.4-1.1 2.1-1.5 2.8-2 .7-.3 1.6.5 1.3 1.4 0 1-.8.8-1.6 1 0 0 1 2 .8 3.4l9.4 4.8-1.6 2.3c-.5.7-1.5 10.2-4.2 14.6s-3.7 3.3-4.2 4l-2.1 1.8c-.6.5-3.8.9-4.5-.9a9 9 0 0 0-3.1-4.1c-2-1.6-6-5.4-6-7.2 0 0-2.3 6.8-2 12.4 0 0-8.4 1.7-16.2 1.9-7.6 0-11.5-1.5-11.5-1.5s-1-6.4-.6-7.7c0 0-1.2 4.2-2 5.6-1.1 1.8-2.2 5.3-4.4 5.5-2.2.1-4-2.1-4.2-3v-6.8h-8.7s-3.8 1.5-5 1.3-1.9-1.3-.9-1.7l.4-.3a7 7 0 0 0-2.5.7H402l.1-.5c.3-1.2 2.6-2.2 4.3-3 1.6-.5 3.3-1.2 4.6-1.3 1.9-.2 3.2-.1 6.2.4.8 0 4 .4 5.8 1.3.5.3 1 .4.8-1-.3-1.3-1.2-5.5.3-8.3 1-1.9.9-3.5.8-5.2-.2-1.7-1.1-5.6-1.1-7.3 0-5.7 4.4-8 8.2-9.2 4.3-1.4 7.1-2.8 7-5.3-.2-2.7.5-7 .1-9"/>
<g fill="none">
<path fill="url(#bz-f)" d="M456.3 153.6a20 20 0 0 1 1.2 5.3c0 1.2-.5 1.4-.1 2.8.7 2.4-.8 5-2.5 8-.8 1.2-1.4 3-2.7 3.8-3.4 2.1-7.5-.4-9.6-1.3a4 4 0 0 1-2-2.2q-.5-1.6-.8-4c0-.3 0-1.2-.6-.9-1.3-1.4-1-2-1.6-3-.5-1 1-2.2 2-2a10 10 0 0 1-.2-5.9c.2-.6-.6-2.2.5-1.8 4.5 1.8 10 1.4 14.8 1.4.4 0 .7-.8 1.3-.7l.3.5"/>
<path fill="#000001" d="M456.8 155.3c.4-.4.1-2.3-.4-4.3-.1-1-1-1.5-2-2.6s-1.6-1-2.3-1.4c-.6-.2-2-.2-2.8-.5-.6-.3-2.2-.1-3.7.1-2 .3-3.2.2-4.7 1s-2.8 1.8-3.3 3.3c-.4 1-1 2.5-.8 6.8s1 3.5 1 3.5 1.1-1.7 1.9-.6l-.3-3.6q-.2-1.8.5-4.6s4.6 1.7 9 1.7c3 0 7-.3 7.1-1l.7 2.2z"/>
<path d="M450.4 160.1c.7 1.8.1 1.3.4 2.4m-10.2 2c0 .8-.6.6-1 .6"/>
<path d="M456.9 158.8c-1-.7-2.7-.2-3.5.1-1.5.7-.7 2.3-.2 3.7.2.7 1 1.7.5 2.4-.4.8-.7.4-1.6.5 0-.3-.8 0-1.1 0-.6 0-1 .4-1.5.2s-.5-1.2-.3-1.7m.1-4.5c0-.4-1.3-.8-2.7-.9-2.3 0-2.5.1-4.2 1.3m11.5 9q-.5-1.1-2.1-.4c0-.2-1.6-.4-1.6-.4q-1 0-2.1.7m5.6.6c-1-.6-3.3-.2-5.6-.2m.2.8c1.7.5 3.5.8 5.2 0"/>
<path fill="#fff" stroke-width=".3" d="M456.4 160.1c-.7 0-1-.9-3.1.3-1.1.7 1.8 1.5 1.4 1.4 1.2.2 1.6-.5 1.7-1.2q.2-.3 0-.5zm-8.3.8c0-.8-1.8-1-2.9-.8-1 .3-.5.1-1.5.7 1 .1.7.2 1.6.6.9.5 1 .9 2.3.3q.5-.2.8-1 0 .3-.3.3z"/>
<path fill="#000001" stroke-width=".3" d="M455.1 161.4a1 1 0 0 1-.8-.8q0-1 .8-1 .6 0 .7 1 0 .7-.7.8zm-8.7.2q-.6 0-.7-1 .1-.8.8-.8.9 0 .7.8 0 1-.8 1z"/>
</g>
<use xlink:href="#bz-g" width="100%" height="100%" fill="#730000" transform="matrix(-1 0 0 1 748.8 0)"/>
<g fill="none">
<path fill="#730000" d="M491.6 193.5c.5.2 2-2 .5-3 0 0-.5-2-2-2 0 0-1.4-2-3.4-1.7 0 0-2-1.5-2.9-1.4-1 .2-3 2.2-3 3-.2.5 0 1.8.5 2.4s1-.1 1-1c0 0-.3 1.5.9 2.2s1.1 0 1.2-.7c0 0 .3 1.6 1.1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3s1.5.3 2 0c.6-.5.3-1.8 2.4-.6z"/>
<path d="M482.5 189.8c.5-1.8 2.2-3.2 4-2.9m-2 4.4q.1-.6.5-1.2c1-1.6 3-1.6 4.6-1.9m-2.5 4.5c.6-.4.8-1.1 1.4-1.4a5 5 0 0 1 3.2-.7"/>
<path fill="#730000" stroke="none" d="M482.3 186.8c-.9.7-1.8 1.8-1.9 2.2 0 .7 0 1.9.5 2.5q1 .6 1.1-.8c0 .5 0 1.5.8 2 1.3.7 1.2.1 1.3-.7 0 0 .3 1.6 1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3s1.5.3 2 0c.6-.5.3-1.8 2.5-.6q.5.1 1-1.1l-7.7-5.5z"/>
<path d="M480.7 188.2c-1.5 2.6.5 4.1 1.1 2.6-.1 2.4 1.7 2.3 2.3 1.5.7 2.5 1.9 1.4 3 1.2-1.3 2.3 1.4 1.6 2 1 1-1.3 1.4-.2 2-.3l1.3-1.3m-8-5.7q-2.5 1.5-2.6 3.7m5-2.2q-2.7 1.5-2.6 3.7m5.4-1.7c-1.7.9-1.8 1.7-2.5 2.8"/>
</g>
</g>
<path fill="#5ac800" d="m238.5 310.7-.2-4.5 1.9 1.6.4-3.4c.8-.2 2.1 1.3 2.1 1.3l-.2-3.4 2.8 3.1s-.2-2.6.8-4.2c0 0 2.2 1.9 2.2 4 0 1.9 1.8-2.6 1.8-2.6l1.6 5 1.3-1.9 1 4 2.4-3.5 1.8 4 4.2-.3.5 2.4 1.9-2 2.4 1.5s2-.6 3.1-.6 2.4 1.4 2.4 1.4.8-1.4 1.5-1.9 1.9.8 2.2 1.6l1.6-2.9s2 2 2.3 2.9c0 0 .3-2.4.8-3.2.5-.7 1.2.3 1.8 1.3l1.3-4.2s1.4.3 2.3 1.9c1.1 1.5 1.1-2.4 1.1-2.4s2.4 3.2 3 5.3c0 0-16.2 5.6-27.6 4a306 306 0 0 1-24.5-4.3m110.9-.5s.7-2.1 1.8-3.2c0 0 2 2.4 2 3.2l1.7-1 1.6 1.5 1.8-1.3 1.8 1.6 3.2-1.4 1.3 1.4 5-.6 1.8.8 1.8-2.3 1.6 1.8 2.7-2.6s1.3 1 1.5 1.8c0 0 2.2-1 2.7-1.8 0 0 2-.8 2.3.5 0 0 1.3-1 1.2-2-.1-1.2 1.5-.4 2 1 0 0 .5-2.2 2-2.4 0 0 1.2 1.3.9 3.7 0 0 2.3-1.9 3.4-2.1 0 0 .5 2.6-.3 5 0 0 2.4-4 3-2.7.1.8.7 3.5.1 5.3l2.2-1.3.8 2.6 2.3-.5s-13.9 2.1-27 .9-25.3-5.9-25.3-5.9m-9.6 9.7c.6-.4-4.4 10.3-16.5 10.9-16.9.8-31.3-7.7-31.3-7.7s1.8-2.9 2.9-3.7c0 0 2.3 1.9 3 4.2 0 0 .4-1.5 1.2-2.9 0 0 2.9 1.4 3.4 3.2 0 0 1-1.8 1.8-2.3.8-.6 1.6 2 1.6 3.6 0 0 1.9-2 3-2 0 0 2 1 2.6 4.3 0 0 2-1.8 2.6-1.5 0 0 2.3 1.5 1.8 3.7-.3 1.2 2.3-1.4 5.5-2.2l2.9 2.2 3.4-4.7s2.1.8 2.1 2c0 0 1-3.7 1.8-4 .8-.5 1.8 1.1 1.8 2.2 0 0 .3-2.8 1.9-3.4 0 0 1.6 1 1.6 2.1 0 0 1.6-3.2 2.9-4"/>
<path fill="none" stroke="#060" stroke-width=".5" d="m238.5 310.7-.2-4.5 1.9 1.6.4-3.4c.8-.2 2.1 1.3 2.1 1.3l-.2-3.4 2.8 3.1s-.2-2.6.8-4.2c0 0 2.2 1.9 2.2 4 0 1.9 1.8-2.6 1.8-2.6l1.6 5 1.3-1.9 1 4 2.4-3.5 1.8 4 4.2-.3.5 2.4 1.9-2 2.4 1.5s2-.6 3.1-.6 2.4 1.4 2.4 1.4.8-1.4 1.5-1.9c.8-.5 1.9.8 2.2 1.6l1.6-2.9s2 2.1 2.3 2.9c0 0 .3-2.4.8-3.2.5-.7 1.2.3 1.8 1.3l1.3-4.2s1.4.3 2.3 1.9c1.1 1.5 1.1-2.4 1.1-2.4s2.4 3.2 3 5.3m58.7-.8s.8-2.1 1.9-3.2c0 0 2 2.4 2 3.2l1.7-1 1.6 1.5 1.8-1.3 1.8 1.6 3.2-1.4 1.3 1.4 5-.6 1.8.8 1.8-2.2 1.6 1.7 2.7-2.6s1.2 1 1.5 1.8c0 0 2.2-1 2.7-1.8 0 0 2-.8 2.3.5 0 0 1.3-1 1.2-2-.1-1.2 1.5-.4 2 1 0 0 .5-2.2 2-2.4 0 0 1.2 1.3.9 3.7 0 0 2.3-1.9 3.4-2 0 0 .5 2.5-.3 4.9 0 0 2.4-4 3-2.7.1.8.7 3.5.1 5.3l2.2-1.3.8 2.6 2.3-.5m-109.8 8s1.8-3 2.9-3.7c0 0 2.3 1.8 3.1 4.2 0 0 .3-1.6 1-3 0 0 3 1.4 3.5 3.2 0 0 1-1.8 1.9-2.3.7-.6 1.5 2 1.5 3.6 0 0 1.9-2 3-2 0 0 2 1 2.6 4.4 0 0 2-1.9 2.6-1.6 0 0 2.4 1.6 1.8 3.7-.3 1.2 2.3-1.4 5.5-2.1l2.9 2.1 3.4-4.7s2.1.8 2.1 2c0 0 1-3.6 1.8-4 .8-.5 1.9 1.1 1.9 2.2 0 0 .3-2.8 1.8-3.4 0 0 1.6 1 1.6 2.1 0 0 1.6-3.2 3-4"/>
<g fill="#fff">
<path d="M319.5 361.9c22 .2 35-7.8 42-12.6 16.8-11.2 20.3-11.6 23-11.4 3.1.3 7.7 1.3 8 4 .2 4.3-6.6 6.1-10.5 6.1s-14.5-2.6-14.5-2.6l-2.7 1.9c1.8.8 23.2 8 27.3 1.2s8.4-17.9 8.4-17.9-4.7-8.4-15.1-8.4c-10.6 0-20.8 6.7-27.6 11.7s-15.5 11.8-38.3 11.8c-22.9 0-31.6-6.8-38.4-11.8-6.9-5-17.1-11.7-27.6-11.7a18 18 0 0 0-15.2 8.4s4.2 11 8.4 18c4.1 6.7 25.5-.5 27.3-1.4l-2.6-1.8S261 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.7-.2 6.2.2 22.9 11.4a72 72 0 0 0 42.2 12.6"/>
<path d="M284.1 336s0-1.9-.3-4.6c-.4-3.5-2.4-4.4-4-3.9-1.2.4-3.3 3-3.3 3v.1l-3-1.8a18 18 0 0 1 6.3-3.6c1 0 14.5 5.4 18.8 9.1 1 1 1.8 7 1.2 9a47 47 0 0 1-15.7-7.2m-6.5 13.6s-2.9 3-3 8.3c0 6.3 4.5 6.6 7.5 6.5 3.7 0 6.6-2.1 6.5-8.9 0 0-6-2.5-11-6m77.1-13.6.4-4.6c.4-3.5 2.4-4.4 4-3.9 1 .4 3.2 3 3.2 3v.1l3-1.8c-.7-1-5.2-3.6-6.2-3.6s-14.5 5.4-18.8 9.1c-1 1-1.8 7-1.3 9a46 46 0 0 0 15.7-7.2zm6.5 13.7s2.9 3 3 8.3c.2 6.3-4.5 6.6-7.5 6.5-3.6 0-6.5-2.1-6.5-8.9 0 0 6-2.5 11-6"/>
</g>
<path fill="#69f" d="M271.3 345.4S260.9 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.3-.2 5.3 0 17 7.5m96.1 0S378 348 382 348c3.9 0 10.7-1.8 10.4-6-.2-2.8-4.8-3.8-7.9-4.1-2.3-.2-5.4 0-17 7.5m-83.4-9.3-3.1-2.3-4.5-3.2s2.1-2.7 3.2-3c1.7-.6 3.7.3 4.1 3.8.3 2.7.3 4.7.3 4.7m-7.1 27.6c1.8 1 3.9 1 5.1.8 3.7 0 6.6-2.1 6.5-8.9 0 0 4.5 2.3 11.8 4 0 0 1.2 1.5 1.4 4.4.3 2.5-1.4 5.1-3.3 5 0 0-10.3-2-16.5-3-3.7-.7-5-2.3-5-2.3m77.7-27.6 3.2-2.3 4.4-3.2s-2.1-2.7-3.2-3c-1.6-.6-3.6.3-4 3.8zm7.1 27.6c-1.8 1-3.9 1-5.1.8-3.6 0-6.5-2.1-6.5-8.9 0 0-4.5 2.3-11.7 4 0 0-1.3 1.5-1.5 4.4-.2 2.5 1.5 5.1 3.4 5 0 0 10.3-2 16.5-3 3.6-.7 5-2.3 5-2.3"/>
<g fill="none" stroke="#000" stroke-width=".7">
<path d="M319.5 361.9c22 .2 35-7.8 42-12.6 16.8-11.2 20.3-11.6 23-11.4 3.1.3 7.7 1.3 8 4 .2 4.3-6.6 6.1-10.5 6.1s-14.5-2.6-14.5-2.6l-2.7 1.9c1.8.8 23.2 8 27.3 1.2s8.4-17.9 8.4-17.9-4.7-8.4-15.1-8.4c-10.6 0-20.8 6.7-27.7 11.7s-15.4 11.8-38.2 11.8-31.6-6.8-38.4-11.8c-6.9-5-17.1-11.7-27.6-11.7s-15.2 8.4-15.2 8.4 4.2 11 8.4 18c4.1 6.7 25.5-.5 27.4-1.4l-2.7-1.8S261 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.7-.2 6.2.2 22.9 11.4a72 72 0 0 0 42.2 12.6z"/>
<path d="M271.3 345.4S260.9 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.3-.2 5.3 0 17 7.5zm96.2 0S378 348 382 348c3.9 0 10.7-1.8 10.4-6-.2-2.8-4.8-3.8-7.9-4.1-2.3-.2-5.4 0-17 7.5zm-83.4-9.3-3.1-2.3-4.5-3.2s2.1-2.7 3.2-3c1.7-.6 3.7.3 4.1 3.8.3 2.8.3 4.7.3 4.7z"/>
<path d="M284.1 336s0-1.9-.3-4.6c-.4-3.5-2.4-4.4-4-3.9-1.2.4-3.3 3-3.3 3v.1l-3-1.8a18 18 0 0 1 6.3-3.6c1 0 14.5 5.4 18.8 9.1 1 1 1.8 7 1.2 9a47 47 0 0 1-15.7-7.2m-6.5 13.6s-2.9 3-3 8.3c0 6.3 4.5 6.6 7.5 6.5 3.7 0 6.6-2.1 6.5-8.9 0 0-6-2.5-11-6z"/>
<path d="M280.1 351.1s-2.3 2.5-2.7 6.5c-.2 3.1 1.8 4.9 4.5 4.7 3.7-.2 5.1-5.3 3.4-8.1l-5.2-3"/>
<path d="M277 363.7c1.8 1 3.9 1 5.2.8 3.6 0 6.5-2.1 6.4-8.9 0 0 4.5 2.3 11.8 4 0 0 1.2 1.5 1.4 4.5.3 2.4-1.4 5-3.3 4.8L282 366c-3.7-.7-5-2.3-5-2.3zm77.7-27.6 3.3-2.3 4.4-3.2s-2.2-2.7-3.3-3c-1.6-.6-3.6.3-4 3.8z"/>
<path d="m354.7 336 .4-4.6c.4-3.5 2.4-4.4 4-3.9 1 .4 3.2 3 3.2 3v.1l3-1.8c-.7-.9-5.2-3.6-6.2-3.6s-14.5 5.4-18.8 9.1c-1 1-1.8 7-1.3 9a46 46 0 0 0 15.7-7.2m6.5 13.6s2.9 3 3 8.3c.2 6.3-4.5 6.6-7.5 6.5-3.6 0-6.5-2.1-6.5-8.9 0 0 6-2.5 11-6z"/>
<path d="M358.7 351.1s2.4 2.5 2.8 6.5c.3 3.1-1.9 4.9-4.5 4.7-3.7-.2-5.1-5.3-3.4-8.1l5.1-3"/>
<path d="M361.9 363.7c-2 1-4 1-5.2.8-3.6 0-6.5-2.1-6.5-8.9 0 0-4.5 2.3-11.7 4 0 0-1.3 1.5-1.5 4.5-.2 2.4 1.5 5 3.4 4.8l16.5-2.9c3.6-.7 5-2.3 5-2.3z"/>
</g>
<path fill="none" stroke="#fff" stroke-width=".7" d="M299.6 361.4s3.3 2.4-.7 5.3m-9-6.8 10 4.3m-8.3-2.1 7.2 3.1m-4.6-5 5.4 2.5m39.7-1.3s-3.3 2.4.6 5.3m9-6.8-10 4.3m8.4-2.1-7.2 3.1m4.6-5-5.4 2.5"/>
<path stroke="#000" stroke-width=".7" d="m261 331.4.3.7v.8a2 2 0 0 1-1.2 1.6 3 3 0 0 1-2.2.4l-1-.4-1-.6-.3.4-.4-.1.4-2.9.5.1q0 .6.2 1l.3 1 .7.6q.3.3.9.4h.7a1 1 0 0 0 .9-.6l.2-.6-.1-1-.7-.7-.8-.5-.8-.6q-.7-.4-1-1t-.1-1.4q0-.5.4-.8a3 3 0 0 1 1.5-1h1l1 .4.8.6.3-.4.5.1-.5 2.8-.5-.1v-1l-.4-.8-.5-.7-.8-.4-1 .2q-.6.3-.6.8v1l.7.7.8.5 1.3 1q.3.1.5.5m12 1.6-.5-.1-.5-.1q-.3 0-.5.3l-.6 1-1.8 3.1a2 2 0 0 1-1.9 1.3h-1.1l-1-.5-1-.8-.7-1-.1-1 .2-.8 2.4-4.3.1-.4v-.3l-.3-.3-.4-.3.2-.3 3.1 1.7-.2.3-.3-.1-.4-.1h-.4l-.2.3-2.2 4-.3.7v.8l.2.7.9.8 1 .3a2 2 0 0 0 1.5-.5l.5-.6 1.6-3 .5-1v-.6q0-.2-.4-.5l-.4-.3.2-.4 3 1.7-.2.3m4.3 7.5a2 2 0 0 1 0 1.8l-.8.8-1 .3-1-.1-.9-.4-3.5-2 .2-.4.8.3h.3l.3-.3 3-5.3.1-.3-.1-.4-.3-.3-.3-.2.2-.4 3.4 2 .7.5.6.7a2 2 0 0 1 0 1.6l-.6.6-.7.3h-.7l-.8-.2v.1l.6.6zm-.6-1.8q.3 0 .5-.3l.5-.6q.3-.6.2-1.2-.2-.4-.9-.9l-.4-.2-.4-.3-1.6 2.8.6.4.8.3zm-.6 2.7q.4-.6.1-1.3 0-.6-1-1.1l-.5-.4-.4-.1-1.5 2.5v.7q.2.3.7.5.8.4 1.4.3.7-.3 1.2-1zm18.9 4.3h-.5l-.6-.1q-.2 0-.4.4l-.5 1-1.5 3.3q-.2.6-.7 1l-1 .4h-1.1a4 4 0 0 1-2.2-1l-.7-.8-.3-1 .2-.9 2-4.5v-.4l-.1-.3-.3-.3-.4-.2.2-.4 3.3 1.4-.2.4-.4-.1h-.7l-.2.3-1.9 4.3-.2.7a2 2 0 0 0 .4 1.4q.3.4 1 .7l1 .2a2 2 0 0 0 1.5-.7l.4-.6 1.3-3.1.3-1v-.7l-.4-.4-.5-.3.2-.4 3.1 1.4-.1.3m9.2 10.8-3.6-1v-.4h.6l.4.1.4-.2.2-.3 1.7-5.8h-.1l-4.8 6h-.3l-.6-7.9-1.5 4.8-.2 1.1.1.6.5.4.5.3-.2.4-3.2-1v-.4h1.1q.3 0 .5-.4l.3-1 1.2-4.2.1-.6-.1-.4-.4-.4-.5-.2.1-.4 2.8.8.6 6.7 3.5-4.5.3-.5.2-.4 2.7.8-.1.4h-.5l-.4-.1-.3.1-.1.4-1.7 5.8v.3l.1.3.8.4-.1.4m8.7-2.6a2 2 0 0 1 .7 1.7l-.4 1q-.3.4-.8.6t-1 .3h-1l-4-.5v-.4h.9l.3-.2.1-.4.8-6v-.3l-.3-.3-.4-.2h-.3v-.5l3.9.5.9.2.7.4a2 2 0 0 1 .6 1.5l-.2.8-.6.5-.6.3-.8.2.8.3zm-1.3-1.5.4-.5.2-.7-.3-1.1q-.3-.5-1.1-.5l-1-.1-.4 3.2h1.6zm.5 2.8q0-.8-.3-1.3-.5-.4-1.4-.6l-.7-.1h-.4l-.3 2.9.2.6.8.3q.8.1 1.5-.4.4-.4.6-1.4zm11.4 2.6h-2.2l-1.4-2-1.3-1.8h-1v2.7l.1.4.3.2h.4l.5.1v.4h-3.6v-.4h.4l.4-.1.2-.2.1-.4v-6.4l-.3-.3h-.4l-.4-.1v-.4h4.9l.9.4.6.6a2 2 0 0 1 0 1.8l-.4.7-.7.4-.8.3 1 1.4q.5.5 1 1.4l1 .8.8.1zm-3.1-6.2q0-.8-.4-1.2-.5-.5-1.3-.5h-1v3.6h.8q.8 0 1.3-.5t.6-1.4zm13 5.6-3.6.3v-.4l.7-.2.3-.2v-.3l-.9-1.8-3 .2-.2.7-.1.6-.1.4v.3q0 .3.4.3l.9.1v.4l-3.2.3v-.4l.4-.1.7-.6.2-.5 1.1-3.6 1.1-3.6h.5l3.4 7 .2.3.7.4h.4v.4zm-3.7-3.1-1.6-3.2-1 3.4zm15.7-6.7-.4.2-.8-.9q-.6-.4-1-.3h-.3l-.6.2-1.4.4.9 3.2 1-.2.6-.3.3-.4.1-.4v-.6l.4-.2.9 3.2-.4.1-.3-.5-.4-.4-.5-.2-.6.1-1 .3.8 2.8s0 .2.2.3l.3.2h.4l.4-.1.1.4-3.5 1-.1-.4.4-.2.4-.2.2-.3v-.3l-1.6-5.9-.2-.3-.3-.2h-.9l-.1-.3 6.4-1.8.6 2m9.4-.7 1 2.4-6 2.8-.2-.3.4-.3.3-.2.1-.3v-.4l-2.7-5.4-.2-.3h-1.2l-.2-.3 3.3-1.6.2.4-.4.2-.3.3-.2.3.1.4 2.5 5q0 .4.3.6l.3.2h.4l.7-.3.4-.2.4-.3.3-.2.2-.3.2-2 .3-.2m4.5-8.3 1.5.8 1.2 1.4.6 1.7v1.6l-.7 1.5-1.2 1a4 4 0 0 1-3.2.4l-1.4-.7-1.2-1.4-.6-1.7v-1.7a4 4 0 0 1 2-2.4l1.5-.6zm2.3 5.6-.2-1.3-.7-1.4-1-1.3-1-.8-1-.2q-.7 0-1.2.3-.6.4-.9 1l-.3 1q0 .7.3 1.3a7 7 0 0 0 1.5 2.6q.5.6 1 .8l1.2.3q.5 0 1.1-.3a2 2 0 0 0 1.2-2zm10.5-5.7-1.9 1.3-2.3-.9-2-.6-.8.5 1.6 2.1.2.3h.4l.3-.1.4-.3.3.4-3 2-.2-.3.6-.5v-.7l-3.6-5-.2-.2h-.4l-.7.3-.3-.4 3.2-2.2.9-.5.9-.2.8.1a2 2 0 0 1 1.1 1.4v.8l-.2.7-.5.8 1.6.5 1.6.5 1.2.1h.4l.4-.3zm-6.2-3.3q-.4-.6-1-.7-.7-.2-1.3.3l-.8.6 2 3 .7-.5q.6-.4.8-1.2.1-.7-.4-1.5zm13.2-2 .7 2.4-6.6 2.4-.2-.4.8-.4.2-.3v-.4l-2.2-5.6-.1-.3-.4-.1h-.9l-.1-.3 6.1-2.3.7 1.9-.4.1-.8-.7-.9-.3-.4.2-.6.2-1.2.4 1.1 3.1 1-.3q.3 0 .5-.3l.3-.4v-1.1l.4-.1 1.1 3-.4.2-.3-.5-.4-.3-.5-.2-.6.2-.9.3.9 2.4.2.5.3.3h.5l.7-.3.5-.2 1-.4.2-.3.2-1v-1l.5-.1m7.1-5.8q.6.4 1 1.3.5.7.6 1.7v1.8l-.8 1.5a4 4 0 0 1-2.7 1.6 4 4 0 0 1-3-.9l-1-1.2-.6-1.7v-1.9l.8-1.5a4 4 0 0 1 2.7-1.5h1.6zm-.1 6q.3-.6.3-1.3v-1.5l-.4-1.5-.7-1.2-.9-.7-1.1-.1q-.8 0-1.2.5-.5.4-.7 1l-.3 1.2a7 7 0 0 0 .4 3l.7 1.1q.3.6.9.7.4.3 1.2.2l1-.5.8-1z"/>
<path fill="none" stroke="#000" d="M366 205.1v53c0 10.6-1.4 52.6-46.5 69-45.3-16.4-46.7-58.4-46.7-69v-53H366"/>
</svg>

After

Width:  |  Height:  |  Size: 42 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ca" viewBox="0 0 640 480">
<path fill="#fff" d="M150.1 0h339.7v480H150z"/>
<path fill="#d52b1e" d="M-19.7 0h169.8v480H-19.7zm509.5 0h169.8v480H489.9zM201 232l-13.3 4.4 61.4 54c4.7 13.7-1.6 17.8-5.6 25l66.6-8.4-1.6 67 13.9-.3-3.1-66.6 66.7 8c-4.1-8.7-7.8-13.3-4-27.2l61.3-51-10.7-4c-8.8-6.8 3.8-32.6 5.6-48.9 0 0-35.7 12.3-38 5.8l-9.2-17.5-32.6 35.8c-3.5.9-5-.5-5.9-3.5l15-74.8-23.8 13.4q-3.2 1.3-5.2-2.2l-23-46-23.6 47.8q-2.8 2.5-5 .7L264 130.8l13.7 74.1c-1.1 3-3.7 3.8-6.7 2.2l-31.2-35.3c-4 6.5-6.8 17.1-12.2 19.5s-23.5-4.5-35.6-7c4.2 14.8 17 39.6 9 47.7"/>
</svg>

After

Width:  |  Height:  |  Size: 625 B

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cc" viewBox="0 0 640 480">
<defs>
<path id="cc-a" d="m0-360 69.4 215.8 212-80.3L156-35.6 351 80.1 125 99.8l31.1 224.6L0 160l-156.2 164.3 31.1-224.5L-351 80l195-115.7-125.5-188.9 212 80.3z"/>
<path id="cc-b" d="M0-210 54.9-75.5l144.8 10.6-111 93.8 34.7 141L0 93.3-123.4 170l34.6-141-111-93.8 145-10.6z"/>
</defs>
<path fill="green" d="M0 0h640v480H0z"/>
<circle cx="320" cy="240" r="66.7" fill="#ffe000"/>
<circle cx="340.8" cy="240" r="54.9" fill="green"/>
<circle cx="109.8" cy="173.3" r="69.8" fill="#ffe000"/>
<path fill="#802000" stroke="#7b3100" stroke-width="1.5" d="M105 226h17.5s.7-1.6-.2-2.4c-1-.8-4.7-1-3.7-3.8 2-5.8 2.4-4 3.7-17.8a739 739 0 0 0 2-35.5h-2.6s.5 6.7-1 15.5c-1.4 8.8-1.9 9.5-3.5 16.3a64 64 0 0 1-3.3 11.2c-1.4 4-1.6 4.1-3.8 7.8-2.3 3.6-1.5 2.2-2.7 4.4-.7 1.1-1.4.8-1.9 1.6s-.5 2.7-.5 2.7z"/>
<path fill="green" d="M118.3 122.5a23 23 0 0 1-1.2 9.2 27 27 0 0 0-2.3 9.8c-1.8.6-3.7-3.9-5.5-1.2 1.3 3.7 4.4 6.6 6.4 9.9.4 1 3.4 3.7 1.6 4.3-4.3-1.5-5.4-7-8-10.3a19 19 0 0 0-15.5-10c-2.5.1-10.4-.5-8.4 3.7 3 2 6.8 3.4 9.8 5.7 2.3.2 6.3 4 6.1 5.4-4-1.6-5.8-3.5-10-5.2-5.8-2.2-13.7-.9-17 4.8-.5 1.5-1.4 5.8.5 6.3 2.2-3.4 5.3-7.3 9.9-6.2 3.6.3-4 6.7-1.1 5.4 1-.4 3-1.8 4.6-2 1.5 0 2.3 1 3.4 1.2 2.3.3 3 1.2 2.7 1.8s-1 0-3.3.8c-1.1.4-1.7 1.4-3 1.9s-4.2.5-5.2 0c-3.7-1.5-9.7-1.3-10.8 3.3 0 2-1.8-.2-2.6.7-.7 2.2-.8 4.4-4 4.2-2 2-4 4.2-6.6 5.7 1.5 3.4 7.3-3.4 7-.5-2.5 3.5 1.4 4.2 3 1.5 2.9-3 6.5-6.7 10.7-3.6 2 1.9 3.2-1 4.7-1 1 2.5 2.1.2 3.2-.5 1.7-.2 1.2 2.2 3.2.7 4.1-2.7 9.1-.4 13.1-3 4.3-2 .6 1.5-.5 2.9-1.9 3.6-.3 8.4-4.3 10.6-1.7 4.3 1.9 10-1.7 13.2-.5 2 4.6 1.8 6 2.6 2.6 0 0-5.8 2.5-6.6 3.4 2 3.2-3.8 2.5-5.6.4-4 .6-8.6 2.6-12.3 2.2-4.5 4.2 1.9 1.8 3.7-1.4 4.1-3.4 9.4-.3 13.3 1 .2 1.7 2.4 2.8 3 1.2.7 2.8-.1 3-2.1 1.6-6 .8-12.4 3-18.3 1.5-1.8 3.6-.3 4.5 1.4 3 3.5 5.1 7.8 8.7 10.7a15 15 0 0 1 7.8 7.3c0 2.6 7.4 3 5.2 0-2.1-2.7-.7-5.6 1.4-7.5 1.2.3.9-1.8 0-1-1.5-.3-1.6-3 .4-1.7 3.5 1.1-.2-2.5-1.5-2.6-2.9-1.8-6.2-3.8-7.6-7 3.8 0 7.7 2.1 11.5.9 3.1-1.6 6.2 0 7.3 2.8 2.4-.4 1.4-2.8 0-3.6 1.7-.7 3-2.2.8-3.5-1-1.4 1.5-4-1.7-3.8.1-2.5-.8-4.7-3.5-5.6-2.7-2.2-10.6 3.4-10.3-1.7-.8-2.8 3.2-.4 4.3-1.8 1.1-3-5.5-2.6-3.3-5 1.4-.8 8.1-2.1 2.9-3.1a8 8 0 0 1-7-1.1c-1.9 3.1-7.2-1.8-6.3 3.8-.7 2.1-5.5 7.6-6.8 3.4 1-3.3 6.8-4.3 5-8.8-.3-2.7-2.6.5-3.6.3-.6-1.7 1.6-3.8 3.2-4.2 3 2.4 3-3 6-2.5 2.1-.5-.7-1.4-1.3-1.8.6-1.5 3.9-2.3.7-3.7-2.9-2-5 2.1-7.3 2.3-2.2-2.5 2-3.7 3.2-5 .1-1-2.4-.3-1.7-1.2.7-1.1 5.2-1.2 3-3a15 15 0 0 0-10.2.6c-2 .6-2.5 5-4.2 4.8-.7-2 .3-5.8-2.4-6.3m15 42.3c2.4-.4 0 3.7-1 3.6 0-1.4-3.6-1.3-1.3-2.6a7 7 0 0 1 2.3-1"/>
<g fill="#ffe000" transform="translate(0 80)scale(.0635)">
<use xlink:href="#cc-a" width="100%" height="100%" x="7560" y="4200"/>
<use xlink:href="#cc-a" width="100%" height="100%" x="6300" y="2205"/>
<use xlink:href="#cc-a" width="100%" height="100%" x="7560" y="840"/>
<use xlink:href="#cc-a" width="100%" height="100%" x="8680" y="1869"/>
<use xlink:href="#cc-b" width="100%" height="100%" x="8064" y="2730"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cd" viewBox="0 0 640 480">
<path fill="#007fff" d="M0 0h640v480H0z"/>
<path fill="#f7d618" d="M28.8 96H96l20.8-67.2L137.6 96h67.2l-54.4 41.6 20.8 67.2-54.4-41.6-54.4 41.6 20.8-67.2zM600 0 0 360v120h40l600-360V0z"/>
<path fill="#ce1021" d="M640 0 0 384v96L640 96z"/>
</svg>

After

Width:  |  Height:  |  Size: 334 B

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cefta" viewBox="0 0 640 480">
<path fill="#039" d="M0 0h640v480H0z"/>
<circle cx="320" cy="249.8" r="30.4" fill="none" stroke="#fc0" stroke-width="27.5"/>
<circle cx="320" cy="249.8" r="88.3" fill="none" stroke="#fc0" stroke-width="27.5"/>
<path fill="#039" d="m404.7 165.1 84.7 84.7-84.7 84.7-84.7-84.7z"/>
<path fill="#fc0" d="M175.7 236.1h59.2v27.5h-59.2zm259.1 0h88.3v27.5h-88.3zM363 187.4l38.8-38.8 19.4 19.5-38.7 38.7zM306.3 48.6h27.5v107.1h-27.5z"/>
<circle cx="225.1" cy="159.6" r="13.7" fill="#fc0"/>
<circle cx="144.3" cy="249.8" r="13.7" fill="#fc0"/>
<circle cx="320" cy="381.4" r="13.7" fill="#fc0"/>
<circle cx="320" cy="425.5" r="13.7" fill="#fc0"/>
<circle cx="408.3" cy="249.8" r="13.7" fill="#fc0"/>
<path fill="#fc0" d="m208.3 341.5 19.5-19.4 19.4 19.4-19.4 19.5zm204.7 21 19.5-19.5 19.5 19.5-19.5 19.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 910 B

+15
View File
@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cf" viewBox="0 0 640 480">
<defs>
<clipPath id="cf-a">
<path fill-opacity=".7" d="M-12.4 32h640v480h-640z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#cf-a)" transform="translate(12.4 -32)">
<path fill="#00f" d="M-52 32h719.3v119H-52z"/>
<path fill="#ff0" d="M-52 391.6h719.3V512H-52z"/>
<path fill="#009a00" d="M-52 271.3h719.3v120.3H-52z"/>
<path fill="#fff" d="M-52 151h719.3v120.3H-52z"/>
<path fill="red" d="M247.7 32.5h119.9V512H247.7z"/>
<path fill="#ff0" d="m99.3 137.7-31.5-21.8-31.3 22L47.4 101 16.9 78l38.2-1 12.5-36.3L80.3 77l38.1.7L88.2 101"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 687 B

+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cg" viewBox="0 0 640 480">
<defs>
<clipPath id="cg-a">
<path fill-opacity=".7" d="M-79.5 32h640v480h-640z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#cg-a)" transform="translate(79.5 -32)">
<path fill="#ff0" d="M-119.5 32h720v480h-720z"/>
<path fill="#00ca00" d="M-119.5 32v480l480-480z"/>
<path fill="red" d="M120.5 512h480V32z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 470 B

+9
View File
@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ch" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="red" d="M0 0h640v480H0z"/>
<g fill="#fff">
<path d="M170 195h300v90H170z"/>
<path d="M275 90h90v300h-90z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 290 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ci" viewBox="0 0 640 480">
<g fill-rule="evenodd">
<path fill="#00cd00" d="M426.8 0H640v480H426.8z"/>
<path fill="#ff9a00" d="M0 0h212.9v480H0z"/>
<path fill="#fff" d="M212.9 0h214v480h-214z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 277 B

+9
View File
@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ck" viewBox="0 0 640 480">
<path fill="#006" d="M0 0h640v480H0z"/>
<path fill="#fff" fill-rule="evenodd" d="m471.6 213 5.2-16.7-14-10.6 17.6-.2 6-16.5 5.6 16.5 17.7.5-14.1 10.5 5 16.7-14.5-10m27.1 13 10.4-13.9-9.7-14.8 16.7 5.8 11-13.5v17.6l16.4 6.4-16.8 5-.8 17.5-10.2-14.4m-98.4 15-.7-17.5-16.8-5.2L431 198v-17.4l10.9 13.5 16.8-5.6-9.8 14.7 10.3 14-17-4.5m-39.6 40.9-7.4-15.8-17.4 1.8 12.8-12.3L384 211l15.2 8.2 13.3-11.8-3.4 17.4 14.9 8.9-17.3 2.5M389 291.8l-13.3-11.1-15 9.2 6.4-16.7-12.9-11.6 17.3.7 7-16.4 4.3 17.2 17.2 1.5-14.6 9.8m3.2 60.4-16.5-4.8-10.1 14.5-.7-17.9-16.4-5.5 16.1-6.2v-18l10.7 14.1 16.4-5.6-9.6 15m29.5 50.8-17 2.4-3.5 17.4-7.8-16-17.1 1.6 12.2-12.3-7.1-16.4 15.3 8.5 12.8-11.8L393 362m45 38-15.1 8.2 2.6 17.6-12.7-12.4-15.6 7.6 7.3-15.9-12.3-12.9 17.3 2.6 8-15.5 3.4 17.4m53.8 9-8.3 15.3 11.7 13.2-17.4-3.3-8.9 15-2.4-17.3-17.2-4 15.8-7.4-1.7-17.5 12.2 12.8m57.4-13.1-.5 17.4 16.3 6.4-17 5-1.2 17.5-10-14.3-17 4.4 10.8-13.9-9.4-14.7 16.6 5.7M559 209.8l12 12.6 15.9-7.4-8.3 15.8 11.5 13.1-17-2.8-9 15.5L562 239l-17-3.5 15.7-8m34.2 21 5.5 16.6 17.5.3-14.2 10.7 4.7 16.8-14.1-10-14.6 10.1 5.4-16.8-13.8-10.6 17.6-.4m19.5 33.2-2 17.4 15.7 7.7-17.3 3.6-2.7 17.3-8.7-15.1-17.4 2.9 12-13-8.1-15.5 16 7.2m3 39.8-7.8 15.6L603 379l-17.4-2.7-8.4 15.3-3-17.3-17.4-3.3 15.6-8-2.3-17.4 12.6 12.3m-9.8 39.1-14.7 9.2 3.8 17.3-13.5-11.5-15 8.6 6.3-16.3-13.1-12.1 17.4 1.5 7-16 4.4 17.2"/>
<path fill="#006" d="M0 0h320v240H0z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
<path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5zm-92 10 3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
<path fill="#fff" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
<path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cl" viewBox="0 0 640 480">
<defs>
<clipPath id="cl-a">
<path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#cl-a)" transform="scale(.9375)">
<path fill="#fff" d="M256 0h512v256H256z"/>
<path fill="#0039a6" d="M0 0h256v256H0z"/>
<path fill="#fff" d="M167.8 191.7 128.2 162l-39.5 30 14.7-48.8L64 113.1l48.7-.5L127.8 64l15.5 48.5 48.7.1-39.2 30.4z"/>
<path fill="#d52b1e" d="M0 256h768v256H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 552 B

+15
View File
@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cm" viewBox="0 0 640 480">
<path fill="#007a5e" d="M0 0h213.3v480H0z"/>
<path fill="#ce1126" d="M213.3 0h213.4v480H213.3z"/>
<path fill="#fcd116" d="M426.7 0H640v480H426.7z"/>
<g fill="#fcd116" transform="translate(320 240)scale(7.1111)">
<g id="cm-b">
<path id="cm-a" d="M0-8-2.5-.4 1.3.9z"/>
<use xlink:href="#cm-a" width="100%" height="100%" transform="scale(-1 1)"/>
</g>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(72)"/>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(144)"/>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(-144)"/>
<use xlink:href="#cm-b" width="100%" height="100%" transform="rotate(-72)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 840 B

+11
View File
@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cn" viewBox="0 0 640 480">
<defs>
<path id="cn-a" fill="#ff0" d="M-.6.8 0-1 .6.8-1-.3h2z"/>
</defs>
<path fill="#ee1c25" d="M0 0h640v480H0z"/>
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(71.9991 0 0 72 120 120)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.3 48)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 288 95.8)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(6.5991 -23.0749 23.0746 6.59919 288 168)"/>
<use xlink:href="#cn-a" width="30" height="20" transform="matrix(14.9991 -18.73557 18.73533 14.99929 240 216)"/>
</svg>

After

Width:  |  Height:  |  Size: 813 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-co" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#ffe800" d="M0 0h640v480H0z"/>
<path fill="#00148e" d="M0 240h640v240H0z"/>
<path fill="#da0010" d="M0 360h640v120H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 286 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cp" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#fff" d="M0 0h640v480H0z"/>
<path fill="#000091" d="M0 0h213.3v480H0z"/>
<path fill="#e1000f" d="M426.7 0H640v480H426.7z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 289 B

+7
View File
@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cr" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#0000b4" d="M0 0h640v480H0z"/>
<path fill="#fff" d="M0 75.4h640v322.3H0z"/>
<path fill="#d90000" d="M0 157.7h640v157.7H0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 290 B

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cu" viewBox="0 0 640 480">
<defs>
<clipPath id="cu-a">
<path fill-opacity=".7" d="M-32 0h682.7v512H-32z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#cu-a)" transform="translate(30)scale(.94)">
<path fill="#002a8f" d="M-32 0h768v512H-32z"/>
<path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/>
<path fill="#cb1515" d="m-32 0 440.7 255.7L-32 511z"/>
<path fill="#fff" d="M161.8 325.5 114.3 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 610 B

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cv" viewBox="0 0 640 480">
<defs>
<clipPath id="cv-a">
<path fill-opacity=".7" d="M-123.4 0h682.6v512h-682.6z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#cv-a)" transform="translate(115.7)scale(.94)">
<path fill="#fff" d="M-123.4 233H723v206h-846.5z"/>
<path fill="#081873" d="M-122.8 0h846v256.6h-846zm.3 385.9h852.1V512h-852.1z"/>
<path fill="#de3929" d="M-122.5 302.6h846v39.6h-846z"/>
<path fill="#ffce08" d="m131 399.2 6.6 20.4H159l-17.4 12.7 6.6 20.5L131 440l-17.4 12.7 6.7-20.5-17.4-12.7h21.5M317 250.4l6.7 20.5H345l-17.4 12.6 6.6 20.5-17.4-12.7-17.4 12.7 6.6-20.5-17.4-12.6h21.6m-222 64.4 6.6 20.5h21.5L99 368.6l6.7 20.4-17.4-12.6L70.9 389l6.6-20.4-17.4-12.7h21.5M317 329.5l6.7 20.4H345l-17.4 12.7 6.6 20.4-17.4-12.6-17.4 12.7 6.6-20.5-17.4-12.7h21.6m-40.5-161.7 6.7 20.4H298l-17.4 12.7 6.6 20.5-17.4-12.7-17.4 12.7 6.7-20.5-17.5-12.7h21.6m-64.5-45.2 6.7 20.5h21.5l-17.4 12.6 6.6 20.5-17.4-12.6-17.4 12.6 6.7-20.5-17.4-12.6H192m-64.5 2.9 6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H121m-34.8 43.2 6.6 20.5h21.6l-17.5 12.6 6.7 20.5-17.4-12.7-17.4 12.7 6.6-20.5L58 271h21.5m119.2 149.4 6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H192m82.2-41.7 6.6 20.4h21.5L285 432.3l6.7 20.5-17.4-12.7-17.5 12.7 6.7-20.5-17.4-12.7h21.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+14
View File
@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cw" viewBox="0 0 640 480">
<defs>
<clipPath id="cw-a">
<path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
</clipPath>
<path id="cw-b" d="m0-1 .2.7H1L.3 0l.2.7L0 .4l-.6.4.2-.7-.5-.4h.7z"/>
</defs>
<g clip-path="url(#cw-a)" transform="scale(.94)">
<path fill="#002b7f" d="M0 0h768v512H0z"/>
<path fill="#f9e814" d="M0 320h768v64H0z"/>
<use xlink:href="#cw-b" width="13500" height="9000" x="2" y="2" fill="#fff" transform="scale(42.67)"/>
<use xlink:href="#cw-b" width="13500" height="9000" x="3" y="3" fill="#fff" transform="scale(56.9)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 687 B

+15
View File
@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cx" viewBox="0 0 640 480">
<path fill="#0021ad" d="M0 0h640v480H0z"/>
<path fill="#1c8a42" d="M0 0h640v480z"/>
<circle cx="320" cy="240" r="57.8" fill="#ffc639"/>
<path fill="#1c8a42" d="M284.7 214c4 5.5 10 14.6 14.8 12.2 3.7 0 5.7.3 6.2 2.8a37 37 0 0 0 33-14.3s.8 0 .5-4.5c0-2 2.8-1.6 2.8-1 .4 1 .4 1.7.9 1.8 1-.4 2.7-3 4-4.6q.3-1 .2-2.4c.7-1.7 2.4-1.3 2.8-.4l.6 1.6c1.8 1.2 5 0 5.2 0 .3-1.4 1.2-1.2 1.2-1.2 1.2-.3.7-.2 1.5.2-.7 7.7 1.5 8 1.3 12 .1 4.4-1.3 5.6-1.3 7.3.4 2 7 2.1 4.6 3.9-2 1 0 3-3 3.8-8.8 4.5-10.4 8.3-10.4 8.3s-2.2 4.2-2.5 4.2c-1.5 2.8-3.3 1.2-4.4 2.6-.5 1.7-1 5.5 0 7.4.5 2.7 0 4.2-.7 6.9-.6 5.6-2.8 6.5-3.1 8.4-1 2.2.2 12-.8 12-6.5.2-11.5-1.2-14.1-1.7 2.5-10.9 1.5-20.4 1.5-21.4-.6-7.8-11.6-5.9-13.3-7-1.4-.2-2.3-1.3-2.7-1.8-1.6-.2-2.2-.6-3.7-.7-.8.4-.3.8-2 1.3-4.5.5-6.4-3.8-6.4-3.8.2-1.5-9.9.3-15.3-1-2.3 1.3-3.3 5-5.1 5.4 0 1.1-3-1-3.6-2-.2-3.4 2.8-4.8 2.8-4.8 2.4-1.7 3.8-2 5-3.1.5-2.9.2-5 1.5-7.1 1-1.7 2.5-1 3.5-1.6 1.1-.8 1.6-5.6.6-7l-4.7-4.2c-1.4-4.1 1.7-6.8 2.6-6.5"/>
<path fill="#ffc639" d="M561.9 142.4c-2.6-10.3-26-32.7-43.7-46.9-4.2-2.8-7-1.1-6.4 3 2.2 3.6 3.8 7.6 6 11.3.6 2.5 1.8 4.2 2.4 6.6 0 0 .2 4.2.6 4.6 5.4 6 6.2 11.1 6.2 11.1a49 49 0 0 0 11.5 15.6c6.2 3.9 1.6 16 1.8 22.5 0 4-2.9 3.6-5.5 3-20.1-18.5-40.1-18.5-57.8-23.9-6.8-.7-7 2.6-4.7 4.4a129 129 0 0 0 39.1 29.6l7.7 4.8 8.8 7.3c6.8 4.4 7.3 8.4 7.3 8.8.2 8.2-4.2 14.6-5.5 17.2-2.3 8.7-7 10.2-7 10.2-37.6 25.4-57.4 32-118.4 24.1-1-.4-6.8.5 0 3 15.5 5.2 53.7 13.5 90.6-4 9-6.2 14.8-4.2 21.3-8a287 287 0 0 1 28.3-15.4c8.3-4.5 31.3-9.4 36.6-13.8 6.1-.5 12.4-1.3 12.8-6.5 2-1.3 5-.3 7.2-4.6 4.8-.9 4-2.6 4-2.6-1.2-3.4-5.8-4.8-9-7.3-4.8-1.6-8-2-11.5-.4l-3.3 1.5s-5.1-.7-5.1-1.1c-11.4-.6-10.3-38.3-14.3-54z"/>
<path fill="#1c8a42" d="M588.6 204.2a2.8 1.8 16 1 1-5.4-1.7 2.8 1.8 16 0 1 5.4 1.7"/>
<g fill="#fff" transform="matrix(.64 0 0 .64 0 80)">
<path id="cx-a" d="m188.2 191-12.8-12-12.9 11.8 1.4-17.4-17.3-2.8 14.5-9.8-8.6-15.2 16.7 5.3 6.5-16.2L182 151l16.7-5-8.8 15 14.4 10-17.3 2.5z"/>
<path d="m233.4 335.5-13.8-9.1-13.4 9.6 4.8-15.5-13.6-9.5 16.6-.4 5-15.5 5.6 15.3 16.7-.1L228 320l5.3 15.4z"/>
<use xlink:href="#cx-a" width="100%" height="100%" x="2.5" y="269.1"/>
<use xlink:href="#cx-a" width="100%" height="100%" x="-112.1" y="123.2"/>
<use xlink:href="#cx-a" width="100%" height="100%" x="108.4" y="85"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

+6
View File
@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cy" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v480H0z"/>
<path id="cy-a" fill="#435125" d="m307.8 398.6-.2-.2h-.1l-1.3-1.4-3.8-4.5-4.9-6.3-.6-.9-6.2-1.9-4.6-2.1 2.4-2.7 8.4 3.5 6.2 1.3 11.5 8.5-3.3 2.9-3.3 3.5.7-.5.8.6zm-42.6-12.8a32 32 0 0 1-16-4.5s.7-1.3 2.3-2.4c1.6-1.2 4.4-2.5 9-2.6q8.2 0 19.5 5.4a29 29 0 0 1-14.8 4zm-23.5-5.2q-1.6 0-2.6-1a5 5 0 0 1-1.1-2.4 12 12 0 0 1-.3-3.4l1.3-.2c2 0 3.6 1.7 4.3 3.4q.6 1.5.2 2.5t-1.8 1zm41.3-4.8c-13.9-2-19.8-7-22.3-10.9-2.6-4.1-2-8-2-8s.8-.2 2-.2c3.8 0 13.2 1.9 22.3 19zm-28.5-2.8q-8.9 0-13.4-3a8 8 0 0 1-3-3.3l-.4-1.6a18 18 0 0 1 7.2-1.4 27 27 0 0 1 18.9 8.7q-5.1.6-9.3.6m-28.7-1c-6.2 0-14.8-2-20.2-7.3 0 0 5.9-1.5 12.4-1.7h1.2q8.9 0 13.4 3.4 1.5 1.2 1.7 2.2t-.8 1.7q-2.1 1.5-7.2 1.6h-.5zm-20.3-10.5a3 3 0 0 1-2-1 5 5 0 0 1-.8-2c-.3-1.4-.2-2.8-.2-2.9l1-.2q1.4.1 2 1a6 6 0 0 1 1.4 2q.4 1.3 0 2.2c0 .4-.6 1-1.3 1zm46.9-1q-1.6 0-2.6-1a5 5 0 0 1-1.1-2.4 12 12 0 0 1-.3-3.4l1.3-.2c2 0 3.7 1.7 4.3 3.4q.6 1.5.3 2.5-.5 1-2 1zm-22.8-1c-12.6-.4-19.2-4-22.4-7a15 15 0 0 1-3.4-4.3q-.7-1.6-.7-2 .2-.5 3-.4h.4c4.2 0 12.9 1.8 23 13.7zm13.6-1.2a31 31 0 0 1-18.9-9.3 19 19 0 0 1-4.1-7s1.2-.3 3-.4h1c5 .1 14.3 2.4 19 16.7m-52-5a42 42 0 0 1-9.5-1c-5.3-1.4-7.6-3.4-8.6-4.9a5 5 0 0 1-.8-2v-.8s3.5-1 8.4-1.1a35 35 0 0 1 7.4.6 22 22 0 0 1 12.8 8.1s-4 1.2-9.7 1.2zm23.5-8.4a3 3 0 0 1-2.5-1 5 5 0 0 1-1.1-2.4c-.4-1.6-.3-3.2-.3-3.4l1.2-.3h.1c2 0 3.6 1.8 4.3 3.5q.6 1.5.2 2.4-.5 1-1.9 1.1zm-17.6-2.5a39 39 0 0 1-9.6-4.2c-4.4-2.7-9.9-7.5-10.5-15l1-.1h.3c1.3 0 4 .3 7.3 2.8q6.3 4.9 11.5 16.5m11.5-.4a31 31 0 0 1-7.6-4.9 49 49 0 0 1-13.3-18.6s.9-.5 2.3-.6h.6c2 0 4.9.9 8.1 4.4q5.7 6 10 19.7zm-29.9-.9c-3.9 0-5.2-2-5.6-3a6 6 0 0 1-.4-3l2-.2a8 8 0 0 1 6.5 3c.2.4.8 1.4.3 2.3q-.6 1-2.8 1zm-8.5-10.8a51 51 0 0 1-9-.7c-3.4-.6-5.3-3.5-6.4-5.9-1-2.5-1.4-5-1.4-5 10.6.3 15.7 3.4 18 6a9 9 0 0 1 2.6 5.5s-1.6.2-3.8.2zm11-11-2.4-3.4c-1.3-2-2.4-4-2.4-5.6 0-1.7-.4-5-.6-7l-.6-4.5c.3 0 6.6 2.4 6.6 8.4s-.6 12-.6 12zm-8.2-.6h-.2a44 44 0 0 1-18.2-10.8q-2.6-3-3.1-9.4c-.2-3 0-5.5 0-5.8l1.1-.1q2 0 5 2a40 40 0 0 1 5.2 4.4c3.2 3.2 5.7 6.4 5.7 6.4.3.4 2 3.7 3.5 6.9a22 22 0 0 1 1.6 4.6q.2.9 0 1.4l-.3.4h-.4z"/>
<use xlink:href="#cy-a" width="100%" height="100%" transform="matrix(-1 0 0 1 593.7 0)"/>
<path fill="#d47600" d="m519 76.4-1.8.7-.8.3-2.2-.1-2.2 1-3.8 2.6-.1.1-1.5.4-1.3-.6-.7.4-.3 1.5-.7 1.1-.9.6-3 .3-2.5 1.4-3.4-1-1.5.7-3.3 3-1.7.7h-.5l-2.3-.1-.9.3-1.4 1.3-2.6.2-.9.6-1.3 2.6L476 96l-.8.1-.8-.3-.7.1-.3 1.7-.6.7-1.8.6-1.4 1.2-1.3.6h-2l-1.7 1-3.1.2-1.3 1.2-.3.3-.6.3-1 .6-.2.2-1.2-.2-1.4.5-.6-.8-1 .5-1.2.1-1.6-.7-1.3-.6-.9.2-.3 1.5v.2l-1 1.2-1.7 1.1-.2.3-2 2.6-3.8 4-3.2 1.6-3.3 1-2.3 1.9-6 3-9.7 4.8-2 .6-2.8.4-5 1.9-4.4 1.3-.3.1-.8.3-6.3 1.9-2.9-.4-1.7.7-4.5-.5h-3.1l-2 .4-3.7 1.8-6.3 3-2 2-3.2 1.6-3.8 1.2v-1.6l-1.3.4-1 .3-3 .4h-1.7l-1.1-.3h-.2l-6.2 2.1-7 .7-3.5 1.1H333l-1.6.5-3.2.4-1.2-.3-.2-.1-9.4.4-4.3-.5-2 .5-3.5-1.2-5-.6-1.2-.3-2.6-.8-1.2.7-1 .1-2-.8h-.8l-1.8.6-1-.2-1-.8-2.1-.3-1.4-1.1-7.5 1-2-.6-6.9-2h-1l-1.4 1-2 .8-1.9.4-2.4.1-2.8-.7-2.8-1.4-1.1-.3-2.4.3h-.7l-4.4-2.3-5.6-3.5-3.8-1.9-1.5-.2-.2.7.7 2.2.3 2.3v2l-.1 1.3.3 1.1 1.4 1.6.6 1.5.4 4.2v4.3l-.7 6.8-.2 1-.8 3.6-.7 3.3-2.9 8.7-.7 1-2 1.3-4.3 3-3.2 1.8-1 .4-2.6.2H219l-2-1.1-2-.5-2.6-1.9-2.8-.6-3.2-1.8-.8-1-1.7-.2-2.4-.7-.9-.3-.6-.1-3-.1-2.9-1.3-1.5-.4h-2l-2.1 1-1.1.4-1.4-.5h-1l-1 1.7-.2.3-.8.4h-1.7l-.8.3-1.1.5-1 .4-.5.2h-.3l-.5.2h-.6l-1.2-.6-.6-.3-1-.2-.5.3-.1 1.9-.5 1.1-1.6 1.4-1.6 1.4-1 1.6-3 6.7-1.9 2.7-.5.7-2 2.1-1.7 1.3-3.9 3-3.7 1.5-3.2.6h-1.6l-3-.4-2.6-.8-3-1.8-3.1-2.6-4.7-4.5-.6-.4-.2-.1-1.4-1h-1.1l-.4.8-.3 1-.2.9-.5 5v.3l.3 2.1 3.6 5 1 2.6.2.3.7 1.2.6 1 1.3 3.6-.9 2 .4 1.4-1 .8-.2 1.2 3.1 4 .7 1.7-.7 2.4-1.3 1.4-.3.3.2 1 1.4 1.4 2.5 2.2 1.3 3.2 1 1 1.2-.3.6.5h1l1 1 .6.2 1 .5.8 1 .1 3.2 1.5 3.8v2.5l1 1.5.2 1.2-.5 3.3 1.2 1 1.2-.2.8.1 1.3 1.1 1.6 2.4 1.6-.2 1 .4 4.7 4.3 1 .6.9.4 1 1 1.4-1h.2l1.6-.2.7.5 1.4.9h1.7l4 1.2 1.6.4 3.4 2.1 1.5.9.8.7 1.2 1 2.2 1 2 .4 1 .2.9.3 4.2 1.7 2.3.5 2 .8 1.6.5h1.2l1.6-1.3h1.5l1.3.2 1.3-.2 2-1.2.3-.6 1.4-.6 4.8-.6 1.4.4 3.6-1.5 2.4.6 2-.7 4.7 1 1.2.9 1.4 1.5h1.7l-.7 1.1 2 2.2 1.9 2.7.1.4 1.3 3.9 1 1.4.7 1.9v1.2l-1 .9-.2.4v.2l.2.5.4-.2.7-.4 1-.2 1.6.2 1.1.1 1.7-.8 1.2-.6 1.8.8h2l.9.3 2.4 1.1 1.2.1.4-.3.3-.6-.1-.8-1-1.1-2-2.4-.8-1.2-.6-1.7-.2-2.2-.2-1.5.3-2 .5-.7.4-1.6.1-.4 1.2-1.5 3-2 3.2-2.8 2.5-1.7 2.6-1.1v-.3l.4.1 6.6-2.3 3-.5 20 1.4.7-.2.7-1.9.3-.3.3-.2 2.2-1 1-.2 2.8.7 1.2.3 1.9-1h1.3l2.7-1.5h1.7l.7-.2 3.3-2.4 3.1-.9.8-.4.3-.2 3.3-1.7 2-1.6 1.8-1 2-.4 5-.4 1.1-1.7 2.2-.3 1.3-1.5 1.5-.6 1.1-1.6 1-1.3 1.2-.7 4.1-.3 4.8.6.7-.4 1-3.9 1.2-.7 3-4.5v-1.6l.1-1.4.5-2-.3-3.4.4-3.6 1.9-4.5 1.7-1.8 2.7-1.9 1.4-.6 2-.3h.2l.5-.2h9.2l2.3-.1 5.7 1h.4l1.9.7 2.2 1.7 2.4 2.3.4.4 1.5.7.5.2 1.2-.2 1.8-1 1.4-1 1.8-1v-.2l1.1-1.5.4-.7 3.6-1.4 4.2-.2.5-.3h.2l1.1-1.4h1l2.6 1 1.7-.4 1.4.5 1.1-.1 2-.3 2.3 1.6 1.3.2 4.5 2.6h.4l.2.1.5-.2.8-.2h.1l.1.1.6.7.7.1.8-1-.3-.6-.1-.2-1.7-.3-1.4-2.5 1.4-1.5-2.2-2.6-.4-.5v-.1l-.8-1.2-3.8-5.8-5-4-1.7-1.3-.6-.5-2.7-2.7-1.9-2.5-.2-.5-.4-.9-1.1-2.4-2-1.5-1.6-1.8-3.4-4.6-.5-.7-.8-.5h-1.7l-.1-.2h-.1v-.1l.8-.8 1-.2.3-.9-1.7-4.9v-.2l-.1-1.5 1.3-7.1.2-.9 2.4-4.7 1.4-1.2 1.6-3.1 1.4-2 1.3-1.3.2-.1 2.3-1.4 2-.3 1.9-.3 3.3 1h3l.7-.1 1.4-.2 2.3-.7 1.1-.7.6-.8 1.2-4 .4-1.3.7-1.4 4.3-4.9 3.2-3 7.2-5.2 3.5-2.1 1.8-1.1 16.1-7.2 4.2-4.2 2.2-2.2 3.8-2.6 4.5-1.9 4-3 .8-1.1 1-3.5 1-.2.7-1.7.3-.5 3.1-2.2.4-.2 12.3-6.2 1.8.3 1-1.5 3.5-.6h.7l.9-.5.7-1.3v-.3l.1-3.4.8-.9.4-2.2.4-.6.4-.5 1-.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-cz" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v240H0z"/>
<path fill="#d7141a" d="M0 240h640v240H0z"/>
<path fill="#11457e" d="M360 240 0 0v480z"/>
</svg>

After

Width:  |  Height:  |  Size: 225 B

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-de" viewBox="0 0 640 480">
<path fill="#fc0" d="M0 320h640v160H0z"/>
<path fill="#000001" d="M0 0h640v160H0z"/>
<path fill="red" d="M0 160h640v160H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 221 B

+130
View File
@@ -0,0 +1,130 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dg" viewBox="0 0 640 480">
<path fill="#fff" d="M0 0h640v480H0z"/>
<path fill="#000063" fill-rule="evenodd" d="M640 416.2c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.7c11.4 0 17.1-23 36.3-23 28.5 0 38 32.4 76 32.4 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.2c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.8c11.4 0 17.1-23.1 36.3-23.1 28.5 0 38 32.5 76 32.5 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.1c-7.2 6.7-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.8c11.4 0 17.1-23.2 36.3-23.2 28.5 0 38 32.5 76 32.5 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.2 32.4-15.8zm0-81.1c-7.2 6.6-13.3 22-32.4 22-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 0-24.8 23.2-36.2 23.2v41.7c11.4 0 17.1-23 36.3-23 28.5 0 38 32.4 76 32.4 19.1 0 28.6-32.5 47.7-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.5-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.5-32.5 47.5-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.3 32.4-15.9zm0-81.3c-7.2 6.7-13.3 22.1-32.4 22.1-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.6 32.5-47.6 32.5-38.2 0-47.7-32.5-76.2-32.5-19 .1-24.8 23.3-36.2 23.3v41.8c11.4 0 17.1-23.1 36.2-23.1 28.5 0 38.1 32.5 76.2 32.5 19 0 28.5-32.5 47.6-32.5 28.6 0 38.1 32.5 76.3 32.5 19 0 28.4-32.5 47.4-32.5 28.7 0 38.2 32.5 76.3 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.1 32.5 76.2 32.5 19 0 28.6-32.5 47.6-32.5 28.6 0 38.2 32.5 76.2 32.5 19 0 25.2-9.3 32.4-15.9v-48Zm0-81c-7.2 6.6-13.3 22-32.4 22C569.5 32.5 560 0 531.4 0c-19 0-28.5 32.5-47.6 32.5-38.1 0-47.6-32.5-76.2-32.5-19 0-28.5 32.5-47.5 32.5-38.2 0-47.7-32.5-76.3-32.5-19 0-28.6 32.5-47.6 32.5C198 32.5 188.6 0 160 0c-19 0-28.6 32.5-47.6 32.5C74.2 32.5 64.7 0 36.2 0 17.2 0 11.4 23.2 0 23.2v41.9C11.4 65 17.1 42 36.2 42c28.5 0 38.1 32.4 76.2 32.4 19 0 28.5-32.4 47.6-32.4 28.6 0 38.1 32.4 76.3 32.4 19 0 28.4-32.4 47.4-32.4 28.7 0 38.2 32.4 76.3 32.4 19 0 28.6-32.4 47.6-32.4 28.6 0 38.1 32.4 76.2 32.4 19 0 28.6-32.4 47.6-32.4 28.6 0 38.2 32.4 76.2 32.4 19 0 25.2-9.2 32.4-15.8z"/>
<path fill="#a24300" fill-rule="evenodd" stroke="#fff" stroke-width="2.1" d="m474.8 131.7-3.5 329c0 17.3 15.7 17.3 17.4 0l-3.5-329Z"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.8" d="m510.7 254-11-11.9-2.6 12.1-4.7-17.5-4.5 8.8-.8-18.6-4.4 8.8-.8-18.6-4.4 8.8L475 204l-4.4 8.8L468 191l-4.5 8.8-2.5-21.9-1.3-11 2.2-4.3 5.8 2.1 9.1 8.7 18.3 17.4-11.3-4.3 18.3 17.4-11.4-4.3 18.3 17.3-11.4-4.2 16.6 14-11.3-4.2 16.5 14-11.3-4.2 12.6 15.2-13.1-7.6 3 14.3z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="M510.7 254 462 162.6m33.1 28.2L469 175.6l-5.4 24.1"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m502.2 203.8-26.3-15.1-5.3 24.1"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m509.1 216.8-26.2-15-5.4 24"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m514.3 226.7-24.5-11.9-7 21"/>
<path fill="none" stroke="#000" stroke-width=".3" d="M519.5 236.5 495 224.6l-7 21"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m520.8 247.4-22.3-16.2-1.4 23"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m383 97.9 17.8 6.8-5.2-13.5 15.6 15.3-1.5-11 12.6 18.4-1.5-11 12.6 18.4-1.5-11 16.3 20.8-1.5-11 16.3 20.8-1.4-11 16.2 20.8 8.2 10.4.7 5.5-6.7.6-14-4.3-28.2-8.7 13.3-1.1-28.1-8.7 13.3-1.1-28.1-8.7 13.3-1.2-24.4-6.2 13.3-1.1-24.4-6.2 13.3-1.2-21.5-9.3 17.1 1.3L383.1 98z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m383 97.9 103.7 68.7m-48.9-12.4 34.1 2.6-10.3-26.9"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m423 144.4 34 2.6-10.3-27"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m408.2 134.6 34 2.6-10.3-27"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m397 127.2 30.5.1-6.7-24.4"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m386 119.8 30.4.2-6.7-24.5"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m377.8 109.4 31.1 5.7-13.2-23.9"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="M589.8 120.8 575 131.7l16.4 1.8-22.9 5.4 12.2 3.6-24.7 1.8 12.2 3.6-24.7 1.8 12.1 3.7-28.9 3.6 12.2 3.6-28.9 3.6 12.2 3.6-28.9 3.6-14.5 1.8-6-1.8 2.2-5.4 10.7-9 21.3-18.1-4.6 10.8 21.3-18-4.6 10.8 21.3-18-4.6 10.8L553 119l-4.5 10.9 17-16.3-4.5 10.8 19-12.6-8.7 12.7 18.6-3.6z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m589.8 120.8-117 50.6m34.1-32.5-17.4 25.3 32.7 3.6"/>
<path fill="none" stroke="#000" stroke-width=".3" d="M523.7 131.7 506.2 157l32.7 3.6"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m540.4 124.4-17.5 25.3 32.7 3.7"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m553 119-13.3 23.5 28.5 5.4"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m565.5 113.6-13.3 23.5 28.5 5.4"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m580 111.8-19.4 21.7h30.7"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="M587.4 230.3 569 225l6.6 13-17.1-14 2.6 10.7-14.5-17.2 2.7 10.8-14.5-17.3 2.6 10.8-18.5-19.4 2.7 10.8-18.5-19.4 2.7 10.8-18.5-19.4-9.2-9.7-1.3-5.4 6.6-1.2 14.5 3.2 29 6.4-13.2 2.2 29 6.4-13.2 2.2 29 6.4-13.2 2.3 25 4.2-13.2 2.2 25 4.2L569 211l22.3 7.5h-17l13 12z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m587.4 230.3-110.6-60.2m50 8.4-34.2.2 13.2 26"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m542.6 187.1-34.2.2 13.2 26"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m558.4 195.7-34.2.2 13.2 26"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m570.3 202.2-30.3 2.3 9.3 23.8"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m582.2 208.7-30.3 2.2 9.2 23.8"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m591.3 218.4-31.5-3.2 15.8 22.8"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.8" d="m395.2 236.6 9.3-13-14.1 2.1 17.4-9.9-11.1-.5 20-7-11.1-.6 20-7-11.1-.6 23-9.6-11.2-.5 23-9.7-11.1-.5 23-9.6 11.5-4.9 5.6.3-.4 5.3-6.3 10.4-12.6 20.8.8-10.6-12.6 20.8.7-10.7-12.6 20.8.7-10.6-9.6 18.2.7-10.6-9.6 18.2.7-10.6-12.2 15.4 3.7-13.2z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m395.2 236.6 83-71m-19.1 36.5 7.3-26.4-28.2 4.1"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m447.2 212.3 7.3-26.4-28.2 4"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m435.3 222.4 7.4-26.4-28.2 4.1"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m426.4 230 4.4-23.8-25.2 1.5"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m417.5 237.6 4.4-23.8-25.2 1.5"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m406 242.4 10-23.5-25.6 6.8"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m563 66.2-17.9 12-2.9-12.9-10.5 17.8-2-8.5-8.6 18.2-1.2-8.4-6.7 18.7-3.8-9-6.7 22.7-3.8-9-6.7 22.7-3.9-9-6.7 22.7-3.3 11.4 1.9 4.5 7.2-2.4 12.4-9.2 25-18.4-14.4 4.7 24.9-18.5-14.4 4.8 24.9-18.5-14.4 4.8 25-14.4-17 4L566 83.3l-16.3 4.2 19.7-15.6-17 8.1z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m556 72.7-25.8 22.2-50 65.2"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m519.3 132.8-28.6 13.5-2.4-20.8"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m530.2 119.2-29 13.4-2.3-20.8"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m540.5 105.5-28.7 13.4-2.2-20.7"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m549.1 95.3-26.8 9.9-3-17"/>
<path fill="none" stroke="#000" stroke-width=".3" d="M559 85.5 530.2 95l-1-16.4"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m562.8 76.2-26.6 13.6 5.2-20.6"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="2" d="m466.1 43.8 8 18.2 10.3-9.6-1.7 19.8 6.8-6.4-3.7 19.4 6-6.6-5.5 19 8.7-6-8 22.3 8.6-6-8 22.5 8.7-6-8 22.4-4 11.2-4.4 3-4.8-5.3-5-13.4-10-26.9 9.4 10.5-10.1-27 9.4 10.6-10-27L468 93l-12.5-23.4 12 11.1-14.4-23.9 11.3 11-7.3-22.2 9.6 14.6z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m468.2 52.4 8.5 30.5 3.2 78"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m463 120.2 16.2 24.3 14.7-16.7"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m462 103.7 16.5 24.4 14.7-16.7"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m461.5 87.3 16.4 24.4L492.3 95"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m460.4 74.9 16.8 20.4 13-13"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m458 62 18.7 21 11-13.6"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m460.3 52.4 14.4 23.5 8.1-19.9"/>
<path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="1.9" d="m359 178 23.3-16.2-11.7-6 20.5 3.4-7-9.3 19.8 7.5-7-9.3 19.9 7.4-7-9.2 24 8.1-7-9.3 23.3 12.1-7-9.3 24 8.2 11.7 6 3.5 4.6-4.7 3.3-12.9 1.8-20.7 8.6 3.8-7.4-25.7 3.6 9.3-6.4-26.3 7.6 9.4-6.5-22.2 8.3 9.9-10.4-22.8 12.2 10-10.4-18.8 13 10.5-14.4z"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m366.3 173.6 24.2-10.5 12.9-1.8 10.7-.2 18.5 1.2 16.7.7 33 3.7"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m447.2 176.9 18.5-11.4-18.8-14.7"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m426.5 175.2 22.7-12.2-18.7-14.8"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m411.7 174.8 20.9-12.5-19-13.7m-29.5 29.6 19.3-16.9-15.6-8.5"/>
<path fill="none" stroke="#000" stroke-width=".3" d="m375.5 179.3 15-16.1-12-4.5m18.4 17.7 19-15.2-15.2-10.4"/>
<g fill-rule="evenodd">
<path fill="#c00" stroke="#000" stroke-width="1pt" d="m541.5 1173.3-1.7-229.1-61.1-107c-15.3-52.6-7.8-78 17-79.8 24.7-1.6 49.2 13.6 84.8 15.3s28.9-59.4 81.5-57.7 144.3 32.3 222.3 37.4c78.1 5 118.8-27.2 208.8-30.6s113.7 42.4 118.8 42.4 30.6-18.6 56-22c25.5-3.4 34 10.2 34 10.2s-1.7 57.7-13.6 91.6c-11.9 34-54.3 90-56 90s-15.3 249.5-15.3 251.2-675.5-6.8-675.5-11.9z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
<g stroke="#000" stroke-width="1pt">
<path fill="#fff100" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8z" transform="matrix(-.12934 0 0 .11906 596.6 257.6)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 594.5 257.4)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 596.8 252.6)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598 247.6)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598.9 242.4)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 598.7 236.8)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 591.2 261.7)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 596.7 231.4)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 592.5 227.1)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 586.8 224.3)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 581 223.9)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 575 224)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 568.8 225)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 562.7 225.7)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 556 226.6)"/>
<path fill="#fff" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(-.12934 0 0 .11906 550.4 228.1)"/>
</g>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 369.5 257.4)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 367.2 252.6)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 366 247.6)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 365.2 242.4)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 365.4 236.8)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 367.3 231.4)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 371.4 227.1)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 377.2 224.3)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 382.9 223.9)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 389 224)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 395.2 225)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 401.4 225.7)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 407.9 226.6)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 413.6 228.1)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 372.8 261.7)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04311 0 0 .04536 398.7 310.9)"/>
<path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04311 0 0 .04536 444.5 310.9)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 832.7V673.2s35.4 53.2 88.6 53.2c43.5 0 88.6-70.9 88.6-70.9s41.5 53.2 88.6 53.2c42 0 88.5-68.6 88.5-68.6s43.2 68.6 88.6 68.6c45.5 0 88.6-53.2 88.6-53.2s46.3 70.9 106.3 70.9c53.1 0 70.9-53.2 70.9-53.2v159.5z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 344.5 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7z" transform="matrix(-.12934 0 0 .11906 619.4 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7z" transform="matrix(.12934 0 0 .11906 413.3 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M584.6 847.5c0-88.6 124.1-159.4 124.1-159.4s124 70.8 124 159.4h-248z" transform="matrix(.12934 0 0 .11906 390.4 255.9)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M1275.6 655.5c-35.4-17.7-166-35.4-376.3-35.4s-350 17.7-385.5 35.4c-35.4 17.7-35.4 53.2 0 70.9s175.3 35.4 385.5 35.4 340.9-17.7 376.3-35.4 35.4-53.2 0-70.9z" transform="matrix(.12788 0 0 .11906 367 278.7)"/>
<path fill="gray" d="M527.9 365.2c0 4.2-38.2 4.2-45.9 4.2-8.3 0-45.8 1.2-45.8-4.2 0-4.2 37.8-4.2 45.8-4.2s45.9.8 45.9 4.2"/>
<path fill="#c00" d="M440.8 350c0 1.4-1 2.6-2.3 2.6s-2.3-1.2-2.3-2.6 1-2.5 2.3-2.5 2.3 1.2 2.3 2.5m87 0c0 1.4-1 2.6-2.3 2.6s-2.3-1.2-2.3-2.6 1-2.5 2.3-2.5 2.3 1.2 2.3 2.5"/>
<path d="M486.6 348.8c0 1.3-2.1 2.4-4.6 2.4s-4.6-1.1-4.6-2.5 2-2.5 4.6-2.5 4.6 1.2 4.6 2.5z"/>
<path fill="#006300" d="M508.6 348.8c0 1.3-1.6 2.4-3.5 2.4s-3.4-1.1-3.4-2.5 1.6-2.5 3.4-2.5 3.5 1.2 3.5 2.5zm-47.2 0c0 1.3-1.5 2.4-3.4 2.4s-3.5-1.1-3.5-2.5 1.5-2.5 3.5-2.5c1.9 0 3.4 1.2 3.4 2.5z"/>
<path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.0739 0 0 .06804 379.9 300.5)"/>
<path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9z" transform="matrix(.03696 0 0 .05953 385 309.3)"/>
<path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9z" transform="matrix(-.03696 0 0 .05953 579 309.3)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 1 1-35.4 0 17.7 17.7 0 0 1 35.4 0z" transform="matrix(.12934 0 0 .11906 367.5 257.6)"/>
<path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.0739 0 0 .06804 379.9 256.2)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 1 1-35.4 0 17.7 17.7 0 0 1 35.4 0z" transform="matrix(.12934 0 0 .11906 367.7 213.7)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 655.5h70.9v53.2h-71z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
<path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 683.3h70.9v202.5h-71z" transform="matrix(.12934 0 0 .11906 367.5 215.5)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 251.2)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 245.8)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 240.8)"/>
<path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.8 17.8 0 1 1-35.5 0 17.8 17.8 0 0 1 35.5 0z" transform="matrix(.12934 0 0 .11906 422.4 235.5)"/>
<path d="M486.9 356.8c0 1-2.1 1.7-4.8 1.7s-4.5-.7-4.5-1.7 2-1.7 4.6-1.7 4.7.8 4.7 1.7M529 361c-.3.7-2.6.8-5.1 0-2.6-.5-4.4-1.4-4.2-2 .3-.8 2.6-.8 5.1-.2 2.6.6 4.4 1.5 4.2 2.2m-17.7-2.8c0 .8-2.3 1.3-5 1.2-2.5-.2-4.6-1-4.5-2 .1-.8 2.4-1.2 5-1s4.7.9 4.5 1.8m-77.5 2.8c.2.7 2.5.8 5 0 2.6-.5 4.5-1.4 4.2-2-.3-.8-2.5-.8-5-.2-2.6.6-4.4 1.5-4.2 2.2m18.5-3.2c.1.8 2.4 1.3 5 1.1s4.7-1 4.5-1.9c0-.7-2.3-1.3-5-1.1-2.5.2-4.6 1-4.5 1.9"/>
</g>
<path fill="#012169" d="M0 0h320v240H0Z"/>
<path fill="#fff" d="m37.5 0 122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0Z"/>
<path fill="#c8102e" d="M212 140.5 320 220v20l-135.5-99.5Zm-92 10 3 17.5-96 72H0ZM320 0v1.5l-124.5 94 1-22L295 0ZM0 0l119.5 88h-30L0 21Z"/>
<path fill="#fff" d="M120.5 0v240h80V0ZM0 80v80h320V80Z"/>
<path fill="#c8102e" d="M0 96.5v48h320v-48zM136.5 0v240h48V0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

+13
View File
@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dj" viewBox="0 0 640 480">
<defs>
<clipPath id="dj-a">
<path fill-opacity=".7" d="M-40 0h682.7v512H-40z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#dj-a)" transform="translate(37.5)scale(.94)">
<path fill="#0c0" d="M-40 0h768v512H-40z"/>
<path fill="#69f" d="M-40 0h768v256H-40z"/>
<path fill="#fffefe" d="m-40 0 382.7 255.7L-40 511z"/>
<path fill="red" d="M119.8 292 89 270l-30.7 22.4L69.7 256l-30.6-22.5 37.9-.3 11.7-36.3 12 36.2h37.9l-30.5 22.7 11.7 36.4z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 585 B

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dk" viewBox="0 0 640 480">
<path fill="#c8102e" d="M0 0h640.1v480H0z"/>
<path fill="#fff" d="M205.7 0h68.6v480h-68.6z"/>
<path fill="#fff" d="M0 205.7h640.1v68.6H0z"/>
</svg>

After

Width:  |  Height:  |  Size: 236 B

+152
View File
@@ -0,0 +1,152 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dm" viewBox="0 0 640 480">
<defs>
<clipPath id="dm-a">
<path fill-opacity=".7" d="M-85 0h682.7v512H-85z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#dm-a)" transform="translate(79.7)scale(.94)">
<path fill="#108c00" d="M-258.3 0H769.2v512H-258.3z"/>
<path fill="#ffd600" d="M-260 178.2H772.6v50.1H-260z"/>
<path fill="#ffd600" d="M181 0h48.5v512h-48.4z"/>
<path fill="#000001" d="M227.8 0h48.4v512h-48.4z"/>
<path fill="#000001" d="M-260 226.6H772.6v50.2H-260z"/>
<path fill="#fff" d="M-260 276.8H772.6v50.1H-260z"/>
<path fill="#fff" d="M276.2 0h48.5v512h-48.5z"/>
<rect width="273.8" height="275" x="-394.6" y="-393.9" fill="#e72910" ry="137.5" transform="scale(-1)"/>
<g stroke-width="1pt">
<path d="m250.5 137 5.6-16 5.1 15.7s17.1.5 17.1.2-13.5 10.3-13.5 10.3l6.1 17.6c-.2-.5-14.8-10.9-14.8-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17l-13.3-10.1 16.6-.3z"/>
<path fill="#ffe700" d="M251.3 137.7 256 124l4.4 13.6s14.9.4 14.9.2-11.7 9-11.7 9l5.2 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 5-14.8 5-14.8l-11.6-8.8 14.4-.2z"/>
<path fill="#108c00" d="m253.3 140 2.8-8 2.6 7.9s8.5.2 8.5 0-6.7 5.2-6.7 5.2l3 8.8c-.1-.3-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5z"/>
</g>
<g stroke-width="1pt">
<path d="m356.9 211.8 5.6-16 5 15.7s17.2.6 17.2.3-13.5 10.3-13.5 10.3l6 17.6c-.2-.5-14.7-10.9-14.7-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17L340.3 212l16.6-.3z"/>
<path fill="#ffe700" d="m357.6 212.6 4.9-13.9 4.4 13.7s14.8.4 14.8.2-11.7 9-11.7 9l5.3 15.1c-.2-.4-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7z"/>
<path fill="#108c00" d="m359.7 214.9 2.8-8 2.5 7.8 8.6.2-6.8 5.1s3.2 9 3 8.8c0-.3-7.3-5.4-7.3-5.4l-7.3 5.1 2.8-8.5-6.6-5z"/>
</g>
<g stroke-width="1pt">
<path d="m325.9 330.6 5.6-16 5 15.8s17.2.5 17.2.3-13.5 10.3-13.5 10.3l6 17.5c-.2-.5-14.7-10.8-14.7-10.8S316.7 358 316.9 358s5.7-17 5.7-17l-13.3-10z"/>
<path fill="#ffe700" d="m326.6 331.4 4.9-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7z"/>
<path fill="#108c00" d="m328.7 333.7 2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5z"/>
</g>
<g stroke-width="1pt">
<path d="m177.2 330.6 5.6-16 5 15.8s17.1.5 17.1.3-13.5 10.3-13.5 10.3l6.2 17.5c-.3-.5-14.8-10.8-14.8-10.8S168 358 168.2 358s5.7-17 5.7-17l-13.3-10z"/>
<path fill="#ffe700" d="m178 331.4 4.8-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7z"/>
<path fill="#108c00" d="m180 333.7 2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5z"/>
</g>
<g stroke-width="1pt">
<path d="m150 208.7 5.6-16 5.1 15.8s17.1.5 17.1.2-13.5 10.4-13.5 10.4l6.1 17.5c-.3-.5-14.8-10.8-14.8-10.8S140.8 236 141.1 236s5.6-17 5.6-17l-13.3-10z"/>
<path fill="#ffe700" d="m150.8 209.5 4.8-13.8 4.5 13.6s14.7.5 14.7.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.5 9 4.8-14.8 4.8-14.8l-11.5-8.7z"/>
<path fill="#108c00" d="m152.8 211.8 2.8-8 2.6 7.9 8.5.1-6.7 5.2 3 8.7c-.1-.2-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5z"/>
</g>
<g stroke-width="1pt">
<path d="m324.6 174.1-5.6 16-5-15.7s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17l13.3 10z"/>
<path fill="#ffe700" d="M323.9 173.3c0 .3-5 13.9-5 13.9l-4.3-13.6s-14.8-.5-14.8-.3 11.7-8.9 11.7-8.9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7z"/>
<path fill="#108c00" d="m321.8 171-2.8 8-2.5-7.8s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.5-2.9 8.5l6.7 5-8.3.2z"/>
</g>
<g stroke-width="1pt">
<path d="m367.3 290.3-5.6 16-5-15.8s-17.2-.5-17.2-.2S353 280 353 280l-6-17.6c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L384 290z"/>
<path fill="#ffe700" d="m366.6 289.5-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8z"/>
<path fill="#108c00" d="m364.5 287.2-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.6-2.9 8.6l6.7 5z"/>
</g>
<g stroke-width="1pt">
<path d="m261.4 375.3-5.6 16-5-15.8s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L278 375z"/>
<path fill="#ffe700" d="m260.7 374.4-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7-14.3.3z"/>
<path fill="#108c00" d="m258.6 372.2-2.8 8-2.5-7.9s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5z"/>
</g>
<g stroke-width="1pt">
<path d="m162 290.3-5.7 16-5-15.8s-17.2-.5-17.2-.2 13.5-10.3 13.5-10.3l-6-17.6c.2.5 14.7 10.8 14.7 10.8L171 263l-5.7 17 13.3 10.1-16.6.3z"/>
<path fill="#ffe700" d="m161.2 289.5-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8z"/>
<path fill="#108c00" d="m159.1 287.2-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.6 6.6 5z"/>
</g>
<g stroke-width="1pt">
<path d="m198.7 175.8-5.6 16-5.2-15.7s-17-.5-17-.3 13.5-10.3 13.5-10.3l-6.1-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.6-10.3-5.6 17-5.6 17l13.2 10z"/>
<path fill="#ffe700" d="m197.9 175-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.8 14.8-4.8 14.8l11.4 8.7-14.3.3z"/>
<path fill="#108c00" d="m195.8 172.8-2.8 8-2.5-7.9s-8.5-.3-8.5-.1 6.7-5.2 6.7-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5z"/>
</g>
<g transform="translate(-250.6 359.4)scale(1.04)">
<g fill="#009200" stroke="#000" stroke-width="2.5" transform="matrix(.16 -.02 0 .18 429.8 -215.6)">
<ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.4 0 0 1 -534.3 263.7)"/>
<ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.5 0 0 1 -547.2 267)"/>
<ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.2 0 0 1.1 -365 214.1)"/>
</g>
<g stroke="#000" transform="translate(72.9 -9.8)">
<path fill="#a95600" stroke-width=".5" d="M388.5-53c6-.3 3.4-3.3 6.4-5 3-1.6 7.3-.6 8.6 1.4s.3 4 2 4 47-2.5 48.6-.9 2 5 .3 6.3c-1.6 1.4-58.9 3-60.9 1.6s-5-7-5-7.4z"/>
<path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 340.4 -81.7)"/>
<path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 344.4 -81.6)"/>
<path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 348.7 -81.8)"/>
<path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 352.7 -81.8)"/>
<ellipse cx="478.4" cy="-41.1" fill="#a95600" stroke-width=".4" rx="3.5" ry="3.4" transform="matrix(1.1 .02 -.02 1.15 -75.6 4.7)"/>
</g>
<g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(-5.8 688.4 -625.2)">
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 369.8 -361.6)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 364 -362.7)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 360.6 -370.6)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .35 369.3 -399.4)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 377.4 -379)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 373.2 -382.2)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 368 -386.7)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 363 -389.5)"/>
</g>
<path fill="#804bff" stroke="#000" stroke-width=".5" d="M482.6-141s-11.7 10-10.1 36.9c1.8 27 26.5 39.5 26.5 39.5s6.2-7.7 5.2-29.5c-2-31.8-13.8-45.7-13.8-45.7l-7.8-1.3z"/>
<g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(4.5 181 769.9)">
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 369.8 -361.6)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 364 -362.7)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 360.6 -370.6)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .35 369.3 -399.4)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 377.4 -379)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 373.2 -382.2)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 368 -386.7)"/>
<ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 363 -389.5)"/>
</g>
<ellipse cx="624.4" cy="606.1" fill="#c90000" stroke="#000" stroke-width="1pt" rx="58.3" ry="186.5" transform="matrix(.16 -.06 .06 .15 369.6 -145)"/>
<g fill="#009200" stroke="#000" transform="rotate(1 242.4 -1957.8)">
<ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.4 0 0 .3 445 -230.5)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 457.2 -236)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 452 -236)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 449.5 -233.5)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 449 -238)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 447 -238.8)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 448 -241.6)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.4 0 0 .3 432.8 -243.5)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 446 -243.5)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 444.2 -247)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 436.1 -243.2)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 437.4 -243.9)"/>
<ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 439 -247)"/>
</g>
<g fill="#009200" stroke="#000" transform="matrix(.18 0 0 .2 421 -216.8)">
<ellipse cx="528.7" cy="564.5" stroke-width="2.5" rx="67.4" ry="205.6" transform="matrix(.98 -.3 .36 .87 -245.8 324.4)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="2.5" rx="13.3" ry="40.8" transform="rotate(-23.4 630.5 660.9)"/>
<path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3s29.5-85.3 40.3-102c-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.88 -.46 .95 1.18 -352.3 -10)"/>
<path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3s29.5-85.3 40.3-102c-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.88 -.46 .95 1.18 -348.4 44)"/>
<path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3s29.5-85.3 40.3-102c-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.87 -.5 .98 1.16 -362 105.8)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="1.4" rx="13.3" ry="40.8" transform="matrix(1.8 -.4 .7 1.64 -915.6 -221)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.23 .54 1.35 -739.5 -91.8)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.2 .5 1.36 -750.6 -91.8)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.3 -.2 .47 1 -531 47.6)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.13 .4 1.03 -517.9 12.2)"/>
<path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(1.03 -.5 .46 1.18 12.8 -14.5)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.13 .4 1.03 -519.5 -34.4)"/>
<ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.1 .38 1.04 -534 -40.1)"/>
<path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.47 .46 .8 39.5 143.3)"/>
<path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.47 .46 .8 51.1 125.8)"/>
<path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.94 -.64 .64 1.1 -40.2 -10.7)"/>
<path stroke-width="2.7" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.52 .46 .88 68.6 71.2)"/>
</g>
<g fill="#804bff" stroke="#000" stroke-width="2.5">
<path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 458 -214.3)"/>
<path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 456.6 -220.2)"/>
<path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 454.8 -225.8)"/>
<path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 450.9 -232.2)"/>
</g>
<g transform="rotate(1 -589.6 681.6)">
<path fill="#804bff" stroke="#000" stroke-width="2.5" d="M211.2 247.3c21.7-12 56.6-9.8 79.7 11.2 19.4 17 45.3 75.2 70.3 92.8a58 58 0 0 1-42.2-15.2c-28.8 15.5-38.1 16.7-64 15.7-35.8-1.4-62.4-17.7-68-40.6-6.3-21.8 4.8-52.5 24.2-63.9z" transform="matrix(.2 -.04 .05 .18 407.8 -213.6)"/>
<ellipse cx="287.2" cy="323" fill="red" stroke="#000" stroke-width="2.5" rx="14.2" ry="15" transform="matrix(.25 0 0 .13 401.8 -215.2)"/>
<ellipse cx="204.6" cy="348.3" fill="#ff0" stroke="#000" stroke-width="2.5" rx="23.3" ry="15.9" transform="matrix(.2 -.08 .07 .17 398.7 -208)"/>
<circle cx="283.9" cy="333.9" r="5.8" transform="matrix(.2 0 0 .2 411.3 -233.7)"/>
<path fill="#ff0" stroke="#000" stroke-width="6.6" d="M516.8 260.3c4.4 18-6.7 43-33.1 52.6-26.8 13.2-46.1 41.8-55.7 88-47.2-103.2-23-148.3 20.6-160.3 37.4-14.4 60.4-13.4 68.2 19.7z" transform="matrix(.1 0 0 .08 417.9 -191.5)"/>
<circle cx="199" cy="362.4" r="4.7" transform="matrix(.2 0 0 .2 418.7 -235)"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 39 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-dz" viewBox="0 0 640 480">
<path fill="#fff" d="M320 0h320v480H320z"/>
<path fill="#006233" d="M0 0h320v480H0z"/>
<path fill="#d21034" d="M424 180a120 120 0 1 0 0 120 96 96 0 1 1 0-120m4 60-108-35.2 67.2 92V183.2l-67.2 92z"/>
</svg>

After

Width:  |  Height:  |  Size: 294 B

+48
View File
@@ -0,0 +1,48 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-eac" viewBox="0 0 640 480">
<path id="eac-a" fill="#fff" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width="3.1" d="M0 326.4h640V348H0z"/>
<use xlink:href="#eac-a" width="600" height="330" transform="translate(0 -194.4)"/>
<path id="eac-b" fill="#0087ff" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width="3.1" d="M0 348h640v132H0z"/>
<use xlink:href="#eac-b" width="600" height="330" transform="translate(0 -348)"/>
<path fill="red" d="M0 290.4h640v36H0z"/>
<path fill="#000001" d="M0 153.6h640v36H0z"/>
<path fill="#ff0" d="M0 206.4h640v67.2H0z"/>
<path id="eac-c" fill="#008300" fill-opacity="1" fill-rule="nonzero" stroke="none" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width="3.1" d="M0 273.6h640v16.8H0z"/>
<use xlink:href="#eac-c" width="600" height="330" transform="translate(0 -84)"/>
<g transform="translate(41.1 674.6)scale(.87273)">
<path fill="#fff" stroke="#000" stroke-width="2" d="M319.6-589.5a80 80 0 0 0-56.7 136.3l-34.2 11 3.1 7.8-11 2.4 8 25.6h181.6l7.9-25.6-11-2.4 3.1-7.9-34.2-10.9a80 80 0 0 0-56.6-136.3z"/>
<path fill="#008300" d="m230.5-431.6 7 22.6h164.2l6.9-22.6z"/>
<path fill="#fff" d="m234.9-428.7 5.1 16.8h159.1l5.1-16.8H275.4z"/>
<path d="M140.8 811.3q0 2.6-.6 5-.6 2.3-2.1 4t-4 2.8-6.4 1q-3.5 0-6-.8-2.6-.9-4.3-2l2.7-6.3q1.5.9 3.3 1.5t3.7.7q3 0 4.3-1.5 1.3-1.4 1.3-4.9v-23.5h8.1zm22 12.8q-3.9 0-6.6-1-2.8-1.1-4.6-3t-2.7-4.5q-.8-2.7-.8-5.8v-22.5h8.1V809q0 2.2.5 3.7t1.4 2.5 2 1.4q1.3.4 2.8.4 3 0 4.8-1.8t1.8-6.2v-21.8h8.2v22.5q0 3.1-1 5.8-.8 2.6-2.6 4.6t-4.7 2.9q-2.8 1-6.6 1zm32.2-36.8q1 1.7 2.2 4.3l2.6 5.4 2.6 6 2.5 5.8 2.4-5.8 2.6-6 2.6-5.4q1.2-2.6 2.2-4.3h7.4l1 8 .7 9.3q.4 4.8.6 9.7l.5 9.1H217l-.4-11.5-.8-12.5-2 4.9-2.4 5.3q-1 2.7-2.1 5.1l-1.8 4.1h-5.7l-1.7-4.1-2.2-5.1-2.3-5.3-2-4.9q-.6 6.3-.8 12.5l-.4 11.5h-8l.5-9.1.6-9.7.8-9.2 1-8.1zm51.4 36.8q-3.8 0-6.6-1-2.8-1.1-4.6-3t-2.7-4.5q-.8-2.7-.8-5.8v-22.5h8.1V809q0 2.2.5 3.7t1.4 2.5 2 1.4q1.3.4 2.8.4 3 0 4.8-1.8t1.8-6.2v-21.8h8.2v22.5q0 3.1-1 5.8-.8 2.6-2.6 4.6T253 823q-2.8 1-6.6 1zm22.6-36.8h8.2v36.1h-8.1zm29.8 14.8 4.2-7.4q2-3.7 3.6-7.4h9q-3 5.8-6.2 11.3t-6.7 11v13.8h-8.1v-13.7q-3.6-5.5-6.8-11t-6.2-11.4h9.5q1.6 3.7 3.6 7.4zm40.2 21.3-1.3-3.8-1.4-4h-14l-1.5 4-1.2 3.8H311l3.9-10.8 3.5-9.3 3.5-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.8-28q-.2.9-.8 2.2l-1.2 3.1-1.5 4-1.6 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm48.9 6.7 4.2-7.4q2-3.7 3.6-7.4h9q-3 5.8-6.1 11.3-3.2 5.5-6.8 11v13.8h-8v-13.7l-6.8-11q-3.2-5.6-6.1-11.4h9.4l3.6 7.4zm40.2 21.3-1.3-3.8-1.4-4h-14l-1.4 4-1.3 3.8h-8.4l3.8-10.8 3.6-9.3 3.4-8.3q1.7-4 3.6-7.7h7.7q1.8 3.7 3.5 7.7l3.5 8.3 3.6 9.3 3.8 10.8zm-9.7-28-.8 2.2-1.2 3.1-1.5 4-1.6 4.4h10.2l-1.6-4.5-1.5-3.9-1.2-3zm59.8 28-1.3-3.8-1.4-4h-14l-1.4 4-1.3 3.8h-8.4l3.8-10.8q1.8-5 3.6-9.3l3.4-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.8-28-.7 2.2-1.2 3.1-1.5 4-1.7 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm23.2 28v-36.1H506v6.8h-16v7.6h14.2v6.8h-14.3v15zm40.5-36.5q8.1 0 12.4 2.9t4.4 9q0 3.8-1.8 6.2-1.7 2.3-5 3.7l2.3 3 2.3 3.7 2.3 4 2 4h-9l-2.1-3.6-2-3.5-2.2-3.3-2-2.8h-4v13.2h-8.2v-35.6q2.7-.5 5.5-.7l5-.2zm.5 6.9H521l-1.3.2v9.8h2.3q4.6 0 6.6-1.2t2-3.9-2-3.7q-2-1.2-6-1.2zm23.7-6.5h8.1v36.1h-8.1zm37.8 36.1q-1.1-1.8-2.6-3.8l-3.3-4.1q-1.7-2.1-3.6-4t-3.7-3.4v15.3h-8.2v-36.1h8.2v13.6q3.2-3.3 6.3-6.9l6-6.7h9.7q-3.7 4.4-7.5 8.4t-7.8 8.2q4.3 3.6 8.3 8.6t7.8 11zm39.7 0-1.2-3.8-1.4-4h-14l-1.5 4-1.2 3.8h-8.5l3.9-10.8 3.5-9.3 3.5-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.7-28-.7 2.2-1.2 3.1-1.6 4-1.6 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm45.3-8.1q1 1.7 2.1 4.3l2.6 5.4 2.6 6 2.5 5.8 2.4-5.8 2.6-6 2.6-5.4q1.2-2.6 2.2-4.3h7.4l1 8 .7 9.3q.4 4.8.6 9.7l.5 9.1h-7.9l-.4-11.5-.8-12.5-2 4.9-2.4 5.3q-1 2.7-2.1 5.1l-1.8 4.1h-5.7l-1.7-4.1-2.2-5.1-2.3-5.3-2-4.9q-.6 6.3-.8 12.5l-.4 11.5h-8l.5-9.1.6-9.7.8-9.2 1-8.1zm61.4 36.1-1.4-3.8-1.3-4h-14.1l-1.4 4-1.3 3.8h-8.4l3.8-10.8 3.6-9.3 3.4-8.3q1.7-4 3.6-7.7h7.7q1.8 3.7 3.5 7.7 1.8 4 3.5 8.3l3.6 9.3 3.8 10.8zm-9.8-28-.8 2.2-1.2 3.1-1.5 4-1.6 4.4h10.2l-1.6-4.5-1.5-3.9-1.2-3zm34 21.8q1.7 0 2.8-.3t1.8-.7q.7-.6 1-1.2.2-.7.2-1.5 0-1.8-1.7-3t-5.7-2.5l-3.6-1.4q-1.7-.9-3.1-2-1.4-1.3-2.3-3-1-1.8-1-4.3t1-4.5 2.7-3.4 4.2-2.2q2.4-.7 5.5-.7 3.6 0 6.3.7 2.6.8 4.4 1.8l-2.4 6.4q-1.5-.8-3.4-1.4t-4.4-.6q-3 0-4.2.8t-1.3 2.5q0 1 .5 1.6t1.3 1.3l2 1 2.5.9q2.8 1 4.9 2 2 1 3.4 2.4t2.1 3.2.7 4.4q0 5-3.6 7.9-3.5 2.7-10.6 2.7-2.4 0-4.4-.3-1.9-.2-3.4-.7l-2.6-.8-1.7-1 2.3-6.4q1.6.9 4 1.6 2.3.7 5.8.7m42.2-29.9h8.2v36.1h-8.2v-15.3h-13.6v15.3h-8.2v-36.1h8.2V801h13.6zm40.6 36.1-1.2-3.8-1.4-4h-14l-1.5 4-1.2 3.8h-8.5q2-5.8 4-10.8 1.7-5 3.5-9.3l3.4-8.3q1.7-4 3.5-7.7h7.8q1.8 3.7 3.5 7.7l3.4 8.3 3.6 9.3 3.9 10.8zm-9.7-28-.7 2.2-1.2 3.1-1.6 4-1.6 4.4h10.3l-1.6-4.5-1.5-3.9-1.2-3zm33.7-8.5q8.2 0 12.5 2.9t4.3 9q0 3.8-1.7 6.2-1.8 2.3-5 3.7l2.3 3 2.3 3.7 2.3 4 2 4h-9l-2.1-3.6-2.1-3.5-2-3.3-2.2-2.8h-4v13.2h-8.1v-35.6q2.6-.5 5.4-.7zm.5 6.9H851l-1.3.2v9.8h2.3q4.6 0 6.6-1.2t2-3.9-2-3.7q-2-1.2-6-1.2zm23.7-6.5h8.2v36.1h-8.2zm37.8 36.1q-1-1.8-2.6-3.8-1.4-2-3.2-4.1-1.7-2.1-3.6-4t-3.8-3.4v15.3h-8v-36.1h8v13.6q3.2-3.3 6.4-6.9l6-6.7h9.6q-3.7 4.4-7.4 8.4t-7.8 8.2q4.3 3.6 8.3 8.6t7.8 11zm14.4-36.1h8v36.1h-8z" aria-label="JUMUIYA YA AFRIKA MASHARIKI" font-family="Times New Roman" font-size="52.1" font-weight="700" style="-inkscape-font-specification:&quot;Ubuntu Bold&quot;" transform="matrix(.18901 0 0 .21163 219.5 -590.5)"/>
<g id="eac-d" fill-rule="evenodd">
<path fill="#008300" d="m230.5-431.6 10.4-2.8-3.2-5.7 17.9-6.7v6.1h5.5v9.3h-30Z"/>
<path fill="#fff" d="M258.5-431.4h-21.8l21.8-5.9zm-4.8-9.2H244l10-3.8zM241-439l2.2 4 14.5-4z"/>
</g>
<use xlink:href="#eac-d" width="600" height="330" transform="matrix(-1 0 0 1 639.1 0)"/>
<path fill="#ff0" stroke="#000" stroke-width="1.2" d="M317.7-580A70.8 70.8 0 0 0 294-443.4v-7.8a63.5 63.5 0 0 1 25.2-121.6h.5a63.5 63.5 0 0 1 25.6 121.6v7.8A70.7 70.7 0 0 0 319.6-580z"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="m339-458.3.1 10.6c-6.4 1-13.5 7.6-15.4 8.8s-5 3.8-6.7 3.6c-2.9-.4-.8-2.7-.8-2.7s-2 2.4-3.4 1.3c-1.4-.9.8-2.7.8-2.7s-.7 1-2.2.5c-1.4-.4-.4-2-.4-2s-3.8 2-4.5 1.3c-1-1.3.4-2.5.4-2.5l8.9-7.5s-5.8 2.1 0 0c4.9-2 6.3.8 8.5.6a28 28 0 0 0 10.2-5.1c1.7-1.7 1.2-3.5 2.5-4s2-.2 2-.2z"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="m300-457.5-.1 9.8c6 .8 12.7 7.2 14.5 8.4 1.7 1.1 4.7 3 6.3 2.8 2.6-.3 2-1.3 2-1.3s1.2.6 2.8 0 .8-1.7.8-1.7 2.4.7 3.4-.6c1-1.1-1-2.3-1-2.3s1-.7-.6.2-4.8-2.8-8-3c-3.3 0-3.6 3.2-5.6 1.7-2.1-1.6 1.6-4.2 2.9-4.6 5.1-1.7 9.9.4 3.7-2-3.2-1.2-5.7 1.1-7.8 1-2.2-.1-7.6-3-9-4.6-1.6-1.6-1.2-3.2-2.4-3.7q-1.8-.4-2-.1z"/>
<path fill="none" stroke="#000" stroke-width=".8" d="m326.4-439.5-4.3-1.8m1.1 3.7-5-3"/>
<g id="eac-e" fill="#008300" fill-rule="evenodd" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-opacity="1" stroke-width=".4">
<path d="M291.8-462.6c-12.4 6-13-9.8-18.6-9.6 10.5-7 8.8 6 18.6 9.6zM287-480c-6.2 11.3 8.3 12.8 7.8 18.3 7.1-9.6-5-8.8-7.8-18.3z"/>
<path d="M281-475.6c-15.3 2.6-11.1-10.6-17.5-11.7 13.5-4 7.7 6.2 17.5 11.7z"/>
<path d="M279.4-491.2c-8.4 9.9 3.7 10.4 2.3 15.6 8.7-8-.3-7.7-2.3-15.6zm-8.8 1.8c-15.2-2.2-5.6-17.7-10.2-21 12.5.9 4.4 14.5 10.2 21z"/>
<path d="M276.4-509c-14 6.7.1 13.9-5.4 20 13.8-.7 1.6-9.7 5.4-19.8zm-7.8.5c-16.3-7.4.7-21.4-2.2-26.5 11.1 11.3-5.8 15.5 2.2 26.5z"/>
<path d="M279-527.3c-14 1.8-7 14.7-9.9 19.3 11-2.5 2.2-9 10-19.3zm-6.8-3.9c-7.9-12 5.3-14.7 6.2-20.8 3.8 15.8-5.2 10.7-6.2 20.8z"/>
<path d="M288-541.2c-13-3.7-10.6 9.4-15 12.5 11 1.8 8.7-8.7 15-12.5zm-6-5.6c-2.6-10.4 2.6-8.7 8.5-13.3 3.2 8.4-4.7 7.4-8.5 13.3zm16.6-1.6c-10-7.4-11.1 2.6-16.3 4 9.6 5.7 10-2.8 16.3-3.9zm-6-5c.3-4.5 6.3-10.4 12.5-8.4-.3 7.5-7.5 9.4-12.5 8.5z"/>
</g>
<use xlink:href="#eac-e" width="600" height="330" transform="matrix(-1 0 0 1 639.1 0)"/>
<path fill="none" d="M304.6-557s7.3-2 14.7-1.8c7.3 0 14.7 2 14.7 2"/>
<path d="m188.2-240.9.8 4.7 2.5-.5q1-.1 1.3-.5t.3-1.5h.3l.7 4h-.3l-.4-1-.6-.4h-1.1l-2.6.5.6 3.9.3 1 .3.1h.6l2-.3 1.4-.4.8-.7q.5-.6.8-1.8h.4l-.5 3-9 1.6-.1-.3h.4l.7-.4q.3-.2.3-.5v-1.2l-1.4-7.6q0-1.1-.4-1.3-.4-.3-1.1-.2h-.4v-.2l9-1.6.5 2.6h-.3l-.6-1.2-.8-.4h-1.2zm17.2 5.7h-4.6l-.8 1.9-.3 1q0 .3.3.5t1.1.3v.3h-3.7v-.3q.7 0 1-.3l1-1.8 4-9.8h.4l4.2 9.9q.5 1.2.9 1.5t1.1.4v.4h-4.7v-.3q.7 0 1-.3.2-.2.2-.5l-.3-1.2zm-.2-.7-2-4.8-2.1 4.9zm17.8-5.5-.4 4h-.3a5 5 0 0 0-1-2.8 4 4 0 0 0-2.3-1.2 4 4 0 0 0-2.2.2 4 4 0 0 0-1.9 1.6q-.7 1.2-1 3.2a7 7 0 0 0 0 2.8q.3 1.4 1.2 2 1 1 2.3 1.1 1 .2 2-.1t2.3-1.6l.3.2q-1.2 1.4-2.5 2-1.3.5-3 .2-2.9-.5-4-3a6 6 0 0 1-.6-4q.3-1.7 1.3-3t2.6-2a6 6 0 0 1 5.6.8l.4.3.5-.1.4-.6z" font-family="Times New Roman" font-size="18" font-weight="400" style="line-height:125%;text-align:start" transform="translate(167 -386.8)scale(.74556)"/>
<path fill="red" d="M317.2-550.3q-1.5 0-2.9.4a13 13 0 0 1-7 5.8l-.6.2a13 13 0 0 1-9.7.3 42 42 0 0 0-7.6 6.5 13 13 0 0 1-2 9.5 13 13 0 0 1-7.2 6.4q-1.5 4.9-1.7 10c2 1.5 3.7 4.4 4.4 7.9l.2.7c.7 3.8 0 7.4-1.4 9.5q2 4.7 5 8.7c2.4-.2 5.6 1 8.4 3.1l.5.5c3 2.5 4.8 5.6 5 8.2q4.6 2.4 9.7 3.5c1.8-1.7 5-3 8.6-3h.7c3.9 0 7.3 1.2 9.2 3q5.1-1.1 9.6-3.5a13 13 0 0 1 5-8.3 14 14 0 0 1 9-3.5q3-4 5-8.5a13 13 0 0 1-1.5-8.9v-.6q1.4-6 4.7-8.6a41 41 0 0 0-1.7-10 13 13 0 0 1-6.8-5.9l-.4-.6c-2-3.4-2.6-7-2-9.5a39 39 0 0 0-7.9-6.7 13 13 0 0 1-9 0l-.7-.3a14 14 0 0 1-7.6-6q-2.4-.3-5-.3zm8 81.9"/>
<path fill="#fbf014" stroke="#000" stroke-width=".4" d="M354.7-509.4a35.1 35.1 0 1 1-70.3 0 35.1 35.1 0 0 1 70.3 0z"/>
<path fill="#fbf014" stroke="#000" stroke-width=".4" d="M351.7-509.4a32.2 32.2 0 1 1-64.4 0 32.2 32.2 0 0 1 64.4 0z"/>
<g fill-rule="evenodd" stroke="#000" stroke-width=".4">
<path fill="#0087ff" d="m310-525.2 10.6 1.9-1.4 10.6-9 6.2-5-5.5.3-8.7z"/>
<path fill="#fff" d="m307-517.4-4.2.2h-.4v.2h-.1l-.1.3-.4.2v.2l-.3.2-.4.2h-.1l-.1-.4h-.6l-.3.1v-.5l-.1-.1v-1h.2v-.9l.1-.2v-.2l.3-.3.3-.1v-.3l.1-.3.1-.1-.1-.2-.3.2-.3-.2v-.6l.3-.2.1.1.2-.8.3-.3-.2-.5.2-.3-.1-.4.9-.3v-.3l.1-.4.4-.1.3-.2.2.5v.3h.2l.2-.4.2-.1v-.3l.6-.7.2-.2.4-.2h.4l.3-.4v-.4h.2l.2-.2-.1-.3v-.7h-.2v-.2l-.2.3-.2-.1v-.3h-.6l-.2-.4-.2.1v.3l-.2-.1v-.4h-.4l.1-.4.4-.7v-.4l-.4-.4.3-.8.4-.4v-.5l-.3.1.4-.5.7-.3h.4l.6.4.2-.1h.3l.5-.4.5.4v.3h.4l.1.2h.3v-.3l.7-.3 1-.1.9-.5.5.4h1.1l1.7-1.5 5.2 1.2-.3 9-5.4 3-.3-.2-.1.1h-.1v-.5h-.3v.6h-.4l-.4-.2v-.2h.4v-.1l-.3-.1h-.3v-.2l.3-.2v-.1l-.3.2-.2-.1-.2.1.2.3-.3.2v.2l-.4-.1v.2h.2l-.6.4-.2-.2v-.1l-.3.2h-.4v-.1l.4-.1-.1-.1h-.3v-.3l-.1.3h-.2v.5h-.4l-.1-.2s-.3 0-.2.2v.3l-.3-.2h-.2v.3h-.2l-.4-.2.2.3h-.4l-.2.1.2.2.1.2.2.2-.1.1h-.1l-.3.3h-.2l-.1.3-.2.1.1.2h.1v.2h-.1l-.4.4v.1h.3z"/>
<path fill="#fff" d="m314.2-517.3 11.5 6.3.1.9-.4.2.1.4.4.1.1.4 4.5 3.2.3-.2.4.2.1-.4.3-.3.5-1.1-.3-.1.2-.4h.2l.4-.5v-.4l-.2-.3.3.1.4-.9.4-.1.1-.7.2-.2s-.2-.8 0-1.1 1.3-.3 1.3-.3l.6-.7v-.2l.4-.3-.4-.7.8.2.6-.2h.4l.6-.8v-.3l-1.9-2.4v-11.7l1.1-1 1.8-2.5-.5-.2-1.8.2-.5-.6h-.2l-.1-.4-.4-.2-3 1.4-.1.5-.7.6v.4h-.2l-.2-.1-3.1-.7-.2.2h-1l-3.7-2.7h-2.7l-.6-.2v-.3h-5l-1 1 .2 1.3h.5l.2.6h.5l-.1.6h-.1v.7l.2.3.3.2v.5l.6.3.1.7.4.2v.3l-.2.4.4.6-.1.4.2.5v.2l-.1.6-.3.2-.1.4h-.2v.8h-.5l-.2.3-.3-.1v.7l-.3.4h-.3v.3l-.4.2-.1.5v.5l-.5.2v.9l.3.1h.2l-.1.3.3.1.2.5.4-.3v-.3h.5l.6-.3.2.4.2.3h-.4l-.1.2h-.3l-.5-.1v.2l.2.2-.3.2-.1-.2-.3.1h-.2l-.3-.2v.4h-.2l-.2.5.3.3.3.2-.3.4zm17.6 21.8.4-.3v-.2h.4l.2-.5v.5l-.2.2v.3h-.2v.3l-.1-.2zm-1.2-5.6v-.7l-.1-.1.4-.3v-.4l.5-.2v.4h-.3v.6l.2.3v.3l.3.2.3.4v.3l-.3.1-.4-.5-.4.1zm1.5-2.6v-.4l.2-.4-.3-.8h.4l.1.4h.2v-.3s.2-.1.2 0l-.1.9.1.4-.2.3-.3.3z"/>
<path fill="#fff" d="m334.4-487.5-1.3 1-1.8.8-.5.3h-.9l-.7.2-.4.2-.5.5-.8-.5h-1l-.3.3v.5l-.7.3h-.3l-.3.2-1-.1-.4-.4-.5.1-.8.6-.4-.1v-.2h-.3l-.2.2-.5-.1v-.4h-.3l-.4-.6h-.5l-.1.3-.4.3-.4-.1h-1.5l-.4-.7h-.4l-.4-1v-.5l.2-.2v-.6l-.4-.3.1-1-.1-.2-.1-.4-.7-.7v-.3l-.8-.6h-.3v.6l-.4-.1-.2-.3-1 .2-.4-.5-.5.1-.4-.3h-.5l-.4-.4h-.9l-.2-.6h-.6l-.2-.1h-.7v-.3l-.8-.1-.4-.3v-.5l-.6-.3-.5.1-.2-.6-.5-.4-.1-.6-.7-1v-.4l-.4-.4v-.8l-.3-.4v-.4h.2v-.3l-.5-.4-.2-.4-.8-.6h-.6l-.7-.8v-.4l.3-.4h.4l.1-.3v-.3l-.7-1v-.5l.3-.2-.1-.6-.6-.6v-.6l.1-.5v-.2l.6-.2.3-.2.3-.3v-.3l.6-.2v-.3l.5-.6v-.3l.3-.5.7-.3v-.2l.5-.3v-1l-.2-.1h-.3l-.3-.1h-.5v-.3l.3-.4-.2-.2.3-.6 1-.1v-.7l.1-.3-.4-.5v-1l-.2-.3v-.3l-.5-.3-.4-.7h.6l.3-.3h3.5l.1.3v.4l-.2.5-.1.3v.2l-.1.4v.4l-.2.2v.3l-.2.2h.3v.5l-.2.4h.8l-.3.6-.1.4.1.6.4-.4.3.3v-.5l.1-.4.4.2.1-.2-.2-.4.4-.4.4.5.3.1.2.5.3-.6.1.4h.4v.4l.3.4-.4.2v.5h.3v-.5h.4l-.2-.5-.1-.4.4-.6h.4l.2.5h.7l.6-.6.8-.3-.2-.5h-.2l-.3.3-.9-.1-.3-.2-.2.2h-.3l-.8-.3v-.3l-.2-.1.4-.2.2.3h.2l.3-.1.4.3.6-.1v-.3l-.4-.1v-.3h.7l.1-.2.5-.2-.3-.4v-.2l1 .2-.5-.4.1-.4.6.4v-.2l-.4-.3.6-.6 11.6 6.3.1.9-.4.3v.4h.5v.4l4.5 3 .3.5-.3.3-.2.4-.1.7-.2.4v.6l-.4.4-.3.7v.5l.3.4-.2.6.5.4h.3l.9 1 .4.4.2.5-.2.5-.3.1-.3 1v.6l.4.4-.1.4-.2.6-.2.6.2.6.2.5.2.2v.4h-.2l.3.5.4.2v.8h-.1v.2l.4.3.2 1-.2.3v.2h.6l.2.5.4-.1.7.3.3.5z"/>
</g>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M298.1-512.9c-.3-.3 1-1 .8-1.5q0-1.3 1.6-1.7l.6-.4c.3.2.3.7.6.4s1-1.3 1.5-1.1c-.3.4.3 1.2.7 1.5l.6 1.9q-.2.9-1.4.6c-.8-.3-1 .3-1.6-.2-.1.7 0 1.3-.9 1.6q-.9 0-1-.3-.7-.8-1.2 0-.2-.2-.3-.8" class="eac-landxx eac-rw"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M298.4-512.1c.5-1.1 1.1.1 1.3.1 1.5.2 1.5-.1 1.8-1.5.8.6.5 0 2.2.4-.3 0-1 .8-.5.8-.4 1.1.5 1.1 1.1 1-.3.4.5.6-.3 1-.5.3-.5 0-.5.7l-.6.1c-.1.2.3.6.2.6q0 .2-.6.8t-1.3 1l-.7.2-1-1.8q0-.8-.3-1.6v-.9q-.5-.4-.8-1" class="eac-landxx eac-bi"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

+138
View File
@@ -0,0 +1,138 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ec" viewBox="0 0 640 480">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#ffe800" d="M0 0h640v480H0z"/>
<path fill="#00148e" d="M0 240h640v240H0z"/>
<path fill="#da0010" d="M0 360h640v120H0z"/>
</g>
<g fill-rule="evenodd">
<path d="M269.6 290.8 197 367.3l-1.2-1.6 72.4-76.5 1.2 1.6zm50.4 12.5-94.8 100-1.6-1.6 94.7-100z"/>
<path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(-.07 -.07 -.1 .1 265 429.6)"/>
<path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(-.07 -.07 -.1 .1 240.6 390.5)"/>
</g>
<path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
<path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
<path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
<path fill-rule="evenodd" d="m206.2 116 72.4 76.5 1.3-1.6-72.4-76.5z"/>
<path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<g stroke="#000">
<path fill="none" stroke-width="2.3" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.4 -.03 -.05 .35 135.1 147.4)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.14 -.22 .3 .14 175.9 257.4)"/>
<path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 177.6 256.7)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.18 .12 -.13 .33 181 96.4)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.17 -.03 -.03 .33 179.3 159.3)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.06 .25 -.17 .2 228 45.5)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.2 -.2 .2 .24 150.3 241)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.22 -.22 .25 .2 135.6 282.1)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.26 .1 -.2 .32 130.8 147.7)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.15 .2 -.32 .22 178.5 103.3)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.08 .1 -.14 .16 250.7 102.6)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.1 0 -.08 .17 238 136.4)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(0 .14 -.14 .08 287.4 81.1)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.07 .1 -.25 .15 220.7 115.6)"/>
<path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.13 .22 -.33 .2 207 70.1)"/>
<path fill="none" stroke-width="2.4" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.35 -.2 .14 .28 111.8 227.8)"/>
<path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 200.3 224.6)"/>
<path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 211.1 218.3)"/>
<path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 166.8 232.7)"/>
<path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 170 231.3)"/>
<path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 168.1 234.3)"/>
<path fill="red" fill-rule="evenodd" stroke-width=".3" d="M252.7 167.3q.5 1.4-1 2.3c-1.5.9-2 .2-2.4-.7s0-1.8 1-2.3 2-.2 2.3.7z"/>
<path fill="red" fill-rule="evenodd" stroke-width=".3" d="M255 164.9q.5 1.4-1 2.3c-1.5.9-2 .2-2.5-.6s0-1.9 1-2.4 2-.1 2.4.7z"/>
<path fill="red" fill-rule="evenodd" stroke-width=".3" d="M255.5 166c.4.8 0 1.9-1 2.3s-2 .2-2.4-.6 0-1.8 1-2.3 2-.2 2.4.6z"/>
</g>
<path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill-rule="evenodd" d="m183.8 158 94.8 100 1.7-1.6-94.8-99.9z"/>
<path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="m460.6 184.3 17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(.14 -.14 .1 .1 86.3 192.2)"/>
<path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="m557.8 95.7-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(.1 -.16 .14 .1 114 183.8)"/>
<path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.4 0 0 .3 43.8 69.8)"/>
<path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.38 .1 -.15 .3 76 38.2)"/>
<path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M186.7 151.5c0 1-1 2-2.2 2s-2.2-1-2.2-2 1-1.8 2.2-1.8q2 .2 2.1 1.8zm-3.2 4c0 17.9 10.5 93.9 11.3 95.8 0 2.2-2.3 3.2-3.5.4-3.3-8.7-10.4-80-10.7-96.6-.1-6.9 1.9-7.4 4.2-7.3 1.9.1 4.1 1.9 4.1 4 0 2.4-2.9 4.3-5.4 3.7z"/>
<path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.48 .15 -.2 .48 16.7 31.6)"/>
<g fill-rule="evenodd">
<path d="m370.4 290.8 72.5 76.5 1.3-1.6-72.5-76.5zM320 303.3l94.8 100 1.6-1.6-94.7-100z"/>
<path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(.07 -.07 .1 .1 375 429.6)"/>
<path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2z" transform="matrix(.07 -.07 .1 .1 399.4 390.5)"/>
</g>
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#ffdf00" stroke="#000" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
<path fill="#0000c4" stroke="#000" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
<path fill="#e10000" stroke="#000" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
<path d="m433.8 116-72.4 76.5-1.3-1.6 72.4-76.5z"/>
<g fill="#005b00" stroke="#000">
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.16 -.07 .08 .35 309.5 211)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.05 .07 .4 291.5 182.6)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.23 .14 -.03 .4 296.5 69.4)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.25 .03 .02 .44 274.4 115)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.18 .17 -.04 .35 330 67)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.23 0 .03 .4 280.6 141.9)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.07 .07 .38 290.1 196.8)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.03 .05 .4 292.7 166.8)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.22 .15 -.05 .38 305 65.5)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.24 .05 0 .44 278.9 97.7)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.17 .17 -.06 .33 339 70)"/>
<path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.24 .02 0 .4 276.4 128)"/>
</g>
<path fill="#ffdf00" stroke="#000" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
<path fill="#0000c4" stroke="#000" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
<path fill="#e10000" stroke="#000" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
<path d="m456.2 158-94.8 100-1.7-1.6 94.8-99.9z"/>
<path fill="#cececc" stroke="#000" d="m460.6 184.3 17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(-.14 -.14 -.1 .1 553.7 192.2)"/>
<path fill="#cececc" stroke="#000" d="m557.8 95.7-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(-.1 -.16 -.14 .1 526 183.8)"/>
<path fill="#e10000" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.4 0 0 .3 596.3 69.8)"/>
<path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.38 .1 .15 .3 564 38.2)"/>
<path fill="#e10000" stroke="#000" stroke-width=".7" d="M453.4 151.5c0 1 1 2 2.1 2s2.2-1 2.2-2-1-1.8-2.2-1.8q-2 .2-2.1 1.8zm3 4a1152 1152 0 0 1-11.2 95.8c0 2.2 2.3 3.2 3.5.4 3.3-8.7 10.4-80 10.7-96.6.1-6.9-1.9-7.4-4.2-7.3-1.9.1-4.1 1.9-4.1 4 0 2.4 2.9 4.3 5.4 3.7z"/>
<path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.48 .15 .2 .48 623.3 31.6)"/>
</g>
<g fill-rule="evenodd" stroke="#000" stroke-width="1pt">
<path fill="#e10000" d="M478.4 698a53 53 0 0 0 53.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(.35 0 0 .7 123.5 -90)"/>
<path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3z" transform="matrix(.35 0 0 .7 123.5 -90)"/>
<path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(.35 0 0 .46 112.5 51)"/>
<path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(.35 0 0 .46 112.5 51)"/>
<path fill="#e10000" d="M478.4 698a53 53 0 0 0 53.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
<path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(-.35 0 0 .7 516.5 -90)"/>
<path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3z" transform="matrix(-.35 0 0 .7 516.5 -90)"/>
<path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(-.35 0 0 .46 527.5 51)"/>
<path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3z" transform="matrix(-.35 0 0 .46 527.5 51)"/>
</g>
<g fill-rule="evenodd" stroke="#000">
<path fill="#908f8a" stroke-width="4.5" d="m198.6 78-89.7 35.4 89.7 35.4 44.8-17.7 22.4 17.7 22.4 35.4 22.5-35.4 22.4-17.7H1535V95.7H333l-22.4-17.8c0-17.7 4.7-35.4 22.5-35.4h89.6c0-17.7-44.8-53.1-134.5-53.1-89.6 0-134.5 35.4-134.5 53.1h89.7c17.7 0 22.4 17.7 22.4 35.5l-22.4 17.7z" transform="matrix(.12 0 0 .22 217.8 324.4)"/>
<path fill="#b74d00" stroke-width="1.8" d="M204.3 95.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.7H541V78H204.4zm0-17.7H541v17.7H204.4zm0-17.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.6H541V7H204.4z" transform="matrix(.28 0 0 .27 216 334.6)"/>
<path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 .27 171.9 315.2)"/>
<path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 -.27 171.9 382.2)"/>
<path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 159.6 315.2)"/>
<path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 .27 216.2 315.2)"/>
<path fill="#908f8a" stroke-width="3.3" d="m423.2 60.2 137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 -.27 216.2 382.2)"/>
<path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 238.4 315.2)"/>
<path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 204 315.2)"/>
<path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124z" transform="matrix(.28 0 0 .27 194 315.2)"/>
</g>
<g fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt">
<path d="M655.5 396.9c0 88-55.6 159.4-124 159.4s-124-71.4-124-159.4 55.5-159.5 124-159.5 124 71.4 124 159.4zm-17.7 0c0 78.2-47.6 141.7-106.3 141.7s-106.3-63.5-106.3-141.7c0-78.3 47.6-141.8 106.3-141.8s106.3 63.5 106.3 141.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a83 83 0 0 1 82.7 0z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a83 83 0 0 1 82.7 0z" transform="matrix(.58 0 0 -.62 9.8 479.3)"/>
</g>
<path fill="#a7cfff" fill-rule="evenodd" d="M379.6 235.9c0 48.5-27.7 87.8-61.7 87.8s-61.6-39.3-61.6-87.8 27.6-88 61.6-88 61.7 39.4 61.7 88"/>
<path fill="#afff7b" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c1.1 26.6-4.6 39.6-11.9 67.3-1.9 3-11-6.5-16.4-11.2s-7.8 4.2-14.6-3c-6.7-7.4-11 2-16-4.2s-51.3-7-51.3-7.6c4.6-2.2 28.2.2 24.4-11.1-4.3-11.8-31-.4-34.6-15.4-2.5-15-53.6-15.6-57.3-19.2 1.5 5.6 39.8 8 38.9 22.5-.9 6-37.7 7.7-41.3 12.7-3 6.3 29-1.7 30.1 6 0 3.2-4.7 0-21.3 5-8.4 2.5 15.4 10.3 6.4 14.6s-28.3 6.2-27.5 8c3 9 44.7 19.6 40.6 21.1-14.8 6.6-22.6 10.9-29.7 14.7a168 168 0 0 1-31.1-100.2c31.7-11.4 25-13.8 83.6-13.8s78 2.3 129 13.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c-8 0-16.4 3.4-25 3.4s-17.5-3.5-26.5-3.5-19.3 4.6-28.5 4.6c-9.3 0-17.4-4.5-26.7-4.5s-18.6 3.4-27.8 3.4-18.3-3.5-27.2-3.5-17.7 3.5-26.2 3.5-16.8-3.5-24.7-3.5q.2-29.4 8.4-55.1c27 2 11-15.7 27-15.7a33 33 0 0 1 25.3 9.8c2.4 0 14.4-11.4 27.9-9.8s8.5 27.3 26.4 28.6c9 6.8 14.3 11.1 26.7 13.9 17.7 1.6 68.4-2.5 68.7-.2a188 188 0 0 1 2.2 28.6z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-.2-3.5 10.3-7 14.9-7.4s8.5 7.4 8.5 9.1-4.7-4.2-8.6-4.3-12.3.6-12.3 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(.2 0 0 .48 217.2 59.5)"/>
<path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-1-4 11.8-6.6 16.4-6.9s10 8 10 9.6-5.4-5.2-9.3-5.3-14.6.6-14.6 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(-.2 0 0 .48 445.8 59.1)"/>
<path fill-rule="evenodd" d="M333 264.9c0 1.3-.7 2.4-1.5 2.4s-1.4-1.1-1.4-2.5.6-2.4 1.4-2.4 1.5 1.1 1.5 2.5m17 9h.4v19.5h-.5zm4.1-1.6h.5V292h-.5z"/>
<path fill-rule="evenodd" d="M352.6 281.2v-.5l4 .7v.5z"/>
<path fill="#b74d00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M497.3 478s26 11.4 31.7 18.2 3.4 6.8 3.4 6.8l57.7 2.3c0-3.4 10.2-3.4 12.5-11.4s2.3-10.2 2.3-10.2l-18.1 5.7 1-10.2H572l-2.3 10.2-34-1.1L538 461l-6.8 1.1-1 26c-1.2 0-31.8-7.9-33-10.1z" transform="matrix(.58 0 0 .62 7 -9.5)"/>
<path fill="#fede00" fill-rule="evenodd" stroke="#fede00" stroke-width="1pt" d="M440.5 316.3s37.7-11.2 92.1-10.4 92.1 12.8 91.3 12.8-10.4-18.4-10.4-18.4-38.4-10.5-81.7-11.3c-43.2-.8-80.9 8-80 8.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill="#38a9f9" fill-rule="evenodd" d="m306 169.8 13.6-.2.2 7.9-13.6.3zm-31.2 4.3L270 182l16.2-2-1.3-7.7-10.1 2zm13.7-3 13.6-1.1.6 7.8-13.5 1.2zm48.9-.7-13.5-1-.5 8 13.5.8zm29.2 5 4.9 9.6-14.6-3.6 1.6-7.7 8 1.6zm-11.8-3-13.4-1.7-1 7.8 13.5 1.8z"/>
<path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="m532.6 323.5-2.5-13.5-7.6 11.5 2.8-13.5-11.3 7.7 7.6-11.3-13.4 2.8 11.5-7.6-13.5-2.5 13.5-2.6-11.5-7.6 13.4 2.8-7.7-11.3 11.4 7.7-2.8-13.5 7.6 11.5 2.5-13.5 2.6 13.5 7.5-11.5-2.7 13.5 11.3-7.7-7.7 11.3 13.5-2.8-11.5 7.6 13.5 2.6-13.5 2.5 11.5 7.6-13.5-2.8 7.7 11.3L540 308l2.8 13.5-7.6-11.5z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
<path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M547 293.9c0 9.3-6.6 16.8-14.8 16.8s-14.8-7.5-14.8-16.8S524 277 532.2 277s14.8 7.6 14.8 17z" transform="matrix(.57 0 0 .5 18.3 21.8)"/>
<path fill-rule="evenodd" d="M320.7 170.6c0 .5-1.3 1-2.8 1s-2.8-.5-2.8-1 1.2-1 2.8-1 2.8.4 2.8 1m6 0q-.2.9-2 1c-1.8.1-2.2-.5-2.2-1s1-1 2.1-1 2.1.4 2.1 1"/>
<path fill="none" stroke="#000" stroke-width="1pt" d="m529.4 297.9.8.8c-1.9-2-1-1.2 1.6 3.2 2.4-.5 3.1-1.4 4.8-2.4" transform="matrix(.56 -.18 .17 .6 -26.7 90.6)"/>
<path fill="none" stroke="#000" stroke-width="1pt" d="m527.8 304.3.8.8c-1.9-2-1-1 3.2 1.6 4 .5 8.1-1.2 10.5-4" transform="matrix(.58 0 0 .62 8.7 -10.2)"/>
<path fill="#b7e1ff" fill-rule="evenodd" d="M281.4 194.8s1 8-5.1 18-5.1 6.4-5.1 6.4 2.8 5.5 2.3 5.5-4.7-5-4.7-5l-5 5.5s4.6-8.5 4.1-8.5-1.4-3-1.4-3l3.7-1.5s5.6-10.4 5.6-9.9-16.7 11.4-16.7 11.4zm3.7 3c-.5 0 2.3 8 4.7 12 2.3 4 2.3 8.9 2.3 8.9l7.9 4-10.2-15.4 6.5 2.4zm0 20.9s5.6 6 6 8 .5 6.4.5 6.4l-2.3-5-3.3 4.5s2.4-7 1.9-7.5-3.7 2.5-3.7 2.5 1.4-4 1.4-4.4 0-3-.5-4.5m-27.9 13.9c1.9-1.5 5.6-2.5 5.6-2.5s-2.3 4-2.8 4-1.8 0-2.8-1.5m64.1-21.8s12.1 7.4 12.1 7.9-7.9-3.5-7.9-3.5zm-21.8-15.5c1 .5 17.7 14.4 17.2 14.4s-7.4-4-7.4-3.4v3.4l-3.8-7.9-.9 3zm4.2 22.4 4.6 9.4 4.7-1s-8.8-8.4-9.3-8.4m14.4-6 .5 9s2.7 2.5 2.7 2-2.7-10.5-3.2-11"/>
<path fill="#984000" fill-rule="evenodd" d="M182.6 89.5s21-11.6 44.9-20.2a304 304 0 0 1 54.2-14.4c7 0 19.2 17.8 21.2 17.8s10.1-5 20.3-5 16.1 8 18.2 8h18.2c2 0-6.1-19.8 0-18.8 3 .5 28.8 4.5 52.8 12.2 24 7.8 58 21.6 58 21.6S414.9 98 400 95.9c-2 1 0 13-3 7.7-4.6-1-21.7-3.7-24.7-3.7s-8.7 3.4-16.8 5.4c-8 2-18.2 5-18.2 5l13.2 20.7-16.2 8s-10.1-23.8-14.2-23.8-6 16.8-11.1 15.8-7-15.8-11.1-19.8c-4-3.9-25.4-5.4-33.5-7.3-8-2-21.1-3.5-28.2-5.5s-14.2 5-17.2 5 4-6 1-7-5 3-7 3-23.3-4-25.3-5 5-4.9 3-4.9z"/>
<path fill="gray" fill-rule="evenodd" stroke="#772600" stroke-width="3.7" d="M463-65c0 21.2-20.6 38.4-45.9 38.4S371.3-43.8 371.3-65s20.5-38.3 45.8-38.3S463-86.1 463-65z" transform="matrix(.22 0 0 .26 231.6 96.5)"/>
<path fill="#984000" fill-rule="evenodd" stroke="#772600" stroke-width="5.3" d="M284.7-60c6.7-6.6 15-16.6 36.7-16.6 5-1.7 5-11.7 16.6-11.7s8.3 10 16.7 13.4c8.3 3.3 76.6-3.4 76.6-3.4s6.6 5 6.6 11.7-5 11.6-6.6 11.6-68.3-5-73.3-3.3-8.3 3.3-20 3.3-15-11.6-23.3-11.6-16.6-1.7-30 6.7z" transform="matrix(.27 0 0 .32 205.4 100.7)"/>
<path fill="none" stroke="#772600" stroke-width="3.5" d="M487.9-76.6h26.6c9.6.1 12.9 3 21.7 3.3h23.3c8.5-.3 13-2.3 21.6-3.3 14.5-.2 9.6-1.3 6.7-10-2.6-6.5-3-9.6-6.7-13.3-1.4-8-4.6-10.8-5-20-1.5-7-4.3-11.7-1.6-20 3.8 5.7 5.3 8 15 8.4 10 0 13.9-.3 20 3.3 4.6 4.9 10.8 3.3 20 3.3 7.6 1.4 8.9 5.3 14.9 8.3 7.1 4 11.7 5 21.6 5 8 1.5 15 2.6 20 5 4.3 5.1 11 6.4 20 6.7 5 0 9-.5 13.3-1.7 7.7.4 15.5 0 25 0 6.2 7.2 7.6 9.9 18.3 10 7.4 5.2 13.6 6 20 8.3h25c9 .7 11.8 4.4 20 6.7a201 201 0 0 0 21.6 8.3 108 108 0 0 0 21.7 1.7c6.1 3.2 13.6 3.4 18.3 6.6 6.9 1.5 16.3 3.3 21.6 5 8.8 1.2 12.2 4 20 5 6.7 2-2.2 3.6-6.7 5-9.8-.3-10.5-4-20-5-5-2.9-12.6-2.5-20-5h-1.6c6.6 4 13 6.5 10 13.4-8.5 0-15.4-1.1-23.3-1.7-8.4-1.6-12.2-3.3-21.6-3.3 9.4-2.3 11.8.2 18.3 3.3 2.4 8-2.8 5-11.7 5-7.6-2.7-12.2-6-21.6-6.7h-20c9.9.4 12 4.1 18.3 8.4.5 2.6-.1 2.4-5 3.3-5.2-4.5-11.9-6-20-8.3-7.9-.3-16.2-1-23.3-3.4-4.9-.3-4.1-6.1 6.7 3.4 6.5 3.8 8.8 7 8.3 10-8.6-2.2-12.8-5.6-18.3-8.4a61 61 0 0 0-23.3-3.3c-8.6-2.3.9-3.6 6.6 5 12.4 8.8-1.6 5-6.6 3.3-7.5-2.1-15.3-5.2-21.7-6.6-5-1.5-9.4-2.9-15-3.4 8.7.8 11.6 3.9 15 10 8.8 6-.4 3.1-8.3 1.7-5-4.4-11.5-6.7-15-11.7-8.3-4.1-8.6-9-3.3 1.7 1.3 3.4 1 10.8 1.6 11.7-6.1-6.7-4.8-8.4-11.6-8.4-4.7-3.2-11.5-5.7-15-10-6.4-.6-6.8-2.9-13.3-5 5.3 6.3 12.4 12.5 16.6 18.4 7.6 4.2 9.7 8 15 11.6 2.1 3.7 8 6.7 1.7 1.7-7.2-7-12.5-8.7-23.3-13.3-6.2-5-8.4-7-15-11.7-9-2.9-5.5-4.5 0 5 6.3 5.8 11.1 12.2 16.6 16.7a68 68 0 0 0 15 13.3c1.5 2.2 6 2.6 0 3.3-5-4.6-12.4-7.5-18.3-11.7-8.3-2.3-12.2-6.6-18.3-11.6-4-5.9-10.4-10.4-15-15-9.6-3.8 1.9 3.6 5 8.3 2.1 6.1 4.8 11 6.6 16.7 2.8 5.5-8.4-1.3-11.6-3.3a57 57 0 0 0-21.7-8.4 298 298 0 0 0-20-3.3c-7.5-2 4.1 4.8 8.4 11.7 8.4 7.9-8.3 1.4-13.3 0a125 125 0 0 0-25-1.7c-10.7.6-3 2 0 6.6 3.3 2.6 5.6 8 5 10-7-1-13-3-21.7-3.3-7 2.3-15.3 1.7-23.3 1.7-.3 4.2 1.5.6 5 5 5.8 2.3 9.6 5.1 8.4 8.3h-48.3c-5.3 1.4 1.1.7 5 6.7-2.2 5.4-5 3.3-11.7 3.3-4.5-1.8-13.6-2.6-18.3-5-4.7 0-4.3-1.2-8.3-1.7 14 10 7 7.5 15 15 1.3.5 4.5 1.7 1.6 1.7M371.3 73.3c-1 0-3.2-5.4-6.6-10-2.4-6-5.4-2.6-8.4-11.7.4-9.4.7-11 0-20-6.8-4.8-9.7-6.2-15-15-8.4-7 1.3-19 2.9-27.8-7.4-1.6-11 11.5-22.3 16.2-8.2 5.5-1-11.4-5-21.2-2.7-13.9-10.8 7-13.8 12.9-5.5 3.7-7.2 8.5-15 1.6 0-5.1 4.9-19.5 2.8-22.3-7.8 3.9-18 15.5-26.1 17.3-8.2-1.7 1.7-14.8 1.7-24.5-3-1-14.7 25.8-19.5 26s-2.7-26-5-25.4c-3.5 5-10.6 15.4-15.5 19-9.5-1.3 1.4-17.5 2.8-23.5 1.6-7.2-8.9 13.8-14.5 15.1-4.1 3.6-12.2 6-15 6.7 3.2-6.2 19-18.7 18-22.3-9.3.3-23.4 12.5-31.3 14-5.2 0-12.4 1.7-13.3 1.6.4-8 19.4-14.6 22.4-19.5-9.3 1.5-27.2 9.7-32.4 16.2-6.2 1.3-14 3-20 0 .9-7.5 14.9-22 18-26.8-8.5 3.7-12.7 6.6-21.7 8.3-1.7 1.7-6.5 5.3-5 1.7 2.7-7 6.7-10 10-15-7.5 1.4-10.3 5.7-18.3 10-5.1.2-19.7 14.9-24.6 15.1a69 69 0 0 1-28.3 13.3c-7.6 1.4-11.3 3-15 6.7 3.8-6.7 9.6-13 15-16.6a30 30 0 0 1 15-13.4c1.9-2.3 7.1-2.9 1.6-3.3-4.7 4.2-12.7 9-16.6 11.7-5.1 3.2-11 6.4-13.4 5 2.7-7.2 7.5-9 11.7-15 8.8-5.6 0-2-6.7 0-4.3 3.8-12 6.7-18.3 10-7 1.8-11.7 6-20 8.3 0 2.4 2.4-4.3 3.4-6.7 6.8-7.4 8.6-9.5 16.6-11.6 2-2.9 4.4-1.7-1.6-1.7-4.6 4-10.8 6.2-16.7 10-5.9 1.3-13.6 1.7-21.6 1.7-10.4 1.2-9.5 2 0-3.4 5.3-5 9.7-3.7 10-10-6.3 4.6-14 8-21.7 11.7-6.4.2-8.1 1.7-15 1.7 3.3-3.4 5.3-7.7 10-10 7-7.7-4.4-1.5-6.7 0h-25c-4.4 5.6-.2 0 3.4-3.4 4.3-2.2 8.8-5.1 8.3-6.6-5 4.3-10.7 6.3-15 10-4.6 1.4-10 2-10 3.3 3.7-5.3 9.6-8.6 13.4-13.3 5.6-1.2 10.4-3 11.6-5h-23.3 16.6c8.5 0 15.7-.8 23.4-1.7 13.2-2.2-1.2-3.3-8.4-3.3-1.3-2.6 4.2-4 10-5C-6.7-69-.4-71.1 5-73.3a45 45 0 0 0 13.3-6.6c-5 .2-5 1.4-10 1.6 7.5-.5 12.8-1.6 21.7-1.6a239 239 0 0 0 21.6-8.3c3-3.6 4.2-3.4-3.3-3.4 6.7-2.1 16.2-3.2 21.6-5a94 94 0 0 0 20-6.6c4.9-3.3 7.7-7.2 13.3-10 6.5 4.4 6.6 5 18.3 5 9.4-.1 15.2-2.4 20-6.7 7.2-2 8.5-5.4 16.7-6.6a134 134 0 0 0 23.3 1.6c8-2.1 15.7-6 21.6-10 5.1-2.5 11.2-6.1 16.7-8.3 6 3.1 10.8 5.6 18.3 6.7 7.7-1.2 11.8-5 18.3-6.7a28 28 0 0 1 15-8.3c9.7-4.8 9 1.5 13.3 6.6 5 5.2 11.4 2.7 18.3 5 3.9 6 6.7 10 11.7 13.3 3.9 4.8 8.5 6 16.7 6.7 3 4 .6 6.8 6.6 8.3 2.4 2.6 6.5 3.6 10 5" transform="matrix(.27 0 0 .32 205.4 104.9)"/>
<path fill="none" stroke="#782600" stroke-width="3.1" d="M468.7 30.8v.8c0-2.3 0-1 1.7 3.4.6 3.6-.8 3.2-2.5 5.8-.3 3.7-.8 6.4-.8 10.8-.6 3.6-2.6 7-4.2 10-1.6 3.1-8.5 4.9-8.3 9.2-4 1.1-4.1-1.5-4.2-5.9-2.4-2.7-3.2-6.4-5-10-1-3.4-3.4-6-5-10-2.4-3.7-4.5-4.8-6.6-9.1-.9-2-.7-4.6-2.5-5.8-2.7-3.5-4.5-4-9.2-4.2-3.6.8-5 2.4-8.3 3.3-2.6.9-7.6.6-10.8 1.7-.8 1.3 1.6 2 2.5 5-2.2 1.8-3 4.9-4.2 7.5-2 2.5-3.3 3.7-4.2 7.5 1.4 2.3.2 5.4-1.6 7.5-.6 3.8-2.5 5.9-3.4 9.1-2.6 1.9-3.6 3.6-5.8 6.7-1.9 2.7-3.6 2.5-8.3 2.5-3.7-1-4.2-3-7.5-4.2q-.2-1.3-1.7-1.6" transform="matrix(.27 0 0 .32 205.4 104.9)"/>
<path fill="#812e00" fill-rule="evenodd" d="M307.6 125.5s-.4 5-3.6 8.3-9.8 7.1-9.8 7.1 8.9-4.2 9.8-3.3-5.7 8.3-5.7 8.3 8.7-7.7 9.8-7.7 3.6 7.5 4.6 7.3-2-9.5-1.6-11c.4-1.4 0-9.3 0-9.3l-3.4.3zm20.5-.6s-.4 5.3-3.6 8.8-9.8 7.6-9.8 7.6 8.9-4.5 9.8-3.5-5.7 8.8-5.7 8.8 8.7-8.2 9.8-8.2 3.6 8 4.6 7.8-2-10.2-1.6-11.7c.4-1.6 0-10 0-10zm-28.7-48c0 .9-1 1.7-2.1 1.7s-2.2-.8-2.2-1.8 1-1.8 2.2-1.8 2.1.8 2.1 1.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

Some files were not shown because too many files have changed in this diff Show More