iso_2.0.0_abd8a59c/src/iso-countries.adb

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
package body ISO.Countries is

   --  *** Begin Methods/Member Functions ***
   function Name    (This : Country) return String is
   begin
      case This.Key is
         when C_AF => return "Afghanistan";
         when C_AL => return "Albania";
         when C_DZ => return "Algeria";
         when C_AS => return "American Samoa";
         when C_AD => return "Andorra";
         when C_AO => return "Angola";
         when C_AI => return "Anguilla";
         when C_AQ => return "Antarctica";
         when C_AG => return "Antigua and Barbuda";
         when C_AR => return "Argentina";
         when C_AM => return "Armenia";
         when C_AW => return "Aruba";
         when C_AU => return "Australia";
         when C_AT => return "Austria";
         when C_AZ => return "Azerbaijan";
         when C_BS => return "Bahamas (the)";
         when C_BH => return "Bahrain";
         when C_BD => return "Bangladesh";
         when C_BB => return "Barbados";
         when C_BY => return "Belarus";
         when C_BE => return "Belgium";
         when C_BZ => return "Belize";
         when C_BJ => return "Benin";
         when C_BM => return "Bermuda";
         when C_BT => return "Bhutan";
         when C_BO => return "Bolivia (Plurinational State of)";
         when C_BQ => return "Bonaire, Sint Eustatius and Saba";
         when C_BA => return "Bosnia and Herzegovina";
         when C_BW => return "Botswana";
         when C_BV => return "Bouvet Island";
         when C_BR => return "Brazil";
         when C_IO => return "British Indian Ocean Territory (the)";
         when C_BN => return "Brunei Darussalam";
         when C_BG => return "Bulgaria";
         when C_BF => return "Burkina Faso";
         when C_BI => return "Burundi";
         when C_CV => return "Cabo Verde";
         when C_KH => return "Cambodia";
         when C_CM => return "Cameroon";
         when C_CA => return "Canada";
         when C_KY => return "Cayman Islands (the)";
         when C_CF => return "Central African Republic (the)";
         when C_TD => return "Chad";
         when C_CL => return "Chile";
         when C_CN => return "China";
         when C_CX => return "Christmas Island";
         when C_CC => return "Cocos (Keeling) Islands (the)";
         when C_CO => return "Colombia";
         when C_KM => return "Comoros (the)";
         when C_CD => return "Congo (the Democratic Republic of the)";
         when C_CG => return "Congo (the)";
         when C_CK => return "Cook Islands (the)";
         when C_CR => return "Costa Rica";
         when C_HR => return "Croatia";
         when C_CU => return "Cuba";
         when C_CW => return "Curaçao";
         when C_CY => return "Cyprus";
         when C_CZ => return "Czechia";
         when C_CI => return "Côte d'Ivoire";
         when C_DK => return "Denmark";
         when C_DJ => return "Djibouti";
         when C_DM => return "Dominica";
         when C_DO => return "Dominican Republic (the)";
         when C_EC => return "Ecuador";
         when C_EG => return "Egypt";
         when C_SV => return "El Salvador";
         when C_GQ => return "Equatorial Guinea";
         when C_ER => return "Eritrea";
         when C_EE => return "Estonia";
         when C_SZ => return "Eswatini";
         when C_ET => return "Ethiopia";
         when C_FK => return "Falkland Islands (the) [Malvinas]";
         when C_FO => return "Faroe Islands (the)";
         when C_FJ => return "Fiji";
         when C_FI => return "Finland";
         when C_FR => return "France";
         when C_GF => return "French Guiana";
         when C_PF => return "French Polynesia";
         when C_TF => return "French Southern Territories (the)";
         when C_GA => return "Gabon";
         when C_GM => return "Gambia (the)";
         when C_GE => return "Georgia";
         when C_DE => return "Germany";
         when C_GH => return "Ghana";
         when C_GI => return "Gibraltar";
         when C_GR => return "Greece";
         when C_GL => return "Greenland";
         when C_GD => return "Grenada";
         when C_GP => return "Guadeloupe";
         when C_GU => return "Guam";
         when C_GT => return "Guatemala";
         when C_GG => return "Guernsey";
         when C_GN => return "Guinea";
         when C_GW => return "Guinea-Bissau";
         when C_GY => return "Guyana";
         when C_HT => return "Haiti";
         when C_HM => return "Heard Island and McDonald Islands";
         when C_VA => return "Holy See (the)";
         when C_HN => return "Honduras";
         when C_HK => return "Hong Kong";
         when C_HU => return "Hungary";
         when C_IS => return "Iceland";
         when C_IN => return "India";
         when C_ID => return "Indonesia";
         when C_IR => return "Iran (Islamic Republic of)";
         when C_IQ => return "Iraq";
         when C_IE => return "Ireland";
         when C_IM => return "Isle of Man";
         when C_IL => return "Israel";
         when C_IT => return "Italy";
         when C_JM => return "Jamaica";
         when C_JP => return "Japan";
         when C_JE => return "Jersey";
         when C_JO => return "Jordan";
         when C_KZ => return "Kazakhstan";
         when C_KE => return "Kenya";
         when C_KI => return "Kiribati";
         when C_KP => return "Korea (the Democratic People's Republic of)";
         when C_KR => return "Korea (the Republic of)";
         when C_KW => return "Kuwait";
         when C_KG => return "Kyrgyzstan";
         when C_LA => return "Lao People's Democratic Republic (the)";
         when C_LV => return "Latvia";
         when C_LB => return "Lebanon";
         when C_LS => return "Lesotho";
         when C_LR => return "Liberia";
         when C_LY => return "Libya";
         when C_LI => return "Liechtenstein";
         when C_LT => return "Lithuania";
         when C_LU => return "Luxembourg";
         when C_MO => return "Macao";
         when C_MG => return "Madagascar";
         when C_MW => return "Malawi";
         when C_MY => return "Malaysia";
         when C_MV => return "Maldives";
         when C_ML => return "Mali";
         when C_MT => return "Malta";
         when C_MH => return "Marshall Islands (the)";
         when C_MQ => return "Martinique";
         when C_MR => return "Mauritania";
         when C_MU => return "Mauritius";
         when C_YT => return "Mayotte";
         when C_MX => return "Mexico";
         when C_FM => return "Micronesia (Federated States of)";
         when C_MD => return "Moldova (the Republic of)";
         when C_MC => return "Monaco";
         when C_MN => return "Mongolia";
         when C_ME => return "Montenegro";
         when C_MS => return "Montserrat";
         when C_MA => return "Morocco";
         when C_MZ => return "Mozambique";
         when C_MM => return "Myanmar";
         when C_NA => return "Namibia";
         when C_NR => return "Nauru";
         when C_NP => return "Nepal";
         when C_NL => return "Netherlands (Kingdom of the)";
         when C_NC => return "New Caledonia";
         when C_NZ => return "New Zealand";
         when C_NI => return "Nicaragua";
         when C_NE => return "Niger (the)";
         when C_NG => return "Nigeria";
         when C_NU => return "Niue";
         when C_NF => return "Norfolk Island";
         when C_MK => return "North Macedonia";
         when C_MP => return "Northern Mariana Islands (the)";
         when C_NO => return "Norway";
         when C_OM => return "Oman";
         when C_PK => return "Pakistan";
         when C_PW => return "Palau";
         when C_PS => return "Palestine, State of";
         when C_PA => return "Panama";
         when C_PG => return "Papua New Guinea";
         when C_PY => return "Paraguay";
         when C_PE => return "Peru";
         when C_PH => return "Philippines (the)";
         when C_PN => return "Pitcairn";
         when C_PL => return "Poland";
         when C_PT => return "Portugal";
         when C_PR => return "Puerto Rico";
         when C_QA => return "Qatar";
         when C_RO => return "Romania";
         when C_RU => return "Russian Federation (the)";
         when C_RW => return "Rwanda";
         when C_RE => return "Réunion";
         when C_BL => return "Saint Barthélemy";
         when C_SH => return "Saint Helena, Ascension and Tristan da Cunha";
         when C_KN => return "Saint Kitts and Nevis";
         when C_LC => return "Saint Lucia";
         when C_MF => return "Saint Martin (French part)";
         when C_PM => return "Saint Pierre and Miquelon";
         when C_VC => return "Saint Vincent and the Grenadines";
         when C_WS => return "Samoa";
         when C_SM => return "San Marino";
         when C_ST => return "Sao Tome and Principe";
         when C_SA => return "Saudi Arabia";
         when C_SN => return "Senegal";
         when C_RS => return "Serbia";
         when C_SC => return "Seychelles";
         when C_SL => return "Sierra Leone";
         when C_SG => return "Singapore";
         when C_SX => return "Sint Maarten (Dutch part)";
         when C_SK => return "Slovakia";
         when C_SI => return "Slovenia";
         when C_SB => return "Solomon Islands";
         when C_SO => return "Somalia";
         when C_ZA => return "South Africa";
         when C_GS => return "South Georgia and the South Sandwich Islands";
         when C_SS => return "South Sudan";
         when C_ES => return "Spain";
         when C_LK => return "Sri Lanka";
         when C_SD => return "Sudan (the)";
         when C_SR => return "Suriname";
         when C_SJ => return "Svalbard and Jan Mayen";
         when C_SE => return "Sweden";
         when C_CH => return "Switzerland";
         when C_SY => return "Syrian Arab Republic (the)";
         when C_TW => return "Taiwan (Province of China)";
         when C_TJ => return "Tajikistan";
         when C_TZ => return "Tanzania, the United Republic of";
         when C_TH => return "Thailand";
         when C_TL => return "Timor-Leste";
         when C_TG => return "Togo";
         when C_TK => return "Tokelau";
         when C_TO => return "Tonga";
         when C_TT => return "Trinidad and Tobago";
         when C_TN => return "Tunisia";
         when C_TM => return "Turkmenistan";
         when C_TC => return "Turks and Caicos Islands (the)";
         when C_TV => return "Tuvalu";
         when C_TR => return "Türkiye";
         when C_UG => return "Uganda";
         when C_UA => return "Ukraine";
         when C_AE => return "United Arab Emirates (the)";
         when C_GB => return "United Kingdom of Great Britain and Northern Ireland (the)";
         when C_UM => return "United States Minor Outlying Islands (the)";
         when C_US => return "United States of America (the)";
         when C_UY => return "Uruguay";
         when C_UZ => return "Uzbekistan";
         when C_VU => return "Vanuatu";
         when C_VE => return "Venezuela (Bolivarian Republic of)";
         when C_VN => return "Viet Nam";
         when C_VG => return "Virgin Islands (British)";
         when C_VI => return "Virgin Islands (U.S.)";
         when C_WF => return "Wallis and Futuna";
         when C_EH => return "Western Sahara*";
         when C_YE => return "Yemen";
         when C_ZM => return "Zambia";
         when C_ZW => return "Zimbabwe";
         when C_AX => return "Åland Islands";
         when C_ZZ => return "Undefined";
      end case;
   end Name;
   function Alpha2  (This : Country) return Alpha2_Code is
   begin
      case This.Key is
         when C_AF => return "AF";
         when C_AL => return "AL";
         when C_DZ => return "DZ";
         when C_AS => return "AS";
         when C_AD => return "AD";
         when C_AO => return "AO";
         when C_AI => return "AI";
         when C_AQ => return "AQ";
         when C_AG => return "AG";
         when C_AR => return "AR";
         when C_AM => return "AM";
         when C_AW => return "AW";
         when C_AU => return "AU";
         when C_AT => return "AT";
         when C_AZ => return "AZ";
         when C_BS => return "BS";
         when C_BH => return "BH";
         when C_BD => return "BD";
         when C_BB => return "BB";
         when C_BY => return "BY";
         when C_BE => return "BE";
         when C_BZ => return "BZ";
         when C_BJ => return "BJ";
         when C_BM => return "BM";
         when C_BT => return "BT";
         when C_BO => return "BO";
         when C_BQ => return "BQ";
         when C_BA => return "BA";
         when C_BW => return "BW";
         when C_BV => return "BV";
         when C_BR => return "BR";
         when C_IO => return "IO";
         when C_BN => return "BN";
         when C_BG => return "BG";
         when C_BF => return "BF";
         when C_BI => return "BI";
         when C_CV => return "CV";
         when C_KH => return "KH";
         when C_CM => return "CM";
         when C_CA => return "CA";
         when C_KY => return "KY";
         when C_CF => return "CF";
         when C_TD => return "TD";
         when C_CL => return "CL";
         when C_CN => return "CN";
         when C_CX => return "CX";
         when C_CC => return "CC";
         when C_CO => return "CO";
         when C_KM => return "KM";
         when C_CD => return "CD";
         when C_CG => return "CG";
         when C_CK => return "CK";
         when C_CR => return "CR";
         when C_HR => return "HR";
         when C_CU => return "CU";
         when C_CW => return "CW";
         when C_CY => return "CY";
         when C_CZ => return "CZ";
         when C_CI => return "CI";
         when C_DK => return "DK";
         when C_DJ => return "DJ";
         when C_DM => return "DM";
         when C_DO => return "DO";
         when C_EC => return "EC";
         when C_EG => return "EG";
         when C_SV => return "SV";
         when C_GQ => return "GQ";
         when C_ER => return "ER";
         when C_EE => return "EE";
         when C_SZ => return "SZ";
         when C_ET => return "ET";
         when C_FK => return "FK";
         when C_FO => return "FO";
         when C_FJ => return "FJ";
         when C_FI => return "FI";
         when C_FR => return "FR";
         when C_GF => return "GF";
         when C_PF => return "PF";
         when C_TF => return "TF";
         when C_GA => return "GA";
         when C_GM => return "GM";
         when C_GE => return "GE";
         when C_DE => return "DE";
         when C_GH => return "GH";
         when C_GI => return "GI";
         when C_GR => return "GR";
         when C_GL => return "GL";
         when C_GD => return "GD";
         when C_GP => return "GP";
         when C_GU => return "GU";
         when C_GT => return "GT";
         when C_GG => return "GG";
         when C_GN => return "GN";
         when C_GW => return "GW";
         when C_GY => return "GY";
         when C_HT => return "HT";
         when C_HM => return "HM";
         when C_VA => return "VA";
         when C_HN => return "HN";
         when C_HK => return "HK";
         when C_HU => return "HU";
         when C_IS => return "IS";
         when C_IN => return "IN";
         when C_ID => return "ID";
         when C_IR => return "IR";
         when C_IQ => return "IQ";
         when C_IE => return "IE";
         when C_IM => return "IM";
         when C_IL => return "IL";
         when C_IT => return "IT";
         when C_JM => return "JM";
         when C_JP => return "JP";
         when C_JE => return "JE";
         when C_JO => return "JO";
         when C_KZ => return "KZ";
         when C_KE => return "KE";
         when C_KI => return "KI";
         when C_KP => return "KP";
         when C_KR => return "KR";
         when C_KW => return "KW";
         when C_KG => return "KG";
         when C_LA => return "LA";
         when C_LV => return "LV";
         when C_LB => return "LB";
         when C_LS => return "LS";
         when C_LR => return "LR";
         when C_LY => return "LY";
         when C_LI => return "LI";
         when C_LT => return "LT";
         when C_LU => return "LU";
         when C_MO => return "MO";
         when C_MG => return "MG";
         when C_MW => return "MW";
         when C_MY => return "MY";
         when C_MV => return "MV";
         when C_ML => return "ML";
         when C_MT => return "MT";
         when C_MH => return "MH";
         when C_MQ => return "MQ";
         when C_MR => return "MR";
         when C_MU => return "MU";
         when C_YT => return "YT";
         when C_MX => return "MX";
         when C_FM => return "FM";
         when C_MD => return "MD";
         when C_MC => return "MC";
         when C_MN => return "MN";
         when C_ME => return "ME";
         when C_MS => return "MS";
         when C_MA => return "MA";
         when C_MZ => return "MZ";
         when C_MM => return "MM";
         when C_NA => return "NA";
         when C_NR => return "NR";
         when C_NP => return "NP";
         when C_NL => return "NL";
         when C_NC => return "NC";
         when C_NZ => return "NZ";
         when C_NI => return "NI";
         when C_NE => return "NE";
         when C_NG => return "NG";
         when C_NU => return "NU";
         when C_NF => return "NF";
         when C_MK => return "MK";
         when C_MP => return "MP";
         when C_NO => return "NO";
         when C_OM => return "OM";
         when C_PK => return "PK";
         when C_PW => return "PW";
         when C_PS => return "PS";
         when C_PA => return "PA";
         when C_PG => return "PG";
         when C_PY => return "PY";
         when C_PE => return "PE";
         when C_PH => return "PH";
         when C_PN => return "PN";
         when C_PL => return "PL";
         when C_PT => return "PT";
         when C_PR => return "PR";
         when C_QA => return "QA";
         when C_RO => return "RO";
         when C_RU => return "RU";
         when C_RW => return "RW";
         when C_RE => return "RE";
         when C_BL => return "BL";
         when C_SH => return "SH";
         when C_KN => return "KN";
         when C_LC => return "LC";
         when C_MF => return "MF";
         when C_PM => return "PM";
         when C_VC => return "VC";
         when C_WS => return "WS";
         when C_SM => return "SM";
         when C_ST => return "ST";
         when C_SA => return "SA";
         when C_SN => return "SN";
         when C_RS => return "RS";
         when C_SC => return "SC";
         when C_SL => return "SL";
         when C_SG => return "SG";
         when C_SX => return "SX";
         when C_SK => return "SK";
         when C_SI => return "SI";
         when C_SB => return "SB";
         when C_SO => return "SO";
         when C_ZA => return "ZA";
         when C_GS => return "GS";
         when C_SS => return "SS";
         when C_ES => return "ES";
         when C_LK => return "LK";
         when C_SD => return "SD";
         when C_SR => return "SR";
         when C_SJ => return "SJ";
         when C_SE => return "SE";
         when C_CH => return "CH";
         when C_SY => return "SY";
         when C_TW => return "TW";
         when C_TJ => return "TJ";
         when C_TZ => return "TZ";
         when C_TH => return "TH";
         when C_TL => return "TL";
         when C_TG => return "TG";
         when C_TK => return "TK";
         when C_TO => return "TO";
         when C_TT => return "TT";
         when C_TN => return "TN";
         when C_TM => return "TM";
         when C_TC => return "TC";
         when C_TV => return "TV";
         when C_TR => return "TR";
         when C_UG => return "UG";
         when C_UA => return "UA";
         when C_AE => return "AE";
         when C_GB => return "GB";
         when C_UM => return "UM";
         when C_US => return "US";
         when C_UY => return "UY";
         when C_UZ => return "UZ";
         when C_VU => return "VU";
         when C_VE => return "VE";
         when C_VN => return "VN";
         when C_VG => return "VG";
         when C_VI => return "VI";
         when C_WF => return "WF";
         when C_EH => return "EH";
         when C_YE => return "YE";
         when C_ZM => return "ZM";
         when C_ZW => return "ZW";
         when C_AX => return "AX";
         when C_ZZ => return "ZZ";
      end case;
   end Alpha2;
   function Alpha3  (This : Country) return Alpha3_Code is
   begin
      case This.Key is
         when C_AF => return "AFG";
         when C_AL => return "ALB";
         when C_DZ => return "DZA";
         when C_AS => return "ASM";
         when C_AD => return "AND";
         when C_AO => return "AGO";
         when C_AI => return "AIA";
         when C_AQ => return "ATA";
         when C_AG => return "ATG";
         when C_AR => return "ARG";
         when C_AM => return "ARM";
         when C_AW => return "ABW";
         when C_AU => return "AUS";
         when C_AT => return "AUT";
         when C_AZ => return "AZE";
         when C_BS => return "BHS";
         when C_BH => return "BHR";
         when C_BD => return "BGD";
         when C_BB => return "BRB";
         when C_BY => return "BLR";
         when C_BE => return "BEL";
         when C_BZ => return "BLZ";
         when C_BJ => return "BEN";
         when C_BM => return "BMU";
         when C_BT => return "BTN";
         when C_BO => return "BOL";
         when C_BQ => return "BES";
         when C_BA => return "BIH";
         when C_BW => return "BWA";
         when C_BV => return "BVT";
         when C_BR => return "BRA";
         when C_IO => return "IOT";
         when C_BN => return "BRN";
         when C_BG => return "BGR";
         when C_BF => return "BFA";
         when C_BI => return "BDI";
         when C_CV => return "CPV";
         when C_KH => return "KHM";
         when C_CM => return "CMR";
         when C_CA => return "CAN";
         when C_KY => return "CYM";
         when C_CF => return "CAF";
         when C_TD => return "TCD";
         when C_CL => return "CHL";
         when C_CN => return "CHN";
         when C_CX => return "CXR";
         when C_CC => return "CCK";
         when C_CO => return "COL";
         when C_KM => return "COM";
         when C_CD => return "COD";
         when C_CG => return "COG";
         when C_CK => return "COK";
         when C_CR => return "CRI";
         when C_HR => return "HRV";
         when C_CU => return "CUB";
         when C_CW => return "CUW";
         when C_CY => return "CYP";
         when C_CZ => return "CZE";
         when C_CI => return "CIV";
         when C_DK => return "DNK";
         when C_DJ => return "DJI";
         when C_DM => return "DMA";
         when C_DO => return "DOM";
         when C_EC => return "ECU";
         when C_EG => return "EGY";
         when C_SV => return "SLV";
         when C_GQ => return "GNQ";
         when C_ER => return "ERI";
         when C_EE => return "EST";
         when C_SZ => return "SWZ";
         when C_ET => return "ETH";
         when C_FK => return "FLK";
         when C_FO => return "FRO";
         when C_FJ => return "FJI";
         when C_FI => return "FIN";
         when C_FR => return "FRA";
         when C_GF => return "GUF";
         when C_PF => return "PYF";
         when C_TF => return "ATF";
         when C_GA => return "GAB";
         when C_GM => return "GMB";
         when C_GE => return "GEO";
         when C_DE => return "DEU";
         when C_GH => return "GHA";
         when C_GI => return "GIB";
         when C_GR => return "GRC";
         when C_GL => return "GRL";
         when C_GD => return "GRD";
         when C_GP => return "GLP";
         when C_GU => return "GUM";
         when C_GT => return "GTM";
         when C_GG => return "GGY";
         when C_GN => return "GIN";
         when C_GW => return "GNB";
         when C_GY => return "GUY";
         when C_HT => return "HTI";
         when C_HM => return "HMD";
         when C_VA => return "VAT";
         when C_HN => return "HND";
         when C_HK => return "HKG";
         when C_HU => return "HUN";
         when C_IS => return "ISL";
         when C_IN => return "IND";
         when C_ID => return "IDN";
         when C_IR => return "IRN";
         when C_IQ => return "IRQ";
         when C_IE => return "IRL";
         when C_IM => return "IMN";
         when C_IL => return "ISR";
         when C_IT => return "ITA";
         when C_JM => return "JAM";
         when C_JP => return "JPN";
         when C_JE => return "JEY";
         when C_JO => return "JOR";
         when C_KZ => return "KAZ";
         when C_KE => return "KEN";
         when C_KI => return "KIR";
         when C_KP => return "PRK";
         when C_KR => return "KOR";
         when C_KW => return "KWT";
         when C_KG => return "KGZ";
         when C_LA => return "LAO";
         when C_LV => return "LVA";
         when C_LB => return "LBN";
         when C_LS => return "LSO";
         when C_LR => return "LBR";
         when C_LY => return "LBY";
         when C_LI => return "LIE";
         when C_LT => return "LTU";
         when C_LU => return "LUX";
         when C_MO => return "MAC";
         when C_MG => return "MDG";
         when C_MW => return "MWI";
         when C_MY => return "MYS";
         when C_MV => return "MDV";
         when C_ML => return "MLI";
         when C_MT => return "MLT";
         when C_MH => return "MHL";
         when C_MQ => return "MTQ";
         when C_MR => return "MRT";
         when C_MU => return "MUS";
         when C_YT => return "MYT";
         when C_MX => return "MEX";
         when C_FM => return "FSM";
         when C_MD => return "MDA";
         when C_MC => return "MCO";
         when C_MN => return "MNG";
         when C_ME => return "MNE";
         when C_MS => return "MSR";
         when C_MA => return "MAR";
         when C_MZ => return "MOZ";
         when C_MM => return "MMR";
         when C_NA => return "NAM";
         when C_NR => return "NRU";
         when C_NP => return "NPL";
         when C_NL => return "NLD";
         when C_NC => return "NCL";
         when C_NZ => return "NZL";
         when C_NI => return "NIC";
         when C_NE => return "NER";
         when C_NG => return "NGA";
         when C_NU => return "NIU";
         when C_NF => return "NFK";
         when C_MK => return "MKD";
         when C_MP => return "MNP";
         when C_NO => return "NOR";
         when C_OM => return "OMN";
         when C_PK => return "PAK";
         when C_PW => return "PLW";
         when C_PS => return "PSE";
         when C_PA => return "PAN";
         when C_PG => return "PNG";
         when C_PY => return "PRY";
         when C_PE => return "PER";
         when C_PH => return "PHL";
         when C_PN => return "PCN";
         when C_PL => return "POL";
         when C_PT => return "PRT";
         when C_PR => return "PRI";
         when C_QA => return "QAT";
         when C_RO => return "ROU";
         when C_RU => return "RUS";
         when C_RW => return "RWA";
         when C_RE => return "REU";
         when C_BL => return "BLM";
         when C_SH => return "SHN";
         when C_KN => return "KNA";
         when C_LC => return "LCA";
         when C_MF => return "MAF";
         when C_PM => return "SPM";
         when C_VC => return "VCT";
         when C_WS => return "WSM";
         when C_SM => return "SMR";
         when C_ST => return "STP";
         when C_SA => return "SAU";
         when C_SN => return "SEN";
         when C_RS => return "SRB";
         when C_SC => return "SYC";
         when C_SL => return "SLE";
         when C_SG => return "SGP";
         when C_SX => return "SXM";
         when C_SK => return "SVK";
         when C_SI => return "SVN";
         when C_SB => return "SLB";
         when C_SO => return "SOM";
         when C_ZA => return "ZAF";
         when C_GS => return "SGS";
         when C_SS => return "SSD";
         when C_ES => return "ESP";
         when C_LK => return "LKA";
         when C_SD => return "SDN";
         when C_SR => return "SUR";
         when C_SJ => return "SJM";
         when C_SE => return "SWE";
         when C_CH => return "CHE";
         when C_SY => return "SYR";
         when C_TW => return "TWN";
         when C_TJ => return "TJK";
         when C_TZ => return "TZA";
         when C_TH => return "THA";
         when C_TL => return "TLS";
         when C_TG => return "TGO";
         when C_TK => return "TKL";
         when C_TO => return "TON";
         when C_TT => return "TTO";
         when C_TN => return "TUN";
         when C_TM => return "TKM";
         when C_TC => return "TCA";
         when C_TV => return "TUV";
         when C_TR => return "TUR";
         when C_UG => return "UGA";
         when C_UA => return "UKR";
         when C_AE => return "ARE";
         when C_GB => return "GBR";
         when C_UM => return "UMI";
         when C_US => return "USA";
         when C_UY => return "URY";
         when C_UZ => return "UZB";
         when C_VU => return "VUT";
         when C_VE => return "VEN";
         when C_VN => return "VNM";
         when C_VG => return "VGB";
         when C_VI => return "VIR";
         when C_WF => return "WLF";
         when C_EH => return "ESH";
         when C_YE => return "YEM";
         when C_ZM => return "ZMB";
         when C_ZW => return "ZWE";
         when C_AX => return "ALA";
         when C_ZZ => return "ZZZ";
      end case;
   end Alpha3;
   function Numeric (This : Country) return Numeric_Code is
   begin
      case This.Key is
         when C_AF => return 004;
         when C_AL => return 008;
         when C_DZ => return 012;
         when C_AS => return 016;
         when C_AD => return 020;
         when C_AO => return 024;
         when C_AI => return 660;
         when C_AQ => return 010;
         when C_AG => return 028;
         when C_AR => return 032;
         when C_AM => return 051;
         when C_AW => return 533;
         when C_AU => return 036;
         when C_AT => return 040;
         when C_AZ => return 031;
         when C_BS => return 044;
         when C_BH => return 048;
         when C_BD => return 050;
         when C_BB => return 052;
         when C_BY => return 112;
         when C_BE => return 056;
         when C_BZ => return 084;
         when C_BJ => return 204;
         when C_BM => return 060;
         when C_BT => return 064;
         when C_BO => return 068;
         when C_BQ => return 535;
         when C_BA => return 070;
         when C_BW => return 072;
         when C_BV => return 074;
         when C_BR => return 076;
         when C_IO => return 086;
         when C_BN => return 096;
         when C_BG => return 100;
         when C_BF => return 854;
         when C_BI => return 108;
         when C_CV => return 132;
         when C_KH => return 116;
         when C_CM => return 120;
         when C_CA => return 124;
         when C_KY => return 136;
         when C_CF => return 140;
         when C_TD => return 148;
         when C_CL => return 152;
         when C_CN => return 156;
         when C_CX => return 162;
         when C_CC => return 166;
         when C_CO => return 170;
         when C_KM => return 174;
         when C_CD => return 180;
         when C_CG => return 178;
         when C_CK => return 184;
         when C_CR => return 188;
         when C_HR => return 191;
         when C_CU => return 192;
         when C_CW => return 531;
         when C_CY => return 196;
         when C_CZ => return 203;
         when C_CI => return 384;
         when C_DK => return 208;
         when C_DJ => return 262;
         when C_DM => return 212;
         when C_DO => return 214;
         when C_EC => return 218;
         when C_EG => return 818;
         when C_SV => return 222;
         when C_GQ => return 226;
         when C_ER => return 232;
         when C_EE => return 233;
         when C_SZ => return 748;
         when C_ET => return 231;
         when C_FK => return 238;
         when C_FO => return 234;
         when C_FJ => return 242;
         when C_FI => return 246;
         when C_FR => return 250;
         when C_GF => return 254;
         when C_PF => return 258;
         when C_TF => return 260;
         when C_GA => return 266;
         when C_GM => return 270;
         when C_GE => return 268;
         when C_DE => return 276;
         when C_GH => return 288;
         when C_GI => return 292;
         when C_GR => return 300;
         when C_GL => return 304;
         when C_GD => return 308;
         when C_GP => return 312;
         when C_GU => return 316;
         when C_GT => return 320;
         when C_GG => return 831;
         when C_GN => return 324;
         when C_GW => return 624;
         when C_GY => return 328;
         when C_HT => return 332;
         when C_HM => return 334;
         when C_VA => return 336;
         when C_HN => return 340;
         when C_HK => return 344;
         when C_HU => return 348;
         when C_IS => return 352;
         when C_IN => return 356;
         when C_ID => return 360;
         when C_IR => return 364;
         when C_IQ => return 368;
         when C_IE => return 372;
         when C_IM => return 833;
         when C_IL => return 376;
         when C_IT => return 380;
         when C_JM => return 388;
         when C_JP => return 392;
         when C_JE => return 832;
         when C_JO => return 400;
         when C_KZ => return 398;
         when C_KE => return 404;
         when C_KI => return 296;
         when C_KP => return 408;
         when C_KR => return 410;
         when C_KW => return 414;
         when C_KG => return 417;
         when C_LA => return 418;
         when C_LV => return 428;
         when C_LB => return 422;
         when C_LS => return 426;
         when C_LR => return 430;
         when C_LY => return 434;
         when C_LI => return 438;
         when C_LT => return 440;
         when C_LU => return 442;
         when C_MO => return 446;
         when C_MG => return 450;
         when C_MW => return 454;
         when C_MY => return 458;
         when C_MV => return 462;
         when C_ML => return 466;
         when C_MT => return 470;
         when C_MH => return 584;
         when C_MQ => return 474;
         when C_MR => return 478;
         when C_MU => return 480;
         when C_YT => return 175;
         when C_MX => return 484;
         when C_FM => return 583;
         when C_MD => return 498;
         when C_MC => return 492;
         when C_MN => return 496;
         when C_ME => return 499;
         when C_MS => return 500;
         when C_MA => return 504;
         when C_MZ => return 508;
         when C_MM => return 104;
         when C_NA => return 516;
         when C_NR => return 520;
         when C_NP => return 524;
         when C_NL => return 528;
         when C_NC => return 540;
         when C_NZ => return 554;
         when C_NI => return 558;
         when C_NE => return 562;
         when C_NG => return 566;
         when C_NU => return 570;
         when C_NF => return 574;
         when C_MK => return 807;
         when C_MP => return 580;
         when C_NO => return 578;
         when C_OM => return 512;
         when C_PK => return 586;
         when C_PW => return 585;
         when C_PS => return 275;
         when C_PA => return 591;
         when C_PG => return 598;
         when C_PY => return 600;
         when C_PE => return 604;
         when C_PH => return 608;
         when C_PN => return 612;
         when C_PL => return 616;
         when C_PT => return 620;
         when C_PR => return 630;
         when C_QA => return 634;
         when C_RO => return 642;
         when C_RU => return 643;
         when C_RW => return 646;
         when C_RE => return 638;
         when C_BL => return 652;
         when C_SH => return 654;
         when C_KN => return 659;
         when C_LC => return 662;
         when C_MF => return 663;
         when C_PM => return 666;
         when C_VC => return 670;
         when C_WS => return 882;
         when C_SM => return 674;
         when C_ST => return 678;
         when C_SA => return 682;
         when C_SN => return 686;
         when C_RS => return 688;
         when C_SC => return 690;
         when C_SL => return 694;
         when C_SG => return 702;
         when C_SX => return 534;
         when C_SK => return 703;
         when C_SI => return 705;
         when C_SB => return 090;
         when C_SO => return 706;
         when C_ZA => return 710;
         when C_GS => return 239;
         when C_SS => return 728;
         when C_ES => return 724;
         when C_LK => return 144;
         when C_SD => return 729;
         when C_SR => return 740;
         when C_SJ => return 744;
         when C_SE => return 752;
         when C_CH => return 756;
         when C_SY => return 760;
         when C_TW => return 158;
         when C_TJ => return 762;
         when C_TZ => return 834;
         when C_TH => return 764;
         when C_TL => return 626;
         when C_TG => return 768;
         when C_TK => return 772;
         when C_TO => return 776;
         when C_TT => return 780;
         when C_TN => return 788;
         when C_TM => return 795;
         when C_TC => return 796;
         when C_TV => return 798;
         when C_TR => return 792;
         when C_UG => return 800;
         when C_UA => return 804;
         when C_AE => return 784;
         when C_GB => return 826;
         when C_UM => return 581;
         when C_US => return 840;
         when C_UY => return 858;
         when C_UZ => return 860;
         when C_VU => return 548;
         when C_VE => return 862;
         when C_VN => return 704;
         when C_VG => return 092;
         when C_VI => return 850;
         when C_WF => return 876;
         when C_EH => return 732;
         when C_YE => return 887;
         when C_ZM => return 894;
         when C_ZW => return 716;
         when C_AX => return 248;
         when C_ZZ => return 0;
      end case;
   end Numeric;
   function Country_Code
      (This : Country) return Ada.Locales.Country_Code is
   begin
      return  Ada.Locales.Country_Code (Alpha2 (This));
   end Country_Code;
   --  *** End Methods/Member Functions ***

   --  *** Creation Functions ***
   function From_Alpha2 (Code : Alpha2_Code) return Country is
      Result : constant Country := (Key => Country_Key'Value
                                             ("C_" & Code));
   begin
      return Result;
   end From_Alpha2;
   function From_Alpha3 (Code : Alpha3_Code) return Country is
   begin
      return Result : Country do
         Result.Key := Alpha3_To_Key (Code);
      end return;
   end From_Alpha3;
   function From_Numeric (Number : Numeric_Code) return Country is
   begin
      return Result : Country do
         Result.Key := Numeric_To_Key (Number);
      end return;
   end From_Numeric;
   function From_Numeric (Number : String) return Country is
      Real_Number : constant Numeric_Code := Numeric_Code'Value (Number);
   begin
      return Result : Country do
         Result.Key := Numeric_To_Key (Real_Number);
      end return;
   end From_Numeric;
   function From_Country_Code (Code : Ada.Locales.Country_Code) return Country
   is
   begin
      return From_Alpha2 (Alpha2_Code (Code));
   end From_Country_Code;
   function Init_Countries return All_Countries is
   begin
      return Result : All_Countries do
         for X in Country_Key'Range loop
            Result (X) := (Key => X);
         end loop;
      end return;
   end Init_Countries;
   --  *** End Creation Functions ***

   --  *** Begin Lookup table functions ***
   --  Lookup table to convert numeric to country key.
   function Numeric_To_Key (Numeric : Numeric_Code) return Country_Key is
   begin
      case Numeric is
         when 004 => return C_AF;
         when 008 => return C_AL;
         when 012 => return C_DZ;
         when 016 => return C_AS;
         when 020 => return C_AD;
         when 024 => return C_AO;
         when 660 => return C_AI;
         when 010 => return C_AQ;
         when 028 => return C_AG;
         when 032 => return C_AR;
         when 051 => return C_AM;
         when 533 => return C_AW;
         when 036 => return C_AU;
         when 040 => return C_AT;
         when 031 => return C_AZ;
         when 044 => return C_BS;
         when 048 => return C_BH;
         when 050 => return C_BD;
         when 052 => return C_BB;
         when 112 => return C_BY;
         when 056 => return C_BE;
         when 084 => return C_BZ;
         when 204 => return C_BJ;
         when 060 => return C_BM;
         when 064 => return C_BT;
         when 068 => return C_BO;
         when 535 => return C_BQ;
         when 070 => return C_BA;
         when 072 => return C_BW;
         when 074 => return C_BV;
         when 076 => return C_BR;
         when 086 => return C_IO;
         when 096 => return C_BN;
         when 100 => return C_BG;
         when 854 => return C_BF;
         when 108 => return C_BI;
         when 132 => return C_CV;
         when 116 => return C_KH;
         when 120 => return C_CM;
         when 124 => return C_CA;
         when 136 => return C_KY;
         when 140 => return C_CF;
         when 148 => return C_TD;
         when 152 => return C_CL;
         when 156 => return C_CN;
         when 162 => return C_CX;
         when 166 => return C_CC;
         when 170 => return C_CO;
         when 174 => return C_KM;
         when 180 => return C_CD;
         when 178 => return C_CG;
         when 184 => return C_CK;
         when 188 => return C_CR;
         when 191 => return C_HR;
         when 192 => return C_CU;
         when 531 => return C_CW;
         when 196 => return C_CY;
         when 203 => return C_CZ;
         when 384 => return C_CI;
         when 208 => return C_DK;
         when 262 => return C_DJ;
         when 212 => return C_DM;
         when 214 => return C_DO;
         when 218 => return C_EC;
         when 818 => return C_EG;
         when 222 => return C_SV;
         when 226 => return C_GQ;
         when 232 => return C_ER;
         when 233 => return C_EE;
         when 748 => return C_SZ;
         when 231 => return C_ET;
         when 238 => return C_FK;
         when 234 => return C_FO;
         when 242 => return C_FJ;
         when 246 => return C_FI;
         when 250 => return C_FR;
         when 254 => return C_GF;
         when 258 => return C_PF;
         when 260 => return C_TF;
         when 266 => return C_GA;
         when 270 => return C_GM;
         when 268 => return C_GE;
         when 276 => return C_DE;
         when 288 => return C_GH;
         when 292 => return C_GI;
         when 300 => return C_GR;
         when 304 => return C_GL;
         when 308 => return C_GD;
         when 312 => return C_GP;
         when 316 => return C_GU;
         when 320 => return C_GT;
         when 831 => return C_GG;
         when 324 => return C_GN;
         when 624 => return C_GW;
         when 328 => return C_GY;
         when 332 => return C_HT;
         when 334 => return C_HM;
         when 336 => return C_VA;
         when 340 => return C_HN;
         when 344 => return C_HK;
         when 348 => return C_HU;
         when 352 => return C_IS;
         when 356 => return C_IN;
         when 360 => return C_ID;
         when 364 => return C_IR;
         when 368 => return C_IQ;
         when 372 => return C_IE;
         when 833 => return C_IM;
         when 376 => return C_IL;
         when 380 => return C_IT;
         when 388 => return C_JM;
         when 392 => return C_JP;
         when 832 => return C_JE;
         when 400 => return C_JO;
         when 398 => return C_KZ;
         when 404 => return C_KE;
         when 296 => return C_KI;
         when 408 => return C_KP;
         when 410 => return C_KR;
         when 414 => return C_KW;
         when 417 => return C_KG;
         when 418 => return C_LA;
         when 428 => return C_LV;
         when 422 => return C_LB;
         when 426 => return C_LS;
         when 430 => return C_LR;
         when 434 => return C_LY;
         when 438 => return C_LI;
         when 440 => return C_LT;
         when 442 => return C_LU;
         when 446 => return C_MO;
         when 450 => return C_MG;
         when 454 => return C_MW;
         when 458 => return C_MY;
         when 462 => return C_MV;
         when 466 => return C_ML;
         when 470 => return C_MT;
         when 584 => return C_MH;
         when 474 => return C_MQ;
         when 478 => return C_MR;
         when 480 => return C_MU;
         when 175 => return C_YT;
         when 484 => return C_MX;
         when 583 => return C_FM;
         when 498 => return C_MD;
         when 492 => return C_MC;
         when 496 => return C_MN;
         when 499 => return C_ME;
         when 500 => return C_MS;
         when 504 => return C_MA;
         when 508 => return C_MZ;
         when 104 => return C_MM;
         when 516 => return C_NA;
         when 520 => return C_NR;
         when 524 => return C_NP;
         when 528 => return C_NL;
         when 540 => return C_NC;
         when 554 => return C_NZ;
         when 558 => return C_NI;
         when 562 => return C_NE;
         when 566 => return C_NG;
         when 570 => return C_NU;
         when 574 => return C_NF;
         when 807 => return C_MK;
         when 580 => return C_MP;
         when 578 => return C_NO;
         when 512 => return C_OM;
         when 586 => return C_PK;
         when 585 => return C_PW;
         when 275 => return C_PS;
         when 591 => return C_PA;
         when 598 => return C_PG;
         when 600 => return C_PY;
         when 604 => return C_PE;
         when 608 => return C_PH;
         when 612 => return C_PN;
         when 616 => return C_PL;
         when 620 => return C_PT;
         when 630 => return C_PR;
         when 634 => return C_QA;
         when 642 => return C_RO;
         when 643 => return C_RU;
         when 646 => return C_RW;
         when 638 => return C_RE;
         when 652 => return C_BL;
         when 654 => return C_SH;
         when 659 => return C_KN;
         when 662 => return C_LC;
         when 663 => return C_MF;
         when 666 => return C_PM;
         when 670 => return C_VC;
         when 882 => return C_WS;
         when 674 => return C_SM;
         when 678 => return C_ST;
         when 682 => return C_SA;
         when 686 => return C_SN;
         when 688 => return C_RS;
         when 690 => return C_SC;
         when 694 => return C_SL;
         when 702 => return C_SG;
         when 534 => return C_SX;
         when 703 => return C_SK;
         when 705 => return C_SI;
         when 090 => return C_SB;
         when 706 => return C_SO;
         when 710 => return C_ZA;
         when 239 => return C_GS;
         when 728 => return C_SS;
         when 724 => return C_ES;
         when 144 => return C_LK;
         when 729 => return C_SD;
         when 740 => return C_SR;
         when 744 => return C_SJ;
         when 752 => return C_SE;
         when 756 => return C_CH;
         when 760 => return C_SY;
         when 158 => return C_TW;
         when 762 => return C_TJ;
         when 834 => return C_TZ;
         when 764 => return C_TH;
         when 626 => return C_TL;
         when 768 => return C_TG;
         when 772 => return C_TK;
         when 776 => return C_TO;
         when 780 => return C_TT;
         when 788 => return C_TN;
         when 795 => return C_TM;
         when 796 => return C_TC;
         when 798 => return C_TV;
         when 792 => return C_TR;
         when 800 => return C_UG;
         when 804 => return C_UA;
         when 784 => return C_AE;
         when 826 => return C_GB;
         when 581 => return C_UM;
         when 840 => return C_US;
         when 858 => return C_UY;
         when 860 => return C_UZ;
         when 548 => return C_VU;
         when 862 => return C_VE;
         when 704 => return C_VN;
         when 092 => return C_VG;
         when 850 => return C_VI;
         when 876 => return C_WF;
         when 732 => return C_EH;
         when 887 => return C_YE;
         when 894 => return C_ZM;
         when 716 => return C_ZW;
         when 248 => return C_AX;
         when 0 => return C_ZZ;
         when others => return C_ZZ;
      end case;
   end Numeric_To_Key;
   --  Lookup table to convert alpha_3 string to country key.
   function Alpha3_To_Key (Alpha_3 : Alpha3_Code) return Country_Key is
      --  Match the alpha 3 with a lookup table similar to Country_Key
      type Alpha3_Key is (C_AFG, C_ALB, C_DZA, C_ASM, C_AND, C_AGO, C_AIA, C_ATA, C_ATG, C_ARG, C_ARM, C_ABW, C_AUS, C_AUT, C_AZE, C_BHS, C_BHR, C_BGD, C_BRB, C_BLR, C_BEL, C_BLZ, C_BEN, C_BMU, C_BTN, C_BOL, C_BES, C_BIH, C_BWA, C_BVT, C_BRA, C_IOT, C_BRN, C_BGR, C_BFA, C_BDI, C_CPV, C_KHM, C_CMR, C_CAN, C_CYM, C_CAF, C_TCD, C_CHL, C_CHN, C_CXR, C_CCK, C_COL, C_COM, C_COD, C_COG, C_COK, C_CRI, C_HRV, C_CUB, C_CUW, C_CYP, C_CZE, C_CIV, C_DNK, C_DJI, C_DMA, C_DOM, C_ECU, C_EGY, C_SLV, C_GNQ, C_ERI, C_EST, C_SWZ, C_ETH, C_FLK, C_FRO, C_FJI, C_FIN, C_FRA, C_GUF, C_PYF, C_ATF, C_GAB, C_GMB, C_GEO, C_DEU, C_GHA, C_GIB, C_GRC, C_GRL, C_GRD, C_GLP, C_GUM, C_GTM, C_GGY, C_GIN, C_GNB, C_GUY, C_HTI, C_HMD, C_VAT, C_HND, C_HKG, C_HUN, C_ISL, C_IND, C_IDN, C_IRN, C_IRQ, C_IRL, C_IMN, C_ISR, C_ITA, C_JAM, C_JPN, C_JEY, C_JOR, C_KAZ, C_KEN, C_KIR, C_PRK, C_KOR, C_KWT, C_KGZ, C_LAO, C_LVA, C_LBN, C_LSO, C_LBR, C_LBY, C_LIE, C_LTU, C_LUX, C_MAC, C_MDG, C_MWI, C_MYS, C_MDV, C_MLI, C_MLT, C_MHL, C_MTQ, C_MRT, C_MUS, C_MYT, C_MEX, C_FSM, C_MDA, C_MCO, C_MNG, C_MNE, C_MSR, C_MAR, C_MOZ, C_MMR, C_NAM, C_NRU, C_NPL, C_NLD, C_NCL, C_NZL, C_NIC, C_NER, C_NGA, C_NIU, C_NFK, C_MKD, C_MNP, C_NOR, C_OMN, C_PAK, C_PLW, C_PSE, C_PAN, C_PNG, C_PRY, C_PER, C_PHL, C_PCN, C_POL, C_PRT, C_PRI, C_QAT, C_ROU, C_RUS, C_RWA, C_REU, C_BLM, C_SHN, C_KNA, C_LCA, C_MAF, C_SPM, C_VCT, C_WSM, C_SMR, C_STP, C_SAU, C_SEN, C_SRB, C_SYC, C_SLE, C_SGP, C_SXM, C_SVK, C_SVN, C_SLB, C_SOM, C_ZAF, C_SGS, C_SSD, C_ESP, C_LKA, C_SDN, C_SUR, C_SJM, C_SWE, C_CHE, C_SYR, C_TWN, C_TJK, C_TZA, C_THA, C_TLS, C_TGO, C_TKL, C_TON, C_TTO, C_TUN, C_TKM, C_TCA, C_TUV, C_TUR, C_UGA, C_UKR, C_ARE, C_GBR, C_UMI, C_USA, C_URY, C_UZB, C_VUT, C_VEN, C_VNM, C_VGB, C_VIR, C_WLF, C_ESH, C_YEM, C_ZMB, C_ZWE, C_ALA, C_ZZZ);
      Key : constant Alpha3_Key := Alpha3_Key'Value ("C_" & Alpha_3);
   begin
      case Key is
         when C_AFG => return C_AF;
         when C_ALB => return C_AL;
         when C_DZA => return C_DZ;
         when C_ASM => return C_AS;
         when C_AND => return C_AD;
         when C_AGO => return C_AO;
         when C_AIA => return C_AI;
         when C_ATA => return C_AQ;
         when C_ATG => return C_AG;
         when C_ARG => return C_AR;
         when C_ARM => return C_AM;
         when C_ABW => return C_AW;
         when C_AUS => return C_AU;
         when C_AUT => return C_AT;
         when C_AZE => return C_AZ;
         when C_BHS => return C_BS;
         when C_BHR => return C_BH;
         when C_BGD => return C_BD;
         when C_BRB => return C_BB;
         when C_BLR => return C_BY;
         when C_BEL => return C_BE;
         when C_BLZ => return C_BZ;
         when C_BEN => return C_BJ;
         when C_BMU => return C_BM;
         when C_BTN => return C_BT;
         when C_BOL => return C_BO;
         when C_BES => return C_BQ;
         when C_BIH => return C_BA;
         when C_BWA => return C_BW;
         when C_BVT => return C_BV;
         when C_BRA => return C_BR;
         when C_IOT => return C_IO;
         when C_BRN => return C_BN;
         when C_BGR => return C_BG;
         when C_BFA => return C_BF;
         when C_BDI => return C_BI;
         when C_CPV => return C_CV;
         when C_KHM => return C_KH;
         when C_CMR => return C_CM;
         when C_CAN => return C_CA;
         when C_CYM => return C_KY;
         when C_CAF => return C_CF;
         when C_TCD => return C_TD;
         when C_CHL => return C_CL;
         when C_CHN => return C_CN;
         when C_CXR => return C_CX;
         when C_CCK => return C_CC;
         when C_COL => return C_CO;
         when C_COM => return C_KM;
         when C_COD => return C_CD;
         when C_COG => return C_CG;
         when C_COK => return C_CK;
         when C_CRI => return C_CR;
         when C_HRV => return C_HR;
         when C_CUB => return C_CU;
         when C_CUW => return C_CW;
         when C_CYP => return C_CY;
         when C_CZE => return C_CZ;
         when C_CIV => return C_CI;
         when C_DNK => return C_DK;
         when C_DJI => return C_DJ;
         when C_DMA => return C_DM;
         when C_DOM => return C_DO;
         when C_ECU => return C_EC;
         when C_EGY => return C_EG;
         when C_SLV => return C_SV;
         when C_GNQ => return C_GQ;
         when C_ERI => return C_ER;
         when C_EST => return C_EE;
         when C_SWZ => return C_SZ;
         when C_ETH => return C_ET;
         when C_FLK => return C_FK;
         when C_FRO => return C_FO;
         when C_FJI => return C_FJ;
         when C_FIN => return C_FI;
         when C_FRA => return C_FR;
         when C_GUF => return C_GF;
         when C_PYF => return C_PF;
         when C_ATF => return C_TF;
         when C_GAB => return C_GA;
         when C_GMB => return C_GM;
         when C_GEO => return C_GE;
         when C_DEU => return C_DE;
         when C_GHA => return C_GH;
         when C_GIB => return C_GI;
         when C_GRC => return C_GR;
         when C_GRL => return C_GL;
         when C_GRD => return C_GD;
         when C_GLP => return C_GP;
         when C_GUM => return C_GU;
         when C_GTM => return C_GT;
         when C_GGY => return C_GG;
         when C_GIN => return C_GN;
         when C_GNB => return C_GW;
         when C_GUY => return C_GY;
         when C_HTI => return C_HT;
         when C_HMD => return C_HM;
         when C_VAT => return C_VA;
         when C_HND => return C_HN;
         when C_HKG => return C_HK;
         when C_HUN => return C_HU;
         when C_ISL => return C_IS;
         when C_IND => return C_IN;
         when C_IDN => return C_ID;
         when C_IRN => return C_IR;
         when C_IRQ => return C_IQ;
         when C_IRL => return C_IE;
         when C_IMN => return C_IM;
         when C_ISR => return C_IL;
         when C_ITA => return C_IT;
         when C_JAM => return C_JM;
         when C_JPN => return C_JP;
         when C_JEY => return C_JE;
         when C_JOR => return C_JO;
         when C_KAZ => return C_KZ;
         when C_KEN => return C_KE;
         when C_KIR => return C_KI;
         when C_PRK => return C_KP;
         when C_KOR => return C_KR;
         when C_KWT => return C_KW;
         when C_KGZ => return C_KG;
         when C_LAO => return C_LA;
         when C_LVA => return C_LV;
         when C_LBN => return C_LB;
         when C_LSO => return C_LS;
         when C_LBR => return C_LR;
         when C_LBY => return C_LY;
         when C_LIE => return C_LI;
         when C_LTU => return C_LT;
         when C_LUX => return C_LU;
         when C_MAC => return C_MO;
         when C_MDG => return C_MG;
         when C_MWI => return C_MW;
         when C_MYS => return C_MY;
         when C_MDV => return C_MV;
         when C_MLI => return C_ML;
         when C_MLT => return C_MT;
         when C_MHL => return C_MH;
         when C_MTQ => return C_MQ;
         when C_MRT => return C_MR;
         when C_MUS => return C_MU;
         when C_MYT => return C_YT;
         when C_MEX => return C_MX;
         when C_FSM => return C_FM;
         when C_MDA => return C_MD;
         when C_MCO => return C_MC;
         when C_MNG => return C_MN;
         when C_MNE => return C_ME;
         when C_MSR => return C_MS;
         when C_MAR => return C_MA;
         when C_MOZ => return C_MZ;
         when C_MMR => return C_MM;
         when C_NAM => return C_NA;
         when C_NRU => return C_NR;
         when C_NPL => return C_NP;
         when C_NLD => return C_NL;
         when C_NCL => return C_NC;
         when C_NZL => return C_NZ;
         when C_NIC => return C_NI;
         when C_NER => return C_NE;
         when C_NGA => return C_NG;
         when C_NIU => return C_NU;
         when C_NFK => return C_NF;
         when C_MKD => return C_MK;
         when C_MNP => return C_MP;
         when C_NOR => return C_NO;
         when C_OMN => return C_OM;
         when C_PAK => return C_PK;
         when C_PLW => return C_PW;
         when C_PSE => return C_PS;
         when C_PAN => return C_PA;
         when C_PNG => return C_PG;
         when C_PRY => return C_PY;
         when C_PER => return C_PE;
         when C_PHL => return C_PH;
         when C_PCN => return C_PN;
         when C_POL => return C_PL;
         when C_PRT => return C_PT;
         when C_PRI => return C_PR;
         when C_QAT => return C_QA;
         when C_ROU => return C_RO;
         when C_RUS => return C_RU;
         when C_RWA => return C_RW;
         when C_REU => return C_RE;
         when C_BLM => return C_BL;
         when C_SHN => return C_SH;
         when C_KNA => return C_KN;
         when C_LCA => return C_LC;
         when C_MAF => return C_MF;
         when C_SPM => return C_PM;
         when C_VCT => return C_VC;
         when C_WSM => return C_WS;
         when C_SMR => return C_SM;
         when C_STP => return C_ST;
         when C_SAU => return C_SA;
         when C_SEN => return C_SN;
         when C_SRB => return C_RS;
         when C_SYC => return C_SC;
         when C_SLE => return C_SL;
         when C_SGP => return C_SG;
         when C_SXM => return C_SX;
         when C_SVK => return C_SK;
         when C_SVN => return C_SI;
         when C_SLB => return C_SB;
         when C_SOM => return C_SO;
         when C_ZAF => return C_ZA;
         when C_SGS => return C_GS;
         when C_SSD => return C_SS;
         when C_ESP => return C_ES;
         when C_LKA => return C_LK;
         when C_SDN => return C_SD;
         when C_SUR => return C_SR;
         when C_SJM => return C_SJ;
         when C_SWE => return C_SE;
         when C_CHE => return C_CH;
         when C_SYR => return C_SY;
         when C_TWN => return C_TW;
         when C_TJK => return C_TJ;
         when C_TZA => return C_TZ;
         when C_THA => return C_TH;
         when C_TLS => return C_TL;
         when C_TGO => return C_TG;
         when C_TKL => return C_TK;
         when C_TON => return C_TO;
         when C_TTO => return C_TT;
         when C_TUN => return C_TN;
         when C_TKM => return C_TM;
         when C_TCA => return C_TC;
         when C_TUV => return C_TV;
         when C_TUR => return C_TR;
         when C_UGA => return C_UG;
         when C_UKR => return C_UA;
         when C_ARE => return C_AE;
         when C_GBR => return C_GB;
         when C_UMI => return C_UM;
         when C_USA => return C_US;
         when C_URY => return C_UY;
         when C_UZB => return C_UZ;
         when C_VUT => return C_VU;
         when C_VEN => return C_VE;
         when C_VNM => return C_VN;
         when C_VGB => return C_VG;
         when C_VIR => return C_VI;
         when C_WLF => return C_WF;
         when C_ESH => return C_EH;
         when C_YEM => return C_YE;
         when C_ZMB => return C_ZM;
         when C_ZWE => return C_ZW;
         when C_ALA => return C_AX;
         when C_ZZZ => return C_ZZ;
      end case;
   end Alpha3_To_Key;
   --  *** End Lookup table functions ***

end ISO.Countries;