Просмотр исходного кода

Merge branch 'master' into zzf-account

zhangzf 2 дней назад
Родитель
Сommit
0faa34cb12
100 измененных файлов с 4813 добавлено и 2 удалено
  1. 10 2
      README.md
  2. 1 0
      package.json
  3. 8 0
      pnpm-lock.yaml
  4. BIN
      public/image/address-bg.webp
  5. 689 0
      public/image/flags/4x3/ac.svg
  6. 150 0
      public/image/flags/4x3/ad.svg
  7. 6 0
      public/image/flags/4x3/ae.svg
  8. 81 0
      public/image/flags/4x3/af.svg
  9. 14 0
      public/image/flags/4x3/ag.svg
  10. 29 0
      public/image/flags/4x3/ai.svg
  11. 5 0
      public/image/flags/4x3/al.svg
  12. 5 0
      public/image/flags/4x3/am.svg
  13. 13 0
      public/image/flags/4x3/ao.svg
  14. 5 0
      public/image/flags/4x3/aq.svg
  15. 32 0
      public/image/flags/4x3/ar.svg
  16. 109 0
      public/image/flags/4x3/arab.svg
  17. 72 0
      public/image/flags/4x3/as.svg
  18. 4 0
      public/image/flags/4x3/at.svg
  19. 8 0
      public/image/flags/4x3/au.svg
  20. 186 0
      public/image/flags/4x3/aw.svg
  21. 18 0
      public/image/flags/4x3/ax.svg
  22. 8 0
      public/image/flags/4x3/az.svg
  23. 12 0
      public/image/flags/4x3/ba.svg
  24. 6 0
      public/image/flags/4x3/bb.svg
  25. 4 0
      public/image/flags/4x3/bd.svg
  26. 7 0
      public/image/flags/4x3/be.svg
  27. 7 0
      public/image/flags/4x3/bf.svg
  28. 5 0
      public/image/flags/4x3/bg.svg
  29. 4 0
      public/image/flags/4x3/bh.svg
  30. 15 0
      public/image/flags/4x3/bi.svg
  31. 14 0
      public/image/flags/4x3/bj.svg
  32. 5 0
      public/image/flags/4x3/bl.svg
  33. 97 0
      public/image/flags/4x3/bm.svg
  34. 36 0
      public/image/flags/4x3/bn.svg
  35. 674 0
      public/image/flags/4x3/bo.svg
  36. 5 0
      public/image/flags/4x3/bq.svg
  37. 45 0
      public/image/flags/4x3/br.svg
  38. 13 0
      public/image/flags/4x3/bs.svg
  39. 89 0
      public/image/flags/4x3/bt.svg
  40. 13 0
      public/image/flags/4x3/bv.svg
  41. 7 0
      public/image/flags/4x3/bw.svg
  42. 18 0
      public/image/flags/4x3/by.svg
  43. 145 0
      public/image/flags/4x3/bz.svg
  44. 4 0
      public/image/flags/4x3/ca.svg
  45. 19 0
      public/image/flags/4x3/cc.svg
  46. 5 0
      public/image/flags/4x3/cd.svg
  47. 13 0
      public/image/flags/4x3/cefta.svg
  48. 15 0
      public/image/flags/4x3/cf.svg
  49. 12 0
      public/image/flags/4x3/cg.svg
  50. 9 0
      public/image/flags/4x3/ch.svg
  51. 7 0
      public/image/flags/4x3/ci.svg
  52. 9 0
      public/image/flags/4x3/ck.svg
  53. 13 0
      public/image/flags/4x3/cl.svg
  54. 15 0
      public/image/flags/4x3/cm.svg
  55. 11 0
      public/image/flags/4x3/cn.svg
  56. 7 0
      public/image/flags/4x3/co.svg
  57. 7 0
      public/image/flags/4x3/cp.svg
  58. 7 0
      public/image/flags/4x3/cr.svg
  59. 13 0
      public/image/flags/4x3/cu.svg
  60. 13 0
      public/image/flags/4x3/cv.svg
  61. 14 0
      public/image/flags/4x3/cw.svg
  62. 15 0
      public/image/flags/4x3/cx.svg
  63. 6 0
      public/image/flags/4x3/cy.svg
  64. 5 0
      public/image/flags/4x3/cz.svg
  65. 5 0
      public/image/flags/4x3/de.svg
  66. 130 0
      public/image/flags/4x3/dg.svg
  67. 13 0
      public/image/flags/4x3/dj.svg
  68. 5 0
      public/image/flags/4x3/dk.svg
  69. 152 0
      public/image/flags/4x3/dm.svg
  70. 121 0
      public/image/flags/4x3/do.svg
  71. 5 0
      public/image/flags/4x3/dz.svg
  72. 48 0
      public/image/flags/4x3/eac.svg
  73. 138 0
      public/image/flags/4x3/ec.svg
  74. 5 0
      public/image/flags/4x3/ee.svg
  75. 38 0
      public/image/flags/4x3/eg.svg
  76. 16 0
      public/image/flags/4x3/eh.svg
  77. 8 0
      public/image/flags/4x3/er.svg
  78. 4 0
      public/image/flags/4x3/es-ct.svg
  79. 187 0
      public/image/flags/4x3/es-ga.svg
  80. 5 0
      public/image/flags/4x3/es-pv.svg
  81. 544 0
      public/image/flags/4x3/es.svg
  82. 14 0
      public/image/flags/4x3/et.svg
  83. 28 0
      public/image/flags/4x3/eu.svg
  84. 5 0
      public/image/flags/4x3/fi.svg
  85. 120 0
      public/image/flags/4x3/fj.svg
  86. 90 0
      public/image/flags/4x3/fk.svg
  87. 11 0
      public/image/flags/4x3/fm.svg
  88. 12 0
      public/image/flags/4x3/fo.svg
  89. 5 0
      public/image/flags/4x3/fr.svg
  90. 7 0
      public/image/flags/4x3/ga.svg
  91. 5 0
      public/image/flags/4x3/gb-eng.svg
  92. 132 0
      public/image/flags/4x3/gb-nir.svg
  93. 4 0
      public/image/flags/4x3/gb-sct.svg
  94. 9 0
      public/image/flags/4x3/gb-wls.svg
  95. 7 0
      public/image/flags/4x3/gb.svg
  96. 27 0
      public/image/flags/4x3/gd.svg
  97. 6 0
      public/image/flags/4x3/ge.svg
  98. 5 0
      public/image/flags/4x3/gf.svg
  99. 9 0
      public/image/flags/4x3/gg.svg
  100. 0 0
      public/image/flags/4x3/gh.svg

+ 10 - 2
README.md

@@ -270,6 +270,9 @@ fetch 不会发送跨域 cookie,除非明确指定 credentials 的值允许跨
 ## 关于useEffect
 useEffect 只会在客户端执行,具体是在浏览器绘制后执行,服务端渲染时不会运行(Next.js 在服务器端会跳过所有 useEffect / useLayoutEffect)。
 
+## 关于自定义hook
+自定义hook是组件代码的一部分(也就是说跟你把代码直接写在组件里没啥区别),其共享的是代码逻辑不是状态。
+组件重新渲染,自定义hook也会重新执行。
 
 ## TODO
 需要做的工作:
@@ -290,8 +293,13 @@ useEffect 只会在客户端执行,具体是在浏览器绘制后执行,服
   line: 913
 
 8. apollo client 升级后需要用新的方法设置返回数据的类型
-9. Apollo client的错误处理机制 
-10. 产品详情页代码优化
+9. Apollo client的错误处理机制 (src\graphql\catalog\queries\GetFilterAttributes.ts 这个接口可以测试错误)
+10. 产品详情页代码优化 --- 完成
+11. 代码eslint检查修改
+12. 下单成功后需要重新创建购物车token
+13. 详情页缓存策略(不要缓存吧)
+14. getSession  过期提示重新登录
+15. checkout 页面 src\components\Portal.tsx (15:33) 会报 document is not defined
 
 ## GetCartItem,CreateMergeCart 接口报500 (已解决)
 需要前端处理错误,不能直接报错。

+ 1 - 0
package.json

@@ -38,6 +38,7 @@
     "clsx": "^2.1.1",
     "framer-motion": "^12.23.24",
     "graphql": "^16.12.0",
+    "libphonenumber-js": "^1.13.4",
     "lucide-react": "^0.563.0",
     "next": "16.2.6",
     "next-auth": "^4.24.13",

+ 8 - 0
pnpm-lock.yaml

@@ -93,6 +93,9 @@ importers:
       graphql:
         specifier: ^16.12.0
         version: 16.14.0
+      libphonenumber-js:
+        specifier: ^1.13.4
+        version: 1.13.4
       lucide-react:
         specifier: ^0.563.0
         version: 0.563.0(react@19.2.5)
@@ -2676,6 +2679,9 @@ packages:
     resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
     engines: {node: '>= 0.8.0'}
 
+  libphonenumber-js@1.13.4:
+    resolution: {integrity: sha512-/lhWr7vq8foWN9Apksnd9v8/cfwzW6g6qKOCo25XBGkNaVCHucXO57hLy4CWHGvytvLz6Nt3J5Gs8p3jlCGFXA==}
+
   lightningcss-android-arm64@1.32.0:
     resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
     engines: {node: '>= 12.0.0'}
@@ -6593,6 +6599,8 @@ snapshots:
       prelude-ls: 1.2.1
       type-check: 0.4.0
 
+  libphonenumber-js@1.13.4: {}
+
   lightningcss-android-arm64@1.32.0:
     optional: true
 

BIN
public/image/address-bg.webp


Разница между файлами не показана из-за своего большого размера
+ 689 - 0
public/image/flags/4x3/ac.svg


Разница между файлами не показана из-за своего большого размера
+ 150 - 0
public/image/flags/4x3/ad.svg


+ 6 - 0
public/image/flags/4x3/ae.svg

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

Разница между файлами не показана из-за своего большого размера
+ 81 - 0
public/image/flags/4x3/af.svg


+ 14 - 0
public/image/flags/4x3/ag.svg

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

+ 29 - 0
public/image/flags/4x3/ai.svg

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

Разница между файлами не показана из-за своего большого размера
+ 5 - 0
public/image/flags/4x3/al.svg


+ 5 - 0
public/image/flags/4x3/am.svg

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

+ 13 - 0
public/image/flags/4x3/ao.svg

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

Разница между файлами не показана из-за своего большого размера
+ 5 - 0
public/image/flags/4x3/aq.svg


+ 32 - 0
public/image/flags/4x3/ar.svg

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

Разница между файлами не показана из-за своего большого размера
+ 109 - 0
public/image/flags/4x3/arab.svg


Разница между файлами не показана из-за своего большого размера
+ 72 - 0
public/image/flags/4x3/as.svg


+ 4 - 0
public/image/flags/4x3/at.svg

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

Разница между файлами не показана из-за своего большого размера
+ 8 - 0
public/image/flags/4x3/au.svg


+ 186 - 0
public/image/flags/4x3/aw.svg

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

+ 18 - 0
public/image/flags/4x3/ax.svg

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

+ 8 - 0
public/image/flags/4x3/az.svg

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

Разница между файлами не показана из-за своего большого размера
+ 12 - 0
public/image/flags/4x3/ba.svg


+ 6 - 0
public/image/flags/4x3/bb.svg

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

+ 4 - 0
public/image/flags/4x3/bd.svg

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

+ 7 - 0
public/image/flags/4x3/be.svg

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

+ 7 - 0
public/image/flags/4x3/bf.svg

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

+ 5 - 0
public/image/flags/4x3/bg.svg

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

+ 4 - 0
public/image/flags/4x3/bh.svg

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

+ 15 - 0
public/image/flags/4x3/bi.svg

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

+ 14 - 0
public/image/flags/4x3/bj.svg

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

+ 5 - 0
public/image/flags/4x3/bl.svg

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

Разница между файлами не показана из-за своего большого размера
+ 97 - 0
public/image/flags/4x3/bm.svg


Разница между файлами не показана из-за своего большого размера
+ 36 - 0
public/image/flags/4x3/bn.svg


Разница между файлами не показана из-за своего большого размера
+ 674 - 0
public/image/flags/4x3/bo.svg


+ 5 - 0
public/image/flags/4x3/bq.svg

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

Разница между файлами не показана из-за своего большого размера
+ 45 - 0
public/image/flags/4x3/br.svg


+ 13 - 0
public/image/flags/4x3/bs.svg

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

Разница между файлами не показана из-за своего большого размера
+ 89 - 0
public/image/flags/4x3/bt.svg


+ 13 - 0
public/image/flags/4x3/bv.svg

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

+ 7 - 0
public/image/flags/4x3/bw.svg

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

Разница между файлами не показана из-за своего большого размера
+ 18 - 0
public/image/flags/4x3/by.svg


Разница между файлами не показана из-за своего большого размера
+ 145 - 0
public/image/flags/4x3/bz.svg


Разница между файлами не показана из-за своего большого размера
+ 4 - 0
public/image/flags/4x3/ca.svg


Разница между файлами не показана из-за своего большого размера
+ 19 - 0
public/image/flags/4x3/cc.svg


+ 5 - 0
public/image/flags/4x3/cd.svg

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

+ 13 - 0
public/image/flags/4x3/cefta.svg

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

+ 15 - 0
public/image/flags/4x3/cf.svg

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

+ 12 - 0
public/image/flags/4x3/cg.svg

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

+ 9 - 0
public/image/flags/4x3/ch.svg

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

+ 7 - 0
public/image/flags/4x3/ci.svg

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

Разница между файлами не показана из-за своего большого размера
+ 9 - 0
public/image/flags/4x3/ck.svg


+ 13 - 0
public/image/flags/4x3/cl.svg

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

+ 15 - 0
public/image/flags/4x3/cm.svg

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

+ 11 - 0
public/image/flags/4x3/cn.svg

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

+ 7 - 0
public/image/flags/4x3/co.svg

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

+ 7 - 0
public/image/flags/4x3/cp.svg

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

+ 7 - 0
public/image/flags/4x3/cr.svg

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

+ 13 - 0
public/image/flags/4x3/cu.svg

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

Разница между файлами не показана из-за своего большого размера
+ 13 - 0
public/image/flags/4x3/cv.svg


+ 14 - 0
public/image/flags/4x3/cw.svg

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

Разница между файлами не показана из-за своего большого размера
+ 15 - 0
public/image/flags/4x3/cx.svg


Разница между файлами не показана из-за своего большого размера
+ 6 - 0
public/image/flags/4x3/cy.svg


+ 5 - 0
public/image/flags/4x3/cz.svg

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

+ 5 - 0
public/image/flags/4x3/de.svg

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

Разница между файлами не показана из-за своего большого размера
+ 130 - 0
public/image/flags/4x3/dg.svg


+ 13 - 0
public/image/flags/4x3/dj.svg

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

+ 5 - 0
public/image/flags/4x3/dk.svg

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

+ 152 - 0
public/image/flags/4x3/dm.svg

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

Разница между файлами не показана из-за своего большого размера
+ 121 - 0
public/image/flags/4x3/do.svg


+ 5 - 0
public/image/flags/4x3/dz.svg

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

Разница между файлами не показана из-за своего большого размера
+ 48 - 0
public/image/flags/4x3/eac.svg


Разница между файлами не показана из-за своего большого размера
+ 138 - 0
public/image/flags/4x3/ec.svg


+ 5 - 0
public/image/flags/4x3/ee.svg

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

Разница между файлами не показана из-за своего большого размера
+ 38 - 0
public/image/flags/4x3/eg.svg


+ 16 - 0
public/image/flags/4x3/eh.svg

@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-eh" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="eh-a">
+      <path fill-opacity=".7" d="M-158.7 0H524v512h-682.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#eh-a)" transform="translate(148.8)scale(.94)">
+    <path fill="#000001" d="M-158.3 0h680.9v255.3h-680.9z"/>
+    <path fill="#007a3d" d="M-158.3 255.3h680.9v255.3h-680.9z"/>
+    <path fill="#fff" d="M-158.3 148.9h680.9v212.8h-680.9z"/>
+    <path fill="#c4111b" d="m-158.3 0 340.4 255.3-340.4 255.3Z"/>
+    <circle cx="352.3" cy="255.3" r="68.1" fill="#c4111b"/>
+    <circle cx="377.9" cy="255.3" r="68.1" fill="#fff"/>
+    <path fill="#c4111b" d="m334 296.5 29.1-20.7 28.8 21-10.8-34 29-20.9-35.7-.2-11-34-11.2 33.9-35.7-.2 28.7 21.2-11.1 34z"/>
+  </g>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 8 - 0
public/image/flags/4x3/er.svg


+ 4 - 0
public/image/flags/4x3/es-ct.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es-ct" viewBox="0 0 640 480">
+  <path fill="#fcdd09" d="M0 0h640v480H0z"/>
+  <path stroke="#da121a" stroke-width="60" d="M0 90h810m0 120H0m0 120h810m0 120H0" transform="scale(.79012 .88889)"/>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 187 - 0
public/image/flags/4x3/es-ga.svg


+ 5 - 0
public/image/flags/4x3/es-pv.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-es-pv" viewBox="0 0 640 480">
+  <path fill="#D52B1E" d="M0 0h640v480H0z"/>
+  <path fill="#009B48" d="M0 0h53.1l133.4 100.1 133.5 100L586.9 0H640v39.9l-133.4 100L373.2 240 640 440.2V480h-53.1L453.5 380A69411.7 69411.7 0 0 0 320 279.9L53.1 480H0v-39.8l133.4-100.1L266.8 240 0 39.9v-20z"/>
+  <path fill="#FFF" d="M288.1 0h63.8v208.1H640v63.8H351.9V480h-63.8V271.9H0v-63.8h288.1v-104z"/>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 544 - 0
public/image/flags/4x3/es.svg


Разница между файлами не показана из-за своего большого размера
+ 14 - 0
public/image/flags/4x3/et.svg


+ 28 - 0
public/image/flags/4x3/eu.svg

@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-eu" viewBox="0 0 640 480">
+  <defs>
+    <g id="eu-d">
+      <g id="eu-b">
+        <path id="eu-a" d="m0-1-.3 1 .5.1z"/>
+        <use xlink:href="#eu-a" transform="scale(-1 1)"/>
+      </g>
+      <g id="eu-c">
+        <use xlink:href="#eu-b" transform="rotate(72)"/>
+        <use xlink:href="#eu-b" transform="rotate(144)"/>
+      </g>
+      <use xlink:href="#eu-c" transform="scale(-1 1)"/>
+    </g>
+  </defs>
+  <path fill="#039" d="M0 0h640v480H0z"/>
+  <g fill="#fc0" transform="translate(320 242.3)scale(23.7037)">
+    <use xlink:href="#eu-d" width="100%" height="100%" y="-6"/>
+    <use xlink:href="#eu-d" width="100%" height="100%" y="6"/>
+    <g id="eu-e">
+      <use xlink:href="#eu-d" width="100%" height="100%" x="-6"/>
+      <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(-144 -2.3 -2.1)"/>
+      <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(144 -2.1 -2.3)"/>
+      <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(72 -4.7 -2)"/>
+      <use xlink:href="#eu-d" width="100%" height="100%" transform="rotate(72 -5 .5)"/>
+    </g>
+    <use xlink:href="#eu-e" width="100%" height="100%" transform="scale(-1 1)"/>
+  </g>
+</svg>

+ 5 - 0
public/image/flags/4x3/fi.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fi" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#002f6c" d="M0 174.5h640v131H0z"/>
+  <path fill="#002f6c" d="M175.5 0h130.9v480h-131z"/>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 120 - 0
public/image/flags/4x3/fj.svg


Разница между файлами не показана из-за своего большого размера
+ 90 - 0
public/image/flags/4x3/fk.svg


+ 11 - 0
public/image/flags/4x3/fm.svg

@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fm" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="fm-a">
+      <path fill-opacity=".7" d="M-81.3 0h682.6v512H-81.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#fm-a)" transform="translate(76.3)scale(.94)">
+    <path fill="#6797d6" d="M-252 0H772v512H-252z"/>
+    <path fill="#fff" d="m259.8 123-32.4 22.2 12.4-35.9-32.5-22.2h40.1l12.4-35.9 12.4 36h40l-32.4 22.1 12.4 35.9M259.8 390l-32.4-22.2 12.4 36-32.5 22.1h40.1l12.4 35.9 12.4-36 40 .1-32.4-22.2 12.4-35.9m-188.4-92.4L79.3 306l1.4-38-37.5-11.7 38.4-11.7 1.3-38 22.3 30.8 38.4-11.8-24.6 30.7 22.4 30.7m274.2-11.7 24.6 30.7-1.4-38 37.5-11.7-38.4-11.7-1.3-38-22.3 30.8-38.4-11.8 24.6 30.7-22.4 30.7"/>
+  </g>
+</svg>

+ 12 - 0
public/image/flags/4x3/fo.svg

@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-fo" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="fo-a">
+      <path fill-opacity=".7" d="M-78 32h640v480H-78z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="0" clip-path="url(#fo-a)" transform="translate(78 -32)">
+    <path fill="#fff" d="M-78 32h663.9v480H-78z"/>
+    <path fill="#003897" d="M-76 218.7h185.9V32H216v186.7h371.8v106.6H216V512H109.9V325.3h-186z"/>
+    <path fill="#d72828" d="M-76 245.3h212.4V32h53.1v213.3H588v53.4H189.5V512h-53V298.7H-76z"/>
+  </g>
+</svg>

+ 5 - 0
public/image/flags/4x3/fr.svg

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

+ 7 - 0
public/image/flags/4x3/ga.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-ga" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#ffe700" d="M640 480H0V0h640z"/>
+    <path fill="#36a100" d="M640 160H0V0h640z"/>
+    <path fill="#006dbc" d="M640 480H0V320h640z"/>
+  </g>
+</svg>

+ 5 - 0
public/image/flags/4x3/gb-eng.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb-eng" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#ce1124" d="M281.6 0h76.8v480h-76.8z"/>
+  <path fill="#ce1124" d="M0 201.6h640v76.8H0z"/>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 132 - 0
public/image/flags/4x3/gb-nir.svg


+ 4 - 0
public/image/flags/4x3/gb-sct.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb-sct" viewBox="0 0 640 480">
+  <path fill="#0065bd" d="M0 0h640v480H0z"/>
+  <path stroke="#fff" stroke-width=".6" d="m0 0 5 3M0 3l5-3" transform="scale(128 160)"/>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 9 - 0
public/image/flags/4x3/gb-wls.svg


+ 7 - 0
public/image/flags/4x3/gb.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-gb" viewBox="0 0 640 480">
+  <path fill="#012169" d="M0 0h640v480H0z"/>
+  <path fill="#FFF" d="m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
+  <path fill="#C8102E" d="m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
+  <path fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
+  <path fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
+</svg>

+ 27 - 0
public/image/flags/4x3/gd.svg

@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gd" viewBox="0 0 640 480">
+  <defs>
+    <g id="gd-c">
+      <g id="gd-b">
+        <path id="gd-a" fill="#fcd116" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+        <use xlink:href="#gd-a" transform="scale(-1 1)"/>
+      </g>
+      <use xlink:href="#gd-b" transform="rotate(72)"/>
+      <use xlink:href="#gd-b" transform="rotate(144)"/>
+      <use xlink:href="#gd-b" transform="rotate(216)"/>
+      <use xlink:href="#gd-b" transform="rotate(288)"/>
+    </g>
+  </defs>
+  <path fill="#ce1126" d="M0 0h640v480H0z"/>
+  <path fill="#007a5e" d="M67.2 67.2h505.6v345.6H67.2z"/>
+  <path fill="#fcd116" d="M67.2 67.3h505.6L67.2 412.9h505.6z"/>
+  <circle cx="319.9" cy="240.1" r="57.6" fill="#ce1126"/>
+  <use xlink:href="#gd-c" width="100%" height="100%" transform="translate(320 240)scale(52.8)"/>
+  <use xlink:href="#gd-d" width="100%" height="100%" x="-100" transform="translate(-30.3)"/>
+  <use xlink:href="#gd-c" id="gd-d" width="100%" height="100%" transform="translate(320 33.6)scale(31.2)"/>
+  <use xlink:href="#gd-d" width="100%" height="100%" x="100" transform="translate(30.3)"/>
+  <path fill="#ce1126" d="M102.3 240.7a80.4 80.4 0 0 0 33.5 33.2 111 111 0 0 0-11.3-45z"/>
+  <path fill="#fcd116" d="M90.1 194.7c10.4 21.7-27.1 73.7 35.5 85.9a63.2 63.2 0 0 1-10.9-41.9 70 70 0 0 1 32.5 30.8c16.4-59.5-42-55.8-57.1-74.8"/>
+  <use xlink:href="#gd-d" width="100%" height="100%" x="-100" transform="translate(-30.3 414.6)"/>
+  <use xlink:href="#gd-c" width="100%" height="100%" transform="translate(320 448.2)scale(31.2)"/>
+  <use xlink:href="#gd-d" width="100%" height="100%" x="100" transform="translate(30.3 414.6)"/>
+</svg>

Разница между файлами не показана из-за своего большого размера
+ 6 - 0
public/image/flags/4x3/ge.svg


+ 5 - 0
public/image/flags/4x3/gf.svg

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

+ 9 - 0
public/image/flags/4x3/gg.svg

@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-gg" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#e8112d" d="M256 0h128v480H256z"/>
+  <path fill="#e8112d" d="M0 176h640v128H0z"/>
+  <path id="gg-a" fill="#f9dd16" d="m110 286.7 23.3-23.4h210v-46.6h-210L110 193.3z"/>
+  <use xlink:href="#gg-a" width="36" height="24" transform="rotate(90 320 240)"/>
+  <use xlink:href="#gg-a" width="36" height="24" transform="rotate(-90 320 240)"/>
+  <use xlink:href="#gg-a" width="36" height="24" transform="rotate(180 320 240)"/>
+</svg>

+ 0 - 0
public/image/flags/4x3/gh.svg


Некоторые файлы не были показаны из-за большого количества измененных файлов