Upgrade to 8.3.1

Created using ./update-from-external.sh 8.3.1

m -j32 droid
adb reboot bootloader
fastboot flashall -w
m -j32 cts
cts-tradefed run cts -m CtsTelephonyTestCases -t android.telephony.cts.PhoneNumberUtilsTest
m -j32 libphonenumber-test vogar dx
vogar --timeout 0 \
    --classpath out/target/common/obj/JAVA_LIBRARIES/libphonenumber-test_intermediates/classes.jack \
    com.google.i18n.phonenumbers

Bug: 35655217
Test: As described above

Change-Id: I58a4ea79762322603875a1be02c8a5542076191f
diff --git a/README.android b/README.android
index 48e706f..0816e26 100644
--- a/README.android
+++ b/README.android
@@ -1,5 +1,5 @@
 URL: https://github.com/googlei18n/libphonenumber
-Version: 8.3.0
+Version: 8.3.1
 License: Apache 2
 Description: Google Phone Number Library.
 
diff --git a/README.version b/README.version
index 7fe2eda..62c2ec8 100644
--- a/README.version
+++ b/README.version
@@ -1,3 +1,3 @@
 URL: https://github.com/googlei18n/libphonenumber/archive/libphonenumber-7.7.0.tar.gz
-Version: 8.3.0
+Version: 8.3.1
 BugComponent: 24949
diff --git a/carrier/pom.xml b/carrier/pom.xml
index 24da463..63d414c 100644
--- a/carrier/pom.xml
+++ b/carrier/pom.xml
@@ -3,14 +3,14 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>carrier</artifactId>
-  <version>1.53</version>
+  <version>1.54</version>
   <packaging>jar</packaging>
   <url>https://github.com/googlei18n/libphonenumber/</url>
 
   <parent>
     <groupId>com.googlecode.libphonenumber</groupId>
     <artifactId>libphonenumber-parent</artifactId>
-    <version>8.3.0</version>
+    <version>8.3.1</version>
   </parent>
 
   <build>
@@ -56,12 +56,12 @@
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>libphonenumber</artifactId>
-      <version>8.3.0</version>
+      <version>8.3.1</version>
     </dependency>
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>prefixmapper</artifactId>
-      <version>2.63</version>
+      <version>2.64</version>
     </dependency>
   </dependencies>
 
diff --git a/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en b/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en
index 50c13ad..c2e2afd 100644
--- a/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en
+++ b/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en
Binary files differ
diff --git a/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_ru b/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_ru
index 0595b70..4d1e432 100644
--- a/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_ru
+++ b/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_ru
Binary files differ
diff --git a/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en b/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en
index b14d298..4472868 100644
--- a/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en
+++ b/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en
Binary files differ
diff --git a/demo/pom.xml b/demo/pom.xml
index 5df6c96..74c5422 100644
--- a/demo/pom.xml
+++ b/demo/pom.xml
@@ -4,11 +4,11 @@
   <parent>
     <artifactId>libphonenumber-parent</artifactId>
     <groupId>com.googlecode.libphonenumber</groupId>
-    <version>8.3.0</version>
+    <version>8.3.1</version>
   </parent>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>demo</artifactId>
-  <version>8.3.0</version>
+  <version>8.3.1</version>
 
   <properties>
     <gae.version>1.9.32</gae.version>
@@ -48,17 +48,17 @@
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>libphonenumber</artifactId>
-      <version>8.3.0</version>
+      <version>8.3.1</version>
     </dependency>
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>geocoder</artifactId>
-      <version>2.63</version>
+      <version>2.64</version>
     </dependency>
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>carrier</artifactId>
-      <version>1.53</version>
+      <version>1.54</version>
     </dependency>
   </dependencies>
 
diff --git a/geocoder/pom.xml b/geocoder/pom.xml
index e813957..7face24 100644
--- a/geocoder/pom.xml
+++ b/geocoder/pom.xml
@@ -3,14 +3,14 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>geocoder</artifactId>
-  <version>2.63</version>
+  <version>2.64</version>
   <packaging>jar</packaging>
   <url>https://github.com/googlei18n/libphonenumber/</url>
 
   <parent>
     <groupId>com.googlecode.libphonenumber</groupId>
     <artifactId>libphonenumber-parent</artifactId>
-    <version>8.3.0</version>
+    <version>8.3.1</version>
   </parent>
 
   <build>
@@ -64,12 +64,12 @@
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>libphonenumber</artifactId>
-      <version>8.3.0</version>
+      <version>8.3.1</version>
     </dependency>
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>prefixmapper</artifactId>
-      <version>2.63</version>
+      <version>2.64</version>
     </dependency>
   </dependencies>
 
diff --git a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en
index 0af51bf..236966f 100644
--- a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en
+++ b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en
Binary files differ
diff --git a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_hy b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_hy
index d4ccd3a..08d74b8 100644
--- a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_hy
+++ b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_hy
Binary files differ
diff --git a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en
index e42eb90..76a811b 100644
--- a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en
+++ b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en
Binary files differ
diff --git a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id
index b73d951..92d7a3b 100644
--- a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id
+++ b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id
Binary files differ
diff --git a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en
index 28501b9..af9ea54 100644
--- a/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en
+++ b/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en
Binary files differ
diff --git a/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data b/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data
index 08d7a6d..32b741e 100644
--- a/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data
+++ b/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data
Binary files differ
diff --git a/internal/prefixmapper/pom.xml b/internal/prefixmapper/pom.xml
index d30e7f6..d63830d 100644
--- a/internal/prefixmapper/pom.xml
+++ b/internal/prefixmapper/pom.xml
@@ -3,14 +3,14 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>prefixmapper</artifactId>
-  <version>2.63</version>
+  <version>2.64</version>
   <packaging>jar</packaging>
   <url>https://github.com/googlei18n/libphonenumber/</url>
 
   <parent>
     <groupId>com.googlecode.libphonenumber</groupId>
     <artifactId>libphonenumber-parent</artifactId>
-    <version>8.3.0</version>
+    <version>8.3.1</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
@@ -51,7 +51,7 @@
     <dependency>
       <groupId>com.googlecode.libphonenumber</groupId>
       <artifactId>libphonenumber</artifactId>
-      <version>8.3.0</version>
+      <version>8.3.1</version>
     </dependency>
   </dependencies>
 
diff --git a/libphonenumber/pom.xml b/libphonenumber/pom.xml
index d691a59..ab0e5fe 100644
--- a/libphonenumber/pom.xml
+++ b/libphonenumber/pom.xml
@@ -3,14 +3,14 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>libphonenumber</artifactId>
-  <version>8.3.0</version>
+  <version>8.3.1</version>
   <packaging>jar</packaging>
   <url>https://github.com/googlei18n/libphonenumber/</url>
 
   <parent>
     <groupId>com.googlecode.libphonenumber</groupId>
     <artifactId>libphonenumber-parent</artifactId>
-    <version>8.3.0</version>
+    <version>8.3.1</version>
   </parent>
 
   <build>
diff --git a/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java b/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java
index dbf0f35..cf94bdb 100644
--- a/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java
+++ b/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java
@@ -26,9 +26,9 @@
 public class AlternateFormatsCountryCodeSet {
   // A set of all country codes for which data is available.
   static Set<Integer> getCountryCodeSet() {
-    // The capacity is set to 58 as there are 44 different entries,
+    // The capacity is set to 60 as there are 45 different entries,
     // and this offers a load factor of roughly 0.75.
-    Set<Integer> countryCodeSet = new HashSet<Integer>(58);
+    Set<Integer> countryCodeSet = new HashSet<Integer>(60);
 
     countryCodeSet.add(7);
     countryCodeSet.add(27);
@@ -36,6 +36,7 @@
     countryCodeSet.add(31);
     countryCodeSet.add(34);
     countryCodeSet.add(36);
+    countryCodeSet.add(39);
     countryCodeSet.add(43);
     countryCodeSet.add(44);
     countryCodeSet.add(49);
diff --git a/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
index 90a969e..4ce2781 100644
--- a/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
@@ -1717,7 +1717,7 @@
   public String getNationalSignificantNumber(PhoneNumber number) {
     // If leading zero(s) have been set, we prefix this now. Note this is not a national prefix.
     StringBuilder nationalNumber = new StringBuilder();
-    if (number.isItalianLeadingZero()) {
+    if (number.isItalianLeadingZero() && number.getNumberOfLeadingZeros() > 0) {
       char[] zeros = new char[number.getNumberOfLeadingZeros()];
       Arrays.fill(zeros, '0');
       nationalNumber.append(new String(zeros));
diff --git a/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_39 b/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_39
new file mode 100644
index 0000000..50e0869
--- /dev/null
+++ b/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_39
Binary files differ
diff --git a/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS b/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
index 4466d85..eba5495 100644
--- a/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
+++ b/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
Binary files differ
diff --git a/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN b/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
index e4353ba..3551b54 100644
--- a/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
+++ b/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN
Binary files differ
diff --git a/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
index faf11f9..706b8fc 100644
--- a/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -330,6 +330,19 @@
     assertEquals("12345678", phoneUtil.getNationalSignificantNumber(INTERNATIONAL_TOLL_FREE));
   }
 
+  public void testGetNationalSignificantNumber_ManyLeadingZeros() {
+    PhoneNumber number = new PhoneNumber();
+    number.setCountryCode(1);
+    number.setNationalNumber(650);
+    number.setItalianLeadingZero(true);
+    number.setNumberOfLeadingZeros(2);
+    assertEquals("00650", phoneUtil.getNationalSignificantNumber(number));
+
+    // Set a bad value; we shouldn't crash, we shouldn't output any leading zeros at all.
+    number.setNumberOfLeadingZeros(-3);
+    assertEquals("650", phoneUtil.getNationalSignificantNumber(number));
+  }
+
   public void testGetExampleNumber() {
     assertEquals(DE_NUMBER, phoneUtil.getExampleNumber(RegionCode.DE));
 
diff --git a/pom.xml b/pom.xml
index 25ee8e8..dc35195 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>libphonenumber-parent</artifactId>
-  <version>8.3.0</version>
+  <version>8.3.1</version>
   <packaging>pom</packaging>
   <url>https://github.com/googlei18n/libphonenumber/</url>
 
@@ -34,7 +34,7 @@
     <connection>scm:git:https://github.com/googlei18n/libphonenumber.git</connection>
     <developerConnection>scm:git:git@github.com:googlei18n/libphonenumber.git</developerConnection>
     <url>https://github.com/googlei18n/libphonenumber/</url>
-    <tag>v8.3.0</tag>
+    <tag>v8.3.1</tag>
   </scm>
 
   <properties>