map $geoip2_data_country_code $allowed_country_africa {
    default yes;

    DZ no;  # Algeria
    AO no;  # Angola
    BJ no;  # Benin
    BW no;  # Botswana
    BF no;  # Burkina Faso
    BI no;  # Burundi
    CV no;  # Cape Verde
    CM no;  # Cameroon
    CF no;  # Central African Republic
    TD no;  # Chad
    KM no;  # Comoros
    CG no;  # Republic of the Congo
    CD no;  # Democratic Republic of the Congo
    CI no;  # Côte d'Ivoire
    DJ no;  # Djibouti
    EG no;  # Egypt
    GQ no;  # Equatorial Guinea
    ER no;  # Eritrea
    SZ no;  # Eswatini
    ET no;  # Ethiopia
    GA no;  # Gabon
    GM no;  # Gambia
    GH no;  # Ghana
    GN no;  # Guinea
    GW no;  # Guinea-Bissau
    KE no;  # Kenya
    LS no;  # Lesotho
    LR no;  # Liberia
    LY no;  # Libya
    MG no;  # Madagascar
    MW no;  # Malawi
    ML no;  # Mali
    MR no;  # Mauritania
    MU no;  # Mauritius
    MA no;  # Morocco
    MZ no;  # Mozambique
    NA no;  # Namibia
    NE no;  # Niger
    NG no;  # Nigeria
    RW no;  # Rwanda
    ST no;  # Sao Tome and Principe
    SN no;  # Senegal
    SC no;  # Seychelles
    SL no;  # Sierra Leone
    SO no;  # Somalia
    ZA no;  # South Africa
    SS no;  # South Sudan
    SD no;  # Sudan
    TZ no;  # Tanzania
    TG no;  # Togo
    TN no;  # Tunisia
    UG no;  # Uganda
    ZM no;  # Zambia
    ZW no;  # Zimbabwe
}

map $geoip2_data_country_code $allowed_country_south_america {
    default yes;

    AR no;  # Argentina
    BO no;  # Bolivia
    BR no;  # Brazil
    CL no;  # Chile
    CO no;  # Colombia
    EC no;  # Ecuador
    GY no;  # Guyana
    PY no;  # Paraguay
    PE no;  # Peru
    SR no;  # Suriname
    UY no;  # Uruguay
    VE no;  # Venezuela

    # Optional (territories - include only if needed)
    GF no;  # French Guiana (France)
    FK no;  # Falkland Islands (UK)
}

map $geoip2_data_country_code $allowed_country_asia {
    default yes;

    AF no;  # Afghanistan
    AM no;  # Armenia
    AZ no;  # Azerbaijan
    BH no;  # Bahrain
    BD no;  # Bangladesh
    BT no;  # Bhutan
    BN no;  # Brunei
    KH no;  # Cambodia
    CN no;  # China
    CY no;  # Cyprus
    GE no;  # Georgia
    IN no;  # India
    ID no;  # Indonesia
    IR no;  # Iran
    IQ no;  # Iraq
    IL no;  # Israel
    JP no;  # Japan
    JO no;  # Jordan
    KZ no;  # Kazakhstan
    KW no;  # Kuwait
    KG no;  # Kyrgyzstan
    LA no;  # Laos
    LB no;  # Lebanon
    MY no;  # Malaysia
    MV no;  # Maldives
    MN no;  # Mongolia
    MM no;  # Myanmar
    NP no;  # Nepal
    KP no;  # North Korea
    KR no;  # South Korea
    OM no;  # Oman
    PK no;  # Pakistan
    PH no;  # Philippines
    QA no;  # Qatar
    SA no;  # Saudi Arabia
    SG no;  # Singapore
    LK no;  # Sri Lanka
    SY no;  # Syria
    TW no;  # Taiwan
    TJ no;  # Tajikistan
    TH no;  # Thailand
    TL no;  # Timor-Leste
    TR no;  # Turkey
    TM no;  # Turkmenistan
    AE no;  # United Arab Emirates
    UZ no;  # Uzbekistan
    VN no;  # Vietnam
    YE no;  # Yemen

    # Optional territories / special cases (GeoIP-dependent)
    HK no;  # Hong Kong
    MO no;  # Macao
    PS no;  # Palestine
}
