cabee28c86bc8069d964709ab6959c5b2c7455b8
[platform/framework/web/crosswalk.git] / src / third_party / libaddressinput / src / cpp / src / region_data_constants.cc
1 // Copyright (C) 2013 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 // The data in this file is automatically generated.
16
17 #include "region_data_constants.h"
18
19 #include <algorithm>
20 #include <cstddef>
21 #include <map>
22 #include <set>
23 #include <string>
24 #include <utility>
25 #include <vector>
26
27 #include <libaddressinput/address_field.h>
28 #include <libaddressinput/util/basictypes.h>
29
30 #include "address_field_util.h"
31 #include "lookup_key.h"
32
33 namespace i18n {
34 namespace addressinput {
35
36 // ---- BEGIN AUTOGENERATED CODE ----
37 namespace {
38
39 std::map<std::string, std::string> InitRegionData() {
40   std::map<std::string, std::string> region_data;
41   region_data.insert(std::make_pair("AC", "{"
42       "\"zipex\":\"ASCN 1ZZ\","
43       "\"languages\":\"en\""
44       "}"));
45   region_data.insert(std::make_pair("AD", "{"
46       "\"fmt\":\"%N%n%O%n%A%n%Z %S\","
47       "\"require\":\"AS\","
48       "\"state_name_type\":\"parish\","
49       "\"zipex\":\"AD100,AD501,AD700\","
50       "\"posturl\":\"http://www.correos.es/comun/CodigosPostales/1010_s-CodPostal.asp\?Provincia=\","
51       "\"languages\":\"ca\""
52       "}"));
53   region_data.insert(std::make_pair("AE", "{"
54       "\"fmt\":\"%N%n%O%n%A%n%C\","
55       "\"require\":\"AC\","
56       "\"languages\":\"ar\""
57       "}"));
58   region_data.insert(std::make_pair("AF", "{"
59       "\"zipex\":\"1001,2601,3801\","
60       "\"posturl\":\"http://afghanpost.gov.af/Postal%20Code/\","
61       "\"languages\":\"fa~ps\""
62       "}"));
63   region_data.insert(std::make_pair("AG", "{"
64       "\"require\":\"A\","
65       "\"languages\":\"en\""
66       "}"));
67   region_data.insert(std::make_pair("AI", "{"
68       "\"zipex\":\"2640\","
69       "\"languages\":\"en\""
70       "}"));
71   region_data.insert(std::make_pair("AL", "{"
72       "\"zipex\":\"1001,1017,3501\","
73       "\"languages\":\"sq\""
74       "}"));
75   region_data.insert(std::make_pair("AM", "{"
76       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C%n%S\","
77       "\"lfmt\":\"%N%n%O%n%A%n%Z%n%C%n%S\","
78       "\"zipex\":\"375010,0002,0010\","
79       "\"languages\":\"hy\""
80       "}"));
81   region_data.insert(std::make_pair("AO", "{"
82       "\"languages\":\"pt\""
83       "}"));
84   region_data.insert(std::make_pair("AQ", "{"
85       "\"languages\":\"\""
86       "}"));
87   region_data.insert(std::make_pair("AR", "{"
88       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
89       "\"state_name_type\":\"state\","
90       "\"zipex\":\"C1070AAM,C1000WAM,B1000TBU,X5187XAB\","
91       "\"posturl\":\"http://www.correoargentino.com.ar/formularios/cpa\","
92       "\"languages\":\"es\""
93       "}"));
94   region_data.insert(std::make_pair("AS", "{"
95       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
96       "\"require\":\"ACSZ\","
97       "\"zip_name_type\":\"zip\","
98       "\"state_name_type\":\"state\","
99       "\"zipex\":\"96799\","
100       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
101       "\"languages\":\"sm~en\""
102       "}"));
103   region_data.insert(std::make_pair("AT", "{"
104       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
105       "\"require\":\"ACZ\","
106       "\"zipex\":\"1010,3741\","
107       "\"posturl\":\"http://www.post.at/post_subsite_postleitzahlfinder.php\","
108       "\"languages\":\"de\""
109       "}"));
110   region_data.insert(std::make_pair("AU", "{"
111       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
112       "\"require\":\"ACSZ\","
113       "\"state_name_type\":\"state\","
114       "\"zipex\":\"2060,3171,6430,4000,4006,3001\","
115       "\"posturl\":\"http://www1.auspost.com.au/postcodes/\","
116       "\"languages\":\"en\""
117       "}"));
118   region_data.insert(std::make_pair("AW", "{"
119       "\"languages\":\"nl~pap\""
120       "}"));
121   region_data.insert(std::make_pair("AX", "{"
122       "\"fmt\":\"%O%n%N%n%A%nAX-%Z %C%n\u00c5LAND\","
123       "\"require\":\"ACZ\","
124       "\"zipex\":\"22150,22550,22240,22710,22270,22730,22430\","
125       "\"posturl\":\"http://www.posten.ax/department.con\?iPage=123\","
126       "\"languages\":\"sv\""
127       "}"));
128   region_data.insert(std::make_pair("AZ", "{"
129       "\"fmt\":\"%N%n%O%n%A%nAZ %Z %C\","
130       "\"zipex\":\"1000\","
131       "\"languages\":\"az-Latn~az-Cyrl\""
132       "}"));
133   region_data.insert(std::make_pair("BA", "{"
134       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
135       "\"zipex\":\"71000\","
136       "\"posturl\":\"http://www.post.ba/postanski_brojevi.php\","
137       "\"languages\":\"bs-Cyrl~bs-Latn~hr~sr-Cyrl~sr-Latn\""
138       "}"));
139   region_data.insert(std::make_pair("BB", "{"
140       "\"state_name_type\":\"parish\","
141       "\"zipex\":\"BB23026,BB22025\","
142       "\"posturl\":\"http://barbadospostal.com/zipcodes.html\","
143       "\"languages\":\"en\""
144       "}"));
145   region_data.insert(std::make_pair("BD", "{"
146       "\"fmt\":\"%N%n%O%n%A%n%C - %Z\","
147       "\"zipex\":\"1340,1000\","
148       "\"posturl\":\"http://www.bangladeshpost.gov.bd/PostCode.asp\","
149       "\"languages\":\"bn\""
150       "}"));
151   region_data.insert(std::make_pair("BE", "{"
152       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
153       "\"require\":\"ACZ\","
154       "\"zipex\":\"4000,1000\","
155       "\"posturl\":\"http://www.post.be/site/nl/residential/customerservice/search/postal_codes.html\","
156       "\"languages\":\"nl~fr~de\""
157       "}"));
158   region_data.insert(std::make_pair("BF", "{"
159       "\"fmt\":\"%N%n%O%n%A%n%C %X\","
160       "\"languages\":\"fr\""
161       "}"));
162   region_data.insert(std::make_pair("BG", "{"
163       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
164       "\"zipex\":\"1000,1700\","
165       "\"posturl\":\"http://www.bgpost.bg/\?cid=5\","
166       "\"languages\":\"bg\""
167       "}"));
168   region_data.insert(std::make_pair("BH", "{"
169       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
170       "\"zipex\":\"317\","
171       "\"languages\":\"ar\""
172       "}"));
173   region_data.insert(std::make_pair("BI", "{"
174       "\"languages\":\"rn~fr\""
175       "}"));
176   region_data.insert(std::make_pair("BJ", "{"
177       "\"languages\":\"fr\""
178       "}"));
179   region_data.insert(std::make_pair("BL", "{"
180       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
181       "\"require\":\"ACZ\","
182       "\"zipex\":\"97100\","
183       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
184       "\"languages\":\"fr\""
185       "}"));
186   region_data.insert(std::make_pair("BM", "{"
187       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
188       "\"zipex\":\"FL 07,HM GX,HM 12\","
189       "\"posturl\":\"http://www.landvaluation.bm/\","
190       "\"languages\":\"en\""
191       "}"));
192   region_data.insert(std::make_pair("BN", "{"
193       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
194       "\"zipex\":\"BT2328,KA1131,BA1511\","
195       "\"posturl\":\"http://www.post.gov.bn/index.php/extensions/postcode-guide\","
196       "\"languages\":\"ms-Latn~ms-Arab\""
197       "}"));
198   region_data.insert(std::make_pair("BO", "{"
199       "\"languages\":\"es~qu~ay\""
200       "}"));
201   region_data.insert(std::make_pair("BR", "{"
202       "\"fmt\":\"%O%n%N%n%A%n%C-%S%n%Z\","
203       "\"require\":\"ASCZ\","
204       "\"state_name_type\":\"state\","
205       "\"zipex\":\"40301-110,70002-900\","
206       "\"posturl\":\"http://www.correios.com.br/servicos/cep/cep_default.cfm\","
207       "\"languages\":\"pt\""
208       "}"));
209   region_data.insert(std::make_pair("BS", "{"
210       "\"fmt\":\"%N%n%O%n%A%n%C, %S\","
211       "\"state_name_type\":\"island\","
212       "\"languages\":\"en\""
213       "}"));
214   region_data.insert(std::make_pair("BT", "{"
215       "\"zipex\":\"11001,31101,35003\","
216       "\"posturl\":\"http://www.bhutanpost.com.bt/postcode/postcode.php\","
217       "\"languages\":\"dz\""
218       "}"));
219   region_data.insert(std::make_pair("BV", "{"
220       "\"languages\":\"\""
221       "}"));
222   region_data.insert(std::make_pair("BW", "{"
223       "\"languages\":\"en~tn\""
224       "}"));
225   region_data.insert(std::make_pair("BY", "{"
226       "\"fmt\":\"%S%n%Z %C %X%n%A%n%O%n%N\","
227       "\"zipex\":\"20050,223016,225860,220050\","
228       "\"posturl\":\"http://zip.belpost.by\","
229       "\"languages\":\"be~ru\""
230       "}"));
231   region_data.insert(std::make_pair("BZ", "{"
232       "\"languages\":\"en\""
233       "}"));
234   region_data.insert(std::make_pair("CA", "{"
235       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
236       "\"require\":\"ACSZ\","
237       "\"zipex\":\"H3Z 2Y7,V8X 3X4,T0L 1K0,T0H 1A0,K1A 0B1\","
238       "\"posturl\":\"http://www.canadapost.ca/cpotools/apps/fpc/personal/findByCity\?execution=e2s1\","
239       "\"languages\":\"en~fr\""
240       "}"));
241   region_data.insert(std::make_pair("CC", "{"
242       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
243       "\"languages\":\"en\""
244       "}"));
245   region_data.insert(std::make_pair("CD", "{"
246       "\"fmt\":\"%N%n%O%n%A%n%C %X\","
247       "\"languages\":\"fr\""
248       "}"));
249   region_data.insert(std::make_pair("CF", "{"
250       "\"languages\":\"fr~sg\""
251       "}"));
252   region_data.insert(std::make_pair("CG", "{"
253       "\"languages\":\"fr~ln\""
254       "}"));
255   region_data.insert(std::make_pair("CH", "{"
256       "\"fmt\":\"%O%n%N%n%A%nCH-%Z %C\","
257       "\"require\":\"ACZ\","
258       "\"zipex\":\"2544,1211,1556,3030\","
259       "\"posturl\":\"http://www.post.ch/db/owa/pv_plz_pack/pr_main\","
260       "\"languages\":\"de~fr~it\""
261       "}"));
262   region_data.insert(std::make_pair("CI", "{"
263       "\"fmt\":\"%N%n%O%n%X %A %C %X\","
264       "\"languages\":\"fr\""
265       "}"));
266   region_data.insert(std::make_pair("CK", "{"
267       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
268       "\"languages\":\"en\""
269       "}"));
270   region_data.insert(std::make_pair("CL", "{"
271       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
272       "\"state_name_type\":\"state\","
273       "\"zipex\":\"8340457,8720019,1230000,8329100\","
274       "\"posturl\":\"http://www.correos.cl/SitePages/home.aspx\","
275       "\"languages\":\"es\""
276       "}"));
277   region_data.insert(std::make_pair("CM", "{"
278       "\"languages\":\"fr~en\""
279       "}"));
280   region_data.insert(std::make_pair("CN", "{"
281       "\"fmt\":\"%Z%n%S%C%D%n%A%n%O%n%N\","
282       "\"lfmt\":\"%N%n%O%n%A%n%D%n%C%n%S, %Z\","
283       "\"require\":\"ACSZ\","
284       "\"zipex\":\"266033,317204,100096,100808\","
285       "\"posturl\":\"http://www.cpdc.com.cn/postcdQueryAction.do\?reqCode=gotoQueryPostAddr\","
286       "\"languages\":\"zh-Hans\""
287       "}"));
288   region_data.insert(std::make_pair("CO", "{"
289       "\"fmt\":\"%N%n%O%n%A%n%C, %S\","
290       "\"zipex\":\"111221,130001,760011\","
291       "\"posturl\":\"http://www.codigopostal4-72.com.co/codigosPostales/\","
292       "\"languages\":\"es\""
293       "}"));
294   region_data.insert(std::make_pair("CR", "{"
295       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
296       "\"zipex\":\"1000,2010,1001\","
297       "\"posturl\":\"https://www.correos.go.cr/nosotros/codigopostal/busqueda.html\","
298       "\"languages\":\"es\""
299       "}"));
300   region_data.insert(std::make_pair("CV", "{"
301       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
302       "\"state_name_type\":\"island\","
303       "\"zipex\":\"7600\","
304       "\"languages\":\"pt\""
305       "}"));
306   region_data.insert(std::make_pair("CX", "{"
307       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
308       "\"languages\":\"en\""
309       "}"));
310   region_data.insert(std::make_pair("CY", "{"
311       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
312       "\"zipex\":\"2008,3304,1900\","
313       "\"languages\":\"el~tr\""
314       "}"));
315   region_data.insert(std::make_pair("CZ", "{"
316       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
317       "\"zipex\":\"100 00,251 66,530 87,110 00,225 99\","
318       "\"posturl\":\"http://psc.ceskaposta.cz/CleanForm.action\","
319       "\"languages\":\"cs\""
320       "}"));
321   region_data.insert(std::make_pair("DE", "{"
322       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
323       "\"require\":\"ACZ\","
324       "\"zipex\":\"26133,53225\","
325       "\"posturl\":\"http://www.postdirekt.de/plzserver/\","
326       "\"languages\":\"de\""
327       "}"));
328   region_data.insert(std::make_pair("DJ", "{"
329       "\"languages\":\"ar~fr\""
330       "}"));
331   region_data.insert(std::make_pair("DK", "{"
332       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
333       "\"require\":\"ACZ\","
334       "\"zipex\":\"8660,1566\","
335       "\"posturl\":\"http://www.postdanmark.dk/da/Privat/Kundeservice/postnummerkort/Sider/Find-postnummer.aspx\","
336       "\"languages\":\"da\""
337       "}"));
338   region_data.insert(std::make_pair("DM", "{"
339       "\"languages\":\"en\""
340       "}"));
341   region_data.insert(std::make_pair("DO", "{"
342       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
343       "\"zipex\":\"11903,10101\","
344       "\"posturl\":\"http://inposdom.gob.do/servicios/codigo-postal.html#buscar_codigo\","
345       "\"languages\":\"es\""
346       "}"));
347   region_data.insert(std::make_pair("DZ", "{"
348       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
349       "\"zipex\":\"40304,16027\","
350       "\"languages\":\"ar~fr\""
351       "}"));
352   region_data.insert(std::make_pair("EC", "{"
353       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C\","
354       "\"zipex\":\"EC090112,090105,H0103C,P0133B,P0133A,P0133V\","
355       "\"languages\":\"es\""
356       "}"));
357   region_data.insert(std::make_pair("EE", "{"
358       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
359       "\"zipex\":\"69501,11212,1001\","
360       "\"posturl\":\"http://www.post.ee/\?op=sihtnumbriotsing\","
361       "\"languages\":\"et\""
362       "}"));
363   region_data.insert(std::make_pair("EG", "{"
364       "\"fmt\":\"%N%n%O%n%A%n%C%n%S%n%Z\","
365       "\"lfmt\":\"%N%n%O%n%A%n%C%n%S%n%Z\","
366       "\"zipex\":\"12411,11599\","
367       "\"languages\":\"ar\""
368       "}"));
369   region_data.insert(std::make_pair("EH", "{"
370       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
371       "\"zipex\":\"70000,72000\","
372       "\"languages\":\"ar\""
373       "}"));
374   region_data.insert(std::make_pair("ER", "{"
375       "\"languages\":\"ti~en~ar\""
376       "}"));
377   region_data.insert(std::make_pair("ES", "{"
378       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
379       "\"require\":\"ACSZ\","
380       "\"zipex\":\"28039,28300,28070\","
381       "\"posturl\":\"http://www.correos.es/contenido/13-MenuRec2/04-MenuRec24/1010_s-CodPostal.asp\","
382       "\"languages\":\"es\""
383       "}"));
384   region_data.insert(std::make_pair("ET", "{"
385       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
386       "\"zipex\":\"1000\","
387       "\"languages\":\"am\""
388       "}"));
389   region_data.insert(std::make_pair("FI", "{"
390       "\"fmt\":\"%O%n%N%n%A%nFI-%Z %C\","
391       "\"require\":\"ACZ\","
392       "\"zipex\":\"00550,00011\","
393       "\"posturl\":\"http://www.verkkoposti.com/e3/postinumeroluettelo\","
394       "\"languages\":\"fi~sv\""
395       "}"));
396   region_data.insert(std::make_pair("FJ", "{"
397       "\"languages\":\"en~fj\""
398       "}"));
399   region_data.insert(std::make_pair("FK", "{"
400       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
401       "\"require\":\"ACZ\","
402       "\"zipex\":\"FIQQ 1ZZ\","
403       "\"languages\":\"en\""
404       "}"));
405   region_data.insert(std::make_pair("FM", "{"
406       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
407       "\"require\":\"ACSZ\","
408       "\"zip_name_type\":\"zip\","
409       "\"state_name_type\":\"state\","
410       "\"zipex\":\"96941,96944\","
411       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
412       "\"languages\":\"chk~pon~kos~yap~en~uli\""
413       "}"));
414   region_data.insert(std::make_pair("FO", "{"
415       "\"fmt\":\"%N%n%O%n%A%nFO%Z %C\","
416       "\"zipex\":\"100\","
417       "\"posturl\":\"http://www.postur.fo/\","
418       "\"languages\":\"fo\""
419       "}"));
420   region_data.insert(std::make_pair("FR", "{"
421       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
422       "\"require\":\"ACZ\","
423       "\"zipex\":\"33380,34092,33506\","
424       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
425       "\"languages\":\"fr\""
426       "}"));
427   region_data.insert(std::make_pair("GA", "{"
428       "\"languages\":\"fr\""
429       "}"));
430   region_data.insert(std::make_pair("GB", "{"
431       "\"fmt\":\"%N%n%O%n%A%n%C%n%S%n%Z\","
432       "\"require\":\"ACZ\","
433       "\"state_name_type\":\"county\","
434       "\"zipex\":\"EC1Y 8SY,GIR 0AA,M2 5BQ,M34 4AB,CR0 2YR,DN16 9AA,W1A 4ZZ,EC1A 1HQ,OX14 4PG,BS18 8HF,NR25 7HG,RH6 OHP,BH23 6AA,B6 5BA,RH6 0HP,SO23 9AP,PO1 3AX,BFPO 61\","
435       "\"posturl\":\"http://www.royalmail.com/postcode-finder\","
436       "\"languages\":\"en\""
437       "}"));
438   region_data.insert(std::make_pair("GD", "{"
439       "\"languages\":\"en\""
440       "}"));
441   region_data.insert(std::make_pair("GE", "{"
442       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
443       "\"zipex\":\"0101\","
444       "\"posturl\":\"http://www.georgianpost.ge/index.php\?page=10\","
445       "\"languages\":\"ka\""
446       "}"));
447   region_data.insert(std::make_pair("GF", "{"
448       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
449       "\"require\":\"ACZ\","
450       "\"zipex\":\"97300\","
451       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
452       "\"languages\":\"fr\""
453       "}"));
454   region_data.insert(std::make_pair("GG", "{"
455       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%nGUERNSEY%n%Z\","
456       "\"require\":\"ACZ\","
457       "\"zipex\":\"GY1 1AA,GY2 2BT\","
458       "\"posturl\":\"http://www.guernseypost.com/postcode_finder/\","
459       "\"languages\":\"en\""
460       "}"));
461   region_data.insert(std::make_pair("GH", "{"
462       "\"languages\":\"en\""
463       "}"));
464   region_data.insert(std::make_pair("GI", "{"
465       "\"fmt\":\"%N%n%O%n%A\","
466       "\"require\":\"A\","
467       "\"zipex\":\"GX11 1AA\","
468       "\"languages\":\"en\""
469       "}"));
470   region_data.insert(std::make_pair("GL", "{"
471       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
472       "\"require\":\"ACZ\","
473       "\"zipex\":\"3900,3950,3911\","
474       "\"languages\":\"kl~da\""
475       "}"));
476   region_data.insert(std::make_pair("GM", "{"
477       "\"languages\":\"en\""
478       "}"));
479   region_data.insert(std::make_pair("GN", "{"
480       "\"fmt\":\"%N%n%O%n%Z %A %C\","
481       "\"zipex\":\"001,200,100\","
482       "\"languages\":\"fr\""
483       "}"));
484   region_data.insert(std::make_pair("GP", "{"
485       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
486       "\"require\":\"ACZ\","
487       "\"zipex\":\"97100\","
488       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
489       "\"languages\":\"fr\""
490       "}"));
491   region_data.insert(std::make_pair("GQ", "{"
492       "\"languages\":\"es~fr\""
493       "}"));
494   region_data.insert(std::make_pair("GR", "{"
495       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
496       "\"require\":\"ACZ\","
497       "\"zipex\":\"151 24,151 10,101 88\","
498       "\"posturl\":\"http://www.elta.gr/findapostcode.aspx\","
499       "\"languages\":\"el\""
500       "}"));
501   region_data.insert(std::make_pair("GS", "{"
502       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
503       "\"require\":\"ACZ\","
504       "\"zipex\":\"SIQQ 1ZZ\","
505       "\"languages\":\"\""
506       "}"));
507   region_data.insert(std::make_pair("GT", "{"
508       "\"fmt\":\"%N%n%O%n%A%n%Z- %C\","
509       "\"zipex\":\"09001,01501\","
510       "\"languages\":\"es\""
511       "}"));
512   region_data.insert(std::make_pair("GU", "{"
513       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
514       "\"require\":\"ACSZ\","
515       "\"zip_name_type\":\"zip\","
516       "\"state_name_type\":\"state\","
517       "\"zipex\":\"96910,96931\","
518       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
519       "\"languages\":\"en~ch\""
520       "}"));
521   region_data.insert(std::make_pair("GW", "{"
522       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
523       "\"zipex\":\"1000,1011\","
524       "\"languages\":\"pt\""
525       "}"));
526   region_data.insert(std::make_pair("GY", "{"
527       "\"languages\":\"en\""
528       "}"));
529   region_data.insert(std::make_pair("HK", "{"
530       "\"fmt\":\"%S%n%A%n%O%n%N\","
531       "\"lfmt\":\"%N%n%O%n%A%n%S\","
532       "\"require\":\"AS\","
533       "\"state_name_type\":\"area\","
534       "\"languages\":\"zh-Hant~en\""
535       "}"));
536   region_data.insert(std::make_pair("HM", "{"
537       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
538       "\"languages\":\"\""
539       "}"));
540   region_data.insert(std::make_pair("HN", "{"
541       "\"fmt\":\"%N%n%O%n%A%n%C, %S%n%Z\","
542       "\"require\":\"ACS\","
543       "\"languages\":\"es\""
544       "}"));
545   region_data.insert(std::make_pair("HR", "{"
546       "\"fmt\":\"%N%n%O%n%A%nHR-%Z %C\","
547       "\"zipex\":\"10000,21001,10002\","
548       "\"posturl\":\"http://www.posta.hr/default.aspx\?pretpum\","
549       "\"languages\":\"hr\""
550       "}"));
551   region_data.insert(std::make_pair("HT", "{"
552       "\"fmt\":\"%N%n%O%n%A%nHT%Z %C %X\","
553       "\"zipex\":\"6120,5310,6110,8510\","
554       "\"languages\":\"ht~fr\""
555       "}"));
556   region_data.insert(std::make_pair("HU", "{"
557       "\"fmt\":\"%N%n%O%n%C%n%A%n%Z\","
558       "\"zipex\":\"1037,2380,1540\","
559       "\"posturl\":\"http://posta.hu/ugyfelszolgalat/iranyitoszam_kereso\","
560       "\"languages\":\"hu\""
561       "}"));
562   region_data.insert(std::make_pair("ID", "{"
563       "\"fmt\":\"%N%n%O%n%A%n%C%n%S %Z\","
564       "\"state_name_type\":\"district\","
565       "\"zipex\":\"40115\","
566       "\"languages\":\"id\""
567       "}"));
568   region_data.insert(std::make_pair("IE", "{"
569       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
570       "\"state_name_type\":\"county\","
571       "\"languages\":\"en\""
572       "}"));
573   region_data.insert(std::make_pair("IL", "{"
574       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
575       "\"zipex\":\"9614303\","
576       "\"posturl\":\"http://www.israelpost.co.il/zipcode.nsf/demozip\?openform\","
577       "\"languages\":\"iw~ar\""
578       "}"));
579   region_data.insert(std::make_pair("IM", "{"
580       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
581       "\"require\":\"ACZ\","
582       "\"zipex\":\"IM2 1AA,IM99 1PS\","
583       "\"posturl\":\"http://www.gov.im/post/postal/fr_main.asp\","
584       "\"languages\":\"en~gv\""
585       "}"));
586   region_data.insert(std::make_pair("IN", "{"
587       "\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\","
588       "\"require\":\"ACSZ\","
589       "\"state_name_type\":\"state\","
590       "\"zipex\":\"110034,110001\","
591       "\"posturl\":\"http://www.indiapost.gov.in/pin/pinsearch.aspx\","
592       "\"languages\":\"en\""
593       "}"));
594   region_data.insert(std::make_pair("IO", "{"
595       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
596       "\"require\":\"ACZ\","
597       "\"zipex\":\"BBND 1ZZ\","
598       "\"languages\":\"en\""
599       "}"));
600   region_data.insert(std::make_pair("IQ", "{"
601       "\"fmt\":\"%O%n%N%n%A%n%C, %S%n%Z\","
602       "\"require\":\"ACS\","
603       "\"languages\":\"ar\""
604       "}"));
605   region_data.insert(std::make_pair("IS", "{"
606       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
607       "\"zipex\":\"320,121,220,110\","
608       "\"posturl\":\"http://www.postur.is/cgi-bin/hsrun.exe/Distributed/vefur/vefur.htx;start=HS_landakort_postnumer\","
609       "\"languages\":\"is\""
610       "}"));
611   region_data.insert(std::make_pair("IT", "{"
612       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
613       "\"require\":\"ACSZ\","
614       "\"zipex\":\"00144,47037,39049\","
615       "\"posturl\":\"http://www.poste.it/online/cercacap/\","
616       "\"languages\":\"it\""
617       "}"));
618   region_data.insert(std::make_pair("JE", "{"
619       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%nJERSEY%n%Z\","
620       "\"require\":\"ACZ\","
621       "\"zipex\":\"JE1 1AA,JE2 2BT\","
622       "\"posturl\":\"http://www.jerseypost.com/tools/postcode-address-finder/\","
623       "\"languages\":\"en\""
624       "}"));
625   region_data.insert(std::make_pair("JM", "{"
626       "\"fmt\":\"%N%n%O%n%A%n%C%n%S %X\","
627       "\"require\":\"ACS\","
628       "\"state_name_type\":\"parish\","
629       "\"languages\":\"en\""
630       "}"));
631   region_data.insert(std::make_pair("JO", "{"
632       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
633       "\"zipex\":\"11937,11190\","
634       "\"languages\":\"ar\""
635       "}"));
636   region_data.insert(std::make_pair("JP", "{"
637       "\"fmt\":\"\u3012%Z%n%S%C%n%A%n%O%n%N\","
638       "\"lfmt\":\"%N%n%O%n%A%n%C, %S%n%Z\","
639       "\"require\":\"ACSZ\","
640       "\"state_name_type\":\"prefecture\","
641       "\"zipex\":\"154-0023,350-1106,951-8073,112-0001,208-0032,231-0012\","
642       "\"posturl\":\"http://search.post.japanpost.jp/zipcode/\","
643       "\"languages\":\"ja\""
644       "}"));
645   region_data.insert(std::make_pair("KE", "{"
646       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\","
647       "\"zipex\":\"20100,00100\","
648       "\"languages\":\"en~sw\""
649       "}"));
650   region_data.insert(std::make_pair("KG", "{"
651       "\"fmt\":\"%Z %C %X%n%A%n%O%n%N\","
652       "\"zipex\":\"720001\","
653       "\"languages\":\"ky-Cyrl~ru\""
654       "}"));
655   region_data.insert(std::make_pair("KH", "{"
656       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
657       "\"zipex\":\"12203,14206,12000\","
658       "\"languages\":\"km\""
659       "}"));
660   region_data.insert(std::make_pair("KI", "{"
661       "\"fmt\":\"%N%n%O%n%A%n%S%n%C\","
662       "\"state_name_type\":\"island\","
663       "\"languages\":\"en~gil\""
664       "}"));
665   region_data.insert(std::make_pair("KM", "{"
666       "\"languages\":\"ar~fr~zdj\""
667       "}"));
668   region_data.insert(std::make_pair("KN", "{"
669       "\"fmt\":\"%N%n%O%n%A%n%C, %S\","
670       "\"require\":\"ACS\","
671       "\"state_name_type\":\"island\","
672       "\"languages\":\"en\""
673       "}"));
674   region_data.insert(std::make_pair("KR", "{"
675       "\"fmt\":\"%S %C%D%n%A%n%O%n%N%n%Z\","
676       "\"lfmt\":\"%N%n%O%n%A%n%D%n%C%n%S%n%Z\","
677       "\"require\":\"ACSZ\","
678       "\"state_name_type\":\"do_si\","
679       "\"zipex\":\"110-110,699-800\","
680       "\"posturl\":\"http://www.epost.go.kr/search/zipcode/search5.jsp\","
681       "\"languages\":\"ko\""
682       "}"));
683   region_data.insert(std::make_pair("KW", "{"
684       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
685       "\"zipex\":\"54541,54551,54404,13009\","
686       "\"languages\":\"ar\""
687       "}"));
688   region_data.insert(std::make_pair("KY", "{"
689       "\"fmt\":\"%N%n%O%n%A%n%S\","
690       "\"require\":\"AS\","
691       "\"state_name_type\":\"island\","
692       "\"zipex\":\"KY1-1100,KY1-1702,KY2-2101\","
693       "\"posturl\":\"http://www.caymanpost.gov.ky/portal/page\?_pageid=3561,1&_dad=portal&_schema=PORTAL\","
694       "\"languages\":\"en\""
695       "}"));
696   region_data.insert(std::make_pair("KZ", "{"
697       "\"fmt\":\"%Z%n%S%n%C%n%A%n%O%n%N\","
698       "\"zipex\":\"040900,050012\","
699       "\"languages\":\"ru~kk-Cyrl\""
700       "}"));
701   region_data.insert(std::make_pair("LA", "{"
702       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
703       "\"zipex\":\"01160,01000\","
704       "\"languages\":\"lo\""
705       "}"));
706   region_data.insert(std::make_pair("LB", "{"
707       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
708       "\"zipex\":\"2038 3054,1107 2810,1000\","
709       "\"languages\":\"ar\""
710       "}"));
711   region_data.insert(std::make_pair("LC", "{"
712       "\"languages\":\"en\""
713       "}"));
714   region_data.insert(std::make_pair("LI", "{"
715       "\"fmt\":\"%O%n%N%n%A%nFL-%Z %C\","
716       "\"require\":\"ACZ\","
717       "\"zipex\":\"9496,9491,9490,9485\","
718       "\"posturl\":\"http://www.post.ch/db/owa/pv_plz_pack/pr_main\","
719       "\"languages\":\"de~gsw\""
720       "}"));
721   region_data.insert(std::make_pair("LK", "{"
722       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\","
723       "\"zipex\":\"20000,00100\","
724       "\"posturl\":\"http://www.slpost.gov.lk/\","
725       "\"languages\":\"si~ta\""
726       "}"));
727   region_data.insert(std::make_pair("LR", "{"
728       "\"fmt\":\"%N%n%O%n%A%n%Z %C %X\","
729       "\"zipex\":\"1000\","
730       "\"languages\":\"en\""
731       "}"));
732   region_data.insert(std::make_pair("LS", "{"
733       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
734       "\"zipex\":\"100\","
735       "\"languages\":\"st~en\""
736       "}"));
737   region_data.insert(std::make_pair("LT", "{"
738       "\"fmt\":\"%O%n%N%n%A%nLT-%Z %C\","
739       "\"zipex\":\"04340,03500\","
740       "\"posturl\":\"http://www.post.lt/lt/\?id=316\","
741       "\"languages\":\"lt\""
742       "}"));
743   region_data.insert(std::make_pair("LU", "{"
744       "\"fmt\":\"%O%n%N%n%A%nL-%Z %C\","
745       "\"require\":\"ACZ\","
746       "\"zipex\":\"4750,2998\","
747       "\"posturl\":\"http://www.pt.lu/portal/services_en_ligne/recherche_codes_postaux\","
748       "\"languages\":\"fr~lb~de\""
749       "}"));
750   region_data.insert(std::make_pair("LV", "{"
751       "\"fmt\":\"%N%n%O%n%A%n%C, %Z\","
752       "\"zipex\":\"LV-1073,LV-1000\","
753       "\"posturl\":\"http://www.pasts.lv/lv/uzzinas/nodalas/\","
754       "\"languages\":\"lv\""
755       "}"));
756   region_data.insert(std::make_pair("LY", "{"
757       "\"languages\":\"ar\""
758       "}"));
759   region_data.insert(std::make_pair("MA", "{"
760       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
761       "\"zipex\":\"53000,10000,20050,16052\","
762       "\"languages\":\"ar~fr~tzm-Latn\""
763       "}"));
764   region_data.insert(std::make_pair("MC", "{"
765       "\"fmt\":\"%N%n%O%n%A%nMC-%Z %C %X\","
766       "\"zipex\":\"98000,98020,98011,98001\","
767       "\"languages\":\"fr\""
768       "}"));
769   region_data.insert(std::make_pair("MD", "{"
770       "\"fmt\":\"%N%n%O%n%A%nMD-%Z %C\","
771       "\"zipex\":\"2012,2019\","
772       "\"languages\":\"ro\""
773       "}"));
774   region_data.insert(std::make_pair("ME", "{"
775       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
776       "\"zipex\":\"81257,81258,81217,84314,85366\","
777       "\"languages\":\"sr-Latn\""
778       "}"));
779   region_data.insert(std::make_pair("MF", "{"
780       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
781       "\"require\":\"ACZ\","
782       "\"zipex\":\"97100\","
783       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
784       "\"languages\":\"fr\""
785       "}"));
786   region_data.insert(std::make_pair("MG", "{"
787       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
788       "\"zipex\":\"501,101\","
789       "\"languages\":\"mg~fr~en\""
790       "}"));
791   region_data.insert(std::make_pair("MH", "{"
792       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
793       "\"require\":\"ACSZ\","
794       "\"zip_name_type\":\"zip\","
795       "\"state_name_type\":\"state\","
796       "\"zipex\":\"96960,96970\","
797       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
798       "\"languages\":\"en~mh\""
799       "}"));
800   region_data.insert(std::make_pair("MK", "{"
801       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
802       "\"zipex\":\"1314,1321,1443,1062\","
803       "\"languages\":\"mk~sq\""
804       "}"));
805   region_data.insert(std::make_pair("ML", "{"
806       "\"languages\":\"fr\""
807       "}"));
808   region_data.insert(std::make_pair("MN", "{"
809       "\"fmt\":\"%N%n%O%n%A%n%S %C-%X%n%Z\","
810       "\"zipex\":\"65030,65270\","
811       "\"posturl\":\"http://www.zipcode.mn/\","
812       "\"languages\":\"mn-Cyrl\""
813       "}"));
814   region_data.insert(std::make_pair("MO", "{"
815       "\"fmt\":\"%A%n%O%n%N\","
816       "\"lfmt\":\"%N%n%O%n%A\","
817       "\"require\":\"A\","
818       "\"languages\":\"zh-Hant~pt\""
819       "}"));
820   region_data.insert(std::make_pair("MP", "{"
821       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
822       "\"require\":\"ACSZ\","
823       "\"zip_name_type\":\"zip\","
824       "\"state_name_type\":\"state\","
825       "\"zipex\":\"96950,96951,96952\","
826       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
827       "\"languages\":\"en\""
828       "}"));
829   region_data.insert(std::make_pair("MQ", "{"
830       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
831       "\"require\":\"ACZ\","
832       "\"zipex\":\"97220\","
833       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
834       "\"languages\":\"fr\""
835       "}"));
836   region_data.insert(std::make_pair("MR", "{"
837       "\"languages\":\"ar\""
838       "}"));
839   region_data.insert(std::make_pair("MS", "{"
840       "\"languages\":\"en\""
841       "}"));
842   region_data.insert(std::make_pair("MT", "{"
843       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
844       "\"zipex\":\"NXR 01,ZTN 05,GPO 01,BZN 1130,SPB 6031,VCT 1753\","
845       "\"posturl\":\"http://postcodes.maltapost.com/\","
846       "\"languages\":\"mt~en\""
847       "}"));
848   region_data.insert(std::make_pair("MU", "{"
849       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C\","
850       "\"zipex\":\"742CU001\","
851       "\"languages\":\"en~fr\""
852       "}"));
853   region_data.insert(std::make_pair("MV", "{"
854       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
855       "\"zipex\":\"20026\","
856       "\"posturl\":\"http://www.maldivespost.com/\?lid=10\","
857       "\"languages\":\"dv\""
858       "}"));
859   region_data.insert(std::make_pair("MW", "{"
860       "\"fmt\":\"%N%n%O%n%A%n%C %X\","
861       "\"languages\":\"en~ny\""
862       "}"));
863   region_data.insert(std::make_pair("MX", "{"
864       "\"fmt\":\"%N%n%O%n%A%n%D%n%Z %C, %S\","
865       "\"require\":\"ACZ\","
866       "\"state_name_type\":\"state\","
867       "\"zipex\":\"02860,77520,06082\","
868       "\"posturl\":\"http://www.correosdemexico.gob.mx/ServiciosLinea/Paginas/ccpostales.aspx\","
869       "\"languages\":\"es\""
870       "}"));
871   region_data.insert(std::make_pair("MY", "{"
872       "\"fmt\":\"%N%n%O%n%A%n%Z %C, %S\","
873       "\"require\":\"ACZ\","
874       "\"state_name_type\":\"state\","
875       "\"zipex\":\"43000,50754,88990,50670\","
876       "\"posturl\":\"http://www.pos.com.my/pos/homepage.aspx\","
877       "\"languages\":\"ms\""
878       "}"));
879   region_data.insert(std::make_pair("MZ", "{"
880       "\"fmt\":\"%N%n%O%n%A%n%C\","
881       "\"zipex\":\"1102,1119,3212\","
882       "\"languages\":\"pt\""
883       "}"));
884   region_data.insert(std::make_pair("NA", "{"
885       "\"languages\":\"af~en\""
886       "}"));
887   region_data.insert(std::make_pair("NC", "{"
888       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
889       "\"require\":\"ACZ\","
890       "\"zipex\":\"98814,98800,98810\","
891       "\"posturl\":\"http://poste.opt.nc/index.php\?option=com_content&view=article&id=80&Itemid=131\","
892       "\"languages\":\"fr\""
893       "}"));
894   region_data.insert(std::make_pair("NE", "{"
895       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
896       "\"zipex\":\"8001\","
897       "\"languages\":\"fr\""
898       "}"));
899   region_data.insert(std::make_pair("NF", "{"
900       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
901       "\"languages\":\"en\""
902       "}"));
903   region_data.insert(std::make_pair("NG", "{"
904       "\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\","
905       "\"state_name_type\":\"state\","
906       "\"zipex\":\"930283,300001,931104\","
907       "\"posturl\":\"http://www.nigeriapostcodes.com/views/\","
908       "\"languages\":\"en\""
909       "}"));
910   region_data.insert(std::make_pair("NI", "{"
911       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C, %S\","
912       "\"state_name_type\":\"department\","
913       "\"zipex\":\"52000\","
914       "\"posturl\":\"http://www.correos.gob.ni/index.php/codigo-postal-2\","
915       "\"languages\":\"es\""
916       "}"));
917   region_data.insert(std::make_pair("NL", "{"
918       "\"fmt\":\"%O%n%N%n%A%n%Z %C\","
919       "\"require\":\"ACZ\","
920       "\"zipex\":\"1234 AB,2490 AA\","
921       "\"posturl\":\"http://www.postnl.nl/voorthuis/\","
922       "\"languages\":\"nl\""
923       "}"));
924   region_data.insert(std::make_pair("NO", "{"
925       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
926       "\"require\":\"ACZ\","
927       "\"zipex\":\"0025,0107,6631\","
928       "\"posturl\":\"http://adressesok.posten.no/nb/postal_codes/search\","
929       "\"languages\":\"no~nn\""
930       "}"));
931   region_data.insert(std::make_pair("NP", "{"
932       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
933       "\"zipex\":\"44601\","
934       "\"posturl\":\"http://www.gpo.gov.np/postalcode.aspx\","
935       "\"languages\":\"ne\""
936       "}"));
937   region_data.insert(std::make_pair("NR", "{"
938       "\"fmt\":\"%N%n%O%n%A%n%S\","
939       "\"require\":\"AS\","
940       "\"state_name_type\":\"district\","
941       "\"languages\":\"en\""
942       "}"));
943   region_data.insert(std::make_pair("NU", "{"
944       "\"languages\":\"en~niu\""
945       "}"));
946   region_data.insert(std::make_pair("NZ", "{"
947       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
948       "\"require\":\"ACZ\","
949       "\"zipex\":\"6001,6015,6332,8252,1030\","
950       "\"posturl\":\"http://www.nzpost.co.nz/Cultures/en-NZ/OnlineTools/PostCodeFinder/\","
951       "\"languages\":\"en~mi\""
952       "}"));
953   region_data.insert(std::make_pair("OM", "{"
954       "\"fmt\":\"%N%n%O%n%A%n%Z%n%C\","
955       "\"zipex\":\"133,112,111\","
956       "\"languages\":\"ar\""
957       "}"));
958   region_data.insert(std::make_pair("PA", "{"
959       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
960       "\"languages\":\"es\""
961       "}"));
962   region_data.insert(std::make_pair("PE", "{"
963       "\"zipex\":\"LIMA 23,LIMA 42,CALLAO 2,02001\","
964       "\"posturl\":\"http://www.serpost.com.pe/cpostal/codigo\","
965       "\"languages\":\"es~qu\""
966       "}"));
967   region_data.insert(std::make_pair("PF", "{"
968       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
969       "\"require\":\"ACSZ\","
970       "\"state_name_type\":\"island\","
971       "\"languages\":\"fr~ty\""
972       "}"));
973   region_data.insert(std::make_pair("PG", "{"
974       "\"fmt\":\"%N%n%O%n%A%n%C %Z %S\","
975       "\"require\":\"ACS\","
976       "\"zipex\":\"111\","
977       "\"languages\":\"tpi~en~ho\""
978       "}"));
979   region_data.insert(std::make_pair("PH", "{"
980       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
981       "\"zipex\":\"1008,1050,1135,1207,2000,1000\","
982       "\"posturl\":\"http://www.philpost.gov.ph/\","
983       "\"languages\":\"en\""
984       "}"));
985   region_data.insert(std::make_pair("PK", "{"
986       "\"fmt\":\"%N%n%O%n%A%n%C-%Z\","
987       "\"zipex\":\"44000\","
988       "\"posturl\":\"http://www.pakpost.gov.pk/postcode/postcode.html\","
989       "\"languages\":\"ur~en\""
990       "}"));
991   region_data.insert(std::make_pair("PL", "{"
992       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
993       "\"require\":\"ACZ\","
994       "\"zipex\":\"00-950,05-470,48-300,32-015,00-940\","
995       "\"posturl\":\"http://www.poczta-polska.pl/kody.php\","
996       "\"languages\":\"pl\""
997       "}"));
998   region_data.insert(std::make_pair("PM", "{"
999       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
1000       "\"require\":\"ACZ\","
1001       "\"zipex\":\"97500\","
1002       "\"languages\":\"fr\""
1003       "}"));
1004   region_data.insert(std::make_pair("PN", "{"
1005       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
1006       "\"require\":\"ACZ\","
1007       "\"zipex\":\"PCRN 1ZZ\","
1008       "\"languages\":\"en\""
1009       "}"));
1010   region_data.insert(std::make_pair("PR", "{"
1011       "\"fmt\":\"%N%n%O%n%A%n%C PR %Z\","
1012       "\"require\":\"ACZ\","
1013       "\"zip_name_type\":\"zip\","
1014       "\"zipex\":\"00930\","
1015       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
1016       "\"languages\":\"es~en\""
1017       "}"));
1018   region_data.insert(std::make_pair("PS", "{"
1019       "\"languages\":\"ar\""
1020       "}"));
1021   region_data.insert(std::make_pair("PT", "{"
1022       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1023       "\"require\":\"ACZ\","
1024       "\"zipex\":\"2725-079,1250-096,1201-950,2860-571,1208-148\","
1025       "\"posturl\":\"http://www.ctt.pt/feapl_2/app/open/tools.jspx\?tool=1\","
1026       "\"languages\":\"pt\""
1027       "}"));
1028   region_data.insert(std::make_pair("PW", "{"
1029       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
1030       "\"require\":\"ACSZ\","
1031       "\"zip_name_type\":\"zip\","
1032       "\"state_name_type\":\"state\","
1033       "\"zipex\":\"96940\","
1034       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
1035       "\"languages\":\"pau~en\""
1036       "}"));
1037   region_data.insert(std::make_pair("PY", "{"
1038       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1039       "\"zipex\":\"1536,1538,1209\","
1040       "\"languages\":\"gn~es\""
1041       "}"));
1042   region_data.insert(std::make_pair("QA", "{"
1043       "\"languages\":\"ar\""
1044       "}"));
1045   region_data.insert(std::make_pair("RE", "{"
1046       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
1047       "\"require\":\"ACZ\","
1048       "\"zipex\":\"97400\","
1049       "\"posturl\":\"http://www.laposte.fr/Particulier/Utiliser-nos-outils-pratiques/Outils-et-documents/Trouvez-un-code-postal\","
1050       "\"languages\":\"fr\""
1051       "}"));
1052   region_data.insert(std::make_pair("RO", "{"
1053       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1054       "\"zipex\":\"060274,061357,200716\","
1055       "\"posturl\":\"http://www.posta-romana.ro/zip_codes\","
1056       "\"languages\":\"ro\""
1057       "}"));
1058   region_data.insert(std::make_pair("RS", "{"
1059       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1060       "\"zipex\":\"106314\","
1061       "\"posturl\":\"http://www.posta.rs/struktura/lat/aplikacije/pronadji/nadji-postu.asp\","
1062       "\"languages\":\"sr-Cyrl~sr-Latn\""
1063       "}"));
1064   region_data.insert(std::make_pair("RU", "{"
1065       "\"fmt\":\"%Z %C  %n%A%n%O%n%N\","
1066       "\"require\":\"ACZ\","
1067       "\"zipex\":\"125075,247112,103375\","
1068       "\"posturl\":\"http://info.russianpost.ru/servlet/department\","
1069       "\"languages\":\"ru\""
1070       "}"));
1071   region_data.insert(std::make_pair("RW", "{"
1072       "\"languages\":\"rw~fr~en\""
1073       "}"));
1074   region_data.insert(std::make_pair("SA", "{"
1075       "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
1076       "\"zipex\":\"11564,11187,11142\","
1077       "\"languages\":\"ar\""
1078       "}"));
1079   region_data.insert(std::make_pair("SB", "{"
1080       "\"languages\":\"en\""
1081       "}"));
1082   region_data.insert(std::make_pair("SC", "{"
1083       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
1084       "\"state_name_type\":\"island\","
1085       "\"languages\":\"fr~en\""
1086       "}"));
1087   region_data.insert(std::make_pair("SE", "{"
1088       "\"fmt\":\"%O%n%N%n%A%nSE-%Z %C\","
1089       "\"require\":\"ACZ\","
1090       "\"zipex\":\"11455,12345,10500\","
1091       "\"posturl\":\"http://www.posten.se/sv/Kundservice/Sidor/Sok-postnummer-resultat.aspx\","
1092       "\"languages\":\"sv\""
1093       "}"));
1094   region_data.insert(std::make_pair("SG", "{"
1095       "\"fmt\":\"%N%n%O%n%A%nSINGAPORE %Z\","
1096       "\"require\":\"AZ\","
1097       "\"zipex\":\"546080,308125,408600\","
1098       "\"posturl\":\"http://www.singpost.com.sg/quick_services/index.htm\","
1099       "\"languages\":\"en~zh-Hans~ms-Latn~ta\""
1100       "}"));
1101   region_data.insert(std::make_pair("SH", "{"
1102       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
1103       "\"require\":\"ACZ\","
1104       "\"zipex\":\"STHL 1ZZ\","
1105       "\"languages\":\"en\""
1106       "}"));
1107   region_data.insert(std::make_pair("SI", "{"
1108       "\"fmt\":\"%N%n%O%n%A%nSI- %Z %C\","
1109       "\"zipex\":\"4000,1001,2500\","
1110       "\"languages\":\"sl\""
1111       "}"));
1112   region_data.insert(std::make_pair("SJ", "{"
1113       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1114       "\"require\":\"ACZ\","
1115       "\"zipex\":\"9170\","
1116       "\"posturl\":\"http://epab.posten.no/\","
1117       "\"languages\":\"no\""
1118       "}"));
1119   region_data.insert(std::make_pair("SK", "{"
1120       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1121       "\"zipex\":\"010 01,023 14,972 48,921 01,975 99\","
1122       "\"posturl\":\"http://psc.posta.sk\","
1123       "\"languages\":\"sk\""
1124       "}"));
1125   region_data.insert(std::make_pair("SL", "{"
1126       "\"languages\":\"en\""
1127       "}"));
1128   region_data.insert(std::make_pair("SM", "{"
1129       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1130       "\"require\":\"AZ\","
1131       "\"zipex\":\"47890,47891,47895,47899\","
1132       "\"posturl\":\"http://www.poste.it/online/cercacap/\","
1133       "\"languages\":\"it\""
1134       "}"));
1135   region_data.insert(std::make_pair("SN", "{"
1136       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1137       "\"zipex\":\"12500,46024,16556,10000\","
1138       "\"languages\":\"fr~wo\""
1139       "}"));
1140   region_data.insert(std::make_pair("SO", "{"
1141       "\"fmt\":\"%N%n%O%n%A%n%C, %S %Z\","
1142       "\"require\":\"ACS\","
1143       "\"zipex\":\"09010,11010\","
1144       "\"languages\":\"so\""
1145       "}"));
1146   region_data.insert(std::make_pair("SR", "{"
1147       "\"fmt\":\"%N%n%O%n%A%n%C %X%n%S\","
1148       "\"languages\":\"nl\""
1149       "}"));
1150   region_data.insert(std::make_pair("ST", "{"
1151       "\"fmt\":\"%N%n%O%n%A%n%C %X\","
1152       "\"languages\":\"pt\""
1153       "}"));
1154   region_data.insert(std::make_pair("SV", "{"
1155       "\"fmt\":\"%N%n%O%n%A%n%Z-%C%n%S\","
1156       "\"require\":\"ACS\","
1157       "\"zipex\":\"CP 1101\","
1158       "\"languages\":\"es\""
1159       "}"));
1160   region_data.insert(std::make_pair("SZ", "{"
1161       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\","
1162       "\"zipex\":\"H100\","
1163       "\"posturl\":\"http://www.sptc.co.sz/swazipost/codes.php\","
1164       "\"languages\":\"en~ss\""
1165       "}"));
1166   region_data.insert(std::make_pair("TA", "{"
1167       "\"zipex\":\"TDCU 1ZZ\","
1168       "\"languages\":\"en\""
1169       "}"));
1170   region_data.insert(std::make_pair("TC", "{"
1171       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%Z\","
1172       "\"require\":\"ACZ\","
1173       "\"zipex\":\"TKCA 1ZZ\","
1174       "\"languages\":\"en\""
1175       "}"));
1176   region_data.insert(std::make_pair("TD", "{"
1177       "\"languages\":\"fr~ar\""
1178       "}"));
1179   region_data.insert(std::make_pair("TF", "{"
1180       "\"languages\":\"fr\""
1181       "}"));
1182   region_data.insert(std::make_pair("TG", "{"
1183       "\"languages\":\"fr\""
1184       "}"));
1185   region_data.insert(std::make_pair("TH", "{"
1186       "\"fmt\":\"%N%n%O%n%A%n%D %C%n%S %Z\","
1187       "\"lfmt\":\"%N%n%O%n%A%n%D, %C%n%S %Z\","
1188       "\"zipex\":\"10150,10210\","
1189       "\"languages\":\"th\""
1190       "}"));
1191   region_data.insert(std::make_pair("TJ", "{"
1192       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1193       "\"zipex\":\"735450,734025\","
1194       "\"languages\":\"tg-Cyrl\""
1195       "}"));
1196   region_data.insert(std::make_pair("TK", "{"
1197       "\"languages\":\"en~tkl\""
1198       "}"));
1199   region_data.insert(std::make_pair("TL", "{"
1200       "\"languages\":\"pt~tet\""
1201       "}"));
1202   region_data.insert(std::make_pair("TM", "{"
1203       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1204       "\"zipex\":\"744000\","
1205       "\"languages\":\"tk-Latn\""
1206       "}"));
1207   region_data.insert(std::make_pair("TN", "{"
1208       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1209       "\"zipex\":\"1002,8129,3100,1030\","
1210       "\"posturl\":\"http://www.poste.tn/codes.php\","
1211       "\"languages\":\"ar~fr\""
1212       "}"));
1213   region_data.insert(std::make_pair("TO", "{"
1214       "\"languages\":\"to~en\""
1215       "}"));
1216   region_data.insert(std::make_pair("TR", "{"
1217       "\"fmt\":\"%N%n%O%n%A%n%Z %C/%S\","
1218       "\"require\":\"ACZ\","
1219       "\"zipex\":\"01960,06101\","
1220       "\"posturl\":\"http://postakodu.ptt.gov.tr/\","
1221       "\"languages\":\"tr\""
1222       "}"));
1223   region_data.insert(std::make_pair("TT", "{"
1224       "\"languages\":\"en\""
1225       "}"));
1226   region_data.insert(std::make_pair("TV", "{"
1227       "\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%S\","
1228       "\"state_name_type\":\"island\","
1229       "\"languages\":\"tyv\""
1230       "}"));
1231   region_data.insert(std::make_pair("TW", "{"
1232       "\"fmt\":\"%Z%n%S%C%n%A%n%O%n%N\","
1233       "\"lfmt\":\"%N%n%O%n%A%n%C, %S %Z\","
1234       "\"require\":\"ACSZ\","
1235       "\"state_name_type\":\"county\","
1236       "\"zipex\":\"104,106,10603,40867\","
1237       "\"posturl\":\"http://www.post.gov.tw/post/internet/f_searchzone/index.jsp\?ID=190102\","
1238       "\"languages\":\"zh-Hant\""
1239       "}"));
1240   region_data.insert(std::make_pair("TZ", "{"
1241       "\"zipex\":\"6090\","
1242       "\"languages\":\"sw~en\""
1243       "}"));
1244   region_data.insert(std::make_pair("UA", "{"
1245       "\"fmt\":\"%Z %C%n%A%n%O%n%N\","
1246       "\"zipex\":\"15432,01055,01001\","
1247       "\"posturl\":\"http://services.ukrposhta.com/postindex_new/\","
1248       "\"languages\":\"uk~ru\""
1249       "}"));
1250   region_data.insert(std::make_pair("UG", "{"
1251       "\"languages\":\"sw~en\""
1252       "}"));
1253   region_data.insert(std::make_pair("UM", "{"
1254       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
1255       "\"require\":\"ACS\","
1256       "\"zip_name_type\":\"zip\","
1257       "\"state_name_type\":\"state\","
1258       "\"zipex\":\"96898\","
1259       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
1260       "\"languages\":\"en\""
1261       "}"));
1262   region_data.insert(std::make_pair("US", "{"
1263       "\"fmt\":\"%N%n%O%n%A%n%C, %S %Z\","
1264       "\"require\":\"ACSZ\","
1265       "\"zip_name_type\":\"zip\","
1266       "\"state_name_type\":\"state\","
1267       "\"zipex\":\"95014,22162-1010\","
1268       "\"posturl\":\"https://tools.usps.com/go/ZipLookupAction!input.action\","
1269       "\"languages\":\"en\""
1270       "}"));
1271   region_data.insert(std::make_pair("UY", "{"
1272       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
1273       "\"zipex\":\"11600\","
1274       "\"posturl\":\"http://www.correo.com.uy/index.asp\?codPag=codPost&switchMapa=codPost\","
1275       "\"languages\":\"es\""
1276       "}"));
1277   region_data.insert(std::make_pair("UZ", "{"
1278       "\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
1279       "\"zipex\":\"702100,700000\","
1280       "\"posturl\":\"http://www.pochta.uz/index.php/uz/pochta-indekslari/9\","
1281       "\"languages\":\"uz-Latn~uz-Cyrl\""
1282       "}"));
1283   region_data.insert(std::make_pair("VA", "{"
1284       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1285       "\"zipex\":\"00120\","
1286       "\"languages\":\"la\""
1287       "}"));
1288   region_data.insert(std::make_pair("VC", "{"
1289       "\"zipex\":\"VC0100,VC0110,VC0400\","
1290       "\"posturl\":\"http://www.svgpost.gov.vc/\?option=com_content&view=article&id=3&Itemid=16\","
1291       "\"languages\":\"en\""
1292       "}"));
1293   region_data.insert(std::make_pair("VE", "{"
1294       "\"fmt\":\"%N%n%O%n%A%n%C %Z, %S\","
1295       "\"require\":\"ACS\","
1296       "\"zipex\":\"1010,3001,8011,1020\","
1297       "\"posturl\":\"http://www.ipostel.gob.ve/nlinea/codigo_postal.php\","
1298       "\"languages\":\"es\""
1299       "}"));
1300   region_data.insert(std::make_pair("VG", "{"
1301       "\"require\":\"A\","
1302       "\"zipex\":\"VG1110,VG1150,VG1160\","
1303       "\"languages\":\"en\""
1304       "}"));
1305   region_data.insert(std::make_pair("VI", "{"
1306       "\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
1307       "\"require\":\"ACSZ\","
1308       "\"zip_name_type\":\"zip\","
1309       "\"state_name_type\":\"state\","
1310       "\"zipex\":\"00802-1222,00850-9802\","
1311       "\"posturl\":\"http://zip4.usps.com/zip4/welcome.jsp\","
1312       "\"languages\":\"en\""
1313       "}"));
1314   region_data.insert(std::make_pair("VN", "{"
1315       "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
1316       "\"lfmt\":\"%N%n%O%n%A%n%C%n%S\","
1317       "\"require\":\"AC\","
1318       "\"zipex\":\"119415,136065,720344\","
1319       "\"posturl\":\"http://postcode.vnpost.vn/services/search.aspx\","
1320       "\"languages\":\"vi\""
1321       "}"));
1322   region_data.insert(std::make_pair("VU", "{"
1323       "\"languages\":\"bi~en~fr\""
1324       "}"));
1325   region_data.insert(std::make_pair("WF", "{"
1326       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
1327       "\"require\":\"ACZ\","
1328       "\"zipex\":\"98600\","
1329       "\"languages\":\"fr\""
1330       "}"));
1331   region_data.insert(std::make_pair("WS", "{"
1332       "\"languages\":\"sm~en\""
1333       "}"));
1334   region_data.insert(std::make_pair("XK", "{"
1335       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1336       "\"zipex\":\"10000\","
1337       "\"languages\":\"sq~sr-Cyrl~sr-Latn\""
1338       "}"));
1339   region_data.insert(std::make_pair("YE", "{"
1340       "\"require\":\"AC\","
1341       "\"languages\":\"ar\""
1342       "}"));
1343   region_data.insert(std::make_pair("YT", "{"
1344       "\"fmt\":\"%O%n%N%n%A%n%Z %C %X\","
1345       "\"require\":\"ACZ\","
1346       "\"zipex\":\"97600\","
1347       "\"languages\":\"fr\""
1348       "}"));
1349   region_data.insert(std::make_pair("ZA", "{"
1350       "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\","
1351       "\"require\":\"ACZ\","
1352       "\"zipex\":\"0083,1451,0001\","
1353       "\"posturl\":\"http://www.postoffice.co.za/tools/postalcode.html\","
1354       "\"languages\":\"en~zu~xh~af~nso~tn~st~ts~ss~ve~nr\""
1355       "}"));
1356   region_data.insert(std::make_pair("ZM", "{"
1357       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
1358       "\"require\":\"AC\","
1359       "\"zipex\":\"50100,50101\","
1360       "\"languages\":\"en\""
1361       "}"));
1362   region_data.insert(std::make_pair("ZW", "{"
1363       "\"languages\":\"en~sn~nd\""
1364       "}"));
1365   return region_data;
1366 }
1367
1368 }  // namespace
1369
1370 // static
1371 const std::string& RegionDataConstants::GetDefaultRegionData() {
1372   static const std::string kDefaultRegionData(
1373       "{"
1374       "\"fmt\":\"%N%n%O%n%A%n%C\","
1375       "\"require\":\"AC\","
1376       "\"zip_name_type\":\"postal\","
1377       "\"state_name_type\":\"province\""
1378       "}");
1379   return kDefaultRegionData;
1380 }
1381 // ---- END AUTOGENERATED CODE ----
1382
1383 namespace {
1384
1385 const std::map<std::string, std::string>& GetAllRegionData() {
1386   static const std::map<std::string, std::string> kRegionData(InitRegionData());
1387   return kRegionData;
1388 }
1389
1390 struct SelectFirst {
1391   template <typename Pair>
1392   const typename Pair::first_type& operator()(const Pair& pair) const {
1393     return pair.first;
1394   }
1395 };
1396
1397 std::vector<std::string> InitRegionCodes() {
1398   std::vector<std::string> region_codes(GetAllRegionData().size());
1399   std::transform(GetAllRegionData().begin(), GetAllRegionData().end(),
1400                  region_codes.begin(), SelectFirst());
1401   return region_codes;
1402 }
1403
1404 const std::map<std::string, size_t> InitMaxLookupKeyDepth() {
1405   std::map<std::string, size_t> max_depth;
1406   for (std::map<std::string, std::string>::const_iterator
1407        it = GetAllRegionData().begin(); it != GetAllRegionData().end(); ++it) {
1408     std::vector<FormatElement> fields;
1409     // Here it->second actually contains the entire JSON blob for this region,
1410     // and not only the format field, but it doesn't really matter when just
1411     // checking whether a particular formatting code (eg. "%C") is present, as
1412     // there isn't anything else in the JSON that erroneously could match a
1413     // formatting code.
1414     ParseFormatRule(it->second, &fields);
1415     size_t depth = 1;
1416     for (; depth < arraysize(LookupKey::kHierarchy); ++depth) {
1417       AddressField field = LookupKey::kHierarchy[depth];
1418       // Check to see if a particular field in the hierarchy is used by
1419       // addresses in this country. If not, the maximum depth has been reached.
1420       if (std::find(fields.begin(), fields.end(), FormatElement(field)) ==
1421           fields.end()) {
1422         break;
1423       }
1424     }
1425     max_depth.insert(std::make_pair(it->first, depth - 1));
1426   }
1427   return max_depth;
1428 }
1429
1430 }  // namespace
1431
1432 // static
1433 const bool RegionDataConstants::IsSupported(const std::string& region_code) {
1434   static const std::set<std::string> kRegionCodes(GetRegionCodes().begin(),
1435                                                   GetRegionCodes().end());
1436   return kRegionCodes.find(region_code) != kRegionCodes.end();
1437 }
1438
1439 // static
1440 const std::vector<std::string>& RegionDataConstants::GetRegionCodes() {
1441   static const std::vector<std::string> kRegionCodes(InitRegionCodes());
1442   return kRegionCodes;
1443 }
1444
1445 // static
1446 const std::string& RegionDataConstants::GetRegionData(
1447     const std::string& region_code) {
1448   static const std::string kEmptyString;
1449   std::map<std::string, std::string>::const_iterator it =
1450       GetAllRegionData().find(region_code);
1451   return it != GetAllRegionData().end() ? it->second : kEmptyString;
1452 }
1453
1454 // static
1455 size_t RegionDataConstants::GetMaxLookupKeyDepth(
1456     const std::string& region_code) {
1457   static const std::map<std::string, size_t> kMaxDepth(InitMaxLookupKeyDepth());
1458   std::map<std::string, size_t>::const_iterator it =
1459       kMaxDepth.find(region_code);
1460   return it != kMaxDepth.end() ? it->second : 0;
1461 }
1462
1463 }  // namespace addressinput
1464 }  // namespace i18n