Commit 64fef129 authored by Matthias Körber's avatar Matthias Körber Committed by Commit Bot

[Autofill] Remove unused state and zip labels.

Change-Id: I864ed31fc58647698e51122b2fee14b26e457117
Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1147800
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2529395
Commit-Queue: Christoph Schwering <schwering@google.com>
Reviewed-by: default avatarChristoph Schwering <schwering@google.com>
Cr-Commit-Position: refs/heads/master@{#826223}
parent ac21d86a
...@@ -37,20 +37,16 @@ AutofillCountry::AutofillCountry(const std::string& country_code, ...@@ -37,20 +37,16 @@ AutofillCountry::AutofillCountry(const std::string& country_code,
// If there is no entry in the |CountryDataMap| for the // If there is no entry in the |CountryDataMap| for the
// |country_code_for_country_data| use the country code derived from the // |country_code_for_country_data| use the country code derived from the
// locale. This reverts to US. // locale. This reverts to US.
country_data_map->HasCountryData(country_code_) country_data_map->HasRequiredFieldsForAddressImport(country_code_)
? country_code_ ? country_code_
: CountryCodeForLocale(locale); : CountryCodeForLocale(locale);
// Acquire the country address data. // Acquire the country address data.
const CountryData& data = country_data_map->GetCountryData(country_code_); required_fields_for_address_import_ =
country_data_map->GetRequiredFieldsForAddressImport(country_code_);
// Translate the country name by the supplied local. // Translate the country name by the supplied local.
name_ = l10n_util::GetDisplayNameForCountry(country_code_, locale); name_ = l10n_util::GetDisplayNameForCountry(country_code_, locale);
// Get the localized strings associate with the address fields.
postal_code_label_ = l10n_util::GetStringUTF16(data.postal_code_label_id);
state_label_ = l10n_util::GetStringUTF16(data.state_label_id);
address_required_fields_ = data.address_required_fields;
} }
AutofillCountry::~AutofillCountry() {} AutofillCountry::~AutofillCountry() {}
...@@ -82,10 +78,7 @@ AutofillCountry::AutofillCountry(const std::string& country_code, ...@@ -82,10 +78,7 @@ AutofillCountry::AutofillCountry(const std::string& country_code,
const base::string16& name, const base::string16& name,
const base::string16& postal_code_label, const base::string16& postal_code_label,
const base::string16& state_label) const base::string16& state_label)
: country_code_(country_code), : country_code_(country_code), name_(name) {}
name_(name),
postal_code_label_(postal_code_label),
state_label_(state_label) {}
// Prints a formatted log of a |AutofillCountry| to a |LogBuffer|. // Prints a formatted log of a |AutofillCountry| to a |LogBuffer|.
LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) { LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) {
...@@ -97,8 +90,6 @@ LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) { ...@@ -97,8 +90,6 @@ LogBuffer& operator<<(LogBuffer& buffer, const AutofillCountry& country) {
buffer << Tr{} << "State required:" << country.requires_state(); buffer << Tr{} << "State required:" << country.requires_state();
buffer << Tr{} << "Zip required:" << country.requires_zip(); buffer << Tr{} << "Zip required:" << country.requires_zip();
buffer << Tr{} << "City required:" << country.requires_city(); buffer << Tr{} << "City required:" << country.requires_city();
buffer << Tr{} << "State label:" << country.state_label();
buffer << Tr{} << "Postal code label:" << country.postal_code_label();
buffer << CTag{"table"}; buffer << CTag{"table"};
buffer << CTag{"div"}; buffer << CTag{"div"};
buffer << CTag{}; buffer << CTag{};
......
...@@ -31,33 +31,32 @@ class AutofillCountry { ...@@ -31,33 +31,32 @@ class AutofillCountry {
const std::string& country_code() const { return country_code_; } const std::string& country_code() const { return country_code_; }
const base::string16& name() const { return name_; } const base::string16& name() const { return name_; }
const base::string16& postal_code_label() const { return postal_code_label_; }
const base::string16& state_label() const { return state_label_; }
// City is expected in a complete address for this country. // City is expected in a complete address for this country.
bool requires_city() const { bool requires_city() const {
return (address_required_fields_ & ADDRESS_REQUIRES_CITY) != 0; return (required_fields_for_address_import_ & ADDRESS_REQUIRES_CITY) != 0;
} }
// State is expected in a complete address for this country. // State is expected in a complete address for this country.
bool requires_state() const { bool requires_state() const {
return (address_required_fields_ & ADDRESS_REQUIRES_STATE) != 0; return (required_fields_for_address_import_ & ADDRESS_REQUIRES_STATE) != 0;
} }
// Zip is expected in a complete address for this country. // Zip is expected in a complete address for this country.
bool requires_zip() const { bool requires_zip() const {
return (address_required_fields_ & ADDRESS_REQUIRES_ZIP) != 0; return (required_fields_for_address_import_ & ADDRESS_REQUIRES_ZIP) != 0;
} }
// An address line1 is expected in a complete address for this country. // An address line1 is expected in a complete address for this country.
bool requires_line1() const { bool requires_line1() const {
return (address_required_fields_ & ADDRESS_REQUIRES_LINE1) != 0; return (required_fields_for_address_import_ & ADDRESS_REQUIRES_LINE1) != 0;
} }
// True if a complete address is expected to either contain a state or a ZIP // True if a complete address is expected to either contain a state or a ZIP
// code. Not true if the address explicitly needs both. // code. Not true if the address explicitly needs both.
bool requires_zip_or_state() const { bool requires_zip_or_state() const {
return (address_required_fields_ & ADDRESS_REQUIRES_ZIP_OR_STATE) != 0; return (required_fields_for_address_import_ &
ADDRESS_REQUIRES_ZIP_OR_STATE) != 0;
} }
private: private:
...@@ -72,14 +71,8 @@ class AutofillCountry { ...@@ -72,14 +71,8 @@ class AutofillCountry {
// The country's name, localized to the app locale. // The country's name, localized to the app locale.
base::string16 name_; base::string16 name_;
// The localized label for the postal code (or zip code) field. // Required fields for an address import for the country.
base::string16 postal_code_label_; RequiredFieldsForAddressImport required_fields_for_address_import_;
// The localized label for the state (or province, district, etc.) field.
base::string16 state_label_;
// Address requirement field codes for the country.
AddressRequiredFields address_required_fields_;
DISALLOW_COPY_AND_ASSIGN(AutofillCountry); DISALLOW_COPY_AND_ASSIGN(AutofillCountry);
}; };
......
...@@ -24,8 +24,6 @@ TEST(AutofillCountryTest, AutofillCountry) { ...@@ -24,8 +24,6 @@ TEST(AutofillCountryTest, AutofillCountry) {
AutofillCountry united_states_en("US", "en_US"); AutofillCountry united_states_en("US", "en_US");
EXPECT_EQ("US", united_states_en.country_code()); EXPECT_EQ("US", united_states_en.country_code());
EXPECT_EQ(ASCIIToUTF16("United States"), united_states_en.name()); EXPECT_EQ(ASCIIToUTF16("United States"), united_states_en.name());
EXPECT_EQ(ASCIIToUTF16("ZIP code"), united_states_en.postal_code_label());
EXPECT_EQ(ASCIIToUTF16("State"), united_states_en.state_label());
AutofillCountry united_states_es("US", "es"); AutofillCountry united_states_es("US", "es");
EXPECT_EQ("US", united_states_es.country_code()); EXPECT_EQ("US", united_states_es.country_code());
...@@ -39,8 +37,6 @@ TEST(AutofillCountryTest, AutofillCountry) { ...@@ -39,8 +37,6 @@ TEST(AutofillCountryTest, AutofillCountry) {
AutofillCountry canada_en("CA", "en_US"); AutofillCountry canada_en("CA", "en_US");
EXPECT_EQ("CA", canada_en.country_code()); EXPECT_EQ("CA", canada_en.country_code());
EXPECT_EQ(ASCIIToUTF16("Canada"), canada_en.name()); EXPECT_EQ(ASCIIToUTF16("Canada"), canada_en.name());
EXPECT_EQ(ASCIIToUTF16("Postal code"), canada_en.postal_code_label());
EXPECT_EQ(ASCIIToUTF16("Province"), canada_en.state_label());
AutofillCountry canada_hu("CA", "hu"); AutofillCountry canada_hu("CA", "hu");
EXPECT_EQ("CA", canada_hu.country_code()); EXPECT_EQ("CA", canada_hu.country_code());
...@@ -124,7 +120,7 @@ TEST(AutofillCountryTest, AliasMappingsForCountryData) { ...@@ -124,7 +120,7 @@ TEST(AutofillCountryTest, AliasMappingsForCountryData) {
CountryDataMap* country_data_map = CountryDataMap::GetInstance(); CountryDataMap* country_data_map = CountryDataMap::GetInstance();
// There should be country data for the "GB". // There should be country data for the "GB".
EXPECT_TRUE(country_data_map->HasCountryData("GB")); EXPECT_TRUE(country_data_map->HasRequiredFieldsForAddressImport("GB"));
// Check the correctness of the alias definitions. // Check the correctness of the alias definitions.
EXPECT_TRUE(country_data_map->HasCountryCodeAlias("UK")); EXPECT_TRUE(country_data_map->HasCountryCodeAlias("UK"));
......
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
namespace autofill { namespace autofill {
namespace { namespace {
struct StaticCountryData { struct StaticCountryAddressImportRequirementsData {
char country_code[3]; char country_code[3];
CountryData country_data; RequiredFieldsForAddressImport address_import_field_requirements;
}; };
// Alias definitions record for CountryData requests. A request for // Alias definitions record for CountryData requests. A request for
...@@ -30,783 +30,284 @@ struct StaticCountryCodeAliasData { ...@@ -30,783 +30,284 @@ struct StaticCountryCodeAliasData {
// Alias definitions. // Alias definitions.
const StaticCountryCodeAliasData kCountryCodeAliases[] = {{"UK", "GB"}}; const StaticCountryCodeAliasData kCountryCodeAliases[] = {{"UK", "GB"}};
// Maps country codes to localized label string identifiers. Keep this sorted // Maps country codes to address import requirements. Keep this sorted
// by country code. // by country code.
// This list is comprized of countries appearing in both // This list is comprized of countries appearing in both
// //third_party/icu/source/data/region/en.txt and // //third_party/icu/source/data/region/en.txt and
// //third_party/libaddressinput/src/cpp/src/region_data_constants.cc. // //third_party/libaddressinput/src/cpp/src/region_data_constants.cc.
const StaticCountryData kCountryData[] = { const StaticCountryAddressImportRequirementsData
// clang-format off kCountryAddressImportRequirementsData[] = {
{"AC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"AC", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"AD", ADDRESS_REQUIRES_LINE1},
ADDRESS_REQUIRES_LINE1_CITY } }, {"AE", ADDRESS_REQUIRES_LINE1_STATE},
{"AD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"AF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PARISH, {"AG", ADDRESS_REQUIRES_LINE1},
ADDRESS_REQUIRES_LINE1 } }, {"AI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"AL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_EMIRATE, {"AM", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_STATE } }, {"AO", ADDRESS_REQUIRES_LINE1_CITY},
{"AF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"AQ", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"AR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"AS", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"AG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"AT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"AU", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1 } }, {"AW", ADDRESS_REQUIRES_LINE1_CITY},
{"AI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"AX", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"AZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"BA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"BB", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"BD", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"BE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"BF", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"BG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"BH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"BI", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"BJ", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"BL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"AQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"BM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"BN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"BO", ADDRESS_REQUIRES_LINE1_CITY},
{"AR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"BQ", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_STATE, {"BR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"BS", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"AS", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, {"BT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_STATE, {"BV", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"BW", ADDRESS_REQUIRES_LINE1_CITY},
{"AT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"BY", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"BZ", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"CA", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"AU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"CC", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_STATE, {"CD", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"CF", ADDRESS_REQUIRES_LINE1_CITY},
{"AW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"CG", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"CH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"CI", ADDRESS_REQUIRES_LINE1_CITY},
{"AX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"CK", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"CL", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"CM", ADDRESS_REQUIRES_LINE1_CITY},
{"AZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"CN", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"CO", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"CR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"BA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"CS", ADDRESS_REQUIRES_LINE1},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"CV", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"CW", ADDRESS_REQUIRES_LINE1_CITY},
{"BB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"CX", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PARISH, {"CY", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"CZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"DE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"DJ", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"DK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"DM", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"DO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"DZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"EC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"EE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"EG", ADDRESS_REQUIRES_LINE1_CITY},
{"BG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"EH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"ER", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"ES", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"BH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"ET", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"FI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"FJ", ADDRESS_REQUIRES_LINE1_CITY},
{"BI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"FK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"FM", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"FO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"FR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"GA", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"GB", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"GD", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"GE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"GF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"GG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"GH", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"GI", ADDRESS_REQUIRES_LINE1},
{"BN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"GL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"GM", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"GN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"GP", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"GQ", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"GR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"GS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"GT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"GU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"GW", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_STATE, {"GY", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"HK", ADDRESS_REQUIRES_LINE1_STATE},
{"BS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"HM", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_ISLAND, {"HN", ADDRESS_REQUIRES_LINE1_CITY_STATE},
ADDRESS_REQUIRES_LINE1_CITY_STATE } }, {"HR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"HT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"HU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"ID", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"BV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"IE", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"IL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"IM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"BW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"IN", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"IO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"IQ", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"BY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"IR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"IS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"IT", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"BZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"JE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"JM", ADDRESS_REQUIRES_LINE1_CITY_STATE},
ADDRESS_REQUIRES_LINE1_CITY } }, {"JO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"JP", ADDRESS_REQUIRES_LINE1_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"KE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"KG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"KH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"KI", ADDRESS_REQUIRES_LINE1_CITY_STATE},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"KM", ADDRESS_REQUIRES_LINE1_CITY},
{"CD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"KN", ADDRESS_REQUIRES_LINE1_CITY_STATE},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"KP", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"KR", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"KW", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"KY", ADDRESS_REQUIRES_LINE1_STATE},
ADDRESS_REQUIRES_LINE1_CITY } }, {"KZ", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"LA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"LB", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"LC", ADDRESS_REQUIRES_LINE1_CITY},
{"CH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"LI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"LK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"LR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"LS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"LT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"LU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"LV", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"LY", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"MA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_STATE, {"MD", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"ME", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"MG", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"MH", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"ML", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"MM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MN", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"MO", ADDRESS_REQUIRES_LINE1},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"MP", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MQ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"MR", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"MS", ADDRESS_REQUIRES_LINE1_CITY},
{"CS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"MU", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1 } }, {"MV", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MW", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_ISLAND, {"MX", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"MY", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"MZ", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"NA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"NC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"NE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"NF", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"NG", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"CY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"NI", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"NL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"NO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"CZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"NP", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"NR", ADDRESS_REQUIRES_LINE1_STATE},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"NU", ADDRESS_REQUIRES_LINE1_CITY},
{"DE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"NZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"OM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"PA", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"DJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"PE", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"PF", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"PG", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"DK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"PH", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"PK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"PL", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"DM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"PM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"PN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"PR", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"DO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"PS", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"PT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"PW", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"DZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"PY", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"QA", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"RE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"EC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"RO", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"RS", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"RU", ADDRESS_REQUIRES_LINE1_CITY},
{"EE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"RW", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"SA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"SB", ADDRESS_REQUIRES_LINE1_CITY},
{"EG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"SC", ADDRESS_REQUIRES_LINE1_CITY_STATE},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"SE", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"SG", ADDRESS_REQUIRES_LINE1_ZIP},
{"EH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"SH", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"SI", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"SJ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"ER", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"SK", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"SL", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"SM", ADDRESS_REQUIRES_LINE1_ZIP},
{"ES", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"SN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"SO", ADDRESS_REQUIRES_LINE1_CITY_STATE},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"SR", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"ET", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"SS", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"ST", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"SV", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"FI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"SX", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"SZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"TA", ADDRESS_REQUIRES_LINE1_CITY},
{"FJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"TC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"TD", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"TF", ADDRESS_REQUIRES_LINE1_CITY},
{"FK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"TG", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"TH", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"TJ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"FM", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, {"TK", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_STATE, {"TL", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } }, {"TM", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"FO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"TN", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"TO", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"TR", ADDRESS_REQUIRES_LINE1_CITY_STATE},
{"FR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"TT", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"TV", ADDRESS_REQUIRES_LINE1_CITY_STATE},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"TW", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"GA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"TZ", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"UA", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY } }, {"UG", ADDRESS_REQUIRES_LINE1_CITY},
{"GB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"UM", ADDRESS_REQUIRES_LINE1_CITY_STATE},
IDS_AUTOFILL_FIELD_LABEL_COUNTY, {"US", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"UY", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"GD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"UZ", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"VA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"VC", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"VE", ADDRESS_REQUIRES_LINE1_CITY_STATE},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"VG", ADDRESS_REQUIRES_LINE1},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"VI", ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP},
{"GF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"VN", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"VU", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"WF", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
{"GG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"WS", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"XK", ADDRESS_REQUIRES_LINE1_CITY},
ADDRESS_REQUIRES_LINE1_CITY_ZIP } }, {"YE", ADDRESS_REQUIRES_LINE1_CITY},
{"GH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"YT", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE, {"ZA", ADDRESS_REQUIRES_LINE1_CITY_ZIP},
ADDRESS_REQUIRES_LINE1_CITY } }, {"ZM", ADDRESS_REQUIRES_LINE1_CITY},
{"GI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, {"ZW", ADDRESS_REQUIRES_LINE1_CITY},
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"GL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"GR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GU", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"GY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"HK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_AREA,
ADDRESS_REQUIRES_LINE1_STATE } },
{"HM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"HN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"HR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"HT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"HU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ID", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_COUNTY,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"IR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"IS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"IT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"JE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"JM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PARISH,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"JO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"JP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PREFECTURE,
ADDRESS_REQUIRES_LINE1_STATE_ZIP } },
{"KE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"KM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"KN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"KP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"KR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"KW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"KY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_STATE } },
{"KZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"LA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"LI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"LY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ME", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MH", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"MK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ML", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"MO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"MP", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"MQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"MX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"MZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_DEPARTMENT,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"NL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"NR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_DISTRICT,
ADDRESS_REQUIRES_LINE1_STATE } },
{"NU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"NZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"OM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"PE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"PF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"PG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"PH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"PK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PR", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"PT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"PW", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"PY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"QA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"RE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"RO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"RS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"RU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"RW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_ZIP } },
{"SH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_ZIP } },
{"SN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"SO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"ST", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"SX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"SZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"TJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"TO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"TT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"TV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_ISLAND,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"TW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_COUNTY,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"TZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"UA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"UG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"UM", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"US", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"UY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"UZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"VA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"VC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"VE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_STATE } },
{"VG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1 } },
{"VI", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE,
IDS_AUTOFILL_FIELD_LABEL_STATE,
ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP } },
{"VN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"VU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"WF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"WS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"XK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"YE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"YT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ZA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY_ZIP } },
{"ZM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
{"ZW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE,
IDS_AUTOFILL_FIELD_LABEL_PROVINCE,
ADDRESS_REQUIRES_LINE1_CITY } },
// clang-format on
}; };
// GetCountryCodes and GetCountryData compute the data for CountryDataMap // GetCountryCodes and GetCountryData compute the data for CountryDataMap
// based on |kCountryData|. // based on |kCountryAddressImportRequirementsData|.
std::vector<std::string> GetCountryCodes() { std::vector<std::string> GetCountryCodes() {
std::vector<std::string> country_codes; std::vector<std::string> country_codes;
country_codes.reserve(base::size(kCountryData)); country_codes.reserve(base::size(kCountryAddressImportRequirementsData));
for (const auto& static_data : kCountryData) { for (const auto& static_data : kCountryAddressImportRequirementsData) {
country_codes.push_back(static_data.country_code); country_codes.push_back(static_data.country_code);
} }
return country_codes; return country_codes;
} }
std::map<std::string, CountryData> GetCountryDataMap() { std::map<std::string, RequiredFieldsForAddressImport> GetCountryDataMap() {
std::map<std::string, CountryData> country_data; std::map<std::string, RequiredFieldsForAddressImport> import_requirements;
// Add all the countries we have explicit data for. // Add all the countries we have explicit data for.
for (const auto& static_data : kCountryData) { for (const auto& static_data : kCountryAddressImportRequirementsData) {
country_data.insert( import_requirements.insert(
std::make_pair(static_data.country_code, static_data.country_data)); import_requirements.end(),
std::make_pair(static_data.country_code,
static_data.address_import_field_requirements));
} }
// Add any other countries that ICU knows about, falling back to default data // Add any other countries that ICU knows about, falling back to default data
...@@ -814,14 +315,13 @@ std::map<std::string, CountryData> GetCountryDataMap() { ...@@ -814,14 +315,13 @@ std::map<std::string, CountryData> GetCountryDataMap() {
for (const char* const* country_pointer = icu::Locale::getISOCountries(); for (const char* const* country_pointer = icu::Locale::getISOCountries();
*country_pointer; ++country_pointer) { *country_pointer; ++country_pointer) {
std::string country_code = *country_pointer; std::string country_code = *country_pointer;
if (!country_data.count(country_code)) { if (!import_requirements.count(country_code)) {
CountryData data = {IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, import_requirements.insert(std::make_pair(
IDS_AUTOFILL_FIELD_LABEL_PROVINCE}; std::move(country_code),
country_data.insert( RequiredFieldsForAddressImport::ADDRESS_REQUIREMENTS_UNKNOWN));
std::make_pair(std::move(country_code), std::move(data)));
} }
} }
return country_data; return import_requirements;
} }
std::map<std::string, std::string> GetCountryCodeAliasMap() { std::map<std::string, std::string> GetCountryCodeAliasMap() {
...@@ -844,23 +344,25 @@ CountryDataMap* CountryDataMap::GetInstance() { ...@@ -844,23 +344,25 @@ CountryDataMap* CountryDataMap::GetInstance() {
} }
CountryDataMap::CountryDataMap() CountryDataMap::CountryDataMap()
: country_data_(GetCountryDataMap()), : required_fields_for_address_import_map_(GetCountryDataMap()),
country_code_aliases_(GetCountryCodeAliasMap()), country_code_aliases_(GetCountryCodeAliasMap()),
country_codes_(GetCountryCodes()) {} country_codes_(GetCountryCodes()) {}
CountryDataMap::~CountryDataMap() = default; CountryDataMap::~CountryDataMap() = default;
bool CountryDataMap::HasCountryData(const std::string& country_code) const { bool CountryDataMap::HasRequiredFieldsForAddressImport(
return country_data_.count(country_code) > 0; const std::string& country_code) const {
return required_fields_for_address_import_map_.count(country_code) > 0;
} }
const CountryData& CountryDataMap::GetCountryData( RequiredFieldsForAddressImport
CountryDataMap::GetRequiredFieldsForAddressImport(
const std::string& country_code) const { const std::string& country_code) const {
auto lookup = country_data_.find(country_code); auto lookup = required_fields_for_address_import_map_.find(country_code);
if (lookup != country_data_.end()) if (lookup != required_fields_for_address_import_map_.end())
return lookup->second; return lookup->second;
// If there is no entry for country_code return the entry for the US. // If there is no entry for country_code return the entry for the US.
return country_data_.find("US")->second; return required_fields_for_address_import_map_.find("US")->second;
} }
bool CountryDataMap::HasCountryCodeAlias( bool CountryDataMap::HasCountryCodeAlias(
...@@ -872,7 +374,7 @@ const std::string CountryDataMap::GetCountryCodeForAlias( ...@@ -872,7 +374,7 @@ const std::string CountryDataMap::GetCountryCodeForAlias(
const std::string& country_code_alias) const { const std::string& country_code_alias) const {
auto lookup = country_code_aliases_.find(country_code_alias); auto lookup = country_code_aliases_.find(country_code_alias);
if (lookup != country_code_aliases_.end()) { if (lookup != country_code_aliases_.end()) {
DCHECK(HasCountryData(lookup->second)); DCHECK(HasRequiredFieldsForAddressImport(lookup->second));
return lookup->second; return lookup->second;
} }
return std::string(); return std::string();
......
...@@ -20,7 +20,7 @@ namespace autofill { ...@@ -20,7 +20,7 @@ namespace autofill {
// The minimal required fields for an address to be complete for a given // The minimal required fields for an address to be complete for a given
// country. // country.
enum AddressRequiredFields { enum RequiredFieldsForAddressImport {
ADDRESS_REQUIRES_CITY = 1 << 0, ADDRESS_REQUIRES_CITY = 1 << 0,
ADDRESS_REQUIRES_STATE = 1 << 1, ADDRESS_REQUIRES_STATE = 1 << 1,
ADDRESS_REQUIRES_ZIP = 1 << 2, ADDRESS_REQUIRES_ZIP = 1 << 2,
...@@ -52,19 +52,6 @@ enum AddressRequiredFields { ...@@ -52,19 +52,6 @@ enum AddressRequiredFields {
ADDRESS_REQUIREMENTS_UNKNOWN = ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP, ADDRESS_REQUIREMENTS_UNKNOWN = ADDRESS_REQUIRES_LINE1_CITY_STATE_ZIP,
}; };
// This struct describes the address format typical for a particular country.
struct CountryData {
// Resource identifier for the string used to denote postal codes.
int postal_code_label_id;
// Resource identifier for the string used to denote the major subdivision
// below the "country" level.
int state_label_id;
// The required parts of the address.
AddressRequiredFields address_required_fields;
};
// A singleton class that encapsulates a map from country codes to country data. // A singleton class that encapsulates a map from country codes to country data.
class CountryDataMap { class CountryDataMap {
public: public:
...@@ -72,7 +59,7 @@ class CountryDataMap { ...@@ -72,7 +59,7 @@ class CountryDataMap {
// Returns true if a |CountryData| entry for the supplied |country_code| // Returns true if a |CountryData| entry for the supplied |country_code|
// exists. // exists.
bool HasCountryData(const std::string& country_code) const; bool HasRequiredFieldsForAddressImport(const std::string& country_code) const;
// Returns true if there is a country code alias for |country_code|. // Returns true if there is a country code alias for |country_code|.
bool HasCountryCodeAlias(const std::string& country_code_alias) const; bool HasCountryCodeAlias(const std::string& country_code_alias) const;
...@@ -82,9 +69,10 @@ class CountryDataMap { ...@@ -82,9 +69,10 @@ class CountryDataMap {
const std::string GetCountryCodeForAlias( const std::string GetCountryCodeForAlias(
const std::string& country_code_alias) const; const std::string& country_code_alias) const;
// Lookup the |CountryData| for the supplied |country_code|. If no entry // Lookup the |RequiredFieldForAddressImport| for the supplied |country_code|.
// exists, return the data for the US as a best guess. // If no entry exists, return requirements for the US as a best guess.
const CountryData& GetCountryData(const std::string& country_code) const; RequiredFieldsForAddressImport GetRequiredFieldsForAddressImport(
const std::string& country_code) const;
// Return a constant reference to a vector of all country codes. // Return a constant reference to a vector of all country codes.
const std::vector<std::string>& country_codes() { return country_codes_; } const std::vector<std::string>& country_codes() { return country_codes_; }
...@@ -94,7 +82,8 @@ class CountryDataMap { ...@@ -94,7 +82,8 @@ class CountryDataMap {
~CountryDataMap(); ~CountryDataMap();
friend struct base::DefaultSingletonTraits<CountryDataMap>; friend struct base::DefaultSingletonTraits<CountryDataMap>;
const std::map<std::string, CountryData> country_data_; const std::map<std::string, RequiredFieldsForAddressImport>
required_fields_for_address_import_map_;
const std::map<std::string, std::string> country_code_aliases_; const std::map<std::string, std::string> country_code_aliases_;
const std::vector<std::string> country_codes_; const std::vector<std::string> country_codes_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment