Full Code of lipis/flag-icons for AI

main 35070a38abfd cached
28 files
139.9 KB
48.7k tokens
1 symbols
1 requests
Download .txt
Repository: lipis/flag-icons
Branch: main
Commit: 35070a38abfd
Files: 28
Total size: 139.9 KB

Directory structure:
gitextract_k5e4dsqs/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       ├── flags.yml
│       ├── format.yml
│       └── npm-publish.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── 404.html
├── CHANGELOG.md
├── CNAME
├── LICENSE
├── README.md
├── assets/
│   ├── docs.css
│   └── docs.js
├── composer.json
├── country.json
├── css/
│   └── flag-icons.css
├── flag-ids.py
├── flags.py
├── index.html
├── maven.sh
├── package.json
├── robots.txt
├── sass/
│   ├── _flag-icons-base.scss
│   ├── _flag-icons-list.scss
│   ├── _variables.scss
│   └── flag-icons.scss
└── svgo.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: npm
    directory: "/"
    schedule:
      interval: daily
      time: "02:00"
    open-pull-requests-limit: 10


================================================
FILE: .github/workflows/flags.yml
================================================
name: Test Flags

on: pull_request

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Setup Python
        uses: actions/setup-python@v6
        with:
          python-version: "3.x"
          architecture: "x64"
      - name: Test flags
        run: python flags.py


================================================
FILE: .github/workflows/format.yml
================================================
name: Test Format

on: pull_request

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Setup Node.js LTS
        uses: actions/setup-node@v6
        with:
          node-version: "lts/*"
      - name: Install and test
        run: |
          yarn --frozen-lockfile
          yarn test


================================================
FILE: .github/workflows/npm-publish.yml
================================================
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages

name: Node.js Package

on:
  release:
    types: [created]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: "lts/*"
      - run: yarn
      - run: yarn test

  publish-npm:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: "lts/*"
          registry-url: https://registry.npmjs.org/
      - run: yarn
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}


================================================
FILE: .gitignore
================================================
bower_components
main
node_modules
temp
update
.DS_Store


================================================
FILE: .prettierignore
================================================
flag-icons.min.css
main/
temp/


================================================
FILE: .prettierrc.json
================================================
{}


================================================
FILE: 404.html
================================================
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Redirection</title>
    <meta http-equiv="refresh" content="0; URL=/" />
  </head>
</html>


================================================
FILE: CHANGELOG.md
================================================
# 7.5.0

- Update all flags with the latest SVGO 3.3.2 (#1367)

# 7.4.0

- Migrate SASS imports to @use-based code (#1356)
- Modern and minimalist UI redesign with new features (#1358)
- Fix flag of Palestine (#1366)

# 7.3.2

- Add new flag for Association of Southeast Asian Nations (#1325)

# 7.3.1

- Fix Kyrgyzstan Flag (#1323)

# 7.3.0

- Run the latest svgo on all files (#1322)

# 7.2.4

- Fix Syrian Flag (#1310)

# 7.2.3

- Fix overlapping paths in at, bg, ee, lu, nl, ru flags (#1251)

# 7.2.2

- Fix Malta Flag (#1248)

# 7.2.1

- Fix Belarus Flag (#1230)

# 7.2.0

- Update all flags with SVGO 3.2.0 (#1224)
- Update German colors (#1208, #1209)

# 7.1.0

- SVGO all files and update `fill="#000"` to `fill="#000001"` (#1193)
- Fix German Flag (#1189, #1190)

# 7.0.3

- Fix black SVG elements (#1187)

# 7.0.2

- Fix Jersey flag (#1180)

# 7.0.1

- Remove `<use>` tags without href (#1179)

# 7.0.0

- Remove Less support (#1174)

# 6.15.0

- Run the latest SVGO to all files (#1176)

# 6.14.0

- Build with SASS instead of Less the generated CSS (#1172)

# 6.13.2

- Fix paths for sh-ta
- Action for pubishing to npm

# 6.13.0

- Saint Helena, Ascension and Tristan da Cunha updates (#1169)

# 6.12.0

- Add flag for Pacific Community (#1165)

# 6.11.2

- Fix French flags color to use the official ones (#1163)

# 6.11.1

- Fix Portuguese flag (#1154)

# 6.11.0

- Run SVGO on all files (#1149)

# 6.10.1

- Flag of Turkmenistan (#1148)

# 6.10.0

- Update Martinique (#1145)
- Update Saint Helena, Ascension and Tristan da Cunha (#1146)
- Fix flag of Ascension Island (#1147)
- Unrelated to flags: Improved homepage

# 6.9.5

- Improve Anguilla color and file size (#1138)
- Update Peru flag (#1137)
- Update um to match us flag (#1136)

# 6.9.4

- Fix Flag of Chad (#1135)

# 6.9.3

- Change Turkey to Türkiye (#1125)
- Move `xx` back to the top of the CSS (#1129)

# 6.9.2

- Update SASS (#1122)
- Fix remove references to "ea" (#1121)

# 6.9.1

- Remove Ceuta and Melilla (#1119)

# 6.9.0

- Add East African Community (#1118)
- Fix Holy See (#1117)

# 6.8.0

- Added composer configuration. (#1091)
- Add Arab League flag (#1116)
- SVGO ids (#1115)

# 6.7.0

- Fix blurry US flag in Safari (#1096)
- Correcting Tunisia flag to match post 1999 shape updates (#1090)
- Correct green color in Saudi Arabia flag (#1080)
- Remove mix-blend-mode from Georgia flag (#1079)
- Fix flag of Malaysia (#1058)
- Fix Antigua and Barbuda flags (#1066)
- Add cefta flag to stylesheets (#1065)
- Fix flag of Kazakhstan (#1056)
- Fix flag of Dominican Republic (#1052)
- Add flag for Basque Country (#1050)
- Fix colors of Cuban flag (#1044)
- Fix Nepali flag should be transparent (#1034)
- Added CDN (#1032)

# 6.6.6

- Fix encoding and sort by name the `country.json` file

# 6.6.5

- Fix Albania flag colors (Issue #1028)
- Fix South Africa flag colors (Issue #1020)

# 6.6.4

- Updated country names in `country.json`
- Fix Greece
- Fix Indonesia
- Fix Japana

# 6.6.3

- Updated some of capitals in `country.json`

# 6.6.2

- Remove IDs and add manually the id of the flag to the root

# 6.6.0

- Fix Syria
- Update SVGO settings

# 6.5.1

- Fix Eswatini
- Fix Vanuatu

# 6.5.0

- Fix Guatemala
- Fix Seychelles
- Fix Myanmar
- Run SVGO for all flags

# 6.4.6

- Fix Mongolia
- Fix Switzerland
- Fix Israel
- Fix China
- Fix Vietnam

# 6.4.5

- Fix colors of Estonia

# 6.4.4

- Fix colors of Armenia
- Fix the union jack of Niue

# 6.4.3

- Fix Argentina

# 6.4.2

- Convert text to path in flags: **sm**, **gu**

# 6.4.1

- Added Central European Free Trade Agreement ([CEFTA](https://en.wikipedia.org/wiki/Central_European_Free_Trade_Agreement)) flag

# 5.0.0

- The package name changed from `flag-icon-css` to `flag-icons`
- The class names changed from `flag-icon` `flag-icon-[xx]` to `fi` `fi-[xx]`


================================================
FILE: CNAME
================================================
flagicons.lipis.dev

================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2013 Panayiotis Lipiridis

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# flag-icons

> A curated collection of all country flags in SVG — plus the CSS for easier integration. See the [demo](https://flagicons.lipis.dev).

## Install

You can either [download](https://github.com/lipis/flag-icons/archive/main.zip) the whole project as is or install it via npm or Yarn:

```bash
npm install flag-icons
# or
yarn add flag-icons
```

## Usage

First, you need to import css:

```js
import "/node_modules/flag-icons/css/flag-icons.min.css";
```

or use CDN:

```html
<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css"
/>
```

or use SASS:

```scss
@use "node_modules/flag-icons/sass/flag-icons";

// or with custom configuration
@use "node_modules/flag-icons/sass/flag-icons" with (
  // Override path to flags directory
  $flag-icons-path: "node_modules/flag-icons/flags",

  // Include only specific country flags
  $flag-icons-included-countries: ("gr", "de", "gb")
);
```

You can find all available variables in [`sass/_variables.scss`](sass/_variables.scss).

For using the flags inline with text add the classes `.fi` and `.fi-xx` (where `xx` is the [ISO 3166-1-alpha-2 code](https://www.iso.org/obp/ui/#search/code/) of a country) to an empty `<span>`. If you want to have a squared version flag then add the class `fis` as well. Example:

```html
<span class="fi fi-gr"></span> <span class="fi fi-gr fis"></span>
```

You could also apply this to any element, but in that case you'll have to use the `fib` instead of `fi` and you're set. This will add the correct background with the following CSS properties:

```css
background-size: contain;
background-position: 50%;
background-repeat: no-repeat;
```

Which means that the flag is just going to appear in the middle of an element, so you will have to set manually the correct size of 4 by 3 ratio or if it's squared add also the `flag-icon-squared` class.

## Development

Run the `yarn` to install the dependencies after cloning the project and you'll be able to:

To build `*.scss` files

```bash
$ yarn build
```

To serve it on `localhost:8000`

```bash
$ yarn start
```

To have only specific countries in the css file, remove the ones that you don't need from the [`_flag-icons-list.scss`](sass/_flag-icons-list.scss) file and build it again.

## Credits

- This project wouldn't exist without the awesome and now deleted collection of SVG flags by [koppi](https://github.com/koppi).
- Thank you [Andrejs Abrickis](https://twitter.com/andrejsabrickis) for providing the `flag-icons` name on [npm](https://www.npmjs.com/package/flag-icons).


================================================
FILE: assets/docs.css
================================================
.hide {
  display: none;
}

.header {
  margin: 0 0 48px;
  padding: 32px 0;
  text-align: center;
  background: linear-gradient(90deg, #2b8a3e, #e8590c);
  color: #fff;
  font-size: 1.1em;
}

.header pre {
  background-color: rgba(32, 32, 32, 0.3);
  padding: 8px;
  max-width: 320px;
  margin: 12px auto;
  border-radius: 4px;
}

h2 {
  text-align: center;
  margin: 32px 0;
}

.no-wrap {
  white-space: nowrap;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.flag {
  border-radius: 4px;
  border: 1px solid #dee2e6;
  margin-bottom: 32px;
  padding: 8px;
}

.flag-country {
  width: 100%;
  border-bottom: 1px solid #e9ecef;
}

.flag-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid #e9ecef;
  border-radius: 2px;
  overflow: hidden;
}

.flag-img-square {
  width: 100%;
  aspect-ratio: 1 / 1;
  border: 1px solid #e9ecef;
  border-radius: 2px;
  overflow: hidden;
}

.flag-code {
  color: #343a40;
  font-weight: 600;
}

.switch {
  position: fixed;
  bottom: 4px;
  left: 4px;
  display: flex;
  flex-direction: column;
  width: 48px;
}

.switch a {
  text-decoration: none;
  padding: 4px;
  margin: 4px;
  border-radius: 4px;
  border: 1px solid #868e96;
  text-align: center;
  width: 100%;
  color: #343a40;
  background-color: #e9ecef;
}


================================================
FILE: assets/docs.js
================================================
const loadJSON = (path, callback) => {
  var xobj = new XMLHttpRequest();
  xobj.overrideMimeType("application/json");
  xobj.open("GET", path, true);
  xobj.onreadystatechange = function () {
    if (xobj.readyState == 4 && xobj.status == "200") {
      callback(xobj.responseText);
    }
  };
  xobj.send(null);
};

const addFlag = (country, rowDiv) => {
  const colDiv = document.createElement("div");
  colDiv.classList.add("col-xl-2");
  colDiv.classList.add("col-lg-3");
  colDiv.classList.add("col-md-4");
  colDiv.classList.add("col-6");
  colDiv.id = country.code;
  const flagDiv = document.createElement("div");
  flagDiv.classList.add("flag");

  // Code
  const codeSpan = document.createElement("span");
  codeSpan.classList.add("flag-code");
  const code = document.createTextNode(country.code);
  codeSpan.appendChild(code);
  // Divider
  const dividerSpan = document.createElement("span");
  const divider = document.createTextNode(" ");
  dividerSpan.appendChild(divider);
  //Country
  const countryDiv = document.createElement("div");
  countryDiv.classList.add("flag-country");
  countryDiv.classList.add("no-wrap");
  countryDiv.title = country.name;
  const countrySpan = document.createElement("span");
  const countryName = document.createTextNode(country.name);
  countrySpan.appendChild(countryName);
  countryDiv.appendChild(codeSpan);
  countryDiv.appendChild(dividerSpan);
  countryDiv.appendChild(countrySpan);

  const flagImg = document.createElement("img");
  flagImg.classList.add("flag-img");
  flagImg.src = country.flag_4x3;
  flagImg.alt = `Flag of ${country.name}`;

  const flagImgSquare = document.createElement("img");
  flagImgSquare.classList.add("flag-img-square");
  flagImgSquare.classList.add("hide");
  flagImgSquare.src = country.flag_1x1;
  flagImgSquare.alt = `Flag of ${country.name}`;

  colDiv.appendChild(flagDiv);
  flagDiv.appendChild(countryDiv);
  flagDiv.appendChild(flagImg);
  flagDiv.appendChild(flagImgSquare);
  rowDiv.appendChild(colDiv);
};

const show4x3 = () => {
  const click4x3 = document.getElementById("click-4x3");
  const click1x1 = document.getElementById("click-1x1");
  click1x1.classList.remove("hide");
  click4x3.classList.add("hide");
  const flags = document.getElementsByClassName("flag-img");
  for (flag of flags) {
    flag.classList.remove("hide");
  }
  const flagsSquared = document.getElementsByClassName("flag-img-square");
  for (flag of flagsSquared) {
    flag.classList.add("hide");
  }
  gtag("event", "switch", {
    event_category: "flags",
    event_label: "4x3",
  });
};

const show1x1 = () => {
  const click4x3 = document.getElementById("click-4x3");
  const click1x1 = document.getElementById("click-1x1");
  click4x3.classList.remove("hide");
  click1x1.classList.add("hide");
  const flagsSquared = document.getElementsByClassName("flag-img-square");
  for (flag of flagsSquared) {
    flag.classList.remove("hide");
  }
  const flags = document.getElementsByClassName("flag-img");
  for (flag of flags) {
    flag.classList.add("hide");
  }

  gtag("event", "switch", {
    event_category: "flags",
    event_label: "1x1",
  });
};

window.onload = function () {
  const isoFlagsRow = document.getElementById("iso-flags");
  const nonIsoFlagsRow = document.getElementById("non-iso-flags");
  const click4x3 = document.getElementById("click-4x3");
  click4x3.addEventListener("click", (event) => {
    event.stopPropagation();
    event.preventDefault();
    show4x3();
  });

  const click1x1 = document.getElementById("click-1x1");
  click1x1.addEventListener("click", (event) => {
    event.stopPropagation();
    event.preventDefault();
    show1x1();
  });

  loadJSON("country.json", (response) => {
    const countries = JSON.parse(response);
    for (country of countries) {
      if (country.iso) {
        addFlag(country, isoFlagsRow);
      } else {
        addFlag(country, nonIsoFlagsRow);
      }
    }
  });
};


================================================
FILE: composer.json
================================================
{
  "name": "lipis/flag-icons",
  "description": "A curated collection of all country flags in SVG — plus the CSS for easier integration.",
  "type": "library",
  "license": "MIT",
  "homepage": "https://flagicons.lipis.dev",
  "keywords": [
    "css",
    "svg",
    "country-flags",
    "country",
    "icon-css"
  ],
  "authors": [
    {
      "name": "Panayiotis Lipiridis",
      "email": "lipiridis@gmail.com",
      "role": "Lead"
    }
  ],
  "support": {
    "issues": "https://github.com/lipis/flag-icons/issues"
  }
}


================================================
FILE: country.json
================================================
[
  {
    "capital": "Kabul",
    "code": "af",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/af.svg",
    "flag_4x3": "flags/4x3/af.svg",
    "iso": true,
    "name": "Afghanistan"
  },
  {
    "capital": "Mariehamn",
    "code": "ax",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ax.svg",
    "flag_4x3": "flags/4x3/ax.svg",
    "iso": true,
    "name": "Aland Islands"
  },
  {
    "capital": "Tirana",
    "code": "al",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/al.svg",
    "flag_4x3": "flags/4x3/al.svg",
    "iso": true,
    "name": "Albania"
  },
  {
    "capital": "Algiers",
    "code": "dz",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/dz.svg",
    "flag_4x3": "flags/4x3/dz.svg",
    "iso": true,
    "name": "Algeria"
  },
  {
    "capital": "Pago Pago",
    "code": "as",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/as.svg",
    "flag_4x3": "flags/4x3/as.svg",
    "iso": true,
    "name": "American Samoa"
  },
  {
    "capital": "Andorra la Vella",
    "code": "ad",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ad.svg",
    "flag_4x3": "flags/4x3/ad.svg",
    "iso": true,
    "name": "Andorra"
  },
  {
    "capital": "Luanda",
    "code": "ao",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ao.svg",
    "flag_4x3": "flags/4x3/ao.svg",
    "iso": true,
    "name": "Angola"
  },
  {
    "capital": "The Valley",
    "code": "ai",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ai.svg",
    "flag_4x3": "flags/4x3/ai.svg",
    "iso": true,
    "name": "Anguilla"
  },
  {
    "code": "aq",
    "flag_1x1": "flags/1x1/aq.svg",
    "flag_4x3": "flags/4x3/aq.svg",
    "iso": true,
    "name": "Antarctica"
  },
  {
    "capital": "St. John's",
    "code": "ag",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ag.svg",
    "flag_4x3": "flags/4x3/ag.svg",
    "iso": true,
    "name": "Antigua and Barbuda"
  },
  {
    "capital": "Buenos Aires",
    "code": "ar",
    "continent": "South America",
    "flag_1x1": "flags/1x1/ar.svg",
    "flag_4x3": "flags/4x3/ar.svg",
    "iso": true,
    "name": "Argentina"
  },
  {
    "capital": "Yerevan",
    "code": "am",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/am.svg",
    "flag_4x3": "flags/4x3/am.svg",
    "iso": true,
    "name": "Armenia"
  },
  {
    "capital": "Oranjestad",
    "code": "aw",
    "continent": "South America",
    "flag_1x1": "flags/1x1/aw.svg",
    "flag_4x3": "flags/4x3/aw.svg",
    "iso": true,
    "name": "Aruba"
  },
  {
    "capital": "Georgetown",
    "code": "sh-ac",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sh-ac.svg",
    "flag_4x3": "flags/4x3/sh-ac.svg",
    "iso": false,
    "name": "Ascension Island"
  },
  {
    "code": "asean",
    "flag_1x1": "flags/1x1/asean.svg",
    "flag_4x3": "flags/4x3/asean.svg",
    "iso": false,
    "name": "Association of Southeast Asian Nations"
  },
  {
    "capital": "Canberra",
    "code": "au",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/au.svg",
    "flag_4x3": "flags/4x3/au.svg",
    "iso": true,
    "name": "Australia"
  },
  {
    "capital": "Vienna",
    "code": "at",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/at.svg",
    "flag_4x3": "flags/4x3/at.svg",
    "iso": true,
    "name": "Austria"
  },
  {
    "capital": "Baku",
    "code": "az",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/az.svg",
    "flag_4x3": "flags/4x3/az.svg",
    "iso": true,
    "name": "Azerbaijan"
  },
  {
    "capital": "Nassau",
    "code": "bs",
    "continent": "North America",
    "flag_1x1": "flags/1x1/bs.svg",
    "flag_4x3": "flags/4x3/bs.svg",
    "iso": true,
    "name": "Bahamas"
  },
  {
    "capital": "Manama",
    "code": "bh",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/bh.svg",
    "flag_4x3": "flags/4x3/bh.svg",
    "iso": true,
    "name": "Bahrain"
  },
  {
    "capital": "Dhaka",
    "code": "bd",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/bd.svg",
    "flag_4x3": "flags/4x3/bd.svg",
    "iso": true,
    "name": "Bangladesh"
  },
  {
    "capital": "Bridgetown",
    "code": "bb",
    "continent": "North America",
    "flag_1x1": "flags/1x1/bb.svg",
    "flag_4x3": "flags/4x3/bb.svg",
    "iso": true,
    "name": "Barbados"
  },
  {
    "code": "es-pv",
    "flag_1x1": "flags/1x1/es-pv.svg",
    "flag_4x3": "flags/4x3/es-pv.svg",
    "iso": false,
    "name": "Basque Country"
  },
  {
    "capital": "Minsk",
    "code": "by",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/by.svg",
    "flag_4x3": "flags/4x3/by.svg",
    "iso": true,
    "name": "Belarus"
  },
  {
    "capital": "Brussels",
    "code": "be",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/be.svg",
    "flag_4x3": "flags/4x3/be.svg",
    "iso": true,
    "name": "Belgium"
  },
  {
    "capital": "Belmopan",
    "code": "bz",
    "continent": "North America",
    "flag_1x1": "flags/1x1/bz.svg",
    "flag_4x3": "flags/4x3/bz.svg",
    "iso": true,
    "name": "Belize"
  },
  {
    "capital": "Porto-Novo",
    "code": "bj",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/bj.svg",
    "flag_4x3": "flags/4x3/bj.svg",
    "iso": true,
    "name": "Benin"
  },
  {
    "capital": "Hamilton",
    "code": "bm",
    "continent": "North America",
    "flag_1x1": "flags/1x1/bm.svg",
    "flag_4x3": "flags/4x3/bm.svg",
    "iso": true,
    "name": "Bermuda"
  },
  {
    "capital": "Thimphu",
    "code": "bt",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/bt.svg",
    "flag_4x3": "flags/4x3/bt.svg",
    "iso": true,
    "name": "Bhutan"
  },
  {
    "capital": "Sucre",
    "code": "bo",
    "continent": "South America",
    "flag_1x1": "flags/1x1/bo.svg",
    "flag_4x3": "flags/4x3/bo.svg",
    "iso": true,
    "name": "Bolivia"
  },
  {
    "capital": "Kralendijk",
    "code": "bq",
    "continent": "South America",
    "flag_1x1": "flags/1x1/bq.svg",
    "flag_4x3": "flags/4x3/bq.svg",
    "iso": true,
    "name": "Bonaire, Sint Eustatius and Saba"
  },
  {
    "capital": "Sarajevo",
    "code": "ba",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ba.svg",
    "flag_4x3": "flags/4x3/ba.svg",
    "iso": true,
    "name": "Bosnia and Herzegovina"
  },
  {
    "capital": "Gaborone",
    "code": "bw",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/bw.svg",
    "flag_4x3": "flags/4x3/bw.svg",
    "iso": true,
    "name": "Botswana"
  },
  {
    "code": "bv",
    "flag_1x1": "flags/1x1/bv.svg",
    "flag_4x3": "flags/4x3/bv.svg",
    "iso": true,
    "name": "Bouvet Island"
  },
  {
    "capital": "Brasília",
    "code": "br",
    "continent": "South America",
    "flag_1x1": "flags/1x1/br.svg",
    "flag_4x3": "flags/4x3/br.svg",
    "iso": true,
    "name": "Brazil"
  },
  {
    "capital": "Diego Garcia",
    "code": "io",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/io.svg",
    "flag_4x3": "flags/4x3/io.svg",
    "iso": true,
    "name": "British Indian Ocean Territory"
  },
  {
    "capital": "Bandar Seri Begawan",
    "code": "bn",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/bn.svg",
    "flag_4x3": "flags/4x3/bn.svg",
    "iso": true,
    "name": "Brunei Darussalam"
  },
  {
    "capital": "Sofia",
    "code": "bg",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/bg.svg",
    "flag_4x3": "flags/4x3/bg.svg",
    "iso": true,
    "name": "Bulgaria"
  },
  {
    "capital": "Ouagadougou",
    "code": "bf",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/bf.svg",
    "flag_4x3": "flags/4x3/bf.svg",
    "iso": true,
    "name": "Burkina Faso"
  },
  {
    "capital": "Bujumbura",
    "code": "bi",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/bi.svg",
    "flag_4x3": "flags/4x3/bi.svg",
    "iso": true,
    "name": "Burundi"
  },
  {
    "capital": "Praia",
    "code": "cv",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/cv.svg",
    "flag_4x3": "flags/4x3/cv.svg",
    "iso": true,
    "name": "Cabo Verde"
  },
  {
    "capital": "Phnom Penh",
    "code": "kh",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/kh.svg",
    "flag_4x3": "flags/4x3/kh.svg",
    "iso": true,
    "name": "Cambodia"
  },
  {
    "capital": "Yaoundé",
    "code": "cm",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/cm.svg",
    "flag_4x3": "flags/4x3/cm.svg",
    "iso": true,
    "name": "Cameroon"
  },
  {
    "capital": "Ottawa",
    "code": "ca",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ca.svg",
    "flag_4x3": "flags/4x3/ca.svg",
    "iso": true,
    "name": "Canada"
  },
  {
    "code": "ic",
    "flag_1x1": "flags/1x1/ic.svg",
    "flag_4x3": "flags/4x3/ic.svg",
    "iso": false,
    "name": "Canary Islands"
  },
  {
    "code": "es-ct",
    "flag_1x1": "flags/1x1/es-ct.svg",
    "flag_4x3": "flags/4x3/es-ct.svg",
    "iso": false,
    "name": "Catalonia"
  },
  {
    "capital": "George Town",
    "code": "ky",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ky.svg",
    "flag_4x3": "flags/4x3/ky.svg",
    "iso": true,
    "name": "Cayman Islands"
  },
  {
    "capital": "Bangui",
    "code": "cf",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/cf.svg",
    "flag_4x3": "flags/4x3/cf.svg",
    "iso": true,
    "name": "Central African Republic"
  },
  {
    "code": "cefta",
    "flag_1x1": "flags/1x1/cefta.svg",
    "flag_4x3": "flags/4x3/cefta.svg",
    "iso": false,
    "name": "Central European Free Trade Agreement"
  },
  {
    "capital": "N'Djamena",
    "code": "td",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/td.svg",
    "flag_4x3": "flags/4x3/td.svg",
    "iso": true,
    "name": "Chad"
  },
  {
    "capital": "Santiago",
    "code": "cl",
    "continent": "South America",
    "flag_1x1": "flags/1x1/cl.svg",
    "flag_4x3": "flags/4x3/cl.svg",
    "iso": true,
    "name": "Chile"
  },
  {
    "capital": "Beijing",
    "code": "cn",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/cn.svg",
    "flag_4x3": "flags/4x3/cn.svg",
    "iso": true,
    "name": "China"
  },
  {
    "capital": "Flying Fish Cove",
    "code": "cx",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/cx.svg",
    "flag_4x3": "flags/4x3/cx.svg",
    "iso": true,
    "name": "Christmas Island"
  },
  {
    "code": "cp",
    "flag_1x1": "flags/1x1/cp.svg",
    "flag_4x3": "flags/4x3/cp.svg",
    "iso": false,
    "name": "Clipperton Island"
  },
  {
    "capital": "West Island",
    "code": "cc",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/cc.svg",
    "flag_4x3": "flags/4x3/cc.svg",
    "iso": true,
    "name": "Cocos (Keeling) Islands"
  },
  {
    "capital": "Bogotá",
    "code": "co",
    "continent": "South America",
    "flag_1x1": "flags/1x1/co.svg",
    "flag_4x3": "flags/4x3/co.svg",
    "iso": true,
    "name": "Colombia"
  },
  {
    "capital": "Moroni",
    "code": "km",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/km.svg",
    "flag_4x3": "flags/4x3/km.svg",
    "iso": true,
    "name": "Comoros"
  },
  {
    "capital": "Avarua",
    "code": "ck",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/ck.svg",
    "flag_4x3": "flags/4x3/ck.svg",
    "iso": true,
    "name": "Cook Islands"
  },
  {
    "capital": "San José",
    "code": "cr",
    "continent": "North America",
    "flag_1x1": "flags/1x1/cr.svg",
    "flag_4x3": "flags/4x3/cr.svg",
    "iso": true,
    "name": "Costa Rica"
  },
  {
    "capital": "Zagreb",
    "code": "hr",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/hr.svg",
    "flag_4x3": "flags/4x3/hr.svg",
    "iso": true,
    "name": "Croatia"
  },
  {
    "capital": "Havana",
    "code": "cu",
    "continent": "North America",
    "flag_1x1": "flags/1x1/cu.svg",
    "flag_4x3": "flags/4x3/cu.svg",
    "iso": true,
    "name": "Cuba"
  },
  {
    "capital": "Willemstad",
    "code": "cw",
    "continent": "South America",
    "flag_1x1": "flags/1x1/cw.svg",
    "flag_4x3": "flags/4x3/cw.svg",
    "iso": true,
    "name": "Curaçao"
  },
  {
    "capital": "Nicosia",
    "code": "cy",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/cy.svg",
    "flag_4x3": "flags/4x3/cy.svg",
    "iso": true,
    "name": "Cyprus"
  },
  {
    "capital": "Prague",
    "code": "cz",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/cz.svg",
    "flag_4x3": "flags/4x3/cz.svg",
    "iso": true,
    "name": "Czech Republic"
  },
  {
    "capital": "Yamoussoukro",
    "code": "ci",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ci.svg",
    "flag_4x3": "flags/4x3/ci.svg",
    "iso": true,
    "name": "Côte d'Ivoire"
  },
  {
    "capital": "Kinshasa",
    "code": "cd",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/cd.svg",
    "flag_4x3": "flags/4x3/cd.svg",
    "iso": true,
    "name": "Democratic Republic of the Congo"
  },
  {
    "capital": "Copenhagen",
    "code": "dk",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/dk.svg",
    "flag_4x3": "flags/4x3/dk.svg",
    "iso": true,
    "name": "Denmark"
  },
  {
    "code": "dg",
    "flag_1x1": "flags/1x1/dg.svg",
    "flag_4x3": "flags/4x3/dg.svg",
    "iso": false,
    "name": "Diego Garcia"
  },
  {
    "capital": "Djibouti",
    "code": "dj",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/dj.svg",
    "flag_4x3": "flags/4x3/dj.svg",
    "iso": true,
    "name": "Djibouti"
  },
  {
    "capital": "Roseau",
    "code": "dm",
    "continent": "North America",
    "flag_1x1": "flags/1x1/dm.svg",
    "flag_4x3": "flags/4x3/dm.svg",
    "iso": true,
    "name": "Dominica"
  },
  {
    "capital": "Santo Domingo",
    "code": "do",
    "continent": "North America",
    "flag_1x1": "flags/1x1/do.svg",
    "flag_4x3": "flags/4x3/do.svg",
    "iso": true,
    "name": "Dominican Republic"
  },
  {
    "code": "eac",
    "flag_1x1": "flags/1x1/eac.svg",
    "flag_4x3": "flags/4x3/eac.svg",
    "iso": false,
    "name": "East African Community"
  },
  {
    "capital": "Quito",
    "code": "ec",
    "continent": "South America",
    "flag_1x1": "flags/1x1/ec.svg",
    "flag_4x3": "flags/4x3/ec.svg",
    "iso": true,
    "name": "Ecuador"
  },
  {
    "capital": "Cairo",
    "code": "eg",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/eg.svg",
    "flag_4x3": "flags/4x3/eg.svg",
    "iso": true,
    "name": "Egypt"
  },
  {
    "capital": "San Salvador",
    "code": "sv",
    "continent": "North America",
    "flag_1x1": "flags/1x1/sv.svg",
    "flag_4x3": "flags/4x3/sv.svg",
    "iso": true,
    "name": "El Salvador"
  },
  {
    "capital": "London",
    "code": "gb-eng",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gb-eng.svg",
    "flag_4x3": "flags/4x3/gb-eng.svg",
    "iso": false,
    "name": "England"
  },
  {
    "capital": "Malabo",
    "code": "gq",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/gq.svg",
    "flag_4x3": "flags/4x3/gq.svg",
    "iso": true,
    "name": "Equatorial Guinea"
  },
  {
    "capital": "Asmara",
    "code": "er",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/er.svg",
    "flag_4x3": "flags/4x3/er.svg",
    "iso": true,
    "name": "Eritrea"
  },
  {
    "capital": "Tallinn",
    "code": "ee",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ee.svg",
    "flag_4x3": "flags/4x3/ee.svg",
    "iso": true,
    "name": "Estonia"
  },
  {
    "capital": "Lobamba, Mbabane",
    "code": "sz",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sz.svg",
    "flag_4x3": "flags/4x3/sz.svg",
    "iso": true,
    "name": "Eswatini"
  },
  {
    "capital": "Addis Ababa",
    "code": "et",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/et.svg",
    "flag_4x3": "flags/4x3/et.svg",
    "iso": true,
    "name": "Ethiopia"
  },
  {
    "code": "eu",
    "flag_1x1": "flags/1x1/eu.svg",
    "flag_4x3": "flags/4x3/eu.svg",
    "iso": false,
    "name": "Europe"
  },
  {
    "capital": "Stanley",
    "code": "fk",
    "continent": "South America",
    "flag_1x1": "flags/1x1/fk.svg",
    "flag_4x3": "flags/4x3/fk.svg",
    "iso": true,
    "name": "Falkland Islands"
  },
  {
    "capital": "Tórshavn",
    "code": "fo",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/fo.svg",
    "flag_4x3": "flags/4x3/fo.svg",
    "iso": true,
    "name": "Faroe Islands"
  },
  {
    "capital": "Palikir",
    "code": "fm",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/fm.svg",
    "flag_4x3": "flags/4x3/fm.svg",
    "iso": true,
    "name": "Federated States of Micronesia"
  },
  {
    "capital": "Suva",
    "code": "fj",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/fj.svg",
    "flag_4x3": "flags/4x3/fj.svg",
    "iso": true,
    "name": "Fiji"
  },
  {
    "capital": "Helsinki",
    "code": "fi",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/fi.svg",
    "flag_4x3": "flags/4x3/fi.svg",
    "iso": true,
    "name": "Finland"
  },
  {
    "capital": "Paris",
    "code": "fr",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/fr.svg",
    "flag_4x3": "flags/4x3/fr.svg",
    "iso": true,
    "name": "France"
  },
  {
    "capital": "Cayenne",
    "code": "gf",
    "continent": "South America",
    "flag_1x1": "flags/1x1/gf.svg",
    "flag_4x3": "flags/4x3/gf.svg",
    "iso": true,
    "name": "French Guiana"
  },
  {
    "capital": "Papeete",
    "code": "pf",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/pf.svg",
    "flag_4x3": "flags/4x3/pf.svg",
    "iso": true,
    "name": "French Polynesia"
  },
  {
    "capital": "Saint-Pierre, Réunion",
    "code": "tf",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/tf.svg",
    "flag_4x3": "flags/4x3/tf.svg",
    "iso": true,
    "name": "French Southern Territories"
  },
  {
    "capital": "Libreville",
    "code": "ga",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ga.svg",
    "flag_4x3": "flags/4x3/ga.svg",
    "iso": true,
    "name": "Gabon"
  },
  {
    "code": "es-ga",
    "flag_1x1": "flags/1x1/es-ga.svg",
    "flag_4x3": "flags/4x3/es-ga.svg",
    "iso": false,
    "name": "Galicia"
  },
  {
    "capital": "Banjul",
    "code": "gm",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/gm.svg",
    "flag_4x3": "flags/4x3/gm.svg",
    "iso": true,
    "name": "Gambia"
  },
  {
    "capital": "Tbilisi",
    "code": "ge",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/ge.svg",
    "flag_4x3": "flags/4x3/ge.svg",
    "iso": true,
    "name": "Georgia"
  },
  {
    "capital": "Berlin",
    "code": "de",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/de.svg",
    "flag_4x3": "flags/4x3/de.svg",
    "iso": true,
    "name": "Germany"
  },
  {
    "capital": "Accra",
    "code": "gh",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/gh.svg",
    "flag_4x3": "flags/4x3/gh.svg",
    "iso": true,
    "name": "Ghana"
  },
  {
    "capital": "Gibraltar",
    "code": "gi",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gi.svg",
    "flag_4x3": "flags/4x3/gi.svg",
    "iso": true,
    "name": "Gibraltar"
  },
  {
    "capital": "Athens",
    "code": "gr",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gr.svg",
    "flag_4x3": "flags/4x3/gr.svg",
    "iso": true,
    "name": "Greece"
  },
  {
    "capital": "Nuuk",
    "code": "gl",
    "continent": "North America",
    "flag_1x1": "flags/1x1/gl.svg",
    "flag_4x3": "flags/4x3/gl.svg",
    "iso": true,
    "name": "Greenland"
  },
  {
    "capital": "St. George's",
    "code": "gd",
    "continent": "North America",
    "flag_1x1": "flags/1x1/gd.svg",
    "flag_4x3": "flags/4x3/gd.svg",
    "iso": true,
    "name": "Grenada"
  },
  {
    "capital": "Basse-Terre",
    "code": "gp",
    "continent": "North America",
    "flag_1x1": "flags/1x1/gp.svg",
    "flag_4x3": "flags/4x3/gp.svg",
    "iso": true,
    "name": "Guadeloupe"
  },
  {
    "capital": "Hagåtña",
    "code": "gu",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/gu.svg",
    "flag_4x3": "flags/4x3/gu.svg",
    "iso": true,
    "name": "Guam"
  },
  {
    "capital": "Guatemala City",
    "code": "gt",
    "continent": "North America",
    "flag_1x1": "flags/1x1/gt.svg",
    "flag_4x3": "flags/4x3/gt.svg",
    "iso": true,
    "name": "Guatemala"
  },
  {
    "capital": "Saint Peter Port",
    "code": "gg",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gg.svg",
    "flag_4x3": "flags/4x3/gg.svg",
    "iso": true,
    "name": "Guernsey"
  },
  {
    "capital": "Conakry",
    "code": "gn",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/gn.svg",
    "flag_4x3": "flags/4x3/gn.svg",
    "iso": true,
    "name": "Guinea"
  },
  {
    "capital": "Bissau",
    "code": "gw",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/gw.svg",
    "flag_4x3": "flags/4x3/gw.svg",
    "iso": true,
    "name": "Guinea-Bissau"
  },
  {
    "capital": "Georgetown",
    "code": "gy",
    "continent": "South America",
    "flag_1x1": "flags/1x1/gy.svg",
    "flag_4x3": "flags/4x3/gy.svg",
    "iso": true,
    "name": "Guyana"
  },
  {
    "capital": "Port-au-Prince",
    "code": "ht",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ht.svg",
    "flag_4x3": "flags/4x3/ht.svg",
    "iso": true,
    "name": "Haiti"
  },
  {
    "code": "hm",
    "flag_1x1": "flags/1x1/hm.svg",
    "flag_4x3": "flags/4x3/hm.svg",
    "iso": true,
    "name": "Heard Island and McDonald Islands"
  },
  {
    "capital": "Vatican City",
    "code": "va",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/va.svg",
    "flag_4x3": "flags/4x3/va.svg",
    "iso": true,
    "name": "Holy See"
  },
  {
    "capital": "Tegucigalpa",
    "code": "hn",
    "continent": "North America",
    "flag_1x1": "flags/1x1/hn.svg",
    "flag_4x3": "flags/4x3/hn.svg",
    "iso": true,
    "name": "Honduras"
  },
  {
    "capital": "Hong Kong",
    "code": "hk",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/hk.svg",
    "flag_4x3": "flags/4x3/hk.svg",
    "iso": true,
    "name": "Hong Kong"
  },
  {
    "capital": "Budapest",
    "code": "hu",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/hu.svg",
    "flag_4x3": "flags/4x3/hu.svg",
    "iso": true,
    "name": "Hungary"
  },
  {
    "capital": "Reykjavik",
    "code": "is",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/is.svg",
    "flag_4x3": "flags/4x3/is.svg",
    "iso": true,
    "name": "Iceland"
  },
  {
    "capital": "New Delhi",
    "code": "in",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/in.svg",
    "flag_4x3": "flags/4x3/in.svg",
    "iso": true,
    "name": "India"
  },
  {
    "capital": "Jakarta",
    "code": "id",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/id.svg",
    "flag_4x3": "flags/4x3/id.svg",
    "iso": true,
    "name": "Indonesia"
  },
  {
    "capital": "Tehran",
    "code": "ir",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/ir.svg",
    "flag_4x3": "flags/4x3/ir.svg",
    "iso": true,
    "name": "Iran"
  },
  {
    "capital": "Baghdad",
    "code": "iq",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/iq.svg",
    "flag_4x3": "flags/4x3/iq.svg",
    "iso": true,
    "name": "Iraq"
  },
  {
    "capital": "Dublin",
    "code": "ie",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ie.svg",
    "flag_4x3": "flags/4x3/ie.svg",
    "iso": true,
    "name": "Ireland"
  },
  {
    "capital": "Douglas",
    "code": "im",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/im.svg",
    "flag_4x3": "flags/4x3/im.svg",
    "iso": true,
    "name": "Isle of Man"
  },
  {
    "capital": "Jerusalem",
    "code": "il",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/il.svg",
    "flag_4x3": "flags/4x3/il.svg",
    "iso": true,
    "name": "Israel"
  },
  {
    "capital": "Rome",
    "code": "it",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/it.svg",
    "flag_4x3": "flags/4x3/it.svg",
    "iso": true,
    "name": "Italy"
  },
  {
    "capital": "Kingston",
    "code": "jm",
    "continent": "North America",
    "flag_1x1": "flags/1x1/jm.svg",
    "flag_4x3": "flags/4x3/jm.svg",
    "iso": true,
    "name": "Jamaica"
  },
  {
    "capital": "Tokyo",
    "code": "jp",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/jp.svg",
    "flag_4x3": "flags/4x3/jp.svg",
    "iso": true,
    "name": "Japan"
  },
  {
    "capital": "Saint Helier",
    "code": "je",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/je.svg",
    "flag_4x3": "flags/4x3/je.svg",
    "iso": true,
    "name": "Jersey"
  },
  {
    "capital": "Amman",
    "code": "jo",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/jo.svg",
    "flag_4x3": "flags/4x3/jo.svg",
    "iso": true,
    "name": "Jordan"
  },
  {
    "capital": "Astana",
    "code": "kz",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/kz.svg",
    "flag_4x3": "flags/4x3/kz.svg",
    "iso": true,
    "name": "Kazakhstan"
  },
  {
    "capital": "Nairobi",
    "code": "ke",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ke.svg",
    "flag_4x3": "flags/4x3/ke.svg",
    "iso": true,
    "name": "Kenya"
  },
  {
    "capital": "South Tarawa",
    "code": "ki",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/ki.svg",
    "flag_4x3": "flags/4x3/ki.svg",
    "iso": true,
    "name": "Kiribati"
  },
  {
    "capital": "Pristina",
    "code": "xk",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/xk.svg",
    "flag_4x3": "flags/4x3/xk.svg",
    "iso": false,
    "name": "Kosovo"
  },
  {
    "capital": "Kuwait City",
    "code": "kw",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/kw.svg",
    "flag_4x3": "flags/4x3/kw.svg",
    "iso": true,
    "name": "Kuwait"
  },
  {
    "capital": "Bishkek",
    "code": "kg",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/kg.svg",
    "flag_4x3": "flags/4x3/kg.svg",
    "iso": true,
    "name": "Kyrgyzstan"
  },
  {
    "capital": "Vientiane",
    "code": "la",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/la.svg",
    "flag_4x3": "flags/4x3/la.svg",
    "iso": true,
    "name": "Laos"
  },
  {
    "capital": "Riga",
    "code": "lv",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/lv.svg",
    "flag_4x3": "flags/4x3/lv.svg",
    "iso": true,
    "name": "Latvia"
  },
  {
    "code": "arab",
    "flag_1x1": "flags/1x1/arab.svg",
    "flag_4x3": "flags/4x3/arab.svg",
    "iso": false,
    "name": "League of Arab States"
  },
  {
    "capital": "Beirut",
    "code": "lb",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/lb.svg",
    "flag_4x3": "flags/4x3/lb.svg",
    "iso": true,
    "name": "Lebanon"
  },
  {
    "capital": "Maseru",
    "code": "ls",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ls.svg",
    "flag_4x3": "flags/4x3/ls.svg",
    "iso": true,
    "name": "Lesotho"
  },
  {
    "capital": "Monrovia",
    "code": "lr",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/lr.svg",
    "flag_4x3": "flags/4x3/lr.svg",
    "iso": true,
    "name": "Liberia"
  },
  {
    "capital": "Tripoli",
    "code": "ly",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ly.svg",
    "flag_4x3": "flags/4x3/ly.svg",
    "iso": true,
    "name": "Libya"
  },
  {
    "capital": "Vaduz",
    "code": "li",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/li.svg",
    "flag_4x3": "flags/4x3/li.svg",
    "iso": true,
    "name": "Liechtenstein"
  },
  {
    "capital": "Vilnius",
    "code": "lt",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/lt.svg",
    "flag_4x3": "flags/4x3/lt.svg",
    "iso": true,
    "name": "Lithuania"
  },
  {
    "capital": "Luxembourg City",
    "code": "lu",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/lu.svg",
    "flag_4x3": "flags/4x3/lu.svg",
    "iso": true,
    "name": "Luxembourg"
  },
  {
    "capital": "Macau",
    "code": "mo",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/mo.svg",
    "flag_4x3": "flags/4x3/mo.svg",
    "iso": true,
    "name": "Macau"
  },
  {
    "capital": "Antananarivo",
    "code": "mg",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/mg.svg",
    "flag_4x3": "flags/4x3/mg.svg",
    "iso": true,
    "name": "Madagascar"
  },
  {
    "capital": "Lilongwe",
    "code": "mw",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/mw.svg",
    "flag_4x3": "flags/4x3/mw.svg",
    "iso": true,
    "name": "Malawi"
  },
  {
    "capital": "Kuala Lumpur",
    "code": "my",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/my.svg",
    "flag_4x3": "flags/4x3/my.svg",
    "iso": true,
    "name": "Malaysia"
  },
  {
    "capital": "Malé",
    "code": "mv",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/mv.svg",
    "flag_4x3": "flags/4x3/mv.svg",
    "iso": true,
    "name": "Maldives"
  },
  {
    "capital": "Bamako",
    "code": "ml",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ml.svg",
    "flag_4x3": "flags/4x3/ml.svg",
    "iso": true,
    "name": "Mali"
  },
  {
    "capital": "Valletta",
    "code": "mt",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/mt.svg",
    "flag_4x3": "flags/4x3/mt.svg",
    "iso": true,
    "name": "Malta"
  },
  {
    "capital": "Majuro",
    "code": "mh",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/mh.svg",
    "flag_4x3": "flags/4x3/mh.svg",
    "iso": true,
    "name": "Marshall Islands"
  },
  {
    "capital": "Fort-de-France",
    "code": "mq",
    "continent": "North America",
    "flag_1x1": "flags/1x1/mq.svg",
    "flag_4x3": "flags/4x3/mq.svg",
    "iso": true,
    "name": "Martinique"
  },
  {
    "capital": "Nouakchott",
    "code": "mr",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/mr.svg",
    "flag_4x3": "flags/4x3/mr.svg",
    "iso": true,
    "name": "Mauritania"
  },
  {
    "capital": "Port Louis",
    "code": "mu",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/mu.svg",
    "flag_4x3": "flags/4x3/mu.svg",
    "iso": true,
    "name": "Mauritius"
  },
  {
    "capital": "Mamoudzou",
    "code": "yt",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/yt.svg",
    "flag_4x3": "flags/4x3/yt.svg",
    "iso": true,
    "name": "Mayotte"
  },
  {
    "capital": "Mexico City",
    "code": "mx",
    "continent": "North America",
    "flag_1x1": "flags/1x1/mx.svg",
    "flag_4x3": "flags/4x3/mx.svg",
    "iso": true,
    "name": "Mexico"
  },
  {
    "capital": "Chișinău",
    "code": "md",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/md.svg",
    "flag_4x3": "flags/4x3/md.svg",
    "iso": true,
    "name": "Moldova"
  },
  {
    "capital": "Monaco",
    "code": "mc",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/mc.svg",
    "flag_4x3": "flags/4x3/mc.svg",
    "iso": true,
    "name": "Monaco"
  },
  {
    "capital": "Ulaanbaatar",
    "code": "mn",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/mn.svg",
    "flag_4x3": "flags/4x3/mn.svg",
    "iso": true,
    "name": "Mongolia"
  },
  {
    "capital": "Podgorica",
    "code": "me",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/me.svg",
    "flag_4x3": "flags/4x3/me.svg",
    "iso": true,
    "name": "Montenegro"
  },
  {
    "capital": "Little Bay, Brades, Plymouth",
    "code": "ms",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ms.svg",
    "flag_4x3": "flags/4x3/ms.svg",
    "iso": true,
    "name": "Montserrat"
  },
  {
    "capital": "Rabat",
    "code": "ma",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ma.svg",
    "flag_4x3": "flags/4x3/ma.svg",
    "iso": true,
    "name": "Morocco"
  },
  {
    "capital": "Maputo",
    "code": "mz",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/mz.svg",
    "flag_4x3": "flags/4x3/mz.svg",
    "iso": true,
    "name": "Mozambique"
  },
  {
    "capital": "Naypyidaw",
    "code": "mm",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/mm.svg",
    "flag_4x3": "flags/4x3/mm.svg",
    "iso": true,
    "name": "Myanmar"
  },
  {
    "capital": "Windhoek",
    "code": "na",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/na.svg",
    "flag_4x3": "flags/4x3/na.svg",
    "iso": true,
    "name": "Namibia"
  },
  {
    "capital": "Yaren District",
    "code": "nr",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/nr.svg",
    "flag_4x3": "flags/4x3/nr.svg",
    "iso": true,
    "name": "Nauru"
  },
  {
    "capital": "Kathmandu",
    "code": "np",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/np.svg",
    "flag_4x3": "flags/4x3/np.svg",
    "iso": true,
    "name": "Nepal"
  },
  {
    "capital": "Amsterdam",
    "code": "nl",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/nl.svg",
    "flag_4x3": "flags/4x3/nl.svg",
    "iso": true,
    "name": "Netherlands"
  },
  {
    "capital": "Nouméa",
    "code": "nc",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/nc.svg",
    "flag_4x3": "flags/4x3/nc.svg",
    "iso": true,
    "name": "New Caledonia"
  },
  {
    "capital": "Wellington",
    "code": "nz",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/nz.svg",
    "flag_4x3": "flags/4x3/nz.svg",
    "iso": true,
    "name": "New Zealand"
  },
  {
    "capital": "Managua",
    "code": "ni",
    "continent": "North America",
    "flag_1x1": "flags/1x1/ni.svg",
    "flag_4x3": "flags/4x3/ni.svg",
    "iso": true,
    "name": "Nicaragua"
  },
  {
    "capital": "Niamey",
    "code": "ne",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ne.svg",
    "flag_4x3": "flags/4x3/ne.svg",
    "iso": true,
    "name": "Niger"
  },
  {
    "capital": "Abuja",
    "code": "ng",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ng.svg",
    "flag_4x3": "flags/4x3/ng.svg",
    "iso": true,
    "name": "Nigeria"
  },
  {
    "capital": "Alofi",
    "code": "nu",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/nu.svg",
    "flag_4x3": "flags/4x3/nu.svg",
    "iso": true,
    "name": "Niue"
  },
  {
    "capital": "Kingston",
    "code": "nf",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/nf.svg",
    "flag_4x3": "flags/4x3/nf.svg",
    "iso": true,
    "name": "Norfolk Island"
  },
  {
    "capital": "Pyongyang",
    "code": "kp",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/kp.svg",
    "flag_4x3": "flags/4x3/kp.svg",
    "iso": true,
    "name": "North Korea"
  },
  {
    "capital": "Skopje",
    "code": "mk",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/mk.svg",
    "flag_4x3": "flags/4x3/mk.svg",
    "iso": true,
    "name": "North Macedonia"
  },
  {
    "capital": "Belfast",
    "code": "gb-nir",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gb-nir.svg",
    "flag_4x3": "flags/4x3/gb-nir.svg",
    "iso": false,
    "name": "Northern Ireland"
  },
  {
    "capital": "Saipan",
    "code": "mp",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/mp.svg",
    "flag_4x3": "flags/4x3/mp.svg",
    "iso": true,
    "name": "Northern Mariana Islands"
  },
  {
    "capital": "Oslo",
    "code": "no",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/no.svg",
    "flag_4x3": "flags/4x3/no.svg",
    "iso": true,
    "name": "Norway"
  },
  {
    "capital": "Muscat",
    "code": "om",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/om.svg",
    "flag_4x3": "flags/4x3/om.svg",
    "iso": true,
    "name": "Oman"
  },
  {
    "code": "pc",
    "flag_1x1": "flags/1x1/pc.svg",
    "flag_4x3": "flags/4x3/pc.svg",
    "iso": false,
    "name": "Pacific Community"
  },
  {
    "capital": "Islamabad",
    "code": "pk",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/pk.svg",
    "flag_4x3": "flags/4x3/pk.svg",
    "iso": true,
    "name": "Pakistan"
  },
  {
    "capital": "Ngerulmud",
    "code": "pw",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/pw.svg",
    "flag_4x3": "flags/4x3/pw.svg",
    "iso": true,
    "name": "Palau"
  },
  {
    "capital": "Panama City",
    "code": "pa",
    "continent": "North America",
    "flag_1x1": "flags/1x1/pa.svg",
    "flag_4x3": "flags/4x3/pa.svg",
    "iso": true,
    "name": "Panama"
  },
  {
    "capital": "Port Moresby",
    "code": "pg",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/pg.svg",
    "flag_4x3": "flags/4x3/pg.svg",
    "iso": true,
    "name": "Papua New Guinea"
  },
  {
    "capital": "Asunción",
    "code": "py",
    "continent": "South America",
    "flag_1x1": "flags/1x1/py.svg",
    "flag_4x3": "flags/4x3/py.svg",
    "iso": true,
    "name": "Paraguay"
  },
  {
    "capital": "Lima",
    "code": "pe",
    "continent": "South America",
    "flag_1x1": "flags/1x1/pe.svg",
    "flag_4x3": "flags/4x3/pe.svg",
    "iso": true,
    "name": "Peru"
  },
  {
    "capital": "Manila",
    "code": "ph",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/ph.svg",
    "flag_4x3": "flags/4x3/ph.svg",
    "iso": true,
    "name": "Philippines"
  },
  {
    "capital": "Adamstown",
    "code": "pn",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/pn.svg",
    "flag_4x3": "flags/4x3/pn.svg",
    "iso": true,
    "name": "Pitcairn"
  },
  {
    "capital": "Warsaw",
    "code": "pl",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/pl.svg",
    "flag_4x3": "flags/4x3/pl.svg",
    "iso": true,
    "name": "Poland"
  },
  {
    "capital": "Lisbon",
    "code": "pt",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/pt.svg",
    "flag_4x3": "flags/4x3/pt.svg",
    "iso": true,
    "name": "Portugal"
  },
  {
    "capital": "San Juan",
    "code": "pr",
    "continent": "North America",
    "flag_1x1": "flags/1x1/pr.svg",
    "flag_4x3": "flags/4x3/pr.svg",
    "iso": true,
    "name": "Puerto Rico"
  },
  {
    "capital": "Doha",
    "code": "qa",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/qa.svg",
    "flag_4x3": "flags/4x3/qa.svg",
    "iso": true,
    "name": "Qatar"
  },
  {
    "capital": "Brazzaville",
    "code": "cg",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/cg.svg",
    "flag_4x3": "flags/4x3/cg.svg",
    "iso": true,
    "name": "Republic of the Congo"
  },
  {
    "capital": "Bucharest",
    "code": "ro",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ro.svg",
    "flag_4x3": "flags/4x3/ro.svg",
    "iso": true,
    "name": "Romania"
  },
  {
    "capital": "Moscow",
    "code": "ru",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ru.svg",
    "flag_4x3": "flags/4x3/ru.svg",
    "iso": true,
    "name": "Russia"
  },
  {
    "capital": "Kigali",
    "code": "rw",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/rw.svg",
    "flag_4x3": "flags/4x3/rw.svg",
    "iso": true,
    "name": "Rwanda"
  },
  {
    "capital": "Saint-Denis",
    "code": "re",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/re.svg",
    "flag_4x3": "flags/4x3/re.svg",
    "iso": true,
    "name": "Réunion"
  },
  {
    "capital": "Gustavia",
    "code": "bl",
    "continent": "North America",
    "flag_1x1": "flags/1x1/bl.svg",
    "flag_4x3": "flags/4x3/bl.svg",
    "iso": true,
    "name": "Saint Barthélemy"
  },
  {
    "capital": "Jamestown",
    "code": "sh-hl",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sh-hl.svg",
    "flag_4x3": "flags/4x3/sh-hl.svg",
    "iso": false,
    "name": "Saint Helena"
  },
  {
    "capital": "Jamestown",
    "code": "sh",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sh.svg",
    "flag_4x3": "flags/4x3/sh.svg",
    "iso": true,
    "name": "Saint Helena, Ascension and Tristan da Cunha"
  },
  {
    "capital": "Basseterre",
    "code": "kn",
    "continent": "North America",
    "flag_1x1": "flags/1x1/kn.svg",
    "flag_4x3": "flags/4x3/kn.svg",
    "iso": true,
    "name": "Saint Kitts and Nevis"
  },
  {
    "capital": "Castries",
    "code": "lc",
    "continent": "North America",
    "flag_1x1": "flags/1x1/lc.svg",
    "flag_4x3": "flags/4x3/lc.svg",
    "iso": true,
    "name": "Saint Lucia"
  },
  {
    "capital": "Marigot",
    "code": "mf",
    "continent": "North America",
    "flag_1x1": "flags/1x1/mf.svg",
    "flag_4x3": "flags/4x3/mf.svg",
    "iso": true,
    "name": "Saint Martin"
  },
  {
    "capital": "Saint-Pierre",
    "code": "pm",
    "continent": "North America",
    "flag_1x1": "flags/1x1/pm.svg",
    "flag_4x3": "flags/4x3/pm.svg",
    "iso": true,
    "name": "Saint Pierre and Miquelon"
  },
  {
    "capital": "Kingstown",
    "code": "vc",
    "continent": "North America",
    "flag_1x1": "flags/1x1/vc.svg",
    "flag_4x3": "flags/4x3/vc.svg",
    "iso": true,
    "name": "Saint Vincent and the Grenadines"
  },
  {
    "capital": "Apia",
    "code": "ws",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/ws.svg",
    "flag_4x3": "flags/4x3/ws.svg",
    "iso": true,
    "name": "Samoa"
  },
  {
    "capital": "San Marino",
    "code": "sm",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/sm.svg",
    "flag_4x3": "flags/4x3/sm.svg",
    "iso": true,
    "name": "San Marino"
  },
  {
    "capital": "São Tomé",
    "code": "st",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/st.svg",
    "flag_4x3": "flags/4x3/st.svg",
    "iso": true,
    "name": "Sao Tome and Principe"
  },
  {
    "capital": "Riyadh",
    "code": "sa",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/sa.svg",
    "flag_4x3": "flags/4x3/sa.svg",
    "iso": true,
    "name": "Saudi Arabia"
  },
  {
    "capital": "Edinburgh",
    "code": "gb-sct",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gb-sct.svg",
    "flag_4x3": "flags/4x3/gb-sct.svg",
    "iso": false,
    "name": "Scotland"
  },
  {
    "capital": "Dakar",
    "code": "sn",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sn.svg",
    "flag_4x3": "flags/4x3/sn.svg",
    "iso": true,
    "name": "Senegal"
  },
  {
    "capital": "Belgrade",
    "code": "rs",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/rs.svg",
    "flag_4x3": "flags/4x3/rs.svg",
    "iso": true,
    "name": "Serbia"
  },
  {
    "capital": "Victoria",
    "code": "sc",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sc.svg",
    "flag_4x3": "flags/4x3/sc.svg",
    "iso": true,
    "name": "Seychelles"
  },
  {
    "capital": "Freetown",
    "code": "sl",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sl.svg",
    "flag_4x3": "flags/4x3/sl.svg",
    "iso": true,
    "name": "Sierra Leone"
  },
  {
    "capital": "Singapore",
    "code": "sg",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/sg.svg",
    "flag_4x3": "flags/4x3/sg.svg",
    "iso": true,
    "name": "Singapore"
  },
  {
    "capital": "Philipsburg",
    "code": "sx",
    "continent": "North America",
    "flag_1x1": "flags/1x1/sx.svg",
    "flag_4x3": "flags/4x3/sx.svg",
    "iso": true,
    "name": "Sint Maarten"
  },
  {
    "capital": "Bratislava",
    "code": "sk",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/sk.svg",
    "flag_4x3": "flags/4x3/sk.svg",
    "iso": true,
    "name": "Slovakia"
  },
  {
    "capital": "Ljubljana",
    "code": "si",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/si.svg",
    "flag_4x3": "flags/4x3/si.svg",
    "iso": true,
    "name": "Slovenia"
  },
  {
    "capital": "Honiara",
    "code": "sb",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/sb.svg",
    "flag_4x3": "flags/4x3/sb.svg",
    "iso": true,
    "name": "Solomon Islands"
  },
  {
    "capital": "Mogadishu",
    "code": "so",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/so.svg",
    "flag_4x3": "flags/4x3/so.svg",
    "iso": true,
    "name": "Somalia"
  },
  {
    "capital": "Pretoria",
    "code": "za",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/za.svg",
    "flag_4x3": "flags/4x3/za.svg",
    "iso": true,
    "name": "South Africa"
  },
  {
    "capital": "King Edward Point",
    "code": "gs",
    "continent": "Antarctica",
    "flag_1x1": "flags/1x1/gs.svg",
    "flag_4x3": "flags/4x3/gs.svg",
    "iso": true,
    "name": "South Georgia and the South Sandwich Islands"
  },
  {
    "capital": "Seoul",
    "code": "kr",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/kr.svg",
    "flag_4x3": "flags/4x3/kr.svg",
    "iso": true,
    "name": "South Korea"
  },
  {
    "capital": "Juba",
    "code": "ss",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ss.svg",
    "flag_4x3": "flags/4x3/ss.svg",
    "iso": true,
    "name": "South Sudan"
  },
  {
    "capital": "Madrid",
    "code": "es",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/es.svg",
    "flag_4x3": "flags/4x3/es.svg",
    "iso": true,
    "name": "Spain"
  },
  {
    "capital": "Sri Jayawardenepura Kotte, Colombo",
    "code": "lk",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/lk.svg",
    "flag_4x3": "flags/4x3/lk.svg",
    "iso": true,
    "name": "Sri Lanka"
  },
  {
    "capital": "Ramallah",
    "code": "ps",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/ps.svg",
    "flag_4x3": "flags/4x3/ps.svg",
    "iso": true,
    "name": "State of Palestine"
  },
  {
    "capital": "Khartoum",
    "code": "sd",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sd.svg",
    "flag_4x3": "flags/4x3/sd.svg",
    "iso": true,
    "name": "Sudan"
  },
  {
    "capital": "Paramaribo",
    "code": "sr",
    "continent": "South America",
    "flag_1x1": "flags/1x1/sr.svg",
    "flag_4x3": "flags/4x3/sr.svg",
    "iso": true,
    "name": "Suriname"
  },
  {
    "capital": "Longyearbyen",
    "code": "sj",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/sj.svg",
    "flag_4x3": "flags/4x3/sj.svg",
    "iso": true,
    "name": "Svalbard and Jan Mayen"
  },
  {
    "capital": "Stockholm",
    "code": "se",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/se.svg",
    "flag_4x3": "flags/4x3/se.svg",
    "iso": true,
    "name": "Sweden"
  },
  {
    "capital": "Bern",
    "code": "ch",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ch.svg",
    "flag_4x3": "flags/4x3/ch.svg",
    "iso": true,
    "name": "Switzerland"
  },
  {
    "capital": "Damascus",
    "code": "sy",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/sy.svg",
    "flag_4x3": "flags/4x3/sy.svg",
    "iso": true,
    "name": "Syria"
  },
  {
    "capital": "Taipei",
    "code": "tw",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/tw.svg",
    "flag_4x3": "flags/4x3/tw.svg",
    "iso": true,
    "name": "Taiwan"
  },
  {
    "capital": "Dushanbe",
    "code": "tj",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/tj.svg",
    "flag_4x3": "flags/4x3/tj.svg",
    "iso": true,
    "name": "Tajikistan"
  },
  {
    "capital": "Dodoma",
    "code": "tz",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/tz.svg",
    "flag_4x3": "flags/4x3/tz.svg",
    "iso": true,
    "name": "Tanzania"
  },
  {
    "capital": "Bangkok",
    "code": "th",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/th.svg",
    "flag_4x3": "flags/4x3/th.svg",
    "iso": true,
    "name": "Thailand"
  },
  {
    "capital": "Dili",
    "code": "tl",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/tl.svg",
    "flag_4x3": "flags/4x3/tl.svg",
    "iso": true,
    "name": "Timor-Leste"
  },
  {
    "capital": "Lomé",
    "code": "tg",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/tg.svg",
    "flag_4x3": "flags/4x3/tg.svg",
    "iso": true,
    "name": "Togo"
  },
  {
    "capital": "Nukunonu, Atafu,Tokelau",
    "code": "tk",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/tk.svg",
    "flag_4x3": "flags/4x3/tk.svg",
    "iso": true,
    "name": "Tokelau"
  },
  {
    "capital": "Nukuʻalofa",
    "code": "to",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/to.svg",
    "flag_4x3": "flags/4x3/to.svg",
    "iso": true,
    "name": "Tonga"
  },
  {
    "capital": "Port of Spain",
    "code": "tt",
    "continent": "South America",
    "flag_1x1": "flags/1x1/tt.svg",
    "flag_4x3": "flags/4x3/tt.svg",
    "iso": true,
    "name": "Trinidad and Tobago"
  },
  {
    "capital": "Edinburgh of the Seven Seas",
    "code": "sh-ta",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/sh-ta.svg",
    "flag_4x3": "flags/4x3/sh-ta.svg",
    "iso": false,
    "name": "Tristan da Cunha"
  },
  {
    "capital": "Tunis",
    "code": "tn",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/tn.svg",
    "flag_4x3": "flags/4x3/tn.svg",
    "iso": true,
    "name": "Tunisia"
  },
  {
    "capital": "Ashgabat",
    "code": "tm",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/tm.svg",
    "flag_4x3": "flags/4x3/tm.svg",
    "iso": true,
    "name": "Turkmenistan"
  },
  {
    "capital": "Cockburn Town",
    "code": "tc",
    "continent": "North America",
    "flag_1x1": "flags/1x1/tc.svg",
    "flag_4x3": "flags/4x3/tc.svg",
    "iso": true,
    "name": "Turks and Caicos Islands"
  },
  {
    "capital": "Funafuti",
    "code": "tv",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/tv.svg",
    "flag_4x3": "flags/4x3/tv.svg",
    "iso": true,
    "name": "Tuvalu"
  },
  {
    "capital": "Ankara",
    "code": "tr",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/tr.svg",
    "flag_4x3": "flags/4x3/tr.svg",
    "iso": true,
    "name": "Türkiye"
  },
  {
    "capital": "Kampala",
    "code": "ug",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/ug.svg",
    "flag_4x3": "flags/4x3/ug.svg",
    "iso": true,
    "name": "Uganda"
  },
  {
    "capital": "Kiev",
    "code": "ua",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/ua.svg",
    "flag_4x3": "flags/4x3/ua.svg",
    "iso": true,
    "name": "Ukraine"
  },
  {
    "capital": "Abu Dhabi",
    "code": "ae",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/ae.svg",
    "flag_4x3": "flags/4x3/ae.svg",
    "iso": true,
    "name": "United Arab Emirates"
  },
  {
    "capital": "London",
    "code": "gb",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gb.svg",
    "flag_4x3": "flags/4x3/gb.svg",
    "iso": true,
    "name": "United Kingdom"
  },
  {
    "code": "un",
    "flag_1x1": "flags/1x1/un.svg",
    "flag_4x3": "flags/4x3/un.svg",
    "iso": false,
    "name": "United Nations"
  },
  {
    "capital": "Washington, D.C.",
    "code": "um",
    "continent": "North America",
    "flag_1x1": "flags/1x1/um.svg",
    "flag_4x3": "flags/4x3/um.svg",
    "iso": true,
    "name": "United States Minor Outlying Islands"
  },
  {
    "capital": "Washington, D.C.",
    "code": "us",
    "continent": "North America",
    "flag_1x1": "flags/1x1/us.svg",
    "flag_4x3": "flags/4x3/us.svg",
    "iso": true,
    "name": "United States of America"
  },
  {
    "code": "xx",
    "flag_1x1": "flags/1x1/xx.svg",
    "flag_4x3": "flags/4x3/xx.svg",
    "iso": false,
    "name": "Unknown"
  },
  {
    "capital": "Montevideo",
    "code": "uy",
    "continent": "South America",
    "flag_1x1": "flags/1x1/uy.svg",
    "flag_4x3": "flags/4x3/uy.svg",
    "iso": true,
    "name": "Uruguay"
  },
  {
    "capital": "Tashkent",
    "code": "uz",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/uz.svg",
    "flag_4x3": "flags/4x3/uz.svg",
    "iso": true,
    "name": "Uzbekistan"
  },
  {
    "capital": "Port Vila",
    "code": "vu",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/vu.svg",
    "flag_4x3": "flags/4x3/vu.svg",
    "iso": true,
    "name": "Vanuatu"
  },
  {
    "capital": "Caracas",
    "code": "ve",
    "continent": "South America",
    "flag_1x1": "flags/1x1/ve.svg",
    "flag_4x3": "flags/4x3/ve.svg",
    "iso": true,
    "name": "Venezuela"
  },
  {
    "capital": "Hanoi",
    "code": "vn",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/vn.svg",
    "flag_4x3": "flags/4x3/vn.svg",
    "iso": true,
    "name": "Vietnam"
  },
  {
    "capital": "Road Town",
    "code": "vg",
    "continent": "North America",
    "flag_1x1": "flags/1x1/vg.svg",
    "flag_4x3": "flags/4x3/vg.svg",
    "iso": true,
    "name": "Virgin Islands (British)"
  },
  {
    "capital": "Charlotte Amalie",
    "code": "vi",
    "continent": "North America",
    "flag_1x1": "flags/1x1/vi.svg",
    "flag_4x3": "flags/4x3/vi.svg",
    "iso": true,
    "name": "Virgin Islands (U.S.)"
  },
  {
    "capital": "Cardiff",
    "code": "gb-wls",
    "continent": "Europe",
    "flag_1x1": "flags/1x1/gb-wls.svg",
    "flag_4x3": "flags/4x3/gb-wls.svg",
    "iso": false,
    "name": "Wales"
  },
  {
    "capital": "Mata-Utu",
    "code": "wf",
    "continent": "Oceania",
    "flag_1x1": "flags/1x1/wf.svg",
    "flag_4x3": "flags/4x3/wf.svg",
    "iso": true,
    "name": "Wallis and Futuna"
  },
  {
    "capital": "Laayoune",
    "code": "eh",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/eh.svg",
    "flag_4x3": "flags/4x3/eh.svg",
    "iso": true,
    "name": "Western Sahara"
  },
  {
    "capital": "Sana'a",
    "code": "ye",
    "continent": "Asia",
    "flag_1x1": "flags/1x1/ye.svg",
    "flag_4x3": "flags/4x3/ye.svg",
    "iso": true,
    "name": "Yemen"
  },
  {
    "capital": "Lusaka",
    "code": "zm",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/zm.svg",
    "flag_4x3": "flags/4x3/zm.svg",
    "iso": true,
    "name": "Zambia"
  },
  {
    "capital": "Harare",
    "code": "zw",
    "continent": "Africa",
    "flag_1x1": "flags/1x1/zw.svg",
    "flag_4x3": "flags/4x3/zw.svg",
    "iso": true,
    "name": "Zimbabwe"
  }
]


================================================
FILE: css/flag-icons.css
================================================
.fib, .fi {
  background-size: contain;
  background-position: 50%;
  background-repeat: no-repeat;
}

.fi {
  position: relative;
  display: inline-block;
  width: 1.333333em;
  line-height: 1em;
}
.fi:before {
  content: " ";
}
.fi.fis {
  width: 1em;
}

.fi-xx {
  background-image: url(../flags/4x3/xx.svg);
}
.fi-xx.fis {
  background-image: url(../flags/1x1/xx.svg);
}

.fi-ad {
  background-image: url(../flags/4x3/ad.svg);
}
.fi-ad.fis {
  background-image: url(../flags/1x1/ad.svg);
}

.fi-ae {
  background-image: url(../flags/4x3/ae.svg);
}
.fi-ae.fis {
  background-image: url(../flags/1x1/ae.svg);
}

.fi-af {
  background-image: url(../flags/4x3/af.svg);
}
.fi-af.fis {
  background-image: url(../flags/1x1/af.svg);
}

.fi-ag {
  background-image: url(../flags/4x3/ag.svg);
}
.fi-ag.fis {
  background-image: url(../flags/1x1/ag.svg);
}

.fi-ai {
  background-image: url(../flags/4x3/ai.svg);
}
.fi-ai.fis {
  background-image: url(../flags/1x1/ai.svg);
}

.fi-al {
  background-image: url(../flags/4x3/al.svg);
}
.fi-al.fis {
  background-image: url(../flags/1x1/al.svg);
}

.fi-am {
  background-image: url(../flags/4x3/am.svg);
}
.fi-am.fis {
  background-image: url(../flags/1x1/am.svg);
}

.fi-ao {
  background-image: url(../flags/4x3/ao.svg);
}
.fi-ao.fis {
  background-image: url(../flags/1x1/ao.svg);
}

.fi-aq {
  background-image: url(../flags/4x3/aq.svg);
}
.fi-aq.fis {
  background-image: url(../flags/1x1/aq.svg);
}

.fi-ar {
  background-image: url(../flags/4x3/ar.svg);
}
.fi-ar.fis {
  background-image: url(../flags/1x1/ar.svg);
}

.fi-as {
  background-image: url(../flags/4x3/as.svg);
}
.fi-as.fis {
  background-image: url(../flags/1x1/as.svg);
}

.fi-at {
  background-image: url(../flags/4x3/at.svg);
}
.fi-at.fis {
  background-image: url(../flags/1x1/at.svg);
}

.fi-au {
  background-image: url(../flags/4x3/au.svg);
}
.fi-au.fis {
  background-image: url(../flags/1x1/au.svg);
}

.fi-aw {
  background-image: url(../flags/4x3/aw.svg);
}
.fi-aw.fis {
  background-image: url(../flags/1x1/aw.svg);
}

.fi-ax {
  background-image: url(../flags/4x3/ax.svg);
}
.fi-ax.fis {
  background-image: url(../flags/1x1/ax.svg);
}

.fi-az {
  background-image: url(../flags/4x3/az.svg);
}
.fi-az.fis {
  background-image: url(../flags/1x1/az.svg);
}

.fi-ba {
  background-image: url(../flags/4x3/ba.svg);
}
.fi-ba.fis {
  background-image: url(../flags/1x1/ba.svg);
}

.fi-bb {
  background-image: url(../flags/4x3/bb.svg);
}
.fi-bb.fis {
  background-image: url(../flags/1x1/bb.svg);
}

.fi-bd {
  background-image: url(../flags/4x3/bd.svg);
}
.fi-bd.fis {
  background-image: url(../flags/1x1/bd.svg);
}

.fi-be {
  background-image: url(../flags/4x3/be.svg);
}
.fi-be.fis {
  background-image: url(../flags/1x1/be.svg);
}

.fi-bf {
  background-image: url(../flags/4x3/bf.svg);
}
.fi-bf.fis {
  background-image: url(../flags/1x1/bf.svg);
}

.fi-bg {
  background-image: url(../flags/4x3/bg.svg);
}
.fi-bg.fis {
  background-image: url(../flags/1x1/bg.svg);
}

.fi-bh {
  background-image: url(../flags/4x3/bh.svg);
}
.fi-bh.fis {
  background-image: url(../flags/1x1/bh.svg);
}

.fi-bi {
  background-image: url(../flags/4x3/bi.svg);
}
.fi-bi.fis {
  background-image: url(../flags/1x1/bi.svg);
}

.fi-bj {
  background-image: url(../flags/4x3/bj.svg);
}
.fi-bj.fis {
  background-image: url(../flags/1x1/bj.svg);
}

.fi-bl {
  background-image: url(../flags/4x3/bl.svg);
}
.fi-bl.fis {
  background-image: url(../flags/1x1/bl.svg);
}

.fi-bm {
  background-image: url(../flags/4x3/bm.svg);
}
.fi-bm.fis {
  background-image: url(../flags/1x1/bm.svg);
}

.fi-bn {
  background-image: url(../flags/4x3/bn.svg);
}
.fi-bn.fis {
  background-image: url(../flags/1x1/bn.svg);
}

.fi-bo {
  background-image: url(../flags/4x3/bo.svg);
}
.fi-bo.fis {
  background-image: url(../flags/1x1/bo.svg);
}

.fi-bq {
  background-image: url(../flags/4x3/bq.svg);
}
.fi-bq.fis {
  background-image: url(../flags/1x1/bq.svg);
}

.fi-br {
  background-image: url(../flags/4x3/br.svg);
}
.fi-br.fis {
  background-image: url(../flags/1x1/br.svg);
}

.fi-bs {
  background-image: url(../flags/4x3/bs.svg);
}
.fi-bs.fis {
  background-image: url(../flags/1x1/bs.svg);
}

.fi-bt {
  background-image: url(../flags/4x3/bt.svg);
}
.fi-bt.fis {
  background-image: url(../flags/1x1/bt.svg);
}

.fi-bv {
  background-image: url(../flags/4x3/bv.svg);
}
.fi-bv.fis {
  background-image: url(../flags/1x1/bv.svg);
}

.fi-bw {
  background-image: url(../flags/4x3/bw.svg);
}
.fi-bw.fis {
  background-image: url(../flags/1x1/bw.svg);
}

.fi-by {
  background-image: url(../flags/4x3/by.svg);
}
.fi-by.fis {
  background-image: url(../flags/1x1/by.svg);
}

.fi-bz {
  background-image: url(../flags/4x3/bz.svg);
}
.fi-bz.fis {
  background-image: url(../flags/1x1/bz.svg);
}

.fi-ca {
  background-image: url(../flags/4x3/ca.svg);
}
.fi-ca.fis {
  background-image: url(../flags/1x1/ca.svg);
}

.fi-cc {
  background-image: url(../flags/4x3/cc.svg);
}
.fi-cc.fis {
  background-image: url(../flags/1x1/cc.svg);
}

.fi-cd {
  background-image: url(../flags/4x3/cd.svg);
}
.fi-cd.fis {
  background-image: url(../flags/1x1/cd.svg);
}

.fi-cf {
  background-image: url(../flags/4x3/cf.svg);
}
.fi-cf.fis {
  background-image: url(../flags/1x1/cf.svg);
}

.fi-cg {
  background-image: url(../flags/4x3/cg.svg);
}
.fi-cg.fis {
  background-image: url(../flags/1x1/cg.svg);
}

.fi-ch {
  background-image: url(../flags/4x3/ch.svg);
}
.fi-ch.fis {
  background-image: url(../flags/1x1/ch.svg);
}

.fi-ci {
  background-image: url(../flags/4x3/ci.svg);
}
.fi-ci.fis {
  background-image: url(../flags/1x1/ci.svg);
}

.fi-ck {
  background-image: url(../flags/4x3/ck.svg);
}
.fi-ck.fis {
  background-image: url(../flags/1x1/ck.svg);
}

.fi-cl {
  background-image: url(../flags/4x3/cl.svg);
}
.fi-cl.fis {
  background-image: url(../flags/1x1/cl.svg);
}

.fi-cm {
  background-image: url(../flags/4x3/cm.svg);
}
.fi-cm.fis {
  background-image: url(../flags/1x1/cm.svg);
}

.fi-cn {
  background-image: url(../flags/4x3/cn.svg);
}
.fi-cn.fis {
  background-image: url(../flags/1x1/cn.svg);
}

.fi-co {
  background-image: url(../flags/4x3/co.svg);
}
.fi-co.fis {
  background-image: url(../flags/1x1/co.svg);
}

.fi-cr {
  background-image: url(../flags/4x3/cr.svg);
}
.fi-cr.fis {
  background-image: url(../flags/1x1/cr.svg);
}

.fi-cu {
  background-image: url(../flags/4x3/cu.svg);
}
.fi-cu.fis {
  background-image: url(../flags/1x1/cu.svg);
}

.fi-cv {
  background-image: url(../flags/4x3/cv.svg);
}
.fi-cv.fis {
  background-image: url(../flags/1x1/cv.svg);
}

.fi-cw {
  background-image: url(../flags/4x3/cw.svg);
}
.fi-cw.fis {
  background-image: url(../flags/1x1/cw.svg);
}

.fi-cx {
  background-image: url(../flags/4x3/cx.svg);
}
.fi-cx.fis {
  background-image: url(../flags/1x1/cx.svg);
}

.fi-cy {
  background-image: url(../flags/4x3/cy.svg);
}
.fi-cy.fis {
  background-image: url(../flags/1x1/cy.svg);
}

.fi-cz {
  background-image: url(../flags/4x3/cz.svg);
}
.fi-cz.fis {
  background-image: url(../flags/1x1/cz.svg);
}

.fi-de {
  background-image: url(../flags/4x3/de.svg);
}
.fi-de.fis {
  background-image: url(../flags/1x1/de.svg);
}

.fi-dj {
  background-image: url(../flags/4x3/dj.svg);
}
.fi-dj.fis {
  background-image: url(../flags/1x1/dj.svg);
}

.fi-dk {
  background-image: url(../flags/4x3/dk.svg);
}
.fi-dk.fis {
  background-image: url(../flags/1x1/dk.svg);
}

.fi-dm {
  background-image: url(../flags/4x3/dm.svg);
}
.fi-dm.fis {
  background-image: url(../flags/1x1/dm.svg);
}

.fi-do {
  background-image: url(../flags/4x3/do.svg);
}
.fi-do.fis {
  background-image: url(../flags/1x1/do.svg);
}

.fi-dz {
  background-image: url(../flags/4x3/dz.svg);
}
.fi-dz.fis {
  background-image: url(../flags/1x1/dz.svg);
}

.fi-ec {
  background-image: url(../flags/4x3/ec.svg);
}
.fi-ec.fis {
  background-image: url(../flags/1x1/ec.svg);
}

.fi-ee {
  background-image: url(../flags/4x3/ee.svg);
}
.fi-ee.fis {
  background-image: url(../flags/1x1/ee.svg);
}

.fi-eg {
  background-image: url(../flags/4x3/eg.svg);
}
.fi-eg.fis {
  background-image: url(../flags/1x1/eg.svg);
}

.fi-eh {
  background-image: url(../flags/4x3/eh.svg);
}
.fi-eh.fis {
  background-image: url(../flags/1x1/eh.svg);
}

.fi-er {
  background-image: url(../flags/4x3/er.svg);
}
.fi-er.fis {
  background-image: url(../flags/1x1/er.svg);
}

.fi-es {
  background-image: url(../flags/4x3/es.svg);
}
.fi-es.fis {
  background-image: url(../flags/1x1/es.svg);
}

.fi-et {
  background-image: url(../flags/4x3/et.svg);
}
.fi-et.fis {
  background-image: url(../flags/1x1/et.svg);
}

.fi-fi {
  background-image: url(../flags/4x3/fi.svg);
}
.fi-fi.fis {
  background-image: url(../flags/1x1/fi.svg);
}

.fi-fj {
  background-image: url(../flags/4x3/fj.svg);
}
.fi-fj.fis {
  background-image: url(../flags/1x1/fj.svg);
}

.fi-fk {
  background-image: url(../flags/4x3/fk.svg);
}
.fi-fk.fis {
  background-image: url(../flags/1x1/fk.svg);
}

.fi-fm {
  background-image: url(../flags/4x3/fm.svg);
}
.fi-fm.fis {
  background-image: url(../flags/1x1/fm.svg);
}

.fi-fo {
  background-image: url(../flags/4x3/fo.svg);
}
.fi-fo.fis {
  background-image: url(../flags/1x1/fo.svg);
}

.fi-fr {
  background-image: url(../flags/4x3/fr.svg);
}
.fi-fr.fis {
  background-image: url(../flags/1x1/fr.svg);
}

.fi-ga {
  background-image: url(../flags/4x3/ga.svg);
}
.fi-ga.fis {
  background-image: url(../flags/1x1/ga.svg);
}

.fi-gb {
  background-image: url(../flags/4x3/gb.svg);
}
.fi-gb.fis {
  background-image: url(../flags/1x1/gb.svg);
}

.fi-gd {
  background-image: url(../flags/4x3/gd.svg);
}
.fi-gd.fis {
  background-image: url(../flags/1x1/gd.svg);
}

.fi-ge {
  background-image: url(../flags/4x3/ge.svg);
}
.fi-ge.fis {
  background-image: url(../flags/1x1/ge.svg);
}

.fi-gf {
  background-image: url(../flags/4x3/gf.svg);
}
.fi-gf.fis {
  background-image: url(../flags/1x1/gf.svg);
}

.fi-gg {
  background-image: url(../flags/4x3/gg.svg);
}
.fi-gg.fis {
  background-image: url(../flags/1x1/gg.svg);
}

.fi-gh {
  background-image: url(../flags/4x3/gh.svg);
}
.fi-gh.fis {
  background-image: url(../flags/1x1/gh.svg);
}

.fi-gi {
  background-image: url(../flags/4x3/gi.svg);
}
.fi-gi.fis {
  background-image: url(../flags/1x1/gi.svg);
}

.fi-gl {
  background-image: url(../flags/4x3/gl.svg);
}
.fi-gl.fis {
  background-image: url(../flags/1x1/gl.svg);
}

.fi-gm {
  background-image: url(../flags/4x3/gm.svg);
}
.fi-gm.fis {
  background-image: url(../flags/1x1/gm.svg);
}

.fi-gn {
  background-image: url(../flags/4x3/gn.svg);
}
.fi-gn.fis {
  background-image: url(../flags/1x1/gn.svg);
}

.fi-gp {
  background-image: url(../flags/4x3/gp.svg);
}
.fi-gp.fis {
  background-image: url(../flags/1x1/gp.svg);
}

.fi-gq {
  background-image: url(../flags/4x3/gq.svg);
}
.fi-gq.fis {
  background-image: url(../flags/1x1/gq.svg);
}

.fi-gr {
  background-image: url(../flags/4x3/gr.svg);
}
.fi-gr.fis {
  background-image: url(../flags/1x1/gr.svg);
}

.fi-gs {
  background-image: url(../flags/4x3/gs.svg);
}
.fi-gs.fis {
  background-image: url(../flags/1x1/gs.svg);
}

.fi-gt {
  background-image: url(../flags/4x3/gt.svg);
}
.fi-gt.fis {
  background-image: url(../flags/1x1/gt.svg);
}

.fi-gu {
  background-image: url(../flags/4x3/gu.svg);
}
.fi-gu.fis {
  background-image: url(../flags/1x1/gu.svg);
}

.fi-gw {
  background-image: url(../flags/4x3/gw.svg);
}
.fi-gw.fis {
  background-image: url(../flags/1x1/gw.svg);
}

.fi-gy {
  background-image: url(../flags/4x3/gy.svg);
}
.fi-gy.fis {
  background-image: url(../flags/1x1/gy.svg);
}

.fi-hk {
  background-image: url(../flags/4x3/hk.svg);
}
.fi-hk.fis {
  background-image: url(../flags/1x1/hk.svg);
}

.fi-hm {
  background-image: url(../flags/4x3/hm.svg);
}
.fi-hm.fis {
  background-image: url(../flags/1x1/hm.svg);
}

.fi-hn {
  background-image: url(../flags/4x3/hn.svg);
}
.fi-hn.fis {
  background-image: url(../flags/1x1/hn.svg);
}

.fi-hr {
  background-image: url(../flags/4x3/hr.svg);
}
.fi-hr.fis {
  background-image: url(../flags/1x1/hr.svg);
}

.fi-ht {
  background-image: url(../flags/4x3/ht.svg);
}
.fi-ht.fis {
  background-image: url(../flags/1x1/ht.svg);
}

.fi-hu {
  background-image: url(../flags/4x3/hu.svg);
}
.fi-hu.fis {
  background-image: url(../flags/1x1/hu.svg);
}

.fi-id {
  background-image: url(../flags/4x3/id.svg);
}
.fi-id.fis {
  background-image: url(../flags/1x1/id.svg);
}

.fi-ie {
  background-image: url(../flags/4x3/ie.svg);
}
.fi-ie.fis {
  background-image: url(../flags/1x1/ie.svg);
}

.fi-il {
  background-image: url(../flags/4x3/il.svg);
}
.fi-il.fis {
  background-image: url(../flags/1x1/il.svg);
}

.fi-im {
  background-image: url(../flags/4x3/im.svg);
}
.fi-im.fis {
  background-image: url(../flags/1x1/im.svg);
}

.fi-in {
  background-image: url(../flags/4x3/in.svg);
}
.fi-in.fis {
  background-image: url(../flags/1x1/in.svg);
}

.fi-io {
  background-image: url(../flags/4x3/io.svg);
}
.fi-io.fis {
  background-image: url(../flags/1x1/io.svg);
}

.fi-iq {
  background-image: url(../flags/4x3/iq.svg);
}
.fi-iq.fis {
  background-image: url(../flags/1x1/iq.svg);
}

.fi-ir {
  background-image: url(../flags/4x3/ir.svg);
}
.fi-ir.fis {
  background-image: url(../flags/1x1/ir.svg);
}

.fi-is {
  background-image: url(../flags/4x3/is.svg);
}
.fi-is.fis {
  background-image: url(../flags/1x1/is.svg);
}

.fi-it {
  background-image: url(../flags/4x3/it.svg);
}
.fi-it.fis {
  background-image: url(../flags/1x1/it.svg);
}

.fi-je {
  background-image: url(../flags/4x3/je.svg);
}
.fi-je.fis {
  background-image: url(../flags/1x1/je.svg);
}

.fi-jm {
  background-image: url(../flags/4x3/jm.svg);
}
.fi-jm.fis {
  background-image: url(../flags/1x1/jm.svg);
}

.fi-jo {
  background-image: url(../flags/4x3/jo.svg);
}
.fi-jo.fis {
  background-image: url(../flags/1x1/jo.svg);
}

.fi-jp {
  background-image: url(../flags/4x3/jp.svg);
}
.fi-jp.fis {
  background-image: url(../flags/1x1/jp.svg);
}

.fi-ke {
  background-image: url(../flags/4x3/ke.svg);
}
.fi-ke.fis {
  background-image: url(../flags/1x1/ke.svg);
}

.fi-kg {
  background-image: url(../flags/4x3/kg.svg);
}
.fi-kg.fis {
  background-image: url(../flags/1x1/kg.svg);
}

.fi-kh {
  background-image: url(../flags/4x3/kh.svg);
}
.fi-kh.fis {
  background-image: url(../flags/1x1/kh.svg);
}

.fi-ki {
  background-image: url(../flags/4x3/ki.svg);
}
.fi-ki.fis {
  background-image: url(../flags/1x1/ki.svg);
}

.fi-km {
  background-image: url(../flags/4x3/km.svg);
}
.fi-km.fis {
  background-image: url(../flags/1x1/km.svg);
}

.fi-kn {
  background-image: url(../flags/4x3/kn.svg);
}
.fi-kn.fis {
  background-image: url(../flags/1x1/kn.svg);
}

.fi-kp {
  background-image: url(../flags/4x3/kp.svg);
}
.fi-kp.fis {
  background-image: url(../flags/1x1/kp.svg);
}

.fi-kr {
  background-image: url(../flags/4x3/kr.svg);
}
.fi-kr.fis {
  background-image: url(../flags/1x1/kr.svg);
}

.fi-kw {
  background-image: url(../flags/4x3/kw.svg);
}
.fi-kw.fis {
  background-image: url(../flags/1x1/kw.svg);
}

.fi-ky {
  background-image: url(../flags/4x3/ky.svg);
}
.fi-ky.fis {
  background-image: url(../flags/1x1/ky.svg);
}

.fi-kz {
  background-image: url(../flags/4x3/kz.svg);
}
.fi-kz.fis {
  background-image: url(../flags/1x1/kz.svg);
}

.fi-la {
  background-image: url(../flags/4x3/la.svg);
}
.fi-la.fis {
  background-image: url(../flags/1x1/la.svg);
}

.fi-lb {
  background-image: url(../flags/4x3/lb.svg);
}
.fi-lb.fis {
  background-image: url(../flags/1x1/lb.svg);
}

.fi-lc {
  background-image: url(../flags/4x3/lc.svg);
}
.fi-lc.fis {
  background-image: url(../flags/1x1/lc.svg);
}

.fi-li {
  background-image: url(../flags/4x3/li.svg);
}
.fi-li.fis {
  background-image: url(../flags/1x1/li.svg);
}

.fi-lk {
  background-image: url(../flags/4x3/lk.svg);
}
.fi-lk.fis {
  background-image: url(../flags/1x1/lk.svg);
}

.fi-lr {
  background-image: url(../flags/4x3/lr.svg);
}
.fi-lr.fis {
  background-image: url(../flags/1x1/lr.svg);
}

.fi-ls {
  background-image: url(../flags/4x3/ls.svg);
}
.fi-ls.fis {
  background-image: url(../flags/1x1/ls.svg);
}

.fi-lt {
  background-image: url(../flags/4x3/lt.svg);
}
.fi-lt.fis {
  background-image: url(../flags/1x1/lt.svg);
}

.fi-lu {
  background-image: url(../flags/4x3/lu.svg);
}
.fi-lu.fis {
  background-image: url(../flags/1x1/lu.svg);
}

.fi-lv {
  background-image: url(../flags/4x3/lv.svg);
}
.fi-lv.fis {
  background-image: url(../flags/1x1/lv.svg);
}

.fi-ly {
  background-image: url(../flags/4x3/ly.svg);
}
.fi-ly.fis {
  background-image: url(../flags/1x1/ly.svg);
}

.fi-ma {
  background-image: url(../flags/4x3/ma.svg);
}
.fi-ma.fis {
  background-image: url(../flags/1x1/ma.svg);
}

.fi-mc {
  background-image: url(../flags/4x3/mc.svg);
}
.fi-mc.fis {
  background-image: url(../flags/1x1/mc.svg);
}

.fi-md {
  background-image: url(../flags/4x3/md.svg);
}
.fi-md.fis {
  background-image: url(../flags/1x1/md.svg);
}

.fi-me {
  background-image: url(../flags/4x3/me.svg);
}
.fi-me.fis {
  background-image: url(../flags/1x1/me.svg);
}

.fi-mf {
  background-image: url(../flags/4x3/mf.svg);
}
.fi-mf.fis {
  background-image: url(../flags/1x1/mf.svg);
}

.fi-mg {
  background-image: url(../flags/4x3/mg.svg);
}
.fi-mg.fis {
  background-image: url(../flags/1x1/mg.svg);
}

.fi-mh {
  background-image: url(../flags/4x3/mh.svg);
}
.fi-mh.fis {
  background-image: url(../flags/1x1/mh.svg);
}

.fi-mk {
  background-image: url(../flags/4x3/mk.svg);
}
.fi-mk.fis {
  background-image: url(../flags/1x1/mk.svg);
}

.fi-ml {
  background-image: url(../flags/4x3/ml.svg);
}
.fi-ml.fis {
  background-image: url(../flags/1x1/ml.svg);
}

.fi-mm {
  background-image: url(../flags/4x3/mm.svg);
}
.fi-mm.fis {
  background-image: url(../flags/1x1/mm.svg);
}

.fi-mn {
  background-image: url(../flags/4x3/mn.svg);
}
.fi-mn.fis {
  background-image: url(../flags/1x1/mn.svg);
}

.fi-mo {
  background-image: url(../flags/4x3/mo.svg);
}
.fi-mo.fis {
  background-image: url(../flags/1x1/mo.svg);
}

.fi-mp {
  background-image: url(../flags/4x3/mp.svg);
}
.fi-mp.fis {
  background-image: url(../flags/1x1/mp.svg);
}

.fi-mq {
  background-image: url(../flags/4x3/mq.svg);
}
.fi-mq.fis {
  background-image: url(../flags/1x1/mq.svg);
}

.fi-mr {
  background-image: url(../flags/4x3/mr.svg);
}
.fi-mr.fis {
  background-image: url(../flags/1x1/mr.svg);
}

.fi-ms {
  background-image: url(../flags/4x3/ms.svg);
}
.fi-ms.fis {
  background-image: url(../flags/1x1/ms.svg);
}

.fi-mt {
  background-image: url(../flags/4x3/mt.svg);
}
.fi-mt.fis {
  background-image: url(../flags/1x1/mt.svg);
}

.fi-mu {
  background-image: url(../flags/4x3/mu.svg);
}
.fi-mu.fis {
  background-image: url(../flags/1x1/mu.svg);
}

.fi-mv {
  background-image: url(../flags/4x3/mv.svg);
}
.fi-mv.fis {
  background-image: url(../flags/1x1/mv.svg);
}

.fi-mw {
  background-image: url(../flags/4x3/mw.svg);
}
.fi-mw.fis {
  background-image: url(../flags/1x1/mw.svg);
}

.fi-mx {
  background-image: url(../flags/4x3/mx.svg);
}
.fi-mx.fis {
  background-image: url(../flags/1x1/mx.svg);
}

.fi-my {
  background-image: url(../flags/4x3/my.svg);
}
.fi-my.fis {
  background-image: url(../flags/1x1/my.svg);
}

.fi-mz {
  background-image: url(../flags/4x3/mz.svg);
}
.fi-mz.fis {
  background-image: url(../flags/1x1/mz.svg);
}

.fi-na {
  background-image: url(../flags/4x3/na.svg);
}
.fi-na.fis {
  background-image: url(../flags/1x1/na.svg);
}

.fi-nc {
  background-image: url(../flags/4x3/nc.svg);
}
.fi-nc.fis {
  background-image: url(../flags/1x1/nc.svg);
}

.fi-ne {
  background-image: url(../flags/4x3/ne.svg);
}
.fi-ne.fis {
  background-image: url(../flags/1x1/ne.svg);
}

.fi-nf {
  background-image: url(../flags/4x3/nf.svg);
}
.fi-nf.fis {
  background-image: url(../flags/1x1/nf.svg);
}

.fi-ng {
  background-image: url(../flags/4x3/ng.svg);
}
.fi-ng.fis {
  background-image: url(../flags/1x1/ng.svg);
}

.fi-ni {
  background-image: url(../flags/4x3/ni.svg);
}
.fi-ni.fis {
  background-image: url(../flags/1x1/ni.svg);
}

.fi-nl {
  background-image: url(../flags/4x3/nl.svg);
}
.fi-nl.fis {
  background-image: url(../flags/1x1/nl.svg);
}

.fi-no {
  background-image: url(../flags/4x3/no.svg);
}
.fi-no.fis {
  background-image: url(../flags/1x1/no.svg);
}

.fi-np {
  background-image: url(../flags/4x3/np.svg);
}
.fi-np.fis {
  background-image: url(../flags/1x1/np.svg);
}

.fi-nr {
  background-image: url(../flags/4x3/nr.svg);
}
.fi-nr.fis {
  background-image: url(../flags/1x1/nr.svg);
}

.fi-nu {
  background-image: url(../flags/4x3/nu.svg);
}
.fi-nu.fis {
  background-image: url(../flags/1x1/nu.svg);
}

.fi-nz {
  background-image: url(../flags/4x3/nz.svg);
}
.fi-nz.fis {
  background-image: url(../flags/1x1/nz.svg);
}

.fi-om {
  background-image: url(../flags/4x3/om.svg);
}
.fi-om.fis {
  background-image: url(../flags/1x1/om.svg);
}

.fi-pa {
  background-image: url(../flags/4x3/pa.svg);
}
.fi-pa.fis {
  background-image: url(../flags/1x1/pa.svg);
}

.fi-pe {
  background-image: url(../flags/4x3/pe.svg);
}
.fi-pe.fis {
  background-image: url(../flags/1x1/pe.svg);
}

.fi-pf {
  background-image: url(../flags/4x3/pf.svg);
}
.fi-pf.fis {
  background-image: url(../flags/1x1/pf.svg);
}

.fi-pg {
  background-image: url(../flags/4x3/pg.svg);
}
.fi-pg.fis {
  background-image: url(../flags/1x1/pg.svg);
}

.fi-ph {
  background-image: url(../flags/4x3/ph.svg);
}
.fi-ph.fis {
  background-image: url(../flags/1x1/ph.svg);
}

.fi-pk {
  background-image: url(../flags/4x3/pk.svg);
}
.fi-pk.fis {
  background-image: url(../flags/1x1/pk.svg);
}

.fi-pl {
  background-image: url(../flags/4x3/pl.svg);
}
.fi-pl.fis {
  background-image: url(../flags/1x1/pl.svg);
}

.fi-pm {
  background-image: url(../flags/4x3/pm.svg);
}
.fi-pm.fis {
  background-image: url(../flags/1x1/pm.svg);
}

.fi-pn {
  background-image: url(../flags/4x3/pn.svg);
}
.fi-pn.fis {
  background-image: url(../flags/1x1/pn.svg);
}

.fi-pr {
  background-image: url(../flags/4x3/pr.svg);
}
.fi-pr.fis {
  background-image: url(../flags/1x1/pr.svg);
}

.fi-ps {
  background-image: url(../flags/4x3/ps.svg);
}
.fi-ps.fis {
  background-image: url(../flags/1x1/ps.svg);
}

.fi-pt {
  background-image: url(../flags/4x3/pt.svg);
}
.fi-pt.fis {
  background-image: url(../flags/1x1/pt.svg);
}

.fi-pw {
  background-image: url(../flags/4x3/pw.svg);
}
.fi-pw.fis {
  background-image: url(../flags/1x1/pw.svg);
}

.fi-py {
  background-image: url(../flags/4x3/py.svg);
}
.fi-py.fis {
  background-image: url(../flags/1x1/py.svg);
}

.fi-qa {
  background-image: url(../flags/4x3/qa.svg);
}
.fi-qa.fis {
  background-image: url(../flags/1x1/qa.svg);
}

.fi-re {
  background-image: url(../flags/4x3/re.svg);
}
.fi-re.fis {
  background-image: url(../flags/1x1/re.svg);
}

.fi-ro {
  background-image: url(../flags/4x3/ro.svg);
}
.fi-ro.fis {
  background-image: url(../flags/1x1/ro.svg);
}

.fi-rs {
  background-image: url(../flags/4x3/rs.svg);
}
.fi-rs.fis {
  background-image: url(../flags/1x1/rs.svg);
}

.fi-ru {
  background-image: url(../flags/4x3/ru.svg);
}
.fi-ru.fis {
  background-image: url(../flags/1x1/ru.svg);
}

.fi-rw {
  background-image: url(../flags/4x3/rw.svg);
}
.fi-rw.fis {
  background-image: url(../flags/1x1/rw.svg);
}

.fi-sa {
  background-image: url(../flags/4x3/sa.svg);
}
.fi-sa.fis {
  background-image: url(../flags/1x1/sa.svg);
}

.fi-sb {
  background-image: url(../flags/4x3/sb.svg);
}
.fi-sb.fis {
  background-image: url(../flags/1x1/sb.svg);
}

.fi-sc {
  background-image: url(../flags/4x3/sc.svg);
}
.fi-sc.fis {
  background-image: url(../flags/1x1/sc.svg);
}

.fi-sd {
  background-image: url(../flags/4x3/sd.svg);
}
.fi-sd.fis {
  background-image: url(../flags/1x1/sd.svg);
}

.fi-se {
  background-image: url(../flags/4x3/se.svg);
}
.fi-se.fis {
  background-image: url(../flags/1x1/se.svg);
}

.fi-sg {
  background-image: url(../flags/4x3/sg.svg);
}
.fi-sg.fis {
  background-image: url(../flags/1x1/sg.svg);
}

.fi-sh {
  background-image: url(../flags/4x3/sh.svg);
}
.fi-sh.fis {
  background-image: url(../flags/1x1/sh.svg);
}

.fi-si {
  background-image: url(../flags/4x3/si.svg);
}
.fi-si.fis {
  background-image: url(../flags/1x1/si.svg);
}

.fi-sj {
  background-image: url(../flags/4x3/sj.svg);
}
.fi-sj.fis {
  background-image: url(../flags/1x1/sj.svg);
}

.fi-sk {
  background-image: url(../flags/4x3/sk.svg);
}
.fi-sk.fis {
  background-image: url(../flags/1x1/sk.svg);
}

.fi-sl {
  background-image: url(../flags/4x3/sl.svg);
}
.fi-sl.fis {
  background-image: url(../flags/1x1/sl.svg);
}

.fi-sm {
  background-image: url(../flags/4x3/sm.svg);
}
.fi-sm.fis {
  background-image: url(../flags/1x1/sm.svg);
}

.fi-sn {
  background-image: url(../flags/4x3/sn.svg);
}
.fi-sn.fis {
  background-image: url(../flags/1x1/sn.svg);
}

.fi-so {
  background-image: url(../flags/4x3/so.svg);
}
.fi-so.fis {
  background-image: url(../flags/1x1/so.svg);
}

.fi-sr {
  background-image: url(../flags/4x3/sr.svg);
}
.fi-sr.fis {
  background-image: url(../flags/1x1/sr.svg);
}

.fi-ss {
  background-image: url(../flags/4x3/ss.svg);
}
.fi-ss.fis {
  background-image: url(../flags/1x1/ss.svg);
}

.fi-st {
  background-image: url(../flags/4x3/st.svg);
}
.fi-st.fis {
  background-image: url(../flags/1x1/st.svg);
}

.fi-sv {
  background-image: url(../flags/4x3/sv.svg);
}
.fi-sv.fis {
  background-image: url(../flags/1x1/sv.svg);
}

.fi-sx {
  background-image: url(../flags/4x3/sx.svg);
}
.fi-sx.fis {
  background-image: url(../flags/1x1/sx.svg);
}

.fi-sy {
  background-image: url(../flags/4x3/sy.svg);
}
.fi-sy.fis {
  background-image: url(../flags/1x1/sy.svg);
}

.fi-sz {
  background-image: url(../flags/4x3/sz.svg);
}
.fi-sz.fis {
  background-image: url(../flags/1x1/sz.svg);
}

.fi-tc {
  background-image: url(../flags/4x3/tc.svg);
}
.fi-tc.fis {
  background-image: url(../flags/1x1/tc.svg);
}

.fi-td {
  background-image: url(../flags/4x3/td.svg);
}
.fi-td.fis {
  background-image: url(../flags/1x1/td.svg);
}

.fi-tf {
  background-image: url(../flags/4x3/tf.svg);
}
.fi-tf.fis {
  background-image: url(../flags/1x1/tf.svg);
}

.fi-tg {
  background-image: url(../flags/4x3/tg.svg);
}
.fi-tg.fis {
  background-image: url(../flags/1x1/tg.svg);
}

.fi-th {
  background-image: url(../flags/4x3/th.svg);
}
.fi-th.fis {
  background-image: url(../flags/1x1/th.svg);
}

.fi-tj {
  background-image: url(../flags/4x3/tj.svg);
}
.fi-tj.fis {
  background-image: url(../flags/1x1/tj.svg);
}

.fi-tk {
  background-image: url(../flags/4x3/tk.svg);
}
.fi-tk.fis {
  background-image: url(../flags/1x1/tk.svg);
}

.fi-tl {
  background-image: url(../flags/4x3/tl.svg);
}
.fi-tl.fis {
  background-image: url(../flags/1x1/tl.svg);
}

.fi-tm {
  background-image: url(../flags/4x3/tm.svg);
}
.fi-tm.fis {
  background-image: url(../flags/1x1/tm.svg);
}

.fi-tn {
  background-image: url(../flags/4x3/tn.svg);
}
.fi-tn.fis {
  background-image: url(../flags/1x1/tn.svg);
}

.fi-to {
  background-image: url(../flags/4x3/to.svg);
}
.fi-to.fis {
  background-image: url(../flags/1x1/to.svg);
}

.fi-tr {
  background-image: url(../flags/4x3/tr.svg);
}
.fi-tr.fis {
  background-image: url(../flags/1x1/tr.svg);
}

.fi-tt {
  background-image: url(../flags/4x3/tt.svg);
}
.fi-tt.fis {
  background-image: url(../flags/1x1/tt.svg);
}

.fi-tv {
  background-image: url(../flags/4x3/tv.svg);
}
.fi-tv.fis {
  background-image: url(../flags/1x1/tv.svg);
}

.fi-tw {
  background-image: url(../flags/4x3/tw.svg);
}
.fi-tw.fis {
  background-image: url(../flags/1x1/tw.svg);
}

.fi-tz {
  background-image: url(../flags/4x3/tz.svg);
}
.fi-tz.fis {
  background-image: url(../flags/1x1/tz.svg);
}

.fi-ua {
  background-image: url(../flags/4x3/ua.svg);
}
.fi-ua.fis {
  background-image: url(../flags/1x1/ua.svg);
}

.fi-ug {
  background-image: url(../flags/4x3/ug.svg);
}
.fi-ug.fis {
  background-image: url(../flags/1x1/ug.svg);
}

.fi-um {
  background-image: url(../flags/4x3/um.svg);
}
.fi-um.fis {
  background-image: url(../flags/1x1/um.svg);
}

.fi-us {
  background-image: url(../flags/4x3/us.svg);
}
.fi-us.fis {
  background-image: url(../flags/1x1/us.svg);
}

.fi-uy {
  background-image: url(../flags/4x3/uy.svg);
}
.fi-uy.fis {
  background-image: url(../flags/1x1/uy.svg);
}

.fi-uz {
  background-image: url(../flags/4x3/uz.svg);
}
.fi-uz.fis {
  background-image: url(../flags/1x1/uz.svg);
}

.fi-va {
  background-image: url(../flags/4x3/va.svg);
}
.fi-va.fis {
  background-image: url(../flags/1x1/va.svg);
}

.fi-vc {
  background-image: url(../flags/4x3/vc.svg);
}
.fi-vc.fis {
  background-image: url(../flags/1x1/vc.svg);
}

.fi-ve {
  background-image: url(../flags/4x3/ve.svg);
}
.fi-ve.fis {
  background-image: url(../flags/1x1/ve.svg);
}

.fi-vg {
  background-image: url(../flags/4x3/vg.svg);
}
.fi-vg.fis {
  background-image: url(../flags/1x1/vg.svg);
}

.fi-vi {
  background-image: url(../flags/4x3/vi.svg);
}
.fi-vi.fis {
  background-image: url(../flags/1x1/vi.svg);
}

.fi-vn {
  background-image: url(../flags/4x3/vn.svg);
}
.fi-vn.fis {
  background-image: url(../flags/1x1/vn.svg);
}

.fi-vu {
  background-image: url(../flags/4x3/vu.svg);
}
.fi-vu.fis {
  background-image: url(../flags/1x1/vu.svg);
}

.fi-wf {
  background-image: url(../flags/4x3/wf.svg);
}
.fi-wf.fis {
  background-image: url(../flags/1x1/wf.svg);
}

.fi-ws {
  background-image: url(../flags/4x3/ws.svg);
}
.fi-ws.fis {
  background-image: url(../flags/1x1/ws.svg);
}

.fi-ye {
  background-image: url(../flags/4x3/ye.svg);
}
.fi-ye.fis {
  background-image: url(../flags/1x1/ye.svg);
}

.fi-yt {
  background-image: url(../flags/4x3/yt.svg);
}
.fi-yt.fis {
  background-image: url(../flags/1x1/yt.svg);
}

.fi-za {
  background-image: url(../flags/4x3/za.svg);
}
.fi-za.fis {
  background-image: url(../flags/1x1/za.svg);
}

.fi-zm {
  background-image: url(../flags/4x3/zm.svg);
}
.fi-zm.fis {
  background-image: url(../flags/1x1/zm.svg);
}

.fi-zw {
  background-image: url(../flags/4x3/zw.svg);
}
.fi-zw.fis {
  background-image: url(../flags/1x1/zw.svg);
}

.fi-arab {
  background-image: url(../flags/4x3/arab.svg);
}
.fi-arab.fis {
  background-image: url(../flags/1x1/arab.svg);
}

.fi-asean {
  background-image: url(../flags/4x3/asean.svg);
}
.fi-asean.fis {
  background-image: url(../flags/1x1/asean.svg);
}

.fi-cefta {
  background-image: url(../flags/4x3/cefta.svg);
}
.fi-cefta.fis {
  background-image: url(../flags/1x1/cefta.svg);
}

.fi-cp {
  background-image: url(../flags/4x3/cp.svg);
}
.fi-cp.fis {
  background-image: url(../flags/1x1/cp.svg);
}

.fi-dg {
  background-image: url(../flags/4x3/dg.svg);
}
.fi-dg.fis {
  background-image: url(../flags/1x1/dg.svg);
}

.fi-eac {
  background-image: url(../flags/4x3/eac.svg);
}
.fi-eac.fis {
  background-image: url(../flags/1x1/eac.svg);
}

.fi-es-ct {
  background-image: url(../flags/4x3/es-ct.svg);
}
.fi-es-ct.fis {
  background-image: url(../flags/1x1/es-ct.svg);
}

.fi-es-ga {
  background-image: url(../flags/4x3/es-ga.svg);
}
.fi-es-ga.fis {
  background-image: url(../flags/1x1/es-ga.svg);
}

.fi-es-pv {
  background-image: url(../flags/4x3/es-pv.svg);
}
.fi-es-pv.fis {
  background-image: url(../flags/1x1/es-pv.svg);
}

.fi-eu {
  background-image: url(../flags/4x3/eu.svg);
}
.fi-eu.fis {
  background-image: url(../flags/1x1/eu.svg);
}

.fi-gb-eng {
  background-image: url(../flags/4x3/gb-eng.svg);
}
.fi-gb-eng.fis {
  background-image: url(../flags/1x1/gb-eng.svg);
}

.fi-gb-nir {
  background-image: url(../flags/4x3/gb-nir.svg);
}
.fi-gb-nir.fis {
  background-image: url(../flags/1x1/gb-nir.svg);
}

.fi-gb-sct {
  background-image: url(../flags/4x3/gb-sct.svg);
}
.fi-gb-sct.fis {
  background-image: url(../flags/1x1/gb-sct.svg);
}

.fi-gb-wls {
  background-image: url(../flags/4x3/gb-wls.svg);
}
.fi-gb-wls.fis {
  background-image: url(../flags/1x1/gb-wls.svg);
}

.fi-ic {
  background-image: url(../flags/4x3/ic.svg);
}
.fi-ic.fis {
  background-image: url(../flags/1x1/ic.svg);
}

.fi-pc {
  background-image: url(../flags/4x3/pc.svg);
}
.fi-pc.fis {
  background-image: url(../flags/1x1/pc.svg);
}

.fi-sh-ac {
  background-image: url(../flags/4x3/sh-ac.svg);
}
.fi-sh-ac.fis {
  background-image: url(../flags/1x1/sh-ac.svg);
}

.fi-sh-hl {
  background-image: url(../flags/4x3/sh-hl.svg);
}
.fi-sh-hl.fis {
  background-image: url(../flags/1x1/sh-hl.svg);
}

.fi-sh-ta {
  background-image: url(../flags/4x3/sh-ta.svg);
}
.fi-sh-ta.fis {
  background-image: url(../flags/1x1/sh-ta.svg);
}

.fi-un {
  background-image: url(../flags/4x3/un.svg);
}
.fi-un.fis {
  background-image: url(../flags/1x1/un.svg);
}

.fi-xk {
  background-image: url(../flags/4x3/xk.svg);
}
.fi-xk.fis {
  background-image: url(../flags/1x1/xk.svg);
}


================================================
FILE: flag-ids.py
================================================
import os
import json

dir_1x1 = os.path.join("flags", "1x1")
dir_4x3 = os.path.join("flags", "4x3")

files = []
for (dirpath, dirnames, filenames) in os.walk(dir_1x1):
    files.extend(filenames)
    break


def add_ids(directory):
    for f in files:
        if f.find(".svg") == -1:
            continue
        filename = os.path.join(directory, f)
        update = False
        flag_id = "flag-icons-%s" % (f.replace(".svg", ""))
        with open(filename, "r") as flag:
            lines = flag.readlines()
            if lines[0].find("id") == -1 and lines[0].find("viewBox") > 0:
                lines[0] = lines[0].replace("viewBox", 'id="%s" viewBox' % flag_id)
                update = True

        if update:
            print("Adding ID to", filename)
            with open(filename, "w") as flag:
                flag.writelines(lines)


add_ids(dir_1x1)
add_ids(dir_4x3)


================================================
FILE: flags.py
================================================
import os
import json

flags_dir = os.path.join("flags", "1x1")

files = []
for (dirpath, dirnames, filenames) in os.walk(flags_dir):
    files.extend(filenames)
    break

file_codes = [name.replace(".svg", "") for name in files if name.find(".svg") > 0]

country_json = open("country.json")
flags = json.load(country_json)
flags.sort(key=lambda x: x["name"])
country_codes = [flag["code"] for flag in flags]

with open("country.json", "w", encoding='utf8') as output:
    json.dump(flags, output, indent=2, sort_keys=True, ensure_ascii=False)

all_good = True

# Check if all files have names
for code in file_codes:
    if code not in country_codes:
        print("Code not found in country.json:", code)
        all_good = False

# Check if all countries have files
for code in country_codes:
    if code not in file_codes:
        print("Flag icon not found for:", code)
        all_good = False


if all_good:
    print("All flag icons and country.json are in sync.")
    exit(0)
exit(1)


================================================
FILE: index.html
================================================
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>flag-icons: Free Country Flags in SVG</title>

    <!-- Google tag (gtag.js) -->
    <script
      async
      src="https://www.googletagmanager.com/gtag/js?id=G-9LZGY0J38Z"
    ></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag("js", new Date());
      gtag("config", "G-9LZGY0J38Z");
    </script>

    <!-- Meta tags -->
    <meta property="og:title" content="flag-icons: Free Country Flags in SVG" />
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://flagicons.lipis.dev" />
    <meta
      property="og:description"
      content="A curated collection of all country flags in SVG"
    />
    <meta
      property="og:image"
      content="https://flagicons.lipis.dev/assets/og.png"
    />
    <link rel="canonical" href="https://flagicons.lipis.dev" />
    <link rel="icon" href="/favicon.ico" />

    <!-- Main styles -->
    <style>
      :root {
        --primary: #2b8a3e;
        --primary-dark: #2f9e44;
        --primary-light: #51cf66;
        --primary-ultra-light: #e6fcf5;
        --secondary: #d9480f;
        --secondary-light: #fd7e14;
        --dark: #212529;
        --light: #f8f9fa;
        --gray: #495057;
        --light-gray: #e9ecef;
        --border-radius: 8px;
        --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        --transition: all 0.2s ease;

        /* Code syntax colors */
        --code-bg: #212529;
        --code-text: #e9ecef;
        --code-keyword: #339af0;
        --code-string: #e8590c;
        --code-tag: #339af0;
        --code-attribute: #22b8cf;
        --code-value: #e8590c;
        --code-comment: #51cf66;
      }

      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }

      body {
        font-family:
          -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu,
          Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
        line-height: 1.5;
        color: var(--dark);
        background-color: var(--light);
      }

      /* Header */
      .header {
        background: linear-gradient(135deg, var(--primary), var(--secondary));
        color: white;
        padding: 2.5rem 1rem;
        margin-bottom: 2rem;
        text-align: center;
      }

      .container {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 1rem;
      }

      .header h1 {
        font-size: 2.5rem;
        margin-bottom: 0.5rem;
        font-weight: 700;
      }

      .header p {
        font-size: 1.1rem;
        margin-bottom: 1.5rem;
        opacity: 0.9;
      }

      /* Installation box */
      .install-box {
        background-color: rgba(0, 0, 0, 0.2);
        border-radius: var(--border-radius);
        padding: 0.75rem 1rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        max-width: 500px;
        margin: 1.5rem auto;
        font-family: "SF Mono", "Fira Mono", "Courier New", Courier, monospace;
        position: relative;
        overflow: hidden;
      }

      .install-box code {
        overflow-x: auto;
        white-space: nowrap;
        font-size: 0.9rem;
        color: white;
      }

      .install-tabs {
        display: flex;
        justify-content: center;
        margin-bottom: 0.5rem;
      }

      .install-tab {
        background: rgba(255, 255, 255, 0.1);
        border: none;
        color: white;
        padding: 0.4rem 1rem;
        font-size: 0.8rem;
        cursor: pointer;
        transition: var(--transition);
      }

      .install-tab:first-child {
        border-top-left-radius: var(--border-radius);
        border-bottom-left-radius: var(--border-radius);
      }

      .install-tab:last-child {
        border-top-right-radius: var(--border-radius);
        border-bottom-right-radius: var(--border-radius);
      }

      .install-tab.active {
        background: rgba(255, 255, 255, 0.3);
        font-weight: 600;
      }

      .copy-btn {
        background: transparent;
        border: none;
        color: white;
        cursor: pointer;
        padding: 0.25rem 0.5rem;
        font-size: 0.9rem;
        transition: var(--transition);
        border-radius: 4px;
      }

      .copy-btn:hover {
        background-color: rgba(255, 255, 255, 0.2);
      }

      /* Usage guide */
      .usage-btn {
        background: transparent;
        border: none;
        color: rgba(255, 255, 255, 0.8);
        font-size: 0.85rem;
        margin-top: 0.5rem;
        cursor: pointer;
        text-decoration: underline;
        transition: var(--transition);
      }

      .usage-btn:hover {
        color: white;
      }

      /* Enhanced Modal */
      .modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.6);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 1000;
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
      }

      .modal.active {
        opacity: 1;
        visibility: visible;
      }

      .modal-content {
        background-color: white;
        border-radius: var(--border-radius);
        max-width: 700px;
        width: 90%;
        max-height: 90vh;
        overflow-y: auto;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
        padding: 2.5rem;
        position: relative;
      }

      .modal-close {
        position: absolute;
        top: 1.25rem;
        right: 1.25rem;
        background: none;
        border: none;
        font-size: 1.5rem;
        cursor: pointer;
        color: var(--gray);
        transition: var(--transition);
        display: flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
      }

      .modal-close:hover {
        background-color: var(--light-gray);
        color: var(--dark);
      }

      .modal-title {
        font-size: 2rem;
        margin-bottom: 1.5rem;
        color: var(--primary);
        font-weight: 700;
        border-bottom: 2px solid var(--primary-light);
        padding-bottom: 0.75rem;
      }

      .modal-section {
        margin-bottom: 2rem;
      }

      .modal-section-title {
        font-size: 1.25rem;
        font-weight: 600;
        margin-bottom: 1rem;
        color: var(--dark);
      }

      .modal p {
        margin-bottom: 1rem;
        font-size: 1rem;
        line-height: 1.6;
      }

      .modal ul {
        margin-bottom: 1rem;
        padding-left: 1.5rem;
      }

      .modal li {
        margin-bottom: 0.5rem;
      }

      .inline-code {
        font-family: "SF Mono", "Fira Mono", "Courier New", Courier, monospace;
        background-color: var(--light-gray);
        padding: 0.1rem 0.3rem;
        border-radius: 3px;
        font-size: 0.9rem;
      }

      /* Enhanced code blocks */
      .code-block {
        position: relative;
        background-color: var(--code-bg);
        border-radius: var(--border-radius);
        margin: 1rem 0 1.5rem;
        overflow: hidden;
      }

      .code-header {
        background-color: rgba(0, 0, 0, 0.2);
        padding: 0.5rem 1rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
      }

      .code-label {
        font-size: 0.75rem;
        color: rgba(255, 255, 255, 0.7);
        font-weight: 500;
      }

      .code-copy-btn {
        background: transparent;
        border: none;
        color: rgba(255, 255, 255, 0.7);
        cursor: pointer;
        font-size: 0.85rem;
        display: flex;
        align-items: center;
        gap: 0.3rem;
        padding: 0.2rem 0.5rem;
        border-radius: 4px;
        transition: var(--transition);
      }

      .code-copy-btn:hover {
        background-color: rgba(255, 255, 255, 0.1);
        color: white;
      }

      .code-content {
        padding: 1rem;
        overflow-x: auto;
        font-family: "SF Mono", "Fira Mono", "Courier New", Courier, monospace;
        font-size: 0.9rem;
        line-height: 1.5;
        color: var(--code-text);
      }

      /* Syntax highlighting */
      .token.keyword {
        color: var(--code-keyword);
      }

      .token.string {
        color: var(--code-string);
      }

      .token.tag {
        color: var(--code-tag);
      }

      .token.attribute {
        color: var(--code-attribute);
      }

      .token.value {
        color: var(--code-value);
      }

      .token.comment {
        color: var(--code-comment);
        font-style: italic;
      }

      /* Action buttons */
      .action-buttons {
        margin-top: 1.5rem;
        display: flex;
        justify-content: center;
        gap: 1rem;
        flex-wrap: wrap;
      }

      .btn {
        display: inline-flex;
        align-items: center;
        background-color: rgba(255, 255, 255, 0.9);
        color: var(--dark);
        padding: 0.5rem 1rem;
        border-radius: var(--border-radius);
        text-decoration: none;
        font-weight: 500;
        transition: var(--transition);
        border: 1px solid transparent;
      }

      .btn:hover {
        background-color: white;
        box-shadow: var(--shadow);
        transform: translateY(-1px);
      }

      .btn i {
        margin-right: 0.5rem;
        font-size: 1.1rem;
      }

      /* Search and controls */
      .controls {
        margin: 1rem auto 2rem;
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        justify-content: space-between;
        align-items: center;
      }

      .search-box {
        position: relative;
        flex: 1;
        min-width: 200px;
        max-width: 350px;
      }

      .search-box input {
        width: 100%;
        padding: 0.6rem 1rem 0.6rem 2.5rem;
        border: 1px solid var(--light-gray);
        border-radius: var(--border-radius);
        font-size: 0.95rem;
        transition: var(--transition);
      }

      .search-box input:focus {
        outline: none;
        border-color: var(--primary);
        box-shadow: 0 0 0 3px rgba(43, 138, 62, 0.1);
      }

      .search-box i {
        position: absolute;
        left: 0.8rem;
        top: 50%;
        transform: translateY(-50%);
        color: var(--gray);
      }

      /* Continent filter */
      .filter-dropdown {
        position: relative;
      }

      .filter-btn {
        display: flex;
        align-items: center;
        background-color: white;
        border: 1px solid var(--light-gray);
        border-radius: var(--border-radius);
        padding: 0.6rem 1rem;
        font-size: 0.95rem;
        cursor: pointer;
        transition: var(--transition);
      }

      .filter-btn:hover {
        border-color: var(--gray);
      }

      .filter-btn i {
        margin-left: 0.5rem;
      }

      .filter-menu {
        position: absolute;
        top: 100%;
        left: 0;
        z-index: 10;
        background-color: white;
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        min-width: 200px;
        margin-top: 0.5rem;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: all 0.2s ease;
      }

      .filter-dropdown.active .filter-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
      }

      .filter-option {
        padding: 0.6rem 1rem;
        cursor: pointer;
        transition: var(--transition);
      }

      .filter-option:hover {
        background-color: var(--light);
      }

      .filter-option.active {
        background-color: var(--light);
        color: var(--primary);
        font-weight: 500;
      }

      /* Format switch (fixed) */
      .format-switch {
        position: fixed;
        right: 1rem;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        flex-direction: column;
        border: 1px solid var(--light-gray);
        border-radius: var(--border-radius);
        overflow: hidden;
        background-color: white;
        box-shadow: var(--shadow);
        z-index: 100;
      }

      .format-switch button {
        padding: 0.75rem;
        background: none;
        border: none;
        cursor: pointer;
        font-size: 0.85rem;
        font-weight: 500;
        transition: var(--transition);
        border-bottom: 1px solid var(--light-gray);
      }

      .format-switch button:last-child {
        border-bottom: none;
      }

      .format-switch button.active {
        background-color: var(--primary);
        color: white;
      }

      /* Flags grid */
      .section-title {
        text-align: center;
        margin: 2rem 0 1.5rem;
        color: var(--dark);
        font-weight: 600;
        font-size: 1.5rem;
      }

      .flags-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 1.5rem;
        padding-bottom: 2rem;
      }

      .flag-card {
        border-radius: var(--border-radius);
        overflow: hidden;
        background: white;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        transition: var(--transition);
        cursor: pointer;
      }

      .flag-card:hover {
        transform: translateY(-4px);
        box-shadow: var(--shadow);
      }

      .flag-img-container {
        position: relative;
        width: 100%;
        padding-top: 75%; /* 4:3 aspect ratio */
        overflow: hidden;
        border-bottom: 1px solid var(--light-gray);
      }

      .flag-img-square {
        padding-top: 100%; /* 1:1 aspect ratio */
      }

      .flag-img-container img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .flag-info {
        padding: 0.75rem;
      }

      .flag-code {
        font-weight: 600;
        font-size: 0.85rem;
        color: var(--primary);
      }

      .flag-name {
        font-size: 0.85rem;
        color: var(--gray);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }

      /* Copy tooltip */
      .tooltip {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background-color: rgba(0, 0, 0, 0.8);
        color: white;
        padding: 0.5rem 1rem;
        border-radius: var(--border-radius);
        font-size: 0.9rem;
        z-index: 1000;
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.3s ease;
      }

      /* Responsive */
      @media (max-width: 768px) {
        .header h1 {
          font-size: 2rem;
        }

        .flags-grid {
          grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
          gap: 1rem;
        }

        .controls {
          flex-direction: column;
          align-items: stretch;
        }

        .search-box {
          max-width: none;
        }

        .format-switch {
          position: fixed;
          top: auto;
          bottom: 1rem;
          right: 1rem;
          transform: none;
          flex-direction: row;
        }

        .format-switch button {
          border-bottom: none;
          border-right: 1px solid var(--light-gray);
          padding: 0.5rem 0.75rem;
        }

        .format-switch button:last-child {
          border-right: none;
        }

        .modal-content {
          padding: 1.5rem;
          width: 95%;
        }
      }

      @media (max-width: 480px) {
        .flags-grid {
          grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        }

        .action-buttons {
          flex-direction: column;
          align-items: stretch;
        }

        .btn {
          justify-content: center;
        }
      }

      /* Footer */
      .footer {
        text-align: center;
        padding: 2rem 1rem;
        margin-top: 2rem;
        background-color: var(--light-gray);
        color: var(--gray);
        font-size: 0.9rem;
      }

      .footer a {
        color: var(--primary);
        text-decoration: none;
      }

      .footer a:hover {
        text-decoration: underline;
      }
    </style>

    <!-- Bootstrap Icons -->
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css"
    />
    <!-- Custom Flag Icons CSS -->
    <link href="./css/flag-icons.min.css" rel="stylesheet" />
  </head>
  <body>
    <header class="header">
      <div class="container">
        <h1>Flag Icons</h1>
        <p>
          A curated collection of all country flags in SVG — plus the CSS for
          easier integration
        </p>

        <div class="install-tabs">
          <button class="install-tab active" data-tab="npm">npm</button>
          <button class="install-tab" data-tab="yarn">yarn</button>
        </div>

        <div class="install-box">
          <code id="install-command">npm install flag-icons</code>
          <button class="copy-btn" data-copy="npm install flag-icons">
            <i class="bi bi-clipboard"></i>
          </button>
        </div>

        <button class="usage-btn">How to use?</button>

        <div class="action-buttons">
          <a href="https://github.com/lipis/flag-icons" class="btn">
            <i class="bi bi-github"></i> View on GitHub
          </a>
          <a
            href="https://github.com/lipis/flag-icons/archive/main.zip"
            class="btn"
          >
            <i class="bi bi-cloud-arrow-down"></i> Download Flags
          </a>
        </div>
      </div>
    </header>

    <main class="container">
      <div class="controls">
        <div class="search-box">
          <i class="bi bi-search"></i>
          <input type="text" id="search-flag" placeholder="Search flags..." />
        </div>

        <div class="filter-dropdown">
          <button class="filter-btn">
            All Continents <i class="bi bi-chevron-down"></i>
          </button>
          <div class="filter-menu">
            <div class="filter-option active" data-filter="all">
              All Continents
            </div>
            <div class="filter-option" data-filter="Africa">Africa</div>
            <div class="filter-option" data-filter="Asia">Asia</div>
            <div class="filter-option" data-filter="Europe">Europe</div>
            <div class="filter-option" data-filter="North America">
              North America
            </div>
            <div class="filter-option" data-filter="Oceania">Oceania</div>
            <div class="filter-option" data-filter="South America">
              South America
            </div>
            <div class="filter-option" data-filter="Antarctica">Antarctica</div>
            <div class="filter-option" data-filter="non-iso">Non-ISO Flags</div>
          </div>
        </div>
      </div>

      <h2 class="section-title">ISO 3166-1-alpha-2 Flags</h2>
      <div id="iso-flags" class="flags-grid"></div>

      <h2 class="section-title">Other Flags</h2>
      <div id="non-iso-flags" class="flags-grid"></div>
    </main>

    <div class="format-switch">
      <button id="format-4x3" class="active" title="4:3 format">4:3</button>
      <button id="format-1x1" title="1:1 format">1:1</button>
    </div>

    <div id="copy-tooltip" class="tooltip">Copied to clipboard!</div>

    <!-- Enhanced Usage Modal -->
    <div id="usage-modal" class="modal">
      <div class="modal-content">
        <button class="modal-close"><i class="bi bi-x-lg"></i></button>
        <h3 class="modal-title">How to use flag-icons</h3>

        <div class="modal-section">
          <h4 class="modal-section-title">1. Import the CSS</h4>
          <p>
            First, include the CSS in your project using one of these methods:
          </p>

          <div class="code-block">
            <div class="code-header">
              <span class="code-label">JavaScript / Module</span>
              <button
                class="code-copy-btn"
                data-code='import "flag-icons/css/flag-icons.min.css";'
              >
                <i class="bi bi-clipboard"></i> Copy
              </button>
            </div>
            <div class="code-content">
              <pre><span class="token keyword">import</span> <span class="token string">"flag-icons/css/flag-icons.min.css"</span>;</pre>
            </div>
          </div>

          <div class="code-block">
            <div class="code-header">
              <span class="code-label">HTML / CDN</span>
              <button
                class="code-copy-btn"
                data-code='<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css" />'
              >
                <i class="bi bi-clipboard"></i> Copy
              </button>
            </div>
            <div class="code-content">
              <pre><span class="token tag">&lt;<span class="token attribute">link</span> <span class="token attribute">rel</span>=<span class="token value">"stylesheet"</span>
<span class="token attribute">href</span>=<span class="token value">"https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.3.2/css/flag-icons.min.css"</span> /&gt;</span></pre>
            </div>
          </div>
        </div>

        <div class="modal-section">
          <h4 class="modal-section-title">2. Use in your HTML</h4>
          <p>
            Add the classes <code class="inline-code">.fi</code> and
            <code class="inline-code">.fi-xx</code> to an empty span to display
            a flag inline. Replace <code class="inline-code">xx</code> with the
            ISO 3166-1-alpha-2 code of the country.
          </p>

          <div class="code-block">
            <div class="code-header">
              <span class="code-label">Standard 4:3 format</span>
              <button class="code-copy-btn" id="copy-standard-code">
                <i class="bi bi-clipboard"></i> Copy
              </button>
            </div>
            <div class="code-content">
              <pre><span class="token tag">&lt;<span class="token attribute">span</span> <span class="token attribute">class</span>=<span class="token value">"fi fi-us"</span>&gt;</span><span class="token tag">&lt;/<span class="token attribute">span</span>&gt;</span> United States</pre>
            </div>
          </div>

          <p>
            For square format flags, add the
            <code class="inline-code">fis</code> class:
          </p>

          <div class="code-block">
            <div class="code-header">
              <span class="code-label">Square 1:1 format</span>
              <button class="code-copy-btn" id="copy-square-code">
                <i class="bi bi-clipboard"></i> Copy
              </button>
            </div>
            <div class="code-content">
              <pre><span class="token tag">&lt;<span class="token attribute">span</span> <span class="token attribute">class</span>=<span class="token value">"fi fi-us fis"</span>&gt;</span><span class="token tag">&lt;/<span class="token attribute">span</span>&gt;</span> United States</pre>
            </div>
          </div>
        </div>

        <div class="modal-section">
          <h4 class="modal-section-title">3. Tips</h4>
          <ul>
            <li>Click on any flag on this page to copy its HTML code</li>
            <li>
              For applying flags as backgrounds, use the
              <code class="inline-code">fib</code> class
            </li>
            <li>
              All flags are available in both 4:3 and 1:1 (square) formats
            </li>
            <li>
              Use the built-in search and filter functionality to find specific
              flags
            </li>
          </ul>
        </div>
      </div>
    </div>

    <footer class="footer">
      <div class="container">
        <p>
          Released under the
          <a href="https://github.com/lipis/flag-icons/blob/main/LICENSE"
            >MIT License</a
          >
          by <a href="https://github.com/lipis">Panayiotis Lipiridis</a>
        </p>
      </div>
    </footer>

    <script>
      // Utility functions
      const loadJSON = (path) => {
        return fetch(path)
          .then((response) => response.json())
          .catch((error) => console.error("Error loading JSON:", error));
      };

      // DOM elements
      const isoFlagsGrid = document.getElementById("iso-flags");
      const nonIsoFlagsGrid = document.getElementById("non-iso-flags");
      const searchInput = document.getElementById("search-flag");
      const format4x3Btn = document.getElementById("format-4x3");
      const format1x1Btn = document.getElementById("format-1x1");
      const copyTooltip = document.getElementById("copy-tooltip");
      const installTabs = document.querySelectorAll(".install-tab");
      const installCommand = document.getElementById("install-command");
      const copyBtn = document.querySelector(".copy-btn");
      const usageBtn = document.querySelector(".usage-btn");
      const usageModal = document.getElementById("usage-modal");
      const modalClose = document.querySelector(".modal-close");
      const filterBtn = document.querySelector(".filter-btn");
      const filterDropdown = document.querySelector(".filter-dropdown");
      const filterOptions = document.querySelectorAll(".filter-option");
      const codeBlockCopyBtns = document.querySelectorAll(".code-copy-btn");

      // State
      let currentFormat = "4x3";
      let allFlags = [];
      let tooltipTimeout;
      let currentFilter = "all";
      let installCommands = {
        npm: "npm install flag-icons",
        yarn: "yarn add flag-icons",
      };
      // Create flag card element
      const createFlagCard = (country) => {
        const card = document.createElement("div");
        card.classList.add("flag-card");
        card.dataset.code = country.code;
        card.dataset.continent = country.continent || "non-iso";

        const imgContainer = document.createElement("div");
        imgContainer.classList.add("flag-img-container");

        const imgSquareContainer = document.createElement("div");
        imgSquareContainer.classList.add(
          "flag-img-container",
          "flag-img-square",
        );
        imgSquareContainer.style.display = "none";

        const img4x3 = document.createElement("img");
        img4x3.src = country.flag_4x3;
        img4x3.alt = `Flag of ${country.name}`;
        img4x3.loading = "lazy"; // Lazy loading for performance

        const img1x1 = document.createElement("img");
        img1x1.src = country.flag_1x1;
        img1x1.alt = `Flag of ${country.name}`;
        img1x1.loading = "lazy";

        const info = document.createElement("div");
        info.classList.add("flag-info");

        const code = document.createElement("div");
        code.classList.add("flag-code");
        code.textContent = country.code;

        const name = document.createElement("div");
        name.classList.add("flag-name");
        name.textContent = country.name;
        name.title = country.name;

        imgContainer.appendChild(img4x3);
        imgSquareContainer.appendChild(img1x1);
        info.appendChild(code);
        info.appendChild(name);

        card.appendChild(imgContainer);
        card.appendChild(imgSquareContainer);
        card.appendChild(info);

        // Add click event to copy the flag code
        card.addEventListener("click", () => {
          const format = currentFormat === "4x3" ? "" : " fis";
          const htmlCode = `<span class="fi fi-${country.code}${format}"></span>`;

          navigator.clipboard
            .writeText(htmlCode)
            .then(() => showCopyTooltip())
            .catch((err) => console.error("Could not copy text: ", err));
        });

        return card;
      };

      // Show tooltip when copying
      const showCopyTooltip = () => {
        clearTimeout(tooltipTimeout);
        copyTooltip.style.opacity = "1";

        tooltipTimeout = setTimeout(() => {
          copyTooltip.style.opacity = "0";
        }, 2000);
      };

      const setupCopyButtons = () => {
        document.getElementById("copy-standard-code").dataset.code =
          `<span class="fi fi-us"></span> United States`;
        document.getElementById("copy-square-code").dataset.code =
          `<span class="fi fi-us fis"></span> United States`;
      };

      // Filter flags based on search input and continent
      const filterFlags = () => {
        const searchTerm = searchInput.value.toLowerCase();

        allFlags.forEach((flag) => {
          const isSearchMatch =
            flag.country.name.toLowerCase().includes(searchTerm) ||
            flag.country.code.toLowerCase().includes(searchTerm);

          const isFilterMatch =
            currentFilter === "all" ||
            (currentFilter === "non-iso" && !flag.country.iso) ||
            flag.country.continent === currentFilter;

          flag.element.style.display =
            isSearchMatch && isFilterMatch ? "" : "none";
        });
      };

      // Switch between 4:3 and 1:1 formats
      const switchFormat = (format) => {
        currentFormat = format;

        if (format === "4x3") {
          format4x3Btn.classList.add("active");
          format1x1Btn.classList.remove("active");

          document
            .querySelectorAll(".flag-img-container:not(.flag-img-square)")
            .forEach((el) => {
              el.style.display = "block";
            });

          document.querySelectorAll(".flag-img-square").forEach((el) => {
            el.style.display = "none";
          });

          // Google Analytics tracking
          if (typeof gtag !== "undefined") {
            gtag("event", "switch", {
              event_category: "flags",
              event_label: "4x3",
            });
          }
        } else {
          format1x1Btn.classList.add("active");
          format4x3Btn.classList.remove("active");

          document
            .querySelectorAll(".flag-img-container:not(.flag-img-square)")
            .forEach((el) => {
              el.style.display = "none";
            });

          document.querySelectorAll(".flag-img-square").forEach((el) => {
            el.style.display = "block";
          });

          // Google Analytics tracking
          if (typeof gtag !== "undefined") {
            gtag("event", "switch", {
              event_category: "flags",
              event_label: "1x1",
            });
          }
        }
      };

      // Switch installation command
      const switchInstallCommand = (type) => {
        installCommand.textContent = installCommands[type];
        copyBtn.dataset.copy = installCommands[type];

        installTabs.forEach((tab) => {
          if (tab.dataset.tab === type) {
            tab.classList.add("active");
          } else {
            tab.classList.remove("active");
          }
        });
      };

      // Toggle filter dropdown
      const toggleFilterDropdown = () => {
        filterDropdown.classList.toggle("active");
      };

      // Close filter dropdown when clicking outside
      document.addEventListener("click", (e) => {
        if (!filterDropdown.contains(e.target)) {
          filterDropdown.classList.remove("active");
        }
      });

      // Copy code from code blocks
      const copyCode = (btn) => {
        const code = btn.dataset.code;
        navigator.clipboard
          .writeText(code)
          .then(() => {
            // Visual feedback
            const originalText = btn.innerHTML;
            btn.innerHTML = '<i class="bi bi-check-lg"></i> Copied!';

            setTimeout(() => {
              btn.innerHTML = originalText;
            }, 2000);
          })
          .catch((err) => console.error("Could not copy text: ", err));
      };

      // Initialize the application
      const init = async () => {
        try {
          const countries = await loadJSON("country.json");

          // Sort countries by name
          countries.sort((a, b) => a.name.localeCompare(b.name));

          // Create flag cards
          countries.forEach((country) => {
            const card = createFlagCard(country);

            if (country.iso) {
              isoFlagsGrid.appendChild(card);
            } else {
              nonIsoFlagsGrid.appendChild(card);
            }

            allFlags.push({
              country,
              element: card,
            });
          });

          setupCopyButtons();

          // Set up event listeners
          searchInput.addEventListener("input", filterFlags);

          format4x3Btn.addEventListener("click", () => switchFormat("4x3"));
          format1x1Btn.addEventListener("click", () => switchFormat("1x1"));

          // Installation tab switching
          installTabs.forEach((tab) => {
            tab.addEventListener("click", () => {
              switchInstallCommand(tab.dataset.tab);
            });
          });

          // Copy npm/yarn command
          copyBtn.addEventListener("click", (e) => {
            const textToCopy = e.currentTarget.dataset.copy;
            navigator.clipboard
              .writeText(textToCopy)
              .then(() => showCopyTooltip())
              .catch((err) => console.error("Could not copy text: ", err));
          });

          // Usage modal
          usageBtn.addEventListener("click", () => {
            usageModal.classList.add("active");
          });

          modalClose.addEventListener("click", () => {
            usageModal.classList.remove("active");
          });

          usageModal.addEventListener("click", (e) => {
            if (e.target === usageModal) {
              usageModal.classList.remove("active");
            }
          });

          // Filter dropdown
          filterBtn.addEventListener("click", toggleFilterDropdown);

          filterOptions.forEach((option) => {
            option.addEventListener("click", () => {
              currentFilter = option.dataset.filter;
              filterBtn.textContent = option.textContent + " ";

              const icon = document.createElement("i");
              icon.className = "bi bi-chevron-down";
              filterBtn.appendChild(icon);

              filterOptions.forEach((opt) => {
                opt.classList.toggle("active", opt === option);
              });

              filterFlags();
              toggleFilterDropdown();
            });
          });

          // Code block copy buttons
          codeBlockCopyBtns.forEach((btn) => {
            btn.addEventListener("click", () => copyCode(btn));
          });
        } catch (error) {
          console.error("Error initializing the application:", error);
        }
      };

      // Start the application when the DOM is ready
      document.addEventListener("DOMContentLoaded", init);
    </script>
  </body>
</html>


================================================
FILE: maven.sh
================================================
version=$(git describe --tags --abbrev=0)
url="https://www.webjars.org/deploy?webJarType=npm&nameOrUrlish=flag-icons&version=${version#v}"
echo "curl '${url}'"
curl "$url"
echo
echo "https://central.sonatype.com/artifact/org.webjars.npm/flag-icons/versions"


================================================
FILE: package.json
================================================
{
  "name": "flag-icons",
  "version": "7.5.0",
  "author": "Panayiotis Lipiridis <lipiridis@gmail.com>",
  "license": "MIT",
  "main": "css/flag-icons.css",
  "repository": {
    "type": "git",
    "url": "https://github.com/lipis/flag-icons"
  },
  "files": [
    "css",
    "flags",
    "sass",
    "country.json"
  ],
  "devDependencies": {
    "http-server": "14.1.1",
    "prettier": "3.6.2",
    "sass": "1.89.2",
    "svgo": "3.3.2"
  },
  "scripts": {
    "build:dev": "sass --no-source-map --no-charset sass/flag-icons.scss css/flag-icons.css",
    "build:min": "sass --no-source-map --no-charset --style=compressed sass/flag-icons.scss css/flag-icons.min.css",
    "build": "yarn build:dev && yarn build:min",
    "fix": "yarn prettier --write",
    "ids": "python3 flag-ids.py",
    "prettier": "prettier \"**/*.{html,json,md,scss,yaml,yml,js}\"",
    "start": "http-server -a localhost -p 8000",
    "svgo:all": "find flags | grep '\\.svg$' | xargs -Iz -n 1 yarn svgo z && yarn ids",
    "svgo:min": "find flags | grep '\\.svg$' | xargs -Iz -n 1 svgo z && yarn ids",
    "svgo": "svgo --pretty --indent=2 --precision=1",
    "test": "yarn prettier --list-different",
    "maven": "./maven.sh"
  }
}


================================================
FILE: robots.txt
================================================
User-agent: *


================================================
FILE: sass/_flag-icons-base.scss
================================================
@use "variables";

.fib {
  background-size: contain;
  background-position: 50%;
  background-repeat: no-repeat;
}

.fi {
  @extend .fib;
  position: relative;
  display: inline-block;
  width: 1.333333 * 1em;
  line-height: 1em;
  &:before {
    content: "\00a0";
  }
  &.fis {
    width: 1em;
  }
}

@mixin flag-icon($country) {
  .fi-#{$country} {
    background-image: url(#{variables.$flag-icons-path}#{variables.$flag-icons-rect-path}/#{$country}.svg);

    @if variables.$flag-icons-use-square {
      &.fis {
        background-image: url(#{variables.$flag-icons-path}#{variables.$flag-icons-square-path}/#{$country}.svg);
      }
    }
  }
}


================================================
FILE: sass/_flag-icons-list.scss
================================================
@use "variables";
@use "flag-icons-base";

@each $country in variables.$flag-icons-included-countries {
  @include flag-icons-base.flag-icon($country);
}


================================================
FILE: sass/_variables.scss
================================================
$flag-icons-path: "../flags" !default;
$flag-icons-rect-path: "/4x3" !default;
$flag-icons-square-path: "/1x1" !default;
$flag-icons-use-square: true !default;
$flag-icons-included-countries: (
  // Keep xx first as it is often used as fallback
  "xx",

  "ad",
  "ae",
  "af",
  "ag",
  "ai",
  "al",
  "am",
  "ao",
  "aq",
  "ar",
  "as",
  "at",
  "au",
  "aw",
  "ax",
  "az",
  "ba",
  "bb",
  "bd",
  "be",
  "bf",
  "bg",
  "bh",
  "bi",
  "bj",
  "bl",
  "bm",
  "bn",
  "bo",
  "bq",
  "br",
  "bs",
  "bt",
  "bv",
  "bw",
  "by",
  "bz",
  "ca",
  "cc",
  "cd",
  "cf",
  "cg",
  "ch",
  "ci",
  "ck",
  "cl",
  "cm",
  "cn",
  "co",
  "cr",
  "cu",
  "cv",
  "cw",
  "cx",
  "cy",
  "cz",
  "de",
  "dj",
  "dk",
  "dm",
  "do",
  "dz",
  "ec",
  "ee",
  "eg",
  "eh",
  "er",
  "es",
  "et",
  "fi",
  "fj",
  "fk",
  "fm",
  "fo",
  "fr",
  "ga",
  "gb",
  "gd",
  "ge",
  "gf",
  "gg",
  "gh",
  "gi",
  "gl",
  "gm",
  "gn",
  "gp",
  "gq",
  "gr",
  "gs",
  "gt",
  "gu",
  "gw",
  "gy",
  "hk",
  "hm",
  "hn",
  "hr",
  "ht",
  "hu",
  "id",
  "ie",
  "il",
  "im",
  "in",
  "io",
  "iq",
  "ir",
  "is",
  "it",
  "je",
  "jm",
  "jo",
  "jp",
  "ke",
  "kg",
  "kh",
  "ki",
  "km",
  "kn",
  "kp",
  "kr",
  "kw",
  "ky",
  "kz",
  "la",
  "lb",
  "lc",
  "li",
  "lk",
  "lr",
  "ls",
  "lt",
  "lu",
  "lv",
  "ly",
  "ma",
  "mc",
  "md",
  "me",
  "mf",
  "mg",
  "mh",
  "mk",
  "ml",
  "mm",
  "mn",
  "mo",
  "mp",
  "mq",
  "mr",
  "ms",
  "mt",
  "mu",
  "mv",
  "mw",
  "mx",
  "my",
  "mz",
  "na",
  "nc",
  "ne",
  "nf",
  "ng",
  "ni",
  "nl",
  "no",
  "np",
  "nr",
  "nu",
  "nz",
  "om",
  "pa",
  "pe",
  "pf",
  "pg",
  "ph",
  "pk",
  "pl",
  "pm",
  "pn",
  "pr",
  "ps",
  "pt",
  "pw",
  "py",
  "qa",
  "re",
  "ro",
  "rs",
  "ru",
  "rw",
  "sa",
  "sb",
  "sc",
  "sd",
  "se",
  "sg",
  "sh",
  "si",
  "sj",
  "sk",
  "sl",
  "sm",
  "sn",
  "so",
  "sr",
  "ss",
  "st",
  "sv",
  "sx",
  "sy",
  "sz",
  "tc",
  "td",
  "tf",
  "tg",
  "th",
  "tj",
  "tk",
  "tl",
  "tm",
  "tn",
  "to",
  "tr",
  "tt",
  "tv",
  "tw",
  "tz",
  "ua",
  "ug",
  "um",
  "us",
  "uy",
  "uz",
  "va",
  "vc",
  "ve",
  "vg",
  "vi",
  "vn",
  "vu",
  "wf",
  "ws",
  "ye",
  "yt",
  "za",
  "zm",
  "zw",
  // Other flags
  "arab",
  "asean",
  "cefta",
  "cp",
  "dg",
  "eac",
  "es-ct",
  "es-ga",
  "es-pv",
  "eu",
  "gb-eng",
  "gb-nir",
  "gb-sct",
  "gb-wls",
  "ic",
  "pc",
  "sh-ac",
  "sh-hl",
  "sh-ta",
  "un",
  "xk"
) !default;


================================================
FILE: sass/flag-icons.scss
================================================
@forward "variables";
@use "flag-icons-base";
@use "flag-icons-list";


================================================
FILE: svgo.config.js
================================================
module.exports = {
  plugins: [
    {
      name: "preset-default",
    },
    {
      name: "prefixIds",
      params: {
        delim: "-",
        prefix: (_, info) => {
          if (info.path != null && info.path.length > 0) {
            return getBasename(info.path).split(".")[0];
          }
          return "prefix";
        },
      },
    },
    "convertStyleToAttrs",
    "removeDimensions",
    "removeScriptElement",
    "removeStyleElement",
    "sortAttrs",
  ],
};

/**
 * extract basename from path
 * @see https://github.com/svg/svgo/blob/main/plugins/prefixIds.js
 */
const getBasename = (path) => {
  const matched = path.match(/[/\\]?([^/\\]+)$/);
  if (matched) return matched[1];
  return "";
};
Download .txt
gitextract_k5e4dsqs/

├── .github/
│   ├── dependabot.yml
│   └── workflows/
│       ├── flags.yml
│       ├── format.yml
│       └── npm-publish.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── 404.html
├── CHANGELOG.md
├── CNAME
├── LICENSE
├── README.md
├── assets/
│   ├── docs.css
│   └── docs.js
├── composer.json
├── country.json
├── css/
│   └── flag-icons.css
├── flag-ids.py
├── flags.py
├── index.html
├── maven.sh
├── package.json
├── robots.txt
├── sass/
│   ├── _flag-icons-base.scss
│   ├── _flag-icons-list.scss
│   ├── _variables.scss
│   └── flag-icons.scss
└── svgo.config.js
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: flag-ids.py
  function add_ids (line 13) | def add_ids(directory):
Condensed preview — 28 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (160K chars).
[
  {
    "path": ".github/dependabot.yml",
    "chars": 155,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: npm\n    directory: \"/\"\n    schedule:\n      interval: daily\n      time: \"02:00"
  },
  {
    "path": ".github/workflows/flags.yml",
    "chars": 317,
    "preview": "name: Test Flags\n\non: pull_request\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v"
  },
  {
    "path": ".github/workflows/format.yml",
    "chars": 336,
    "preview": "name: Test Format\n\non: pull_request\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@"
  },
  {
    "path": ".github/workflows/npm-publish.yml",
    "chars": 840,
    "preview": "# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created\n# For "
  },
  {
    "path": ".gitignore",
    "chars": 57,
    "preview": "bower_components\nmain\nnode_modules\ntemp\nupdate\n.DS_Store\n"
  },
  {
    "path": ".prettierignore",
    "chars": 31,
    "preview": "flag-icons.min.css\nmain/\ntemp/\n"
  },
  {
    "path": ".prettierrc.json",
    "chars": 3,
    "preview": "{}\n"
  },
  {
    "path": "404.html",
    "chars": 173,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <title>Redirection</title>\n    <meta http-equ"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 3815,
    "preview": "# 7.5.0\n\n- Update all flags with the latest SVGO 3.3.2 (#1367)\n\n# 7.4.0\n\n- Migrate SASS imports to @use-based code (#135"
  },
  {
    "path": "CNAME",
    "chars": 19,
    "preview": "flagicons.lipis.dev"
  },
  {
    "path": "LICENSE",
    "chars": 1087,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013 Panayiotis Lipiridis\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": "README.md",
    "chars": 2589,
    "preview": "# flag-icons\n\n> A curated collection of all country flags in SVG — plus the CSS for easier integration. See the [demo](h"
  },
  {
    "path": "assets/docs.css",
    "chars": 1289,
    "preview": ".hide {\n  display: none;\n}\n\n.header {\n  margin: 0 0 48px;\n  padding: 32px 0;\n  text-align: center;\n  background: linear-"
  },
  {
    "path": "assets/docs.js",
    "chars": 3938,
    "preview": "const loadJSON = (path, callback) => {\n  var xobj = new XMLHttpRequest();\n  xobj.overrideMimeType(\"application/json\");\n "
  },
  {
    "path": "composer.json",
    "chars": 529,
    "preview": "{\n  \"name\": \"lipis/flag-icons\",\n  \"description\": \"A curated collection of all country flags in SVG — plus the CSS for ea"
  },
  {
    "path": "country.json",
    "chars": 52688,
    "preview": "[\n  {\n    \"capital\": \"Kabul\",\n    \"code\": \"af\",\n    \"continent\": \"Asia\",\n    \"flag_1x1\": \"flags/1x1/af.svg\",\n    \"flag_4"
  },
  {
    "path": "css/flag-icons.css",
    "chars": 32677,
    "preview": ".fib, .fi {\n  background-size: contain;\n  background-position: 50%;\n  background-repeat: no-repeat;\n}\n\n.fi {\n  position:"
  },
  {
    "path": "flag-ids.py",
    "chars": 889,
    "preview": "import os\nimport json\n\ndir_1x1 = os.path.join(\"flags\", \"1x1\")\ndir_4x3 = os.path.join(\"flags\", \"4x3\")\n\nfiles = []\nfor (di"
  },
  {
    "path": "flags.py",
    "chars": 994,
    "preview": "import os\nimport json\n\nflags_dir = os.path.join(\"flags\", \"1x1\")\n\nfiles = []\nfor (dirpath, dirnames, filenames) in os.wal"
  },
  {
    "path": "index.html",
    "chars": 35303,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "maven.sh",
    "chars": 258,
    "preview": "version=$(git describe --tags --abbrev=0)\nurl=\"https://www.webjars.org/deploy?webJarType=npm&nameOrUrlish=flag-icons&ver"
  },
  {
    "path": "package.json",
    "chars": 1212,
    "preview": "{\n  \"name\": \"flag-icons\",\n  \"version\": \"7.5.0\",\n  \"author\": \"Panayiotis Lipiridis <lipiridis@gmail.com>\",\n  \"license\": \""
  },
  {
    "path": "robots.txt",
    "chars": 14,
    "preview": "User-agent: *\n"
  },
  {
    "path": "sass/_flag-icons-base.scss",
    "chars": 652,
    "preview": "@use \"variables\";\n\n.fib {\n  background-size: contain;\n  background-position: 50%;\n  background-repeat: no-repeat;\n}\n\n.fi"
  },
  {
    "path": "sass/_flag-icons-list.scss",
    "chars": 154,
    "preview": "@use \"variables\";\n@use \"flag-icons-base\";\n\n@each $country in variables.$flag-icons-included-countries {\n  @include flag-"
  },
  {
    "path": "sass/_variables.scss",
    "chars": 2485,
    "preview": "$flag-icons-path: \"../flags\" !default;\n$flag-icons-rect-path: \"/4x3\" !default;\n$flag-icons-square-path: \"/1x1\" !default;"
  },
  {
    "path": "sass/flag-icons.scss",
    "chars": 70,
    "preview": "@forward \"variables\";\n@use \"flag-icons-base\";\n@use \"flag-icons-list\";\n"
  },
  {
    "path": "svgo.config.js",
    "chars": 722,
    "preview": "module.exports = {\n  plugins: [\n    {\n      name: \"preset-default\",\n    },\n    {\n      name: \"prefixIds\",\n      params: "
  }
]

About this extraction

This page contains the full source code of the lipis/flag-icons GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 28 files (139.9 KB), approximately 48.7k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!