world-flags 0.6.2 → 0.6.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -27,7 +27,7 @@ Use ImageMagick to resize, using 32px version as base
27
27
  *Generate adsjusted css files:*
28
28
 
29
29
  The CSS files must have positioning adjusted to fit the new sprites:
30
- Use the resizing tool in `lib/world-flags/tools/resize-css.rb`
30
+ Use the resizing tool in `lib/world-flags/tools/resize_css.rb`
31
31
  Edit the last part where ResizeCss is initialized
32
32
 
33
33
  `resizer = ResizeCss.new 32, 24`
@@ -40,7 +40,11 @@ The ResizeCSS initializer takes many additional options, including :auto-exec to
40
40
 
41
41
  See the code for more details on how to adjust to fit your needs.
42
42
 
43
- Note: Needs some love in order to reflect latest stylesheet design.
43
+ Run the resizer
44
+
45
+ `$ ruby resize_css.rb`
46
+
47
+ TODO: refactor resize css tool into rake task or similar that takes arguments!
44
48
 
45
49
  ## Configuration
46
50
 
@@ -51,6 +55,8 @@ In you asset `application.css` manifest file:
51
55
  *= require_self
52
56
  *= require_tree .
53
57
  *= require flags/basic
58
+ *= require flags/flags16
59
+ *= require flags/flags16_semi
54
60
  *= require flags/flags32
55
61
  *= require flags/flags32_semi
56
62
  */
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.2
1
+ 0.6.2.1
@@ -2,6 +2,10 @@
2
2
  # convert flags32.png -resize 75% flags24.png
3
3
  # convert flags32_semi.png -resize 75% flags24_semi.png
4
4
 
5
+ require 'open3'
6
+
7
+ # TODO: Needs some heavy refactoring and cleaning up!
8
+
5
9
  class ResizeCss
6
10
 
7
11
  attr_reader :base_size, :new_size, :stylesheet_folder, :stylesheet_name, :sprite_name
@@ -18,19 +22,59 @@ class ResizeCss
18
22
  @template_lang = options[:template_lang] if options[:template_lang]
19
23
  @size_prefix = options[:size_prefix] if options[:size_prefix]
20
24
 
21
- command1 = "convert #{sprite_name}#{base_size}.png -resize #{factor * 100}% #{sprite_name}#{new_size}.png"
22
- command2 = "convert #{sprite_name}#{base_size}_semi.png -resize #{factor * 100}% #{sprite_name}#{new_size}_semi.png"
25
+ resize = "convert #{sprite_name}#{base_size}.png -resize #{factor * 100}%"
26
+ new_file_name = "#{sprite_name}#{new_size}"
27
+
28
+ command_resize = "#{resize} #{new_file_name}.png"
29
+ command_resize_light = "#{resize} #{lighten} #{new_file_name}_light.png"
30
+ command_resize_dark = "#{resize} #{darken} #{new_file_name}_dark.png"
31
+ command_resize_gray = "#{resize} #{grayscale} #{new_file_name}_gray.png"
23
32
 
24
33
  if auto_exec?
25
- %x[command1]
26
- %x[command2]
34
+ Open3.popen3("pwd") do |stdin, stdout, e, t|
35
+ base_dir = stdout
36
+ Open3.popen3 "cd #{images_dir}"
37
+
38
+ Open3.popen3 command_resize
39
+ Open3.popen3 command_resize_light if lighten?
40
+ Open3.popen3 command_resize_dark if darken?
41
+ Open3.popen3 command_resize_gray if gray?
42
+
43
+ Open3.popen3 "cd #{base_dir}"
44
+ end
27
45
  else
28
46
  puts "Use ImageMagick to resize #{sprite_name} sprites:"
29
- puts command1
30
- puts command2
47
+ puts command_resize
48
+ puts command_resize_light if lighten?
49
+ puts command_resize_dark if darken?
50
+ puts command_resize_gray if gray?
31
51
  end
32
52
  end
33
53
 
54
+ def lighten?
55
+ options[:light]
56
+ end
57
+
58
+ def darken?
59
+ options[:dark]
60
+ end
61
+
62
+ def gray?
63
+ options[:gray]
64
+ end
65
+
66
+ def lighten
67
+ "-level 0%,100%,2.0"
68
+ end
69
+
70
+ def darken
71
+ "-level 0%,100%,0.5"
72
+ end
73
+
74
+ def grayscale
75
+ "-colorspace Gray"
76
+ end
77
+
34
78
  def auto_exec?
35
79
  options[:auto_exec]
36
80
  end
@@ -39,16 +83,24 @@ class ResizeCss
39
83
  @size_prefix ||= 'f'
40
84
  end
41
85
 
42
- def stylesheet_path
43
- "../../../vendor/assets/stylesheets"
86
+ def vendor_assets_path
87
+ "../../../vendor/assets/"
88
+ end
89
+
90
+ def images_dir
91
+ @images_dir ||= File.join(vendor_assets_path, 'images')
92
+ end
93
+
94
+ def stylesheets_dir
95
+ @stylesheets_dir ||= File.join(vendor_assets_path, 'stylesheets')
44
96
  end
45
97
 
46
- def stylesheet_folder
47
- @stylesheet_folder ||= "flags"
98
+ def stylesheets_folder
99
+ @stylesheets_folder ||= "flags"
48
100
  end
49
101
 
50
102
  def stylesheet_full_path
51
- @stylesheet_full_path ||= File.join(stylesheet_path, stylesheet_folder)
103
+ @stylesheet_full_path ||= File.join(stylesheets_dir, stylesheets_folder)
52
104
  end
53
105
 
54
106
  def stylesheet_name
@@ -64,55 +116,83 @@ class ResizeCss
64
116
  end
65
117
 
66
118
  def template_ext
67
- template_lang ? ".#{template_lang}" : ''
119
+ !blank?(template_lang) ? ".#{template_lang}" : ''
120
+ end
121
+
122
+ def blank? txt
123
+ !txt || txt.empty?
68
124
  end
69
125
 
70
126
  def execute options = {:ext => 'css', :semi => false}
71
127
  semi = options[:semi] ? '-semi': ''
72
128
  ext = options[:ext] ? options[:ext] : 'css'
73
129
  src_file_path = File.expand_path "#{stylesheet_full_path}/#{stylesheet_name}#{base_size}#{semi}.#{ext}#{template_ext}", File.dirname(__FILE__)
74
- target_file_path = File.expand_path "#{stylesheet_full_path}/flags/flags#{new_size}#{semi}.#{ext}#{template_ext}", File.dirname(__FILE__)
130
+ target_file_path = File.expand_path "#{stylesheet_full_path}/#{stylesheet_name}#{new_size}#{semi}.#{ext}#{template_ext}", File.dirname(__FILE__)
131
+
132
+ puts "src: #{src_file_path} -> #{target_file_path}"
75
133
 
76
134
  lines = File.open(src_file_path).readlines
77
135
 
78
- img_exp = "#{sprite_name}#{base_size}"
79
- replace_img = "#{sprite_name}#{new_size}"
136
+ img_exp = "#{sprite_name}-#{base_size}"
137
+ replace_img = "#{sprite_name}-#{new_size}"
138
+
139
+ # puts "img_exp: #{img_exp}"
140
+ # puts "replace_img: #{replace_img}"
80
141
 
81
142
  repositioned_css = lines.map do |line|
82
- pos_match = line.match /.+position:0 -(\d+)px.*/
143
+ pos_match = line.match /.+position:\s-?(\d+)(px)?\s-?(\d+)(px)?/
144
+ # puts "pos_match: #{line} - #{pos_match.inspect}"
83
145
  img_match = line.match /#{img_exp}/
84
146
  new_line = line.sub(/#{img_exp}/, replace_img) if img_match
85
147
  new_line = replace_pos pos_match, line if pos_match
148
+ # puts "line: #{line} -> #{new_line}"
86
149
  new_line ||= line
87
150
  new_line
88
151
  end.join("")
89
152
 
153
+ puts "Write new CSS:"
154
+ puts repositioned_css
155
+
90
156
  File.open(target_file_path, 'w') do |f|
91
157
  f.puts repositioned_css.gsub ".#{size_prefix}#{base_size}", ".#{size_prefix}#{new_size}"
92
158
  end
93
159
  end
94
160
 
95
161
  def factor
96
- @factor ||= new_size / base_size
162
+ @factor ||= new_size / base_size.to_f
97
163
  end
98
164
 
99
165
  def replace_pos pos_match, line
100
- pos_y = pos_match[1].to_i
166
+ pos_x = pos_match[1].to_i
167
+ new_pos_x = (pos_x * factor).to_i.to_s
168
+
169
+ pos_y = pos_match[3].to_i
101
170
  new_pos_y = (pos_y * factor).to_i.to_s
102
- # puts "pos: #{pos_y} -> #{new_pos_y}"
103
- rest = line[10..-1]
171
+
172
+ # puts "new pos: #{new_pos_x}, #{new_pos_y}"
173
+
174
+ rest = line[6..-1]
175
+ rest = rest.sub /#{pos_x}/, new_pos_x.to_s
104
176
  rest = rest.sub /#{pos_y}/, new_pos_y.to_s
177
+
178
+ rest = rest.gsub /#{base_size}px;/, "#{new_size}px;"
179
+
105
180
  # first = line[0..10].sub(".f#{base_size}", ".f#{newsize}")
106
- line[0..10] + rest
181
+ line[0..5] + rest
107
182
  end
108
183
  end
184
+ # options
185
+ # - :stylesheet_folder, :stylesheet_name, :sprite_name, :template_lang, :size_prefix
186
+ # - :dark, :light, :gray
187
+ # - :auto-exec
109
188
 
110
189
  # change last argument to fit sprite size of flags
111
190
  # first arg is the flag size (css files) that is used as base
112
191
  resizer = ResizeCss.new 24, 48
113
192
 
193
+
114
194
  resizer.execute
115
195
  resizer.execute :ext => 'css.scss'
116
196
 
117
- resizer.execute :semi => true
118
- resizer.execute :ext => 'css.scss', :semi => true
197
+ # resizer.execute :semi => true
198
+ # resizer.execute :ext => 'css.scss', :semi => true
@@ -13,7 +13,7 @@
13
13
  border: 1px solid black;
14
14
  }
15
15
 
16
- .flag.selected {
16
+ .selected {
17
17
  border: 1px solid black;
18
18
  }
19
19
  }
@@ -1,247 +1,247 @@
1
1
  .f16 .flag {
2
2
  background:url(<%= asset_path 'flags/flags16.png' %>) no-repeat;
3
3
  }
4
- .f16 .flag._African_Union{background-position:0 -0px;}
5
- .f16 .flag._Arab_League{background-position:0 -16px;}
6
- .f16 .flag._ASEAN{background-position:0 -32px;}
7
- .f16 .flag._CARICOM{background-position:0 -48px;}
8
- .f16 .flag._CIS{background-position:0 -64px;}
9
- .f16 .flag._Commonwealth{background-position:0 -80px;}
10
- .f16 .flag._England{background-position:0 -96px;}
11
- .f16 .flag._European_Union{background-position:0 -112px;}
12
- .f16 .flag._Islamic_Conference{background-position:0 -128px;}
13
- .f16 .flag._Kosovo{background-position:0 -144px;}
14
- .f16 .flag._NATO{background-position:0 -160px;}
15
- .f16 .flag._Northern_Cyprus{background-position:0 -176px;}
16
- .f16 .flag._Northern_Ireland{background-position:0 -192px;}
17
- .f16 .flag._Olympic_Movement{background-position:0 -208px;}
18
- .f16 .flag._OPEC{background-position:0 -224px;}
19
- .f16 .flag._Red_Cross{background-position:0 -240px;}
20
- .f16 .flag._Scotland{background-position:0 -256px;}
21
- .f16 .flag._Somaliland{background-position:0 -272px;}
22
- .f16 .flag._Tibet{background-position:0 -288px;}
23
- .f16 .flag._United_Nations{background-position:0 -304px;}
24
- .f16 .flag._Wales{background-position:0 -320px;}
25
- .f16 .flag.ad{background-position:0 -336px;}
26
- .f16 .flag.ae{background-position:0 -352px;}
27
- .f16 .flag.af{background-position:0 -368px;}
28
- .f16 .flag.ag{background-position:0 -384px;}
29
- .f16 .flag.ai{background-position:0 -400px;}
30
- .f16 .flag.al{background-position:0 -416px;}
31
- .f16 .flag.am{background-position:0 -432px;}
32
- .f16 .flag.an{background-position:0 -448px;}
33
- .f16 .flag.ao{background-position:0 -464px;}
34
- .f16 .flag.aq{background-position:0 -480px;}
35
- .f16 .flag.ar{background-position:0 -496px;}
36
- .f16 .flag.as{background-position:0 -512px;}
37
- .f16 .flag.at{background-position:0 -528px;}
38
- .f16 .flag.au{background-position:0 -544px;}
39
- .f16 .flag.aw{background-position:0 -560px;}
40
- .f16 .flag.az{background-position:0 -576px;}
41
- .f16 .flag.ba{background-position:0 -592px;}
42
- .f16 .flag.bb{background-position:0 -608px;}
43
- .f16 .flag.bd{background-position:0 -624px;}
44
- .f16 .flag.be{background-position:0 -640px;}
45
- .f16 .flag.bf{background-position:0 -656px;}
46
- .f16 .flag.bg{background-position:0 -672px;}
47
- .f16 .flag.bh{background-position:0 -688px;}
48
- .f16 .flag.bi{background-position:0 -704px;}
49
- .f16 .flag.bj{background-position:0 -720px;}
50
- .f16 .flag.bm{background-position:0 -736px;}
51
- .f16 .flag.bn{background-position:0 -752px;}
52
- .f16 .flag.bo{background-position:0 -768px;}
53
- .f16 .flag.br{background-position:0 -784px;}
54
- .f16 .flag.bs{background-position:0 -800px;}
55
- .f16 .flag.bt{background-position:0 -816px;}
56
- .f16 .flag.bw{background-position:0 -832px;}
57
- .f16 .flag.by{background-position:0 -848px;}
58
- .f16 .flag.bz{background-position:0 -864px;}
59
- .f16 .flag.ca{background-position:0 -880px;}
60
- .f16 .flag.cg{background-position:0 -896px;}
61
- .f16 .flag.cf{background-position:0 -912px;}
62
- .f16 .flag.cd{background-position:0 -928px;}
63
- .f16 .flag.ch{background-position:0 -944px;}
64
- .f16 .flag.ci{background-position:0 -960px;}
65
- .f16 .flag.ck{background-position:0 -976px;}
66
- .f16 .flag.cl{background-position:0 -992px;}
67
- .f16 .flag.cm{background-position:0 -1008px;}
68
- .f16 .flag.cn{background-position:0 -1024px;}
69
- .f16 .flag.co{background-position:0 -1040px;}
70
- .f16 .flag.cr{background-position:0 -1056px;}
71
- .f16 .flag.cu{background-position:0 -1072px;}
72
- .f16 .flag.cv{background-position:0 -1088px;}
73
- .f16 .flag.cy{background-position:0 -1104px;}
74
- .f16 .flag.cz{background-position:0 -1120px;}
75
- .f16 .flag.de{background-position:0 -1136px;}
76
- .f16 .flag.dj{background-position:0 -1152px;}
77
- .f16 .flag.dk{background-position:0 -1168px;}
78
- .f16 .flag.dm{background-position:0 -1184px;}
79
- .f16 .flag.do{background-position:0 -1200px;}
80
- .f16 .flag.dz{background-position:0 -1216px;}
81
- .f16 .flag.ec{background-position:0 -1232px;}
82
- .f16 .flag.ee{background-position:0 -1248px;}
83
- .f16 .flag.eg{background-position:0 -1264px;}
84
- .f16 .flag.eh{background-position:0 -1280px;}
85
- .f16 .flag.er{background-position:0 -1296px;}
86
- .f16 .flag.es{background-position:0 -1312px;}
87
- .f16 .flag.et{background-position:0 -1328px;}
88
- .f16 .flag.fi{background-position:0 -1344px;}
89
- .f16 .flag.fj{background-position:0 -1360px;}
90
- .f16 .flag.fm{background-position:0 -1376px;}
91
- .f16 .flag.fo{background-position:0 -1392px;}
92
- .f16 .flag.fr{background-position:0 -1408px;}
93
- .f16 .flag.ga{background-position:0 -1424px;}
94
- .f16 .flag.gb{background-position:0 -1440px;}
95
- .f16 .flag.gd{background-position:0 -1456px;}
96
- .f16 .flag.ge{background-position:0 -1472px;}
97
- .f16 .flag.gg{background-position:0 -1488px;}
98
- .f16 .flag.gh{background-position:0 -1504px;}
99
- .f16 .flag.gi{background-position:0 -1520px;}
100
- .f16 .flag.gl{background-position:0 -1536px;}
101
- .f16 .flag.gm{background-position:0 -1552px;}
102
- .f16 .flag.gn{background-position:0 -1568px;}
103
- .f16 .flag.gp{background-position:0 -1584px;}
104
- .f16 .flag.gq{background-position:0 -1600px;}
105
- .f16 .flag.gr{background-position:0 -1616px;}
106
- .f16 .flag.gt{background-position:0 -1632px;}
107
- .f16 .flag.gu{background-position:0 -1648px;}
108
- .f16 .flag.gw{background-position:0 -1664px;}
109
- .f16 .flag.gy{background-position:0 -1680px;}
110
- .f16 .flag.hk{background-position:0 -1696px;}
111
- .f16 .flag.hn{background-position:0 -1712px;}
112
- .f16 .flag.hr{background-position:0 -1728px;}
113
- .f16 .flag.ht{background-position:0 -1744px;}
114
- .f16 .flag.hu{background-position:0 -1760px;}
115
- .f16 .flag.id{background-position:0 -1776px;}
116
- .f16 .flag.mc{background-position:0 -1776px;}
117
- .f16 .flag.ie{background-position:0 -1792px;}
118
- .f16 .flag.il{background-position:0 -1808px;}
119
- .f16 .flag.im{background-position:0 -1824px;}
120
- .f16 .flag.in{background-position:0 -1840px;}
121
- .f16 .flag.iq{background-position:0 -1856px;}
122
- .f16 .flag.ir{background-position:0 -1872px;}
123
- .f16 .flag.is{background-position:0 -1888px;}
124
- .f16 .flag.it{background-position:0 -1904px;}
125
- .f16 .flag.je{background-position:0 -1920px;}
126
- .f16 .flag.jm{background-position:0 -1936px;}
127
- .f16 .flag.jo{background-position:0 -1952px;}
128
- .f16 .flag.jp{background-position:0 -1968px;}
129
- .f16 .flag.ke{background-position:0 -1984px;}
130
- .f16 .flag.kg{background-position:0 -2000px;}
131
- .f16 .flag.kh{background-position:0 -2016px;}
132
- .f16 .flag.ki{background-position:0 -2032px;}
133
- .f16 .flag.km{background-position:0 -2048px;}
134
- .f16 .flag.kn{background-position:0 -2064px;}
135
- .f16 .flag.kp{background-position:0 -2080px;}
136
- .f16 .flag.kr{background-position:0 -2096px;}
137
- .f16 .flag.kw{background-position:0 -2112px;}
138
- .f16 .flag.ky{background-position:0 -2128px;}
139
- .f16 .flag.kz{background-position:0 -2144px;}
140
- .f16 .flag.la{background-position:0 -2160px;}
141
- .f16 .flag.lb{background-position:0 -2176px;}
142
- .f16 .flag.lc{background-position:0 -2192px;}
143
- .f16 .flag.li{background-position:0 -2208px;}
144
- .f16 .flag.lk{background-position:0 -2224px;}
145
- .f16 .flag.lr{background-position:0 -2240px;}
146
- .f16 .flag.ls{background-position:0 -2256px;}
147
- .f16 .flag.lt{background-position:0 -2272px;}
148
- .f16 .flag.lu{background-position:0 -2288px;}
149
- .f16 .flag.lv{background-position:0 -2304px;}
150
- .f16 .flag.ly{background-position:0 -2320px;}
151
- .f16 .flag.ma{background-position:0 -2336px;}
152
- .f16 .flag.md{background-position:0 -2352px;}
153
- .f16 .flag.me{background-position:0 -2368px;}
154
- .f16 .flag.mg{background-position:0 -2384px;}
155
- .f16 .flag.mh{background-position:0 -2400px;}
156
- .f16 .flag.mk{background-position:0 -2416px;}
157
- .f16 .flag.ml{background-position:0 -2432px;}
158
- .f16 .flag.mm{background-position:0 -2448px;}
159
- .f16 .flag.mn{background-position:0 -2464px;}
160
- .f16 .flag.mo{background-position:0 -2480px;}
161
- .f16 .flag.mq{background-position:0 -2496px;}
162
- .f16 .flag.mr{background-position:0 -2512px;}
163
- .f16 .flag.ms{background-position:0 -2528px;}
164
- .f16 .flag.mt{background-position:0 -2544px;}
165
- .f16 .flag.mu{background-position:0 -2560px;}
166
- .f16 .flag.mv{background-position:0 -2576px;}
167
- .f16 .flag.mw{background-position:0 -2592px;}
168
- .f16 .flag.mx{background-position:0 -2608px;}
169
- .f16 .flag.my{background-position:0 -2624px;}
170
- .f16 .flag.mz{background-position:0 -2640px;}
171
- .f16 .flag.na{background-position:0 -2656px;}
172
- .f16 .flag.nc{background-position:0 -2672px;}
173
- .f16 .flag.ne{background-position:0 -2688px;}
174
- .f16 .flag.ng{background-position:0 -2704px;}
175
- .f16 .flag.ni{background-position:0 -2720px;}
176
- .f16 .flag.nl{background-position:0 -2736px;}
177
- .f16 .flag.no{background-position:0 -2752px;}
178
- .f16 .flag.np{background-position:0 -2768px;}
179
- .f16 .flag.nr{background-position:0 -2784px;}
180
- .f16 .flag.nz{background-position:0 -2800px;}
181
- .f16 .flag.om{background-position:0 -2816px;}
182
- .f16 .flag.pa{background-position:0 -2832px;}
183
- .f16 .flag.pe{background-position:0 -2848px;}
184
- .f16 .flag.pf{background-position:0 -2864px;}
185
- .f16 .flag.pg{background-position:0 -2880px;}
186
- .f16 .flag.ph{background-position:0 -2896px;}
187
- .f16 .flag.pk{background-position:0 -2912px;}
188
- .f16 .flag.pl{background-position:0 -2928px;}
189
- .f16 .flag.pr{background-position:0 -2944px;}
190
- .f16 .flag.ps{background-position:0 -2960px;}
191
- .f16 .flag.pt{background-position:0 -2976px;}
192
- .f16 .flag.pw{background-position:0 -2992px;}
193
- .f16 .flag.py{background-position:0 -3008px;}
194
- .f16 .flag.qa{background-position:0 -3024px;}
195
- .f16 .flag.re{background-position:0 -3040px;}
196
- .f16 .flag.ro{background-position:0 -3056px;}
197
- .f16 .flag.rs{background-position:0 -3072px;}
198
- .f16 .flag.ru{background-position:0 -3088px;}
199
- .f16 .flag.rw{background-position:0 -3104px;}
200
- .f16 .flag.sa{background-position:0 -3120px;}
201
- .f16 .flag.sb{background-position:0 -3136px;}
202
- .f16 .flag.sc{background-position:0 -3152px;}
203
- .f16 .flag.sd{background-position:0 -3168px;}
204
- .f16 .flag.se{background-position:0 -3184px;}
205
- .f16 .flag.sg{background-position:0 -3200px;}
206
- .f16 .flag.si{background-position:0 -3216px;}
207
- .f16 .flag.sk{background-position:0 -3232px;}
208
- .f16 .flag.sl{background-position:0 -3248px;}
209
- .f16 .flag.sm{background-position:0 -3264px;}
210
- .f16 .flag.sn{background-position:0 -3280px;}
211
- .f16 .flag.so{background-position:0 -3296px;}
212
- .f16 .flag.sr{background-position:0 -3312px;}
213
- .f16 .flag.st{background-position:0 -3328px;}
214
- .f16 .flag.sv{background-position:0 -3344px;}
215
- .f16 .flag.sy{background-position:0 -3360px;}
216
- .f16 .flag.sz{background-position:0 -3376px;}
217
- .f16 .flag.tc{background-position:0 -3392px;}
218
- .f16 .flag.td{background-position:0 -3408px;}
219
- .f16 .flag.tg{background-position:0 -3424px;}
220
- .f16 .flag.th{background-position:0 -3440px;}
221
- .f16 .flag.tj{background-position:0 -3456px;}
222
- .f16 .flag.tl{background-position:0 -3472px;}
223
- .f16 .flag.tm{background-position:0 -3488px;}
224
- .f16 .flag.tn{background-position:0 -3504px;}
225
- .f16 .flag.to{background-position:0 -3520px;}
226
- .f16 .flag.tr{background-position:0 -3536px;}
227
- .f16 .flag.tt{background-position:0 -3552px;}
228
- .f16 .flag.tv{background-position:0 -3568px;}
229
- .f16 .flag.tw{background-position:0 -3584px;}
230
- .f16 .flag.tz{background-position:0 -3600px;}
231
- .f16 .flag.ua{background-position:0 -3616px;}
232
- .f16 .flag.ug{background-position:0 -3632px;}
233
- .f16 .flag.us{background-position:0 -3648px;}
234
- .f16 .flag.uy{background-position:0 -3664px;}
235
- .f16 .flag.uz{background-position:0 -3680px;}
236
- .f16 .flag.va{background-position:0 -3696px;}
237
- .f16 .flag.vc{background-position:0 -3712px;}
238
- .f16 .flag.ve{background-position:0 -3728px;}
239
- .f16 .flag.vg{background-position:0 -3744px;}
240
- .f16 .flag.vi{background-position:0 -3760px;}
241
- .f16 .flag.vn{background-position:0 -3776px;}
242
- .f16 .flag.vu{background-position:0 -3792px;}
243
- .f16 .flag.ws{background-position:0 -3808px;}
244
- .f16 .flag.ye{background-position:0 -3824px;}
245
- .f16 .flag.za{background-position:0 -3840px;}
246
- .f16 .flag.zm{background-position:0 -3856px;}
247
- .f16 .flag.zw{background-position:0 -3872px;}
4
+ .f16 ._African_Union{background-position:0 -0px;}
5
+ .f16 ._Arab_League{background-position:0 -16px;}
6
+ .f16 ._ASEAN{background-position:0 -32px;}
7
+ .f16 ._CARICOM{background-position:0 -48px;}
8
+ .f16 ._CIS{background-position:0 -64px;}
9
+ .f16 ._Commonwealth{background-position:0 -80px;}
10
+ .f16 ._England{background-position:0 -96px;}
11
+ .f16 ._European_Union{background-position:0 -112px;}
12
+ .f16 ._Islamic_Conference{background-position:0 -128px;}
13
+ .f16 ._Kosovo{background-position:0 -144px;}
14
+ .f16 ._NATO{background-position:0 -160px;}
15
+ .f16 ._Northern_Cyprus{background-position:0 -176px;}
16
+ .f16 ._Northern_Ireland{background-position:0 -192px;}
17
+ .f16 ._Olympic_Movement{background-position:0 -208px;}
18
+ .f16 ._OPEC{background-position:0 -224px;}
19
+ .f16 ._Red_Cross{background-position:0 -240px;}
20
+ .f16 ._Scotland{background-position:0 -256px;}
21
+ .f16 ._Somaliland{background-position:0 -272px;}
22
+ .f16 ._Tibet{background-position:0 -288px;}
23
+ .f16 ._United_Nations{background-position:0 -304px;}
24
+ .f16 ._Wales{background-position:0 -320px;}
25
+ .f16 .ad{background-position:0 -336px;}
26
+ .f16 .ae{background-position:0 -352px;}
27
+ .f16 .af{background-position:0 -368px;}
28
+ .f16 .ag{background-position:0 -384px;}
29
+ .f16 .ai{background-position:0 -400px;}
30
+ .f16 .al{background-position:0 -416px;}
31
+ .f16 .am{background-position:0 -432px;}
32
+ .f16 .an{background-position:0 -448px;}
33
+ .f16 .ao{background-position:0 -464px;}
34
+ .f16 .aq{background-position:0 -480px;}
35
+ .f16 .ar{background-position:0 -496px;}
36
+ .f16 .as{background-position:0 -512px;}
37
+ .f16 .at{background-position:0 -528px;}
38
+ .f16 .au{background-position:0 -544px;}
39
+ .f16 .aw{background-position:0 -560px;}
40
+ .f16 .az{background-position:0 -576px;}
41
+ .f16 .ba{background-position:0 -592px;}
42
+ .f16 .bb{background-position:0 -608px;}
43
+ .f16 .bd{background-position:0 -624px;}
44
+ .f16 .be{background-position:0 -640px;}
45
+ .f16 .bf{background-position:0 -656px;}
46
+ .f16 .bg{background-position:0 -672px;}
47
+ .f16 .bh{background-position:0 -688px;}
48
+ .f16 .bi{background-position:0 -704px;}
49
+ .f16 .bj{background-position:0 -720px;}
50
+ .f16 .bm{background-position:0 -736px;}
51
+ .f16 .bn{background-position:0 -752px;}
52
+ .f16 .bo{background-position:0 -768px;}
53
+ .f16 .br{background-position:0 -784px;}
54
+ .f16 .bs{background-position:0 -800px;}
55
+ .f16 .bt{background-position:0 -816px;}
56
+ .f16 .bw{background-position:0 -832px;}
57
+ .f16 .by{background-position:0 -848px;}
58
+ .f16 .bz{background-position:0 -864px;}
59
+ .f16 .ca{background-position:0 -880px;}
60
+ .f16 .cg{background-position:0 -896px;}
61
+ .f16 .cf{background-position:0 -912px;}
62
+ .f16 .cd{background-position:0 -928px;}
63
+ .f16 .ch{background-position:0 -944px;}
64
+ .f16 .ci{background-position:0 -960px;}
65
+ .f16 .ck{background-position:0 -976px;}
66
+ .f16 .cl{background-position:0 -992px;}
67
+ .f16 .cm{background-position:0 -1008px;}
68
+ .f16 .cn{background-position:0 -1024px;}
69
+ .f16 .co{background-position:0 -1040px;}
70
+ .f16 .cr{background-position:0 -1056px;}
71
+ .f16 .cu{background-position:0 -1072px;}
72
+ .f16 .cv{background-position:0 -1088px;}
73
+ .f16 .cy{background-position:0 -1104px;}
74
+ .f16 .cz{background-position:0 -1120px;}
75
+ .f16 .de{background-position:0 -1136px;}
76
+ .f16 .dj{background-position:0 -1152px;}
77
+ .f16 .dk{background-position:0 -1168px;}
78
+ .f16 .dm{background-position:0 -1184px;}
79
+ .f16 .do{background-position:0 -1200px;}
80
+ .f16 .dz{background-position:0 -1216px;}
81
+ .f16 .ec{background-position:0 -1232px;}
82
+ .f16 .ee{background-position:0 -1248px;}
83
+ .f16 .eg{background-position:0 -1264px;}
84
+ .f16 .eh{background-position:0 -1280px;}
85
+ .f16 .er{background-position:0 -1296px;}
86
+ .f16 .es{background-position:0 -1312px;}
87
+ .f16 .et{background-position:0 -1328px;}
88
+ .f16 .fi{background-position:0 -1344px;}
89
+ .f16 .fj{background-position:0 -1360px;}
90
+ .f16 .fm{background-position:0 -1376px;}
91
+ .f16 .fo{background-position:0 -1392px;}
92
+ .f16 .fr{background-position:0 -1408px;}
93
+ .f16 .ga{background-position:0 -1424px;}
94
+ .f16 .gb{background-position:0 -1440px;}
95
+ .f16 .gd{background-position:0 -1456px;}
96
+ .f16 .ge{background-position:0 -1472px;}
97
+ .f16 .gg{background-position:0 -1488px;}
98
+ .f16 .gh{background-position:0 -1504px;}
99
+ .f16 .gi{background-position:0 -1520px;}
100
+ .f16 .gl{background-position:0 -1536px;}
101
+ .f16 .gm{background-position:0 -1552px;}
102
+ .f16 .gn{background-position:0 -1568px;}
103
+ .f16 .gp{background-position:0 -1584px;}
104
+ .f16 .gq{background-position:0 -1600px;}
105
+ .f16 .gr{background-position:0 -1616px;}
106
+ .f16 .gt{background-position:0 -1632px;}
107
+ .f16 .gu{background-position:0 -1648px;}
108
+ .f16 .gw{background-position:0 -1664px;}
109
+ .f16 .gy{background-position:0 -1680px;}
110
+ .f16 .hk{background-position:0 -1696px;}
111
+ .f16 .hn{background-position:0 -1712px;}
112
+ .f16 .hr{background-position:0 -1728px;}
113
+ .f16 .ht{background-position:0 -1744px;}
114
+ .f16 .hu{background-position:0 -1760px;}
115
+ .f16 .id{background-position:0 -1776px;}
116
+ .f16 .mc{background-position:0 -1776px;}
117
+ .f16 .ie{background-position:0 -1792px;}
118
+ .f16 .il{background-position:0 -1808px;}
119
+ .f16 .im{background-position:0 -1824px;}
120
+ .f16 .in{background-position:0 -1840px;}
121
+ .f16 .iq{background-position:0 -1856px;}
122
+ .f16 .ir{background-position:0 -1872px;}
123
+ .f16 .is{background-position:0 -1888px;}
124
+ .f16 .it{background-position:0 -1904px;}
125
+ .f16 .je{background-position:0 -1920px;}
126
+ .f16 .jm{background-position:0 -1936px;}
127
+ .f16 .jo{background-position:0 -1952px;}
128
+ .f16 .jp{background-position:0 -1968px;}
129
+ .f16 .ke{background-position:0 -1984px;}
130
+ .f16 .kg{background-position:0 -2000px;}
131
+ .f16 .kh{background-position:0 -2016px;}
132
+ .f16 .ki{background-position:0 -2032px;}
133
+ .f16 .km{background-position:0 -2048px;}
134
+ .f16 .kn{background-position:0 -2064px;}
135
+ .f16 .kp{background-position:0 -2080px;}
136
+ .f16 .kr{background-position:0 -2096px;}
137
+ .f16 .kw{background-position:0 -2112px;}
138
+ .f16 .ky{background-position:0 -2128px;}
139
+ .f16 .kz{background-position:0 -2144px;}
140
+ .f16 .la{background-position:0 -2160px;}
141
+ .f16 .lb{background-position:0 -2176px;}
142
+ .f16 .lc{background-position:0 -2192px;}
143
+ .f16 .li{background-position:0 -2208px;}
144
+ .f16 .lk{background-position:0 -2224px;}
145
+ .f16 .lr{background-position:0 -2240px;}
146
+ .f16 .ls{background-position:0 -2256px;}
147
+ .f16 .lt{background-position:0 -2272px;}
148
+ .f16 .lu{background-position:0 -2288px;}
149
+ .f16 .lv{background-position:0 -2304px;}
150
+ .f16 .ly{background-position:0 -2320px;}
151
+ .f16 .ma{background-position:0 -2336px;}
152
+ .f16 .md{background-position:0 -2352px;}
153
+ .f16 .me{background-position:0 -2368px;}
154
+ .f16 .mg{background-position:0 -2384px;}
155
+ .f16 .mh{background-position:0 -2400px;}
156
+ .f16 .mk{background-position:0 -2416px;}
157
+ .f16 .ml{background-position:0 -2432px;}
158
+ .f16 .mm{background-position:0 -2448px;}
159
+ .f16 .mn{background-position:0 -2464px;}
160
+ .f16 .mo{background-position:0 -2480px;}
161
+ .f16 .mq{background-position:0 -2496px;}
162
+ .f16 .mr{background-position:0 -2512px;}
163
+ .f16 .ms{background-position:0 -2528px;}
164
+ .f16 .mt{background-position:0 -2544px;}
165
+ .f16 .mu{background-position:0 -2560px;}
166
+ .f16 .mv{background-position:0 -2576px;}
167
+ .f16 .mw{background-position:0 -2592px;}
168
+ .f16 .mx{background-position:0 -2608px;}
169
+ .f16 .my{background-position:0 -2624px;}
170
+ .f16 .mz{background-position:0 -2640px;}
171
+ .f16 .na{background-position:0 -2656px;}
172
+ .f16 .nc{background-position:0 -2672px;}
173
+ .f16 .ne{background-position:0 -2688px;}
174
+ .f16 .ng{background-position:0 -2704px;}
175
+ .f16 .ni{background-position:0 -2720px;}
176
+ .f16 .nl{background-position:0 -2736px;}
177
+ .f16 .no{background-position:0 -2752px;}
178
+ .f16 .np{background-position:0 -2768px;}
179
+ .f16 .nr{background-position:0 -2784px;}
180
+ .f16 .nz{background-position:0 -2800px;}
181
+ .f16 .om{background-position:0 -2816px;}
182
+ .f16 .pa{background-position:0 -2832px;}
183
+ .f16 .pe{background-position:0 -2848px;}
184
+ .f16 .pf{background-position:0 -2864px;}
185
+ .f16 .pg{background-position:0 -2880px;}
186
+ .f16 .ph{background-position:0 -2896px;}
187
+ .f16 .pk{background-position:0 -2912px;}
188
+ .f16 .pl{background-position:0 -2928px;}
189
+ .f16 .pr{background-position:0 -2944px;}
190
+ .f16 .ps{background-position:0 -2960px;}
191
+ .f16 .pt{background-position:0 -2976px;}
192
+ .f16 .pw{background-position:0 -2992px;}
193
+ .f16 .py{background-position:0 -3008px;}
194
+ .f16 .qa{background-position:0 -3024px;}
195
+ .f16 .re{background-position:0 -3040px;}
196
+ .f16 .ro{background-position:0 -3056px;}
197
+ .f16 .rs{background-position:0 -3072px;}
198
+ .f16 .ru{background-position:0 -3088px;}
199
+ .f16 .rw{background-position:0 -3104px;}
200
+ .f16 .sa{background-position:0 -3120px;}
201
+ .f16 .sb{background-position:0 -3136px;}
202
+ .f16 .sc{background-position:0 -3152px;}
203
+ .f16 .sd{background-position:0 -3168px;}
204
+ .f16 .se{background-position:0 -3184px;}
205
+ .f16 .sg{background-position:0 -3200px;}
206
+ .f16 .si{background-position:0 -3216px;}
207
+ .f16 .sk{background-position:0 -3232px;}
208
+ .f16 .sl{background-position:0 -3248px;}
209
+ .f16 .sm{background-position:0 -3264px;}
210
+ .f16 .sn{background-position:0 -3280px;}
211
+ .f16 .so{background-position:0 -3296px;}
212
+ .f16 .sr{background-position:0 -3312px;}
213
+ .f16 .st{background-position:0 -3328px;}
214
+ .f16 .sv{background-position:0 -3344px;}
215
+ .f16 .sy{background-position:0 -3360px;}
216
+ .f16 .sz{background-position:0 -3376px;}
217
+ .f16 .tc{background-position:0 -3392px;}
218
+ .f16 .td{background-position:0 -3408px;}
219
+ .f16 .tg{background-position:0 -3424px;}
220
+ .f16 .th{background-position:0 -3440px;}
221
+ .f16 .tj{background-position:0 -3456px;}
222
+ .f16 .tl{background-position:0 -3472px;}
223
+ .f16 .tm{background-position:0 -3488px;}
224
+ .f16 .tn{background-position:0 -3504px;}
225
+ .f16 .to{background-position:0 -3520px;}
226
+ .f16 .tr{background-position:0 -3536px;}
227
+ .f16 .tt{background-position:0 -3552px;}
228
+ .f16 .tv{background-position:0 -3568px;}
229
+ .f16 .tw{background-position:0 -3584px;}
230
+ .f16 .tz{background-position:0 -3600px;}
231
+ .f16 .ua{background-position:0 -3616px;}
232
+ .f16 .ug{background-position:0 -3632px;}
233
+ .f16 .us{background-position:0 -3648px;}
234
+ .f16 .uy{background-position:0 -3664px;}
235
+ .f16 .uz{background-position:0 -3680px;}
236
+ .f16 .va{background-position:0 -3696px;}
237
+ .f16 .vc{background-position:0 -3712px;}
238
+ .f16 .ve{background-position:0 -3728px;}
239
+ .f16 .vg{background-position:0 -3744px;}
240
+ .f16 .vi{background-position:0 -3760px;}
241
+ .f16 .vn{background-position:0 -3776px;}
242
+ .f16 .vu{background-position:0 -3792px;}
243
+ .f16 .ws{background-position:0 -3808px;}
244
+ .f16 .ye{background-position:0 -3824px;}
245
+ .f16 .za{background-position:0 -3840px;}
246
+ .f16 .zm{background-position:0 -3856px;}
247
+ .f16 .zw{background-position:0 -3872px;}