diff --git a/java/build.xml b/java/build.xml
index 27c291098..990b0aca4 100644
--- a/java/build.xml
+++ b/java/build.xml
@@ -37,7 +37,7 @@
-
+
@@ -50,10 +50,10 @@
-
+
-
+
diff --git a/java/release_notes.txt b/java/release_notes.txt
index afc82c1aa..3744de895 100644
--- a/java/release_notes.txt
+++ b/java/release_notes.txt
@@ -1,3 +1,12 @@
+July 31th, 2010
+
+* Improve startup performance
+ - Separate generated metadata binary file to one file per region
+ - Preload US at start up, and load other region at the time when needed
+ - Create a file containing mapping from country calling code to region code,
+ and load it at startup
+ - Same change also applied to unittests
+
July 30th, 2010
* Metadata change:
diff --git a/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java b/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java
index 7043a34ef..eef94d537 100644
--- a/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java
+++ b/java/resources/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java
@@ -24,9 +24,15 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
@@ -52,13 +58,22 @@ public class BuildMetadataProtoFromXml {
private static final Logger LOGGER = Logger.getLogger(BuildMetadataProtoFromXml.class.getName());
private static Boolean liteBuild;
+ // A mapping from a country code to the region codes which denote the country/region
+ // represented by that country code. In the case of multiple countries sharing a calling code,
+ // such as the NANPA countries, the one indicated with "isMainCountryForCode" in the metadata
+ // should be first. The initial capacity is set to 300 as there are roughly 200 different
+ // country codes, and this offers a load factor of roughly 0.75.
+ private static final HashMap > COUNTRY_CODE_TO_REGION_CODE_MAP =
+ new HashMap >(310);
+
public static void main(String[] args) throws Exception {
String inputFile = args[0];
- String outputFile = args[1];
+ String filePrefix = args[1];
+ String outputMappingFile = filePrefix +
+ PhoneNumberUtil.COUNTRY_CODE_TO_REGION_CODE_MAP_FILE_SUFFIX;
liteBuild = args.length > 2 && Boolean.getBoolean(args[2]);
File xmlFile = new File(inputFile);
- FileOutputStream output = new FileOutputStream(outputFile);
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(xmlFile);
@@ -71,15 +86,51 @@ public class BuildMetadataProtoFromXml {
Element territoryElement = (Element) territory.item(i);
String regionCode = territoryElement.getAttribute("id");
PhoneMetadata metadata = loadCountryMetadata(regionCode, territoryElement);
+ fillCountryCodeToRegionCodeMap(metadata, regionCode);
metadataCollection.addMetadata(metadata);
+ FileOutputStream outputForRegion = new FileOutputStream(filePrefix + "_" + regionCode);
+ ObjectOutputStream out = new ObjectOutputStream(outputForRegion);
+ metadataCollection.writeExternal(out);
+ out.close();
+ metadataCollection.clear();
+ }
+ writeCountryCallingCodeMappingToFile(outputMappingFile);
+ }
+
+ private static void writeCountryCallingCodeMappingToFile(String file) throws IOException {
+ BufferedWriter writer =
+ new BufferedWriter(new FileWriter(file));
+ for (Integer countryCallingCode : COUNTRY_CODE_TO_REGION_CODE_MAP.keySet()) {
+ writer.write(countryCallingCode.toString());
+ writer.newLine();
+ for (String regionCode : COUNTRY_CODE_TO_REGION_CODE_MAP.get(countryCallingCode)) {
+ writer.write(' ');
+ writer.write(regionCode);
+ }
+ writer.newLine();
+ }
+ writer.flush();
+ writer.close();
+ }
+
+ static void fillCountryCodeToRegionCodeMap(PhoneMetadata metadata, String regionCode) {
+ int countryCode = metadata.getCountryCode();
+ if (COUNTRY_CODE_TO_REGION_CODE_MAP.containsKey(countryCode)) {
+ if (metadata.getMainCountryForCode()) {
+ COUNTRY_CODE_TO_REGION_CODE_MAP.get(countryCode).add(0, regionCode);
+ } else {
+ COUNTRY_CODE_TO_REGION_CODE_MAP.get(countryCode).add(regionCode);
+ }
+ } else {
+ // For most countries, there will be only one region code for the country dialing code.
+ List listWithRegionCode = new ArrayList(1);
+ listWithRegionCode.add(regionCode);
+ COUNTRY_CODE_TO_REGION_CODE_MAP.put(countryCode, listWithRegionCode);
}
- ObjectOutputStream out = new ObjectOutputStream(output);
- metadataCollection.writeExternal(out);
- out.close();
}
private static String validateRE(String regex) {
- Pattern regexPattern = Pattern.compile(regex);
+ Pattern.compile(regex);
// return regex itself if it is of correct regex syntax
return regex;
}
@@ -151,7 +202,7 @@ public class BuildMetadataProtoFromXml {
LOGGER.log(Level.SEVERE,
"Only one format pattern for a numberFormat element should be defined.");
throw new RuntimeException("Invalid number of format patterns for country: " +
- regionCode.toString());
+ regionCode);
}
format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue()));
metadata.addNumberFormat(format);
@@ -171,7 +222,7 @@ public class BuildMetadataProtoFromXml {
LOGGER.log(Level.SEVERE,
"Only one format pattern for a numberFormat element should be defined.");
throw new RuntimeException("Invalid number of format patterns for country: " +
- regionCode.toString());
+ regionCode);
}
format.setFormat(validateRE(formatPattern.item(0).getFirstChild().getNodeValue()));
if (numberFormatElement.hasAttribute("carrierCodeFormattingRule")) {
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto b/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto
deleted file mode 100644
index c003b67f2..000000000
Binary files a/java/src/com/google/i18n/phonenumbers/PhoneNumberMetadataProto and /dev/null differ
diff --git a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
index 2bd552a74..6d2fadded 100644
--- a/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
@@ -23,7 +23,9 @@ import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource;
+import java.io.BufferedReader;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
@@ -47,11 +49,14 @@ import java.util.regex.Pattern;
* @author Lara Rennie
*/
public class PhoneNumberUtil {
+ public static final String COUNTRY_CODE_TO_REGION_CODE_MAP_FILE_SUFFIX = "_Mapping";
+
// The minimum and maximum length of the national significant number.
private static final int MIN_LENGTH_FOR_NSN = 3;
private static final int MAX_LENGTH_FOR_NSN = 15;
- private static final String META_DATA_FILE =
- "/com/google/i18n/phonenumbers/PhoneNumberMetadataProto";
+ private static final String META_DATA_FILE_PREFIX =
+ "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto";
+ private String currentFilePrefix = META_DATA_FILE_PREFIX;
private static final Logger LOGGER = Logger.getLogger(PhoneNumberUtil.class.getName());
// A mapping from a country code to the region codes which denote the country/region
@@ -59,8 +64,12 @@ public class PhoneNumberUtil {
// such as the NANPA countries, the one indicated with "isMainCountryForCode" in the metadata
// should be first. The initial capacity is set to 300 as there are roughly 200 different
// country codes, and this offers a load factor of roughly 0.75.
- private final Map > countryCodeToRegionCodeMap =
- new HashMap >(310);
+ private final HashMap > countryCodeToRegionCodeMap =
+ new HashMap >(300);
+
+ // The set of countries the library support. There are roughly 220 countries of them and we
+ // set the initial capacity of the HashSet to 300 to offer a load factor of roughly 0.75.
+ private final HashSet supportedCountries = new HashSet(300);
// The set of countries that share country code 1. There are roughly 26 countries of them and we
// set the initial capacity of the HashSet to 35 to offer a load factor of roughly 0.75.
@@ -348,33 +357,49 @@ public class PhoneNumberUtil {
private PhoneNumberUtil() {
}
- private void init(InputStream source) {
- // Read in metadata for each country.
+ private void init(String filePrefix) {
+ currentFilePrefix = filePrefix;
+ InputStream mapping =
+ PhoneNumberUtil.class.getResourceAsStream(currentFilePrefix +
+ COUNTRY_CODE_TO_REGION_CODE_MAP_FILE_SUFFIX);
+ // Read in the mapping from country calling codes to region codes.
+ try {
+ BufferedReader in_reader = new BufferedReader(new InputStreamReader(mapping));
+ String line = null;
+ while ((line = in_reader.readLine()) != null) {
+ int countryCode = Integer.parseInt(line);
+ // This won't be null, as the line after country code will be two-letter region codes
+ // separated by a white space. The line will start with a white space.
+ line = in_reader.readLine();
+ int numberOfRegionCode = line.length() / 3;
+ // For most countries, there will be only one region code for the country dialing code.
+ ArrayList listWithRegionCode = new ArrayList(1);
+ for (int i = 0; i < numberOfRegionCode; i++) {
+ String twoLetterRegionCode = line.substring(i * 3 + 1, i * 3 + 3);
+ listWithRegionCode.add(twoLetterRegionCode);
+ supportedCountries.add(twoLetterRegionCode);
+ }
+ countryCodeToRegionCodeMap.put(countryCode, listWithRegionCode);
+ }
+ nanpaCountries.addAll(countryCodeToRegionCodeMap.get(NANPA_COUNTRY_CODE));
+ in_reader.close();
+ // Only preload US metadata at startup. Other metadata will be loaded later when needed.
+ loadMetadataForRegionFromFile(currentFilePrefix, "US");
+ } catch (IOException e) {
+ LOGGER.log(Level.WARNING, e.toString());
+ }
+ }
+
+ private void loadMetadataForRegionFromFile(String filePrefix, String regionCode) {
+ InputStream source =
+ PhoneNumberUtil.class.getResourceAsStream(filePrefix + "_" + regionCode);
+ ObjectInputStream in = null;
try {
- ObjectInputStream in = new ObjectInputStream(source);
+ in = new ObjectInputStream(source);
PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection();
metadataCollection.readExternal(in);
for (PhoneMetadata metadata : metadataCollection.getMetadataList()) {
- String regionCode = metadata.getId();
countryToMetadataMap.put(regionCode, metadata);
- countryToMetadataMap.put(regionCode.toLowerCase(), metadata);
- int countryCode = metadata.getCountryCode();
- if (countryCodeToRegionCodeMap.containsKey(countryCode)) {
- if (metadata.getMainCountryForCode()) {
- countryCodeToRegionCodeMap.get(countryCode).add(0, regionCode);
- } else {
- countryCodeToRegionCodeMap.get(countryCode).add(regionCode);
- }
- } else {
- // For most countries, there will be only one region code for the country dialing code.
- List listWithRegionCode = new ArrayList(1);
- listWithRegionCode.add(regionCode);
- countryCodeToRegionCodeMap.put(countryCode, listWithRegionCode);
- }
- if (countryCode == NANPA_COUNTRY_CODE) {
- nanpaCountries.add(regionCode);
- nanpaCountries.add(regionCode.toLowerCase());
- }
}
} catch (IOException e) {
LOGGER.log(Level.WARNING, e.toString());
@@ -601,10 +626,10 @@ public class PhoneNumberUtil {
return normalizedNumber.toString();
}
- static synchronized PhoneNumberUtil getInstance(InputStream source) {
+ static synchronized PhoneNumberUtil getInstance(String baseFileLocation) {
if (instance == null) {
instance = new PhoneNumberUtil();
- instance.init(source);
+ instance.init(baseFileLocation);
}
return instance;
}
@@ -620,8 +645,8 @@ public class PhoneNumberUtil {
* Convenience method to enable tests to get a list of what countries the library has metadata
* for.
*/
-public Set getSupportedCountries() {
- return countryToMetadataMap.keySet();
+ public Set getSupportedCountries() {
+ return supportedCountries;
}
/**
@@ -637,8 +662,7 @@ public Set getSupportedCountries() {
public static synchronized PhoneNumberUtil getInstance() {
if (instance == null) {
instance = new PhoneNumberUtil();
- InputStream in = PhoneNumberUtil.class.getResourceAsStream(META_DATA_FILE);
- instance.init(in);
+ instance.init(META_DATA_FILE_PREFIX);
}
return instance;
}
@@ -647,7 +671,7 @@ public Set getSupportedCountries() {
* Helper function to check region code is not unknown or null.
*/
private boolean isValidRegionCode(String regionCode) {
- return countryToMetadataMap.containsKey(regionCode);
+ return regionCode != null && supportedCountries.contains(regionCode.toUpperCase());
}
/**
@@ -1147,9 +1171,13 @@ public Set getSupportedCountries() {
}
PhoneMetadata getMetadataForRegion(String regionCode) {
- if (regionCode == null) {
+ if (!isValidRegionCode(regionCode)) {
return null;
}
+ regionCode = regionCode.toUpperCase();
+ if (!countryToMetadataMap.containsKey(regionCode)) {
+ loadMetadataForRegionFromFile(currentFilePrefix, regionCode);
+ }
return countryToMetadataMap.get(regionCode);
}
@@ -1282,7 +1310,7 @@ public Set getSupportedCountries() {
* @return true if regionCode is one of the countries under NANPA
*/
public boolean isNANPACountry(String regionCode) {
- return nanpaCountries.contains(regionCode);
+ return regionCode != null && nanpaCountries.contains(regionCode.toUpperCase());
}
/**
@@ -1760,9 +1788,6 @@ public Set getSupportedCountries() {
parseHelper(numberToParse, defaultCountry, true, phoneNumber);
}
-
-
-
/**
* Parses a string and fills up the phoneNumber. This method is the same as the public
* parse() method, with the exception that it allows the default country to be null, for use by
diff --git a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
index a6a91d879..7f2e58f43 100644
--- a/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
+++ b/java/src/com/google/i18n/phonenumbers/Phonemetadata.java
@@ -742,5 +742,10 @@ public final class Phonemetadata {
metadata_.add(metadata);
}
}
+
+ public PhoneMetadataCollection clear() {
+ metadata_.clear();
+ return this;
+ }
}
}
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD
new file mode 100644
index 000000000..e6c2e2f82
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
new file mode 100644
index 000000000..3afc1fe14
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
new file mode 100644
index 000000000..8c8e5d43d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
new file mode 100644
index 000000000..7bec35967
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
new file mode 100644
index 000000000..b880a406f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL
new file mode 100644
index 000000000..1684c8452
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM
new file mode 100644
index 000000000..fa2e80193
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN
new file mode 100644
index 000000000..3d50a13fc
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO
new file mode 100644
index 000000000..06a7dee0c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR
new file mode 100644
index 000000000..2dc8d4635
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
new file mode 100644
index 000000000..d200cff11
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT
new file mode 100644
index 000000000..b7cf2629a
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU
new file mode 100644
index 000000000..ef5d35ce0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
new file mode 100644
index 000000000..dbac243d3
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ
new file mode 100644
index 000000000..935a12af7
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA
new file mode 100644
index 000000000..84613f4c0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
new file mode 100644
index 000000000..9d3d34202
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD
new file mode 100644
index 000000000..35d8bd601
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
new file mode 100644
index 000000000..ca1deb076
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
new file mode 100644
index 000000000..9226d8c2b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG
new file mode 100644
index 000000000..680bf3b80
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH
new file mode 100644
index 000000000..96b238fe9
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI
new file mode 100644
index 000000000..0b1f30b8b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ
new file mode 100644
index 000000000..58c9370cc
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL
new file mode 100644
index 000000000..1d9e8707b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
new file mode 100644
index 000000000..3d2e26cce
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN
new file mode 100644
index 000000000..f6da2bf34
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO
new file mode 100644
index 000000000..ff0f394e3
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
new file mode 100644
index 000000000..7a1dfa2c7
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
new file mode 100644
index 000000000..6464fc766
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT
new file mode 100644
index 000000000..5a3ccafc0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
new file mode 100644
index 000000000..7108c1955
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY
new file mode 100644
index 000000000..828b31e5d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ
new file mode 100644
index 000000000..bcbe48150
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
new file mode 100644
index 000000000..2432c8273
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD
new file mode 100644
index 000000000..8d4aedabe
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF
new file mode 100644
index 000000000..5ec65ace7
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG
new file mode 100644
index 000000000..21ccd0c7f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH
new file mode 100644
index 000000000..f1a285d1d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI
new file mode 100644
index 000000000..8d83b0d08
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK
new file mode 100644
index 000000000..fb27ec297
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
new file mode 100644
index 000000000..47f742177
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM
new file mode 100644
index 000000000..f3605f628
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
new file mode 100644
index 000000000..0e551a661
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
new file mode 100644
index 000000000..8776ba926
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
new file mode 100644
index 000000000..fc19ae8dc
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU
new file mode 100644
index 000000000..824175fa6
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV
new file mode 100644
index 000000000..07e3b7d05
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY
new file mode 100644
index 000000000..527c25155
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ
new file mode 100644
index 000000000..b3540f284
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
new file mode 100644
index 000000000..6c8e2e8cd
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ
new file mode 100644
index 000000000..71f9fc4b5
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK
new file mode 100644
index 000000000..69f4e4a96
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
new file mode 100644
index 000000000..e9474210d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
new file mode 100644
index 000000000..001987198
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
new file mode 100644
index 000000000..4feff2bf6
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC
new file mode 100644
index 000000000..1b17bce88
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE
new file mode 100644
index 000000000..6a5d7d2b1
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG
new file mode 100644
index 000000000..b4d2578fa
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER
new file mode 100644
index 000000000..32e1ba650
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES
new file mode 100644
index 000000000..6d53f2e6a
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET
new file mode 100644
index 000000000..8f35d070e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI
new file mode 100644
index 000000000..ab3269791
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
new file mode 100644
index 000000000..d733826bd
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK
new file mode 100644
index 000000000..40e43b5ff
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM
new file mode 100644
index 000000000..625e9b33b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO
new file mode 100644
index 000000000..96b9722a1
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
new file mode 100644
index 000000000..3db0cfd8c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA
new file mode 100644
index 000000000..6e91babe0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
new file mode 100644
index 000000000..965f03798
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
new file mode 100644
index 000000000..b5deb684b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE
new file mode 100644
index 000000000..44e2572ed
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF
new file mode 100644
index 000000000..7ad90210d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG
new file mode 100644
index 000000000..f6edd00e8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH
new file mode 100644
index 000000000..8107a935b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI
new file mode 100644
index 000000000..5204a98ef
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL
new file mode 100644
index 000000000..19d3222cf
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM
new file mode 100644
index 000000000..0a5090693
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN
new file mode 100644
index 000000000..a7f580e43
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP
new file mode 100644
index 000000000..e213b75f4
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ
new file mode 100644
index 000000000..a90838db1
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR
new file mode 100644
index 000000000..9f7f6b6fd
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT
new file mode 100644
index 000000000..3949fa209
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
new file mode 100644
index 000000000..6eaf05e6e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW
new file mode 100644
index 000000000..bbdd17efb
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY
new file mode 100644
index 000000000..a657bbc89
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK
new file mode 100644
index 000000000..177c2b0b3
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN
new file mode 100644
index 000000000..49a128ef1
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR
new file mode 100644
index 000000000..b39934c1b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT
new file mode 100644
index 000000000..e65f26ad6
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU
new file mode 100644
index 000000000..f9e95e0f5
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID
new file mode 100644
index 000000000..aca43aec8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE
new file mode 100644
index 000000000..988b47b77
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL
new file mode 100644
index 000000000..49f0abd83
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM
new file mode 100644
index 000000000..8c017cd67
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
new file mode 100644
index 000000000..b7db03445
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO
new file mode 100644
index 000000000..eaf9bec0a
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ
new file mode 100644
index 000000000..3fc6bbb9c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR
new file mode 100644
index 000000000..cb4811f07
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS
new file mode 100644
index 000000000..649fab3b9
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT
new file mode 100644
index 000000000..fee1f3f4b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE
new file mode 100644
index 000000000..56ea7e29b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
new file mode 100644
index 000000000..829eb7d86
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
new file mode 100644
index 000000000..134224211
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
new file mode 100644
index 000000000..d3da419a5
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
new file mode 100644
index 000000000..0fc18b79c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
new file mode 100644
index 000000000..663d063c1
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
new file mode 100644
index 000000000..19ad37f60
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI
new file mode 100644
index 000000000..dc2906d39
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM
new file mode 100644
index 000000000..3c5ca9f44
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
new file mode 100644
index 000000000..113fbbeaf
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP
new file mode 100644
index 000000000..30c2f315f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR
new file mode 100644
index 000000000..452d730b3
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
new file mode 100644
index 000000000..9c2fe3d1c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
new file mode 100644
index 000000000..704e2fb56
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ
new file mode 100644
index 000000000..4ff3cf3e8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA
new file mode 100644
index 000000000..3ee7f5cb8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB
new file mode 100644
index 000000000..6673fd2cc
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
new file mode 100644
index 000000000..99ca1e0b5
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI
new file mode 100644
index 000000000..13ed8a6ec
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK
new file mode 100644
index 000000000..f40527bc2
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR
new file mode 100644
index 000000000..3c8e010b2
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS
new file mode 100644
index 000000000..ce20cabfc
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
new file mode 100644
index 000000000..b82c59a1a
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU
new file mode 100644
index 000000000..6d498bdef
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV
new file mode 100644
index 000000000..855793f75
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY
new file mode 100644
index 000000000..0c32f6091
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
new file mode 100644
index 000000000..832a1cc1f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC
new file mode 100644
index 000000000..9723714b0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD
new file mode 100644
index 000000000..49625e42e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME
new file mode 100644
index 000000000..5caf3cdd9
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF
new file mode 100644
index 000000000..d9f2e5f0d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG
new file mode 100644
index 000000000..8400fc55e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH
new file mode 100644
index 000000000..b033f0483
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK
new file mode 100644
index 000000000..d5f29e00e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
new file mode 100644
index 000000000..bcf2319a9
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
new file mode 100644
index 000000000..f0425f20e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
new file mode 100644
index 000000000..c6de525db
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO
new file mode 100644
index 000000000..d6a981f22
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
new file mode 100644
index 000000000..238d1f154
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ
new file mode 100644
index 000000000..84ebbf479
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR
new file mode 100644
index 000000000..1fb60e6ea
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
new file mode 100644
index 000000000..c34f7cac4
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT
new file mode 100644
index 000000000..92b7f1860
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
new file mode 100644
index 000000000..191dfd59e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV
new file mode 100644
index 000000000..6df01edfd
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW
new file mode 100644
index 000000000..daa030cc0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX
new file mode 100644
index 000000000..f43283207
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY
new file mode 100644
index 000000000..e04c636af
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ
new file mode 100644
index 000000000..74541096c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_Mapping b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_Mapping
new file mode 100644
index 000000000..f5b90b2d7
--- /dev/null
+++ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_Mapping
@@ -0,0 +1,408 @@
+1
+ US AG AI AS BB BM BS CA DM DO GD GU JM KN KY LC MP MS PR TC TT VC VG VI
+7
+ RU KZ
+20
+ EG
+27
+ ZA
+31
+ NL
+30
+ GR
+34
+ ES
+32
+ BE
+33
+ FR
+39
+ IT
+36
+ HU
+43
+ AT
+40
+ RO
+41
+ CH
+46
+ SE
+47
+ NO
+44
+ GB GG IM JE
+45
+ DK
+51
+ PE
+49
+ DE
+48
+ PL
+55
+ BR
+54
+ AR
+53
+ CU
+52
+ MX
+58
+ VE
+57
+ CO
+56
+ CL
+63
+ PH
+62
+ ID
+61
+ AU
+60
+ MY
+64
+ NZ
+65
+ SG
+66
+ TH
+84
+ VN
+86
+ CN
+81
+ JP
+82
+ KR
+93
+ AF
+92
+ PK
+95
+ MM
+94
+ LK
+91
+ IN
+90
+ TR
+98
+ IR
+590
+ GP BL MF
+591
+ BO
+593
+ EC
+592
+ GY
+595
+ PY
+594
+ GF
+597
+ SR
+596
+ MQ
+599
+ AN
+598
+ UY
+687
+ NC
+686
+ KI
+685
+ WS
+683
+ NU
+682
+ CK
+681
+ WF
+680
+ PW
+679
+ FJ
+678
+ VU
+677
+ SB
+676
+ TO
+675
+ PG
+674
+ NR
+673
+ BN
+672
+ NF
+692
+ MH
+690
+ TK
+691
+ FM
+688
+ TV
+689
+ PF
+670
+ TL
+220
+ GM
+221
+ SN
+222
+ MR
+223
+ ML
+216
+ TN
+218
+ LY
+212
+ MA
+213
+ DZ
+239
+ ST
+238
+ CV
+237
+ CM
+236
+ CF
+235
+ TD
+234
+ NG
+233
+ GH
+232
+ SL
+231
+ LR
+230
+ MU
+229
+ BJ
+228
+ TG
+227
+ NE
+226
+ BF
+225
+ CI
+224
+ GN
+254
+ KE
+255
+ TZ
+252
+ SO
+253
+ DJ
+250
+ RW
+251
+ ET
+248
+ SC
+249
+ SD
+246
+ IO
+244
+ AO
+245
+ GW
+242
+ CG
+243
+ CD
+240
+ GQ
+241
+ GA
+258
+ MZ
+256
+ UG
+257
+ BI
+262
+ RE TF YT
+263
+ ZW
+260
+ ZM
+261
+ MG
+266
+ LS
+267
+ BW
+264
+ NA
+265
+ MW
+268
+ SZ
+269
+ KM
+290
+ SH
+291
+ ER
+297
+ AW
+298
+ FO
+299
+ GL
+880
+ BD
+886
+ TW
+351
+ PT
+350
+ GI
+373
+ MD
+850
+ KP
+372
+ EE
+375
+ BY
+374
+ AM
+855
+ KH
+853
+ MO
+371
+ LV
+370
+ LT
+852
+ HK
+381
+ RS
+380
+ UA
+382
+ ME
+856
+ LA
+377
+ MC
+376
+ AD
+379
+ VA
+378
+ SM
+356
+ MT
+357
+ CY
+358
+ FI
+359
+ BG
+352
+ LU
+353
+ IE
+354
+ IS
+355
+ AL
+387
+ BA
+386
+ SI
+385
+ HR
+389
+ MK
+421
+ SK
+420
+ CZ
+423
+ LI
+993
+ TM
+992
+ TJ
+995
+ GE
+994
+ AZ
+996
+ KG
+998
+ UZ
+508
+ PM
+509
+ HT
+504
+ HN
+505
+ NI
+506
+ CR
+507
+ PA
+500
+ FK
+501
+ BZ
+976
+ MN
+502
+ GT
+503
+ SV
+977
+ NP
+971
+ AE
+970
+ PS
+968
+ OM
+975
+ BT
+974
+ QA
+973
+ BH
+972
+ IL
+963
+ SY
+962
+ JO
+961
+ LB
+960
+ MV
+967
+ YE
+966
+ SA
+965
+ KW
+964
+ IQ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA
new file mode 100644
index 000000000..da2386e72
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC
new file mode 100644
index 000000000..6a9fadadd
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE
new file mode 100644
index 000000000..c245a6ba1
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF
new file mode 100644
index 000000000..81a971fc3
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
new file mode 100644
index 000000000..88363e5f5
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
new file mode 100644
index 000000000..b007153d4
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL
new file mode 100644
index 000000000..ea0e34274
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO
new file mode 100644
index 000000000..b221c19cb
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP
new file mode 100644
index 000000000..416eeb4fb
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR
new file mode 100644
index 000000000..71630199c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU
new file mode 100644
index 000000000..215ba9dd6
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ
new file mode 100644
index 000000000..c5076e572
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM
new file mode 100644
index 000000000..c33b95276
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA
new file mode 100644
index 000000000..080d2af8f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE
new file mode 100644
index 000000000..081c83c47
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF
new file mode 100644
index 000000000..cbe240b1a
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
new file mode 100644
index 000000000..0aa87ac69
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
new file mode 100644
index 000000000..307646367
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
new file mode 100644
index 000000000..ad32cfe76
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
new file mode 100644
index 000000000..512608500
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM
new file mode 100644
index 000000000..c3375cb93
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
new file mode 100644
index 000000000..4f4566013
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS
new file mode 100644
index 000000000..5c9bd81b5
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT
new file mode 100644
index 000000000..f15b375cc
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW
new file mode 100644
index 000000000..4e81dcb1d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY
new file mode 100644
index 000000000..310accd0e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA
new file mode 100644
index 000000000..af78d66d8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE
new file mode 100644
index 000000000..000910edb
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
new file mode 100644
index 000000000..3ac59908b
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS
new file mode 100644
index 000000000..ef3697faa
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU
new file mode 100644
index 000000000..52cbfd228
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
new file mode 100644
index 000000000..1578ca1e3
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA
new file mode 100644
index 000000000..47ca9d6ac
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB
new file mode 100644
index 000000000..884aa180f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC
new file mode 100644
index 000000000..6538bda42
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD
new file mode 100644
index 000000000..44688c8d2
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE
new file mode 100644
index 000000000..e19bf3b0d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG
new file mode 100644
index 000000000..ebd558c03
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH
new file mode 100644
index 000000000..3754ba77e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI
new file mode 100644
index 000000000..35fe0ed08
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK
new file mode 100644
index 000000000..a17a52f47
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL
new file mode 100644
index 000000000..d0054b8cd
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM
new file mode 100644
index 000000000..fae460c30
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
new file mode 100644
index 000000000..01883c940
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
new file mode 100644
index 000000000..276f95e0e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
new file mode 100644
index 000000000..ed907c11f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST
new file mode 100644
index 000000000..bd31233f8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV
new file mode 100644
index 000000000..8d271ed7f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
new file mode 100644
index 000000000..55e16af0d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ
new file mode 100644
index 000000000..ca05ebeba
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
new file mode 100644
index 000000000..5c3d9e594
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD
new file mode 100644
index 000000000..052bafa6e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF
new file mode 100644
index 000000000..70dbefb6e
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG
new file mode 100644
index 000000000..bd37702a9
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH
new file mode 100644
index 000000000..dd37ba3cb
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ
new file mode 100644
index 000000000..49a1150f0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK
new file mode 100644
index 000000000..fac004c6d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL
new file mode 100644
index 000000000..6e91c82a4
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM
new file mode 100644
index 000000000..74a5f7d0f
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN
new file mode 100644
index 000000000..55c59eb33
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO
new file mode 100644
index 000000000..fbaa1bc39
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
new file mode 100644
index 000000000..ac898c062
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
new file mode 100644
index 000000000..0158a4d21
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV
new file mode 100644
index 000000000..c14728822
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW
new file mode 100644
index 000000000..e2a9aa2a0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ
new file mode 100644
index 000000000..1eeeac097
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA
new file mode 100644
index 000000000..bdf7e8343
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG
new file mode 100644
index 000000000..e82ed60de
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
new file mode 100644
index 000000000..013523add
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY
new file mode 100644
index 000000000..0155f5662
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ
new file mode 100644
index 000000000..a6f951a00
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA
new file mode 100644
index 000000000..f105e0140
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
new file mode 100644
index 000000000..d592fba52
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE
new file mode 100644
index 000000000..ec87502e4
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
new file mode 100644
index 000000000..a1b0d8ced
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
new file mode 100644
index 000000000..cb79137b0
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
new file mode 100644
index 000000000..0bde54c53
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
new file mode 100644
index 000000000..7643ede4c
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF
new file mode 100644
index 000000000..19ce6ea38
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS
new file mode 100644
index 000000000..cd472a2aa
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE
new file mode 100644
index 000000000..a06ef7de4
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT
new file mode 100644
index 000000000..286d4aa5d
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
new file mode 100644
index 000000000..7347bba31
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
new file mode 100644
index 000000000..3082fcea8
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM differ
diff --git a/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW
new file mode 100644
index 000000000..2e08a2348
Binary files /dev/null and b/java/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW differ
diff --git a/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java b/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java
index a6155286b..5d65dc7c3 100644
--- a/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java
+++ b/java/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java
@@ -18,26 +18,23 @@ package com.google.i18n.phonenumbers;
import junit.framework.TestCase;
-import java.io.InputStream;
-
/**
* Unit tests for PhoneNumberUtil.java
*
- * Note that these tests use the metadata contained in the file specified by TEST_META_DATA_FILE,
- * not the normal metadata file, so should not be used for regression test purposes - these tests
+ * Note that these tests use the metadata contained in the files with TEST_META_DATA_FILE_PREFIX,
+ * not the normal metadata files, so should not be used for regression test purposes - these tests
* are illustrative only and test functionality.
*
* @author Shaopeng Jia
*/
public class AsYouTypeFormatterTest extends TestCase {
private PhoneNumberUtil phoneUtil;
- private static final String TEST_META_DATA_FILE =
- "/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting";
+ private static final String TEST_META_DATA_FILE_PREFIX =
+ "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting";
public AsYouTypeFormatterTest() {
PhoneNumberUtil.resetInstance();
- InputStream in = PhoneNumberUtilTest.class.getResourceAsStream(TEST_META_DATA_FILE);
- phoneUtil = PhoneNumberUtil.getInstance(in);
+ phoneUtil = PhoneNumberUtil.getInstance(TEST_META_DATA_FILE_PREFIX);
}
public void testAYTFUS() {
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting b/java/test/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting
deleted file mode 100644
index e3ae11d8c..000000000
Binary files a/java/test/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting and /dev/null differ
diff --git a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
index 535c6d63e..1fa62aa34 100644
--- a/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/java/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -23,7 +23,6 @@ import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource;
import junit.framework.TestCase;
import java.io.IOException;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
@@ -31,8 +30,8 @@ import java.util.regex.Pattern;
/**
* Unit tests for PhoneNumberUtil.java
*
- * Note that these tests use the metadata contained in the file specified by TEST_META_DATA_FILE,
- * not the normal metadata file, so should not be used for regression test purposes - these tests
+ * Note that these tests use the metadata contained in the files with TEST_META_DATA_FILE_PREFIX,
+ * not the normal metadata files, so should not be used for regression test purposes - these tests
* are illustrative only and test functionality.
*
* @author Shaopeng Jia
@@ -40,13 +39,12 @@ import java.util.regex.Pattern;
*/
public class PhoneNumberUtilTest extends TestCase {
private PhoneNumberUtil phoneUtil;
- private static final String TEST_META_DATA_FILE =
- "/com/google/i18n/phonenumbers/PhoneNumberMetadataProtoForTesting";
+ private static final String TEST_META_DATA_FILE_PREFIX =
+ "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting";
public PhoneNumberUtilTest() {
PhoneNumberUtil.resetInstance();
- InputStream in = PhoneNumberUtilTest.class.getResourceAsStream(TEST_META_DATA_FILE);
- phoneUtil = PhoneNumberUtil.getInstance(in);
+ phoneUtil = PhoneNumberUtil.getInstance(TEST_META_DATA_FILE_PREFIX);
}
@Override
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting
new file mode 100644
index 000000000..e69de29bb
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD
new file mode 100644
index 000000000..420a09ef3
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO
new file mode 100644
index 000000000..06a7dee0c
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR
new file mode 100644
index 000000000..879ff1f5e
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU
new file mode 100644
index 000000000..1afde804a
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS
new file mode 100644
index 000000000..47ecb7c57
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE
new file mode 100644
index 000000000..e131c667e
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB
new file mode 100644
index 000000000..71e628ebe
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT
new file mode 100644
index 000000000..1e3c93f60
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP
new file mode 100644
index 000000000..8666b3a77
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR
new file mode 100644
index 000000000..12d493302
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX
new file mode 100644
index 000000000..eb82cb3d6
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_Mapping b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_Mapping
new file mode 100644
index 000000000..d4bb2d533
--- /dev/null
+++ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_Mapping
@@ -0,0 +1,30 @@
+1
+ US BS
+39
+ IT
+44
+ GB
+49
+ DE
+48
+ PL
+54
+ AR
+52
+ MX
+61
+ AU
+64
+ NZ
+65
+ SG
+81
+ JP
+82
+ KR
+244
+ AO
+262
+ RE YT
+376
+ AD
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ
new file mode 100644
index 000000000..aab8cbd89
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL
new file mode 100644
index 000000000..9f5617874
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE
new file mode 100644
index 000000000..c0fb491e9
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG
new file mode 100644
index 000000000..359168d83
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US
new file mode 100644
index 000000000..b941f5098
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US differ
diff --git a/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT
new file mode 100644
index 000000000..50d8c934b
Binary files /dev/null and b/java/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT differ