use phf::phf_map;

#[derive(Debug, Clone, Copy)]
pub struct Data {
    pub code: &'static str,
    pub symbol: &'static str,
    pub name: &'static str,
    pub numeric: &'static str,
    pub minor_unit: &'static str,
    pub minor_unit_symbol: &'static str,
    pub minor_unit_name: &'static str,
    pub thousand_separator: &'static str,
    pub decimal_separator: &'static str,
    pub origin: &'static str,
    pub locale: &'static str,
}

/// ISO 4217 currencies data.
pub static ISO_CURRENCY_DATA: phf::Map<&'static str, Data> = phf_map! {
    "AED" => Data { code: "AED", symbol: "د.إ"   , name: "United Arab Emirates dirham"                  , numeric: "784", minor_unit: "2", minor_unit_symbol: "فلس"  , minor_unit_name: "fils", thousand_separator: ",", decimal_separator: ".", origin: "United Arab Emirates"  , locale: "ar-AE" },
    "AFN" => Data { code: "AFN", symbol: "؋"     , name: "Afghan afghani"                               , numeric: "971", minor_unit: "2", minor_unit_symbol: "پول"  , minor_unit_name: "pul", thousand_separator: "٬", decimal_separator: "٫", origin: "Afghanistan"           , locale: "fa-AF" },
    "ALL" => Data { code: "ALL", symbol: "L"     , name: "Albanian lek"                                 , numeric: "8"  , minor_unit: "2", minor_unit_symbol: "q"    , minor_unit_name: "qindarkë", thousand_separator: " ", decimal_separator: ",", origin: "Albania"               , locale: "sq-AL" },
    "AMD" => Data { code: "AMD", symbol: "֏"     , name: "Armenian dram"                                , numeric: "51" , minor_unit: "2", minor_unit_symbol: "լ"    , minor_unit_name: "luma", thousand_separator: " ", decimal_separator: ",", origin: "Armenia"               , locale: "hy-AM" },
    "AOA" => Data { code: "AOA", symbol: "Kz"    , name: "Angolan kwanza"                               , numeric: "973", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cêntimo", thousand_separator: " ", decimal_separator: ",", origin: "Angola"                , locale: "pt-AO" },
    "ARS" => Data { code: "ARS", symbol: "$"     , name: "Argentine peso"                               , numeric: "32" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ".", decimal_separator: ",", origin: "Argentina"             , locale: "es-AR" },
    "AUD" => Data { code: "AUD", symbol: "$"     , name: "Australian dollar"                            , numeric: "36" , minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Australia"             , locale: "en-AU" },
    "AWG" => Data { code: "AWG", symbol: "ƒ"     , name: "Aruban florin"                                , numeric: "533", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ".", decimal_separator: ",", origin: "Aruba"                 , locale: "nl-AW" },
    "AZN" => Data { code: "AZN", symbol: "₼"     , name: "Azerbaijani manat"                            , numeric: "944", minor_unit: "2", minor_unit_symbol: "q"    , minor_unit_name: "qəpik", thousand_separator: ".", decimal_separator: ",", origin: "Azerbaijan"            , locale: "az-AZ" },
    "BAM" => Data { code: "BAM", symbol: "KM"    , name: "Bosnia and Herzegovina convertible mark"      , numeric: "977", minor_unit: "2", minor_unit_symbol: "pf"   , minor_unit_name: "fening", thousand_separator: ".", decimal_separator: ",", origin: "Bosnia and Herzegovina", locale: "bs-BA" },
    "BBD" => Data { code: "BBD", symbol: "Bds$"  , name: "Barbados dollar"                              , numeric: "52" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Barbados"              , locale: "en-BB" },
    "BDT" => Data { code: "BDT", symbol: "৳"     , name: "Bangladeshi taka"                             , numeric: "50" , minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "poisha", thousand_separator: ",", decimal_separator: ".", origin: "Bangladesh"            , locale: "bn-BD" },
    "BGN" => Data { code: "BGN", symbol: "лв."   , name: "Bulgarian lev"                                , numeric: "975", minor_unit: "2", minor_unit_symbol: "ст."  , minor_unit_name: "stotinka", thousand_separator: " ", decimal_separator: ",", origin: "Bulgaria"              , locale: "bg-BG" },
    "BHD" => Data { code: "BHD", symbol: ".د.ب"  , name: "Bahraini dinar"                               , numeric: "48" , minor_unit: "3", minor_unit_symbol: "فلس"  , minor_unit_name: "fils", thousand_separator: "٬", decimal_separator: "٫", origin: "Bahrain"               , locale: "ar-BH" },
    "BIF" => Data { code: "BIF", symbol: "FBu"   , name: "Burundian franc"                              , numeric: "108", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "Burundi"               , locale: "fr-BI" },
    "BMD" => Data { code: "BMD", symbol: "$"     , name: "Bermudian dollar"                             , numeric: "60" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Bermuda"               , locale: "en-BM" },
    "BND" => Data { code: "BND", symbol: "B$"    , name: "Brunei dollar"                                , numeric: "96" , minor_unit: "2", minor_unit_symbol: "sen"  , minor_unit_name: "sen", thousand_separator: ".", decimal_separator: ",", origin: "Brunei"                , locale: "ms-BN" },
    "BOB" => Data { code: "BOB", symbol: "Bs."   , name: "Boliviano"                                    , numeric: "68" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ".", decimal_separator: ",", origin: "Bolivia"               , locale: "es-BO" },
    "BOV" => Data { code: "BOV", symbol: "¤"     , name: "Bolivian Mvdol"                               , numeric: "984", minor_unit: "2", minor_unit_symbol: "minor", minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Bolivia"               , locale: "es-BO" },
    "BRL" => Data { code: "BRL", symbol: "R$"    , name: "Brazilian real"                               , numeric: "986", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ".", decimal_separator: ",", origin: "Brazil"                , locale: "pt-BR" },
    "BSD" => Data { code: "BSD", symbol: "$"     , name: "Bahamian dollar"                              , numeric: "44" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Bahamas"               , locale: "en-BS" },
    "BTN" => Data { code: "BTN", symbol: "Nu."   , name: "Bhutanese ngultrum"                           , numeric: "64" , minor_unit: "2", minor_unit_symbol: "Ch."  , minor_unit_name: "chhertum", thousand_separator: ",", decimal_separator: ".", origin: "Bhutan"                , locale: "dz-BT" },
    "BWP" => Data { code: "BWP", symbol: "P"     , name: "Botswana pula"                                , numeric: "72" , minor_unit: "2", minor_unit_symbol: "t"    , minor_unit_name: "thebe", thousand_separator: ",", decimal_separator: ".", origin: "Botswana"              , locale: "en-BW" },
    "BYN" => Data { code: "BYN", symbol: "Br"    , name: "Belarusian ruble"                             , numeric: "933", minor_unit: "2", minor_unit_symbol: "коп." , minor_unit_name: "kopek", thousand_separator: " ", decimal_separator: ",", origin: "Belarus"               , locale: "be-BY" },
    "BZD" => Data { code: "BZD", symbol: "$"     , name: "Belize dollar"                                , numeric: "84" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Belize"                , locale: "en-BZ" },
    "CAD" => Data { code: "CAD", symbol: "$"     , name: "Canadian dollar"                              , numeric: "124", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Canada"                , locale: "en-CA" },
    "CDF" => Data { code: "CDF", symbol: "₣"     , name: "Congolese franc"                              , numeric: "976", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "centime", thousand_separator: " ", decimal_separator: ",", origin: "Congo (DRC)"           , locale: "fr-CD" },
    "CHE" => Data { code: "CHE", symbol: "¤"     , name: "WIR Euro"                                     , numeric: "947", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "", thousand_separator: "'", decimal_separator: ".", origin: "Switzerland"           , locale: "de-CH" },
    "CHF" => Data { code: "CHF", symbol: "₣"     , name: "Swiss franc"                                  , numeric: "756", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "Rappen/centime", thousand_separator: "'", decimal_separator: ".", origin: "Switzerland"           , locale: "de-CH" },
    "CHW" => Data { code: "CHW", symbol: "¤"     , name: "WIR Franc"                                    , numeric: "948", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "", thousand_separator: "'", decimal_separator: ".", origin: "Switzerland"           , locale: "de-CH" },
    "CLF" => Data { code: "CLF", symbol: "¤"     , name: "Unidad de Fomento"                            , numeric: "990", minor_unit: "4", minor_unit_symbol: "minor", minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Chile"                 , locale: "es-CL" },
    "CLP" => Data { code: "CLP", symbol: "$"     , name: "Chilean peso"                                 , numeric: "152", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Chile"                 , locale: "es-CL" },
    "CNY" => Data { code: "CNY", symbol: "¥"     , name: "Renminbi (Chinese) yuan"                      , numeric: "156", minor_unit: "2", minor_unit_symbol: "分"    , minor_unit_name: "fen", thousand_separator: ",", decimal_separator: ".", origin: "China"                 , locale: "zh-CN" },
    "COP" => Data { code: "COP", symbol: "$"     , name: "Colombian peso"                               , numeric: "170", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ".", decimal_separator: ",", origin: "Colombia"              , locale: "es-CO" },
    "COU" => Data { code: "COU", symbol: "¤"     , name: "Unidad de Valor Real (UVR)"                   , numeric: "970", minor_unit: "2", minor_unit_symbol: "minor", minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Colombia"              , locale: "es-CO" },
    "CRC" => Data { code: "CRC", symbol: "₡"     , name: "Costa Rican colon"                            , numeric: "188", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "céntimo", thousand_separator: " ", decimal_separator: ",", origin: "Costa Rica"            , locale: "es-CR" },
    "CUC" => Data { code: "CUC", symbol: "$"     , name: "Cuban convertible peso"                       , numeric: "931", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Cuba"                  , locale: "es-CU" },
    "CUP" => Data { code: "CUP", symbol: "₱"     , name: "Cuban peso"                                   , numeric: "192", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Cuba"                  , locale: "es-CU" },
    "CVE" => Data { code: "CVE", symbol: "Esc"   , name: "Cape Verdean escudo"                          , numeric: "132", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: " ", decimal_separator: ",", origin: "Cape Verde"            , locale: "pt-CV" },
    "CZK" => Data { code: "CZK", symbol: "Kč"    , name: "Czech koruna"                                 , numeric: "203", minor_unit: "2", minor_unit_symbol: "h"    , minor_unit_name: "haléř", thousand_separator: " ", decimal_separator: ",", origin: "Czech Republic"        , locale: "cs-CZ" },
    "DJF" => Data { code: "DJF", symbol: "₣"     , name: "Djiboutian franc"                             , numeric: "262", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "Djibouti"              , locale: "fr-DJ" },
    "DKK" => Data { code: "DKK", symbol: "kr"    , name: "Danish krone"                                 , numeric: "208", minor_unit: "2", minor_unit_symbol: "øre"  , minor_unit_name: "øre", thousand_separator: ".", decimal_separator: ",", origin: "Denmark"               , locale: "da-DK" },
    "DOP" => Data { code: "DOP", symbol: "RD$"   , name: "Dominican peso"                               , numeric: "214", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Dominican Republic"    , locale: "es-DO" },
    "DZD" => Data { code: "DZD", symbol: "دج"    , name: "Algerian dinar"                               , numeric: "12" , minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "centime/santim", thousand_separator: ".", decimal_separator: ",", origin: "Algeria"               , locale: "ar-DZ" },
    "EGP" => Data { code: "EGP", symbol: "£"     , name: "Egyptian pound"                               , numeric: "818", minor_unit: "2", minor_unit_symbol: "pt"   , minor_unit_name: "piastre", thousand_separator: "٬", decimal_separator: "٫", origin: "Egypt"                 , locale: "ar-EG" },
    "ERN" => Data { code: "ERN", symbol: "Nfk"   , name: "Eritrean nakfa"                               , numeric: "232", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Eritrea"               , locale: "ti-ER" },
    "ETB" => Data { code: "ETB", symbol: "Br"    , name: "Ethiopian birr"                               , numeric: "230", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "santim", thousand_separator: ",", decimal_separator: ".", origin: "Ethiopia"              , locale: "am-ET" },
    "EUR" => Data { code: "EUR", symbol: "€"     , name: "Euro"                                         , numeric: "978", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "cent", thousand_separator: ".", decimal_separator: ",", origin: "Eurozone"              , locale: "de-DE" },
    "FJD" => Data { code: "FJD", symbol: "FJ$"   , name: "Fiji dollar"                                  , numeric: "242", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Fiji"                  , locale: "en-FJ" },
    "FKP" => Data { code: "FKP", symbol: "£"     , name: "Falkland Islands pound"                       , numeric: "238", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "penny", thousand_separator: ",", decimal_separator: ".", origin: "Falkland Islands"      , locale: "en-FK" },
    "GBP" => Data { code: "GBP", symbol: "£"     , name: "Pound sterling"                               , numeric: "826", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "penny", thousand_separator: ",", decimal_separator: ".", origin: "United Kingdom"        , locale: "en-GB" },
    "GEL" => Data { code: "GEL", symbol: "ლ"     , name: "Georgian lari"                                , numeric: "981", minor_unit: "2", minor_unit_symbol: "₮"    , minor_unit_name: "tetri", thousand_separator: " ", decimal_separator: ",", origin: "Georgia"               , locale: "ka-GE" },
    "GHS" => Data { code: "GHS", symbol: "GH₵"   , name: "Ghanaian cedi"                                , numeric: "936", minor_unit: "2", minor_unit_symbol: "Gp"   , minor_unit_name: "pesewa", thousand_separator: ",", decimal_separator: ".", origin: "Ghana"                 , locale: "en-GH" },
    "GIP" => Data { code: "GIP", symbol: "£"     , name: "Gibraltar pound"                              , numeric: "292", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "penny", thousand_separator: ",", decimal_separator: ".", origin: "Gibraltar"             , locale: "en-GI" },
    "GMD" => Data { code: "GMD", symbol: "D"     , name: "Gambian dalasi"                               , numeric: "270", minor_unit: "2", minor_unit_symbol: "b"    , minor_unit_name: "butut", thousand_separator: ",", decimal_separator: ".", origin: "Gambia"                , locale: "en-GM" },
    "GNF" => Data { code: "GNF", symbol: "₣"     , name: "Guinean franc"                                , numeric: "324", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "Guinea"                , locale: "fr-GN" },
    "GTQ" => Data { code: "GTQ", symbol: "Q"     , name: "Guatemalan quetzal"                           , numeric: "320", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Guatemala"             , locale: "es-GT" },
    "GYD" => Data { code: "GYD", symbol: "G$"    , name: "Guyanese dollar"                              , numeric: "328", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Guyana"                , locale: "en-GY" },
    "HKD" => Data { code: "HKD", symbol: "HK$"   , name: "Hong Kong dollar"                             , numeric: "344", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Hong Kong"             , locale: "zh-HK" },
    "HNL" => Data { code: "HNL", symbol: "L"     , name: "Honduran lempira"                             , numeric: "340", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Honduras"              , locale: "es-HN" },
    "HRK" => Data { code: "HRK", symbol: "kn"    , name: "Croatian kuna"                                , numeric: "191", minor_unit: "2", minor_unit_symbol: "lp"   , minor_unit_name: "lipa", thousand_separator: ".", decimal_separator: ",", origin: "Croatia"               , locale: "hr-HR" },
    "HTG" => Data { code: "HTG", symbol: "G"     , name: "Haitian gourde"                               , numeric: "332", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "centime", thousand_separator: " ", decimal_separator: ",", origin: "Haiti"                 , locale: "ht-HT" },
    "HUF" => Data { code: "HUF", symbol: "Ft"    , name: "Hungarian forint"                             , numeric: "348", minor_unit: "2", minor_unit_symbol: "f"    , minor_unit_name: "fillér", thousand_separator: " ", decimal_separator: ",", origin: "Hungary"               , locale: "hu-HU" },
    "IDR" => Data { code: "IDR", symbol: "Rp"    , name: "Indonesian rupiah"                            , numeric: "360", minor_unit: "2", minor_unit_symbol: "sen"  , minor_unit_name: "sen", thousand_separator: ".", decimal_separator: ",", origin: "Indonesia"             , locale: "id-ID" },
    "ILS" => Data { code: "ILS", symbol: "₪"     , name: "Israeli new shekel"                           , numeric: "376", minor_unit: "2", minor_unit_symbol: "ag."  , minor_unit_name: "agora", thousand_separator: ",", decimal_separator: ".", origin: "Israel"                , locale: "he-IL" },
    "INR" => Data { code: "INR", symbol: "₹"     , name: "Indian rupee"                                 , numeric: "356", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "paisa", thousand_separator: ",", decimal_separator: ".", origin: "India"                 , locale: "hi-IN" },
    "IQD" => Data { code: "IQD", symbol: "د.ع"   , name: "Iraqi dinar"                                  , numeric: "368", minor_unit: "3", minor_unit_symbol: "فلس"  , minor_unit_name: "fils", thousand_separator: "٬", decimal_separator: "٫", origin: "Iraq"                  , locale: "ar-IQ" },
    "IRR" => Data { code: "IRR", symbol: "﷼"     , name: "Iranian rial"                                 , numeric: "364", minor_unit: "2", minor_unit_symbol: "minor", minor_unit_name: "dinar", thousand_separator: "٬", decimal_separator: "٫", origin: "Iran"                  , locale: "fa-IR" },
    "ISK" => Data { code: "ISK", symbol: "kr"    , name: "Icelandic króna"                              , numeric: "352", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Iceland"               , locale: "is-IS" },
    "JMD" => Data { code: "JMD", symbol: "$"     , name: "Jamaican dollar"                              , numeric: "388", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Jamaica"               , locale: "en-JM" },
    "JOD" => Data { code: "JOD", symbol: "JD"    , name: "Jordanian dinar"                              , numeric: "400", minor_unit: "3", minor_unit_symbol: "فلس"  , minor_unit_name: "fils", thousand_separator: "٬", decimal_separator: "٫", origin: "Jordan"                , locale: "ar-JO" },
    "JPY" => Data { code: "JPY", symbol: "¥"     , name: "Japanese yen"                                 , numeric: "392", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "Japan"                 , locale: "ja-JP" },
    "KES" => Data { code: "KES", symbol: "Ksh"   , name: "Kenyan shilling"                              , numeric: "404", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Kenya"                 , locale: "en-KE" },
    "KGS" => Data { code: "KGS", symbol: "С̲"    , name: "Kyrgyzstani som"                              , numeric: "417", minor_unit: "2", minor_unit_symbol: "тыйын", minor_unit_name: "tyiyn", thousand_separator: " ", decimal_separator: ",", origin: "Kyrgyzstan"            , locale: "ky-KG" },
    "KHR" => Data { code: "KHR", symbol: "៛"     , name: "Cambodian riel"                               , numeric: "116", minor_unit: "2", minor_unit_symbol: "sen"  , minor_unit_name: "sen", thousand_separator: ",", decimal_separator: ".", origin: "Cambodia"              , locale: "km-KH" },
    "KMF" => Data { code: "KMF", symbol: "₣"     , name: "Comoro franc"                                 , numeric: "174", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "Comoros"               , locale: "fr-KM" },
    "KPW" => Data { code: "KPW", symbol: "₩"     , name: "North Korean won"                             , numeric: "408", minor_unit: "2", minor_unit_symbol: "전"    , minor_unit_name: "chon", thousand_separator: ",", decimal_separator: ".", origin: "North Korea"           , locale: "ko-KP" },
    "KRW" => Data { code: "KRW", symbol: "₩"     , name: "South Korean won"                             , numeric: "410", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "South Korea"           , locale: "ko-KR" },
    "KWD" => Data { code: "KWD", symbol: "د.ك"   , name: "Kuwaiti dinar"                                , numeric: "414", minor_unit: "3", minor_unit_symbol: "فلس"  , minor_unit_name: "fils", thousand_separator: "٬", decimal_separator: "٫", origin: "Kuwait"                , locale: "ar-KW" },
    "KYD" => Data { code: "KYD", symbol: "$"     , name: "Cayman Islands dollar"                        , numeric: "136", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Cayman Islands"        , locale: "en-KY" },
    "KZT" => Data { code: "KZT", symbol: "₸"     , name: "Kazakhstani tenge"                            , numeric: "398", minor_unit: "2", minor_unit_symbol: "тиын" , minor_unit_name: "tïın", thousand_separator: " ", decimal_separator: ",", origin: "Kazakhstan"            , locale: "kk-KZ" },
    "LAK" => Data { code: "LAK", symbol: "₭"     , name: "Lao kip"                                      , numeric: "418", minor_unit: "2", minor_unit_symbol: "att"  , minor_unit_name: "att", thousand_separator: ".", decimal_separator: ",", origin: "Laos"                  , locale: "lo-LA" },
    "LBP" => Data { code: "LBP", symbol: "LL"    , name: "Lebanese pound"                               , numeric: "422", minor_unit: "2", minor_unit_symbol: "minor", minor_unit_name: "piastre", thousand_separator: "٬", decimal_separator: "٫", origin: "Lebanon"               , locale: "ar-LB" },
    "LKR" => Data { code: "LKR", symbol: "₨"     , name: "Sri Lankan rupee"                             , numeric: "144", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Sri Lanka"             , locale: "si-LK" },
    "LRD" => Data { code: "LRD", symbol: "L$"    , name: "Liberian dollar"                              , numeric: "430", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Liberia"               , locale: "en-LR" },
    "LSL" => Data { code: "LSL", symbol: "M"     , name: "Lesotho loti"                                 , numeric: "426", minor_unit: "2", minor_unit_symbol: "s"    , minor_unit_name: "sente", thousand_separator: ",", decimal_separator: ".", origin: "Lesotho"               , locale: "en-LS" },
    "LYD" => Data { code: "LYD", symbol: "ل.د"   , name: "Libyan dinar"                                 , numeric: "434", minor_unit: "3", minor_unit_symbol: "د"    , minor_unit_name: "dirham", thousand_separator: ".", decimal_separator: ",", origin: "Libya"                 , locale: "ar-LY" },
    "MAD" => Data { code: "MAD", symbol: "د.م."  , name: "Moroccan dirham"                              , numeric: "504", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "centime/santim", thousand_separator: ".", decimal_separator: ",", origin: "Morocco"               , locale: "ar-MA" },
    "MDL" => Data { code: "MDL", symbol: "¤"     , name: "Moldovan leu"                                 , numeric: "498", minor_unit: "2", minor_unit_symbol: "b"    , minor_unit_name: "ban", thousand_separator: ".", decimal_separator: ",", origin: "Moldova"               , locale: "ro-MD" },
    "MGA" => Data { code: "MGA", symbol: "Ar"    , name: "Malagasy ariary"                              , numeric: "969", minor_unit: "2", minor_unit_symbol: "Fy"   , minor_unit_name: "iraimbilanja", thousand_separator: ",", decimal_separator: ".", origin: "Madagascar"            , locale: "mg-MG" },
    "MKD" => Data { code: "MKD", symbol: "ден"   , name: "Macedonian denar"                             , numeric: "807", minor_unit: "2", minor_unit_symbol: "ден"  , minor_unit_name: "deni", thousand_separator: ".", decimal_separator: ",", origin: "North Macedonia"       , locale: "mk-MK" },
    "MMK" => Data { code: "MMK", symbol: "K"     , name: "Myanmar kyat"                                 , numeric: "104", minor_unit: "2", minor_unit_symbol: "pya"  , minor_unit_name: "pya", thousand_separator: ",", decimal_separator: ".", origin: "Myanmar"               , locale: "my-MM" },
    "MNT" => Data { code: "MNT", symbol: "₮"     , name: "Mongolian tögrög"                             , numeric: "496", minor_unit: "2", minor_unit_symbol: "₮"    , minor_unit_name: "möngö", thousand_separator: ",", decimal_separator: ".", origin: "Mongolia"              , locale: "mn-MN" },
    "MOP" => Data { code: "MOP", symbol: "MOP$"  , name: "Macanese pataca"                              , numeric: "446", minor_unit: "2", minor_unit_symbol: "avo"  , minor_unit_name: "avo", thousand_separator: ",", decimal_separator: ".", origin: "Macau"                 , locale: "zh-MO" },
    "MRU" => Data { code: "MRU", symbol: "UM"    , name: "Mauritanian ouguiya"                          , numeric: "929", minor_unit: "2", minor_unit_symbol: "خ"    , minor_unit_name: "khoums", thousand_separator: "٬", decimal_separator: "٫", origin: "Mauritania"            , locale: "ar-MR" },
    "MUR" => Data { code: "MUR", symbol: "₨"     , name: "Mauritian rupee"                              , numeric: "480", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Mauritius"             , locale: "en-MU" },
    "MVR" => Data { code: "MVR", symbol: "Rf."   , name: "Maldivian rufiyaa"                            , numeric: "462", minor_unit: "2", minor_unit_symbol: "ލ"    , minor_unit_name: "laari", thousand_separator: ",", decimal_separator: ".", origin: "Maldives"              , locale: "dv-MV" },
    "MWK" => Data { code: "MWK", symbol: "K"     , name: "Malawian kwacha"                              , numeric: "454", minor_unit: "2", minor_unit_symbol: "t"    , minor_unit_name: "tambala", thousand_separator: ",", decimal_separator: ".", origin: "Malawi"                , locale: "en-MW" },
    "MXN" => Data { code: "MXN", symbol: "$"     , name: "Mexican peso"                                 , numeric: "484", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Mexico"                , locale: "es-MX" },
    "MXV" => Data { code: "MXV", symbol: "¤"     , name: "Mexican Unidad de Inversion (UDI)"            , numeric: "979", minor_unit: "2", minor_unit_symbol: "minor", minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "Mexico"                , locale: "es-MX" },
    "MYR" => Data { code: "MYR", symbol: "RM"    , name: "Malaysian ringgit"                            , numeric: "458", minor_unit: "2", minor_unit_symbol: "sen"  , minor_unit_name: "sen", thousand_separator: ",", decimal_separator: ".", origin: "Malaysia"              , locale: "ms-MY" },
    "MZN" => Data { code: "MZN", symbol: "MT"    , name: "Mozambican metical"                           , numeric: "943", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: " ", decimal_separator: ",", origin: "Mozambique"            , locale: "pt-MZ" },
    "NAD" => Data { code: "NAD", symbol: "N$"    , name: "Namibian dollar"                              , numeric: "516", minor_unit: "2", minor_unit_symbol: "NA"   , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Namibia"               , locale: "en-NA" },
    "NGN" => Data { code: "NGN", symbol: "₦"     , name: "Nigerian naira"                               , numeric: "566", minor_unit: "2", minor_unit_symbol: "k"    , minor_unit_name: "kobo", thousand_separator: ",", decimal_separator: ".", origin: "Nigeria"               , locale: "en-NG" },
    "NIO" => Data { code: "NIO", symbol: "C$"    , name: "Nicaraguan córdoba"                           , numeric: "558", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "Nicaragua"             , locale: "es-NI" },
    "NOK" => Data { code: "NOK", symbol: "kr"    , name: "Norwegian krone"                              , numeric: "578", minor_unit: "2", minor_unit_symbol: "øre"  , minor_unit_name: "øre", thousand_separator: " ", decimal_separator: ",", origin: "Norway"                , locale: "nb-NO" },
    "NPR" => Data { code: "NPR", symbol: "₨"     , name: "Nepalese rupee"                               , numeric: "524", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "paisa", thousand_separator: ",", decimal_separator: ".", origin: "Nepal"                 , locale: "ne-NP" },
    "NZD" => Data { code: "NZD", symbol: "$"     , name: "New Zealand dollar"                           , numeric: "554", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "New Zealand"           , locale: "en-NZ" },
    "OMR" => Data { code: "OMR", symbol: "ر.ع."  , name: "Omani rial"                                   , numeric: "512", minor_unit: "3", minor_unit_symbol: "ب.ع"  , minor_unit_name: "baisa", thousand_separator: "٬", decimal_separator: "٫", origin: "Oman"                  , locale: "ar-OM" },
    "PAB" => Data { code: "PAB", symbol: "B/."   , name: "Panamanian balboa"                            , numeric: "590", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centésimo", thousand_separator: ",", decimal_separator: ".", origin: "Panama"                , locale: "es-PA" },
    "PEN" => Data { code: "PEN", symbol: "S/"    , name: "Peruvian sol"                                 , numeric: "604", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "céntimo", thousand_separator: ",", decimal_separator: ".", origin: "Peru"                  , locale: "es-PE" },
    "PGK" => Data { code: "PGK", symbol: "K"     , name: "Papua New Guinean kina"                       , numeric: "598", minor_unit: "2", minor_unit_symbol: "t"    , minor_unit_name: "toea", thousand_separator: ",", decimal_separator: ".", origin: "Papua New Guinea"      , locale: "en-PG" },
    "PHP" => Data { code: "PHP", symbol: "₱"     , name: "Philippine peso"                              , numeric: "608", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "sentimo/centavo", thousand_separator: ",", decimal_separator: ".", origin: "Philippines"           , locale: "en-PH" },
    "PKR" => Data { code: "PKR", symbol: "₨"     , name: "Pakistani rupee"                              , numeric: "586", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "paisa", thousand_separator: ",", decimal_separator: ".", origin: "Pakistan"              , locale: "ur-PK" },
    "PLN" => Data { code: "PLN", symbol: "zł"    , name: "Polish złoty"                                 , numeric: "985", minor_unit: "2", minor_unit_symbol: "gr"   , minor_unit_name: "grosz", thousand_separator: " ", decimal_separator: ",", origin: "Poland"                , locale: "pl-PL" },
    "PYG" => Data { code: "PYG", symbol: "₲"     , name: "Paraguayan guaraní"                           , numeric: "600", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Paraguay"              , locale: "es-PY" },
    "QAR" => Data { code: "QAR", symbol: "ر.ق"   , name: "Qatari riyal"                                 , numeric: "634", minor_unit: "2", minor_unit_symbol: "د.ق"  , minor_unit_name: "dirham", thousand_separator: "٬", decimal_separator: "٫", origin: "Qatar"                 , locale: "ar-QA" },
    "RON" => Data { code: "RON", symbol: "L"     , name: "Romanian leu"                                 , numeric: "946", minor_unit: "2", minor_unit_symbol: "b"    , minor_unit_name: "ban", thousand_separator: ".", decimal_separator: ",", origin: "Romania"               , locale: "ro-RO" },
    "RSD" => Data { code: "RSD", symbol: "дин"   , name: "Serbian dinar"                                , numeric: "941", minor_unit: "2", minor_unit_symbol: "пар." , minor_unit_name: "para", thousand_separator: ".", decimal_separator: ",", origin: "Serbia"                , locale: "sr-RS" },
    "RUB" => Data { code: "RUB", symbol: "₽"     , name: "Russian ruble"                                , numeric: "643", minor_unit: "2", minor_unit_symbol: "коп." , minor_unit_name: "kopek", thousand_separator: " ", decimal_separator: ",", origin: "Russia"                , locale: "ru-RU" },
    "RWF" => Data { code: "RWF", symbol: "FRw"   , name: "Rwandan franc"                                , numeric: "646", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "Rwanda"                , locale: "fr-RW" },
    "SAR" => Data { code: "SAR", symbol: "ر.س"   , name: "Saudi riyal"                                  , numeric: "682", minor_unit: "2", minor_unit_symbol: "هللة" , minor_unit_name: "halala", thousand_separator: "٬", decimal_separator: "٫", origin: "Saudi Arabia"          , locale: "ar-SA" },
    "SBD" => Data { code: "SBD", symbol: "S$"    , name: "Solomon Islands dollar"                       , numeric: "90" , minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Solomon Islands"       , locale: "en-SB" },
    "SCR" => Data { code: "SCR", symbol: "SRe"   , name: "Seychelles rupee"                             , numeric: "690", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Seychelles"            , locale: "en-SC" },
    "SDG" => Data { code: "SDG", symbol: "¤"     , name: "Sudanese pound"                               , numeric: "938", minor_unit: "2", minor_unit_symbol: "قرش"  , minor_unit_name: "piastre/qirsh", thousand_separator: "٬", decimal_separator: "٫", origin: "Sudan"                 , locale: "ar-SD" },
    "SEK" => Data { code: "SEK", symbol: "kr"    , name: "Swedish krona/kronor"                         , numeric: "752", minor_unit: "2", minor_unit_symbol: "öre"  , minor_unit_name: "öre", thousand_separator: " ", decimal_separator: ",", origin: "Sweden"                , locale: "sv-SE" },
    "SGD" => Data { code: "SGD", symbol: "S$"    , name: "Singapore dollar"                             , numeric: "702", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Singapore"             , locale: "en-SG" },
    "SHP" => Data { code: "SHP", symbol: "£"     , name: "Saint Helena pound"                           , numeric: "654", minor_unit: "2", minor_unit_symbol: "p"    , minor_unit_name: "penny", thousand_separator: ",", decimal_separator: ".", origin: "Saint Helena"          , locale: "en-SH" },
    "SLE" => Data { code: "SLE", symbol: "Le"    , name: "Sierra Leonean leone"                         , numeric: "925", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Sierra Leone"          , locale: "en-SL" },
    "SLL" => Data { code: "SLL", symbol: "Le"    , name: "Sierra Leonean leone"                         , numeric: "694", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Sierra Leone"          , locale: "en-SL" },
    "SOS" => Data { code: "SOS", symbol: "Sh.So.", name: "Somali shilling"                              , numeric: "706", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "senti", thousand_separator: ",", decimal_separator: ".", origin: "Somalia"               , locale: "so-SO" },
    "SRD" => Data { code: "SRD", symbol: "$"     , name: "Surinamese dollar"                            , numeric: "968", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ".", decimal_separator: ",", origin: "Suriname"              , locale: "nl-SR" },
    "SSP" => Data { code: "SSP", symbol: "¤"     , name: "South Sudanese pound"                         , numeric: "728", minor_unit: "2", minor_unit_symbol: "pt"   , minor_unit_name: "piaster", thousand_separator: ",", decimal_separator: ".", origin: "South Sudan"           , locale: "en-SS" },
    "STN" => Data { code: "STN", symbol: "Db"    , name: "São Tomé and Príncipe dobra"                  , numeric: "930", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cêntimo", thousand_separator: " ", decimal_separator: ",", origin: "São Tomé and Príncipe" , locale: "pt-ST" },
    "SVC" => Data { code: "SVC", symbol: "¤"     , name: "Salvadoran colón"                             , numeric: "222", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centavo", thousand_separator: ",", decimal_separator: ".", origin: "El Salvador"           , locale: "es-SV" },
    "SYP" => Data { code: "SYP", symbol: "LS"    , name: "Syrian pound"                                 , numeric: "760", minor_unit: "2", minor_unit_symbol: "قرش"  , minor_unit_name: "piastre", thousand_separator: "٬", decimal_separator: "٫", origin: "Syria"                 , locale: "ar-SY" },
    "SZL" => Data { code: "SZL", symbol: "E"     , name: "Swazi lilangeni"                              , numeric: "748", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Eswatini"              , locale: "en-SZ" },
    "THB" => Data { code: "THB", symbol: "฿"     , name: "Thai baht"                                    , numeric: "764", minor_unit: "2", minor_unit_symbol: "สต."  , minor_unit_name: "satang", thousand_separator: ",", decimal_separator: ".", origin: "Thailand"              , locale: "th-TH" },
    "TJS" => Data { code: "TJS", symbol: "¤"     , name: "Tajikistani somoni"                           , numeric: "972", minor_unit: "2", minor_unit_symbol: "д"    , minor_unit_name: "diram", thousand_separator: " ", decimal_separator: ",", origin: "Tajikistan"            , locale: "tg-TJ" },
    "TMT" => Data { code: "TMT", symbol: "¤"     , name: "Turkmenistan manat"                           , numeric: "934", minor_unit: "2", minor_unit_symbol: "t"    , minor_unit_name: "tenge", thousand_separator: " ", decimal_separator: ",", origin: "Turkmenistan"          , locale: "tk-TM" },
    "TND" => Data { code: "TND", symbol: "د.ت"   , name: "Tunisian dinar"                               , numeric: "788", minor_unit: "3", minor_unit_symbol: "m"    , minor_unit_name: "millime", thousand_separator: ".", decimal_separator: ",", origin: "Tunisia"               , locale: "ar-TN" },
    "TOP" => Data { code: "TOP", symbol: "T$"    , name: "Tongan paʻanga"                               , numeric: "776", minor_unit: "2", minor_unit_symbol: "s"    , minor_unit_name: "seniti", thousand_separator: ",", decimal_separator: ".", origin: "Tonga"                 , locale: "to-TO" },
    "TRY" => Data { code: "TRY", symbol: "₺"     , name: "Turkish lira"                                 , numeric: "949", minor_unit: "2", minor_unit_symbol: "kr"   , minor_unit_name: "kuruş", thousand_separator: ".", decimal_separator: ",", origin: "Turkey"                , locale: "tr-TR" },
    "TTD" => Data { code: "TTD", symbol: "$"     , name: "Trinidad and Tobago dollar"                   , numeric: "780", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Trinidad and Tobago"   , locale: "en-TT" },
    "TWD" => Data { code: "TWD", symbol: "NT$"   , name: "New Taiwan dollar"                            , numeric: "901", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent/分", thousand_separator: ",", decimal_separator: ".", origin: "Taiwan"                , locale: "zh-TW" },
    "TZS" => Data { code: "TZS", symbol: "Tsh"   , name: "Tanzanian shilling"                           , numeric: "834", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "senti", thousand_separator: ",", decimal_separator: ".", origin: "Tanzania"              , locale: "sw-TZ" },
    "UAH" => Data { code: "UAH", symbol: "₴"     , name: "Ukrainian hryvnia"                            , numeric: "980", minor_unit: "2", minor_unit_symbol: "коп." , minor_unit_name: "kopiyka", thousand_separator: " ", decimal_separator: ",", origin: "Ukraine"               , locale: "uk-UA" },
    "UGX" => Data { code: "UGX", symbol: "USh"   , name: "Ugandan shilling"                             , numeric: "800", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "Uganda"                , locale: "en-UG" },
    "USD" => Data { code: "USD", symbol: "$"     , name: "United States dollar"                         , numeric: "840", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "United States"         , locale: "en-US" },
    "USN" => Data { code: "USN", symbol: "$"     , name: "United States dollar (next day)"              , numeric: "997", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "United States"         , locale: "en-US" },
    "UYI" => Data { code: "UYI", symbol: "¤"     , name: "Uruguay Peso en Unidades Indexadas (URUIURUI)", numeric: "940", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Uruguay"               , locale: "es-UY" },
    "UYU" => Data { code: "UYU", symbol: "$U"    , name: "Uruguayan peso"                               , numeric: "858", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "centésimo", thousand_separator: ".", decimal_separator: ",", origin: "Uruguay"               , locale: "es-UY" },
    "UYW" => Data { code: "UYW", symbol: "¤"     , name: "Unidad previsional"                           , numeric: "927", minor_unit: "4", minor_unit_symbol: "minor", minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Uruguay"               , locale: "es-UY" },
    "UZS" => Data { code: "UZS", symbol: "¤"     , name: "Uzbekistan som"                               , numeric: "860", minor_unit: "2", minor_unit_symbol: "тийин", minor_unit_name: "tiyin", thousand_separator: " ", decimal_separator: ",", origin: "Uzbekistan"            , locale: "uz-UZ" },
    "VED" => Data { code: "VED", symbol: "Bs."   , name: "Venezuelan bolívar soberano"                  , numeric: "926", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "céntimo", thousand_separator: ".", decimal_separator: ",", origin: "Venezuela"             , locale: "es-VE" },
    "VES" => Data { code: "VES", symbol: "Bs."   , name: "Venezuelan bolívar soberano"                  , numeric: "928", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "céntimo", thousand_separator: ".", decimal_separator: ",", origin: "Venezuela"             , locale: "es-VE" },
    "VND" => Data { code: "VND", symbol: "₫"     , name: "Vietnamese đồng"                              , numeric: "704", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ".", decimal_separator: ",", origin: "Vietnam"               , locale: "vi-VN" },
    "VUV" => Data { code: "VUV", symbol: "VT"    , name: "Vanuatu vatu"                                 , numeric: "548", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "Vanuatu"               , locale: "en-VU" },
    "WST" => Data { code: "WST", symbol: "WS$"   , name: "Samoan tala"                                  , numeric: "882", minor_unit: "2", minor_unit_symbol: "s"    , minor_unit_name: "sene", thousand_separator: ",", decimal_separator: ".", origin: "Samoa"                 , locale: "sm-WS" },
    "XAF" => Data { code: "XAF", symbol: "FCFA"  , name: "CFA franc BEAC"                               , numeric: "950", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "Central Africa"        , locale: "fr-CM" },
    "XAG" => Data { code: "XAG", symbol: "¤"     , name: "Silver (one troy ounce)"                      , numeric: "961", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XAU" => Data { code: "XAU", symbol: "¤"     , name: "Gold (one troy ounce)"                        , numeric: "959", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XBA" => Data { code: "XBA", symbol: "¤"     , name: "European Composite Unit (EURCO)"              , numeric: "955", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XBB" => Data { code: "XBB", symbol: "¤"     , name: "European Monetary Unit (E.M.U.-6)"            , numeric: "956", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XBC" => Data { code: "XBC", symbol: "¤"     , name: "European Unit of Account 9 (E.U.A.-9)"        , numeric: "957", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XBD" => Data { code: "XBD", symbol: "¤"     , name: "European Unit of Account 17 (E.U.A.-17)"      , numeric: "958", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XCD" => Data { code: "XCD", symbol: "$"     , name: "East Caribbean dollar"                        , numeric: "951", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "East Caribbean"        , locale: "en-AG" },
    "XCG" => Data { code: "XCG", symbol: "ƒ"     , name: "Caribean guilder"                             , numeric: "532", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ".", decimal_separator: ",", origin: "Caribbean Netherlands" , locale: "nl-CW" },
    "XDR" => Data { code: "XDR", symbol: "SDR"   , name: "Special drawing rights"                       , numeric: "960", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "IMF"                   , locale: "en-GB" },
    "XOF" => Data { code: "XOF", symbol: "CFA"   , name: "CFA franc BCEAO"                              , numeric: "952", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "West Africa"           , locale: "fr-BJ" },
    "XPD" => Data { code: "XPD", symbol: "¤"     , name: "Palladium (one troy ounce)"                   , numeric: "964", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XPF" => Data { code: "XPF", symbol: "₣"     , name: "CFP franc (franc Pacifique)"                  , numeric: "953", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: " ", decimal_separator: ",", origin: "French Polynesia"      , locale: "fr-PF" },
    "XPT" => Data { code: "XPT", symbol: "¤"     , name: "Platinum (one troy ounce)"                    , numeric: "962", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XSU" => Data { code: "XSU", symbol: "¤"     , name: "SUCRE"                                        , numeric: "994", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "ALBA"                  , locale: "en-US" },
    "XTS" => Data { code: "XTS", symbol: "¤"     , name: "Code reserved for testing"                    , numeric: "963", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XUA" => Data { code: "XUA", symbol: "¤"     , name: "ADB Unit of Account"                          , numeric: "965", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "World"                 , locale: "en-US" },
    "XXX" => Data { code: "XXX", symbol: "¤"     , name: "No currency"                                  , numeric: "999", minor_unit: "0", minor_unit_symbol: ""     , minor_unit_name: "", thousand_separator: ",", decimal_separator: ".", origin: "No Currency"           , locale: "en-US" },
    "YER" => Data { code: "YER", symbol: "ر.ي"   , name: "Yemeni rial"                                  , numeric: "886", minor_unit: "2", minor_unit_symbol: "فلس"  , minor_unit_name: "fils", thousand_separator: "٬", decimal_separator: "٫", origin: "Yemen"                 , locale: "ar-YE" },
    "ZAR" => Data { code: "ZAR", symbol: "R"     , name: "South African rand"                           , numeric: "710", minor_unit: "2", minor_unit_symbol: "c"    , minor_unit_name: "cent", thousand_separator: " ", decimal_separator: ",", origin: "South Africa"          , locale: "en-ZA" },
    "ZMW" => Data { code: "ZMW", symbol: "K"     , name: "Zambian kwacha"                               , numeric: "967", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "ngwee", thousand_separator: ",", decimal_separator: ".", origin: "Zambia"                , locale: "en-ZM" },
    "ZWG" => Data { code: "ZWG", symbol: "¤"     , name: "Zimbabwe Gold"                                , numeric: "924", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Zimbabwe"              , locale: "en-ZW" },
    "ZWL" => Data { code: "ZWL", symbol: "¤"     , name: "Zimbabwean dollar"                            , numeric: "932", minor_unit: "2", minor_unit_symbol: "¢"    , minor_unit_name: "cent", thousand_separator: ",", decimal_separator: ".", origin: "Zimbabwe"              , locale: "en-ZW" },
};
