phonelib 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1989) hide show
  1. checksums.yaml +4 -4
  2. data/data/extended_data.dat +0 -0
  3. data/data/phone_data.dat +0 -0
  4. data/lib/phonelib/data_importer.rb +1 -1
  5. data/lib/phonelib/phone_analyzer.rb +32 -12
  6. data/lib/phonelib/phone_analyzer_helper.rb +21 -2
  7. data/lib/phonelib/phone_formatter.rb +13 -0
  8. data/lib/phonelib/version.rb +1 -1
  9. data/lib/validators/phone_validator.rb +1 -1
  10. metadata +2 -1981
  11. data/data/libphonenumber/AUTHORS +0 -4
  12. data/data/libphonenumber/CONTRIBUTING.md +0 -47
  13. data/data/libphonenumber/CONTRIBUTORS +0 -69
  14. data/data/libphonenumber/FALSEHOODS.md +0 -237
  15. data/data/libphonenumber/FAQ.md +0 -190
  16. data/data/libphonenumber/LICENSE +0 -176
  17. data/data/libphonenumber/LICENSE.Chromium +0 -37
  18. data/data/libphonenumber/README.md +0 -116
  19. data/data/libphonenumber/codereview.settings +0 -4
  20. data/data/libphonenumber/cpp/CMakeLists.txt +0 -592
  21. data/data/libphonenumber/cpp/LICENSE +0 -13
  22. data/data/libphonenumber/cpp/README +0 -344
  23. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.cc +0 -907
  24. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.h +0 -29
  25. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc +0 -781
  26. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.h +0 -243
  27. data/data/libphonenumber/cpp/src/phonenumbers/base/basictypes.h +0 -263
  28. data/data/libphonenumber/cpp/src/phonenumbers/base/logging.h +0 -45
  29. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h +0 -450
  30. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton.h +0 -95
  31. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h +0 -53
  32. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.cc +0 -221
  33. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.h +0 -194
  34. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h +0 -91
  35. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h +0 -63
  36. data/data/libphonenumber/cpp/src/phonenumbers/base/template_util.h +0 -108
  37. data/data/libphonenumber/cpp/src/phonenumbers/base/thread_checker.h +0 -70
  38. data/data/libphonenumber/cpp/src/phonenumbers/callback.h +0 -88
  39. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.cc +0 -57
  40. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.h +0 -105
  41. data/data/libphonenumber/cpp/src/phonenumbers/encoding_utils.h +0 -51
  42. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.cc +0 -94
  43. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.h +0 -75
  44. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.cc +0 -65
  45. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.h +0 -76
  46. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/geocoding_data.h +0 -77
  47. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.cc +0 -175
  48. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.h +0 -75
  49. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc +0 -226
  50. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h +0 -165
  51. data/data/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +0 -11547
  52. data/data/libphonenumber/cpp/src/phonenumbers/logger.cc +0 -27
  53. data/data/libphonenumber/cpp/src/phonenumbers/logger.h +0 -103
  54. data/data/libphonenumber/cpp/src/phonenumbers/matcher_api.h +0 -54
  55. data/data/libphonenumber/cpp/src/phonenumbers/metadata.cc +0 -12478
  56. data/data/libphonenumber/cpp/src/phonenumbers/metadata.h +0 -29
  57. data/data/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h +0 -50
  58. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.cc +0 -87
  59. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.h +0 -40
  60. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.cc +0 -91
  61. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.h +0 -125
  62. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.cc +0 -907
  63. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.h +0 -201
  64. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc +0 -2926
  65. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.h +0 -868
  66. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc +0 -68
  67. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.h +0 -61
  68. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h +0 -168
  69. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc +0 -237
  70. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h +0 -41
  71. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.cc +0 -155
  72. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.h +0 -40
  73. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc +0 -60
  74. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.h +0 -77
  75. data/data/libphonenumber/cpp/src/phonenumbers/regexp_factory.h +0 -44
  76. data/data/libphonenumber/cpp/src/phonenumbers/region_code.h +0 -40
  77. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +0 -3032
  78. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.h +0 -29
  79. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc +0 -427
  80. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.h +0 -240
  81. data/data/libphonenumber/cpp/src/phonenumbers/stl_util.h +0 -51
  82. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.cc +0 -33
  83. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.h +0 -40
  84. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.cc +0 -448
  85. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.h +0 -176
  86. data/data/libphonenumber/cpp/src/phonenumbers/test_metadata.cc +0 -885
  87. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.cc +0 -114
  88. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.h +0 -133
  89. data/data/libphonenumber/cpp/src/phonenumbers/utf/README +0 -1
  90. data/data/libphonenumber/cpp/src/phonenumbers/utf/rune.c +0 -358
  91. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringpiece.h +0 -23
  92. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringprintf.h +0 -22
  93. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc +0 -520
  94. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h +0 -461
  95. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc +0 -68
  96. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.h +0 -99
  97. data/data/libphonenumber/cpp/src/phonenumbers/utf/utf.h +0 -240
  98. data/data/libphonenumber/cpp/src/phonenumbers/utf/utfdef.h +0 -27
  99. data/data/libphonenumber/cpp/test/phonenumbers/asyoutypeformatter_test.cc +0 -1237
  100. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/area_code_map_test.cc +0 -201
  101. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_data_test.cc +0 -176
  102. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_data.h +0 -50
  103. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_program.cc +0 -44
  104. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/mapping_file_provider_test.cc +0 -91
  105. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/phonenumber_offline_geocoder_test.cc +0 -214
  106. data/data/libphonenumber/cpp/test/phonenumbers/logger_test.cc +0 -172
  107. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatch_test.cc +0 -92
  108. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatcher_test.cc +0 -1234
  109. data/data/libphonenumber/cpp/test/phonenumbers/phonenumberutil_test.cc +0 -3992
  110. data/data/libphonenumber/cpp/test/phonenumbers/regexp_adapter_test.cc +0 -322
  111. data/data/libphonenumber/cpp/test/phonenumbers/regexp_cache_test.cc +0 -60
  112. data/data/libphonenumber/cpp/test/phonenumbers/run_tests.cc +0 -21
  113. data/data/libphonenumber/cpp/test/phonenumbers/shortnumberinfo_test.cc +0 -483
  114. data/data/libphonenumber/cpp/test/phonenumbers/stringutil_test.cc +0 -306
  115. data/data/libphonenumber/cpp/test/phonenumbers/test_util.cc +0 -60
  116. data/data/libphonenumber/cpp/test/phonenumbers/test_util.h +0 -199
  117. data/data/libphonenumber/cpp/test/phonenumbers/unicodestring_test.cc +0 -236
  118. data/data/libphonenumber/cpp/test/phonenumbers/utf/unicodetext_test.cc +0 -45
  119. data/data/libphonenumber/debian/README.source +0 -21
  120. data/data/libphonenumber/debian/changelog +0 -5
  121. data/data/libphonenumber/debian/compat +0 -1
  122. data/data/libphonenumber/debian/control +0 -75
  123. data/data/libphonenumber/debian/copyright +0 -74
  124. data/data/libphonenumber/debian/libphonenumber7-dev.install +0 -3
  125. data/data/libphonenumber/debian/libphonenumber7-java.jlibs +0 -1
  126. data/data/libphonenumber/debian/libphonenumber7-java.poms +0 -39
  127. data/data/libphonenumber/debian/libphonenumber7.install +0 -1
  128. data/data/libphonenumber/debian/maven.cleanIgnoreRules +0 -17
  129. data/data/libphonenumber/debian/maven.ignoreRules +0 -23
  130. data/data/libphonenumber/debian/maven.properties +0 -4
  131. data/data/libphonenumber/debian/maven.publishedRules +0 -19
  132. data/data/libphonenumber/debian/maven.rules +0 -31
  133. data/data/libphonenumber/debian/patches/0003-maven-exclude-demo.patch +0 -13
  134. data/data/libphonenumber/debian/patches/series +0 -1
  135. data/data/libphonenumber/debian/rules +0 -89
  136. data/data/libphonenumber/debian/source/format +0 -1
  137. data/data/libphonenumber/debian/watch +0 -3
  138. data/data/libphonenumber/java/build.xml +0 -307
  139. data/data/libphonenumber/java/carrier/pom.xml +0 -68
  140. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapper.java +0 -124
  141. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en +0 -0
  142. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1246_en +0 -0
  143. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1264_en +0 -0
  144. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1441_en +0 -0
  145. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1473_en +0 -0
  146. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1649_en +0 -0
  147. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1671_en +0 -0
  148. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1684_en +0 -0
  149. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1758_en +0 -0
  150. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1767_en +0 -0
  151. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1784_en +0 -0
  152. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1787_en +0 -0
  153. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1809_en +0 -0
  154. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1868_en +0 -0
  155. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1869_en +0 -0
  156. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1876_en +0 -0
  157. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1939_en +0 -0
  158. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/20_en +0 -0
  159. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/211_en +0 -0
  160. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/212_en +0 -0
  161. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/213_en +0 -0
  162. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/216_en +0 -0
  163. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/220_en +0 -0
  164. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/221_en +0 -0
  165. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/222_en +0 -0
  166. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/223_en +0 -0
  167. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/224_en +0 -0
  168. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/225_en +0 -0
  169. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/226_en +0 -0
  170. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/227_en +0 -0
  171. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/228_en +0 -0
  172. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/229_en +0 -0
  173. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/230_en +0 -0
  174. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/231_en +0 -0
  175. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/232_en +0 -0
  176. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/233_en +0 -0
  177. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/234_en +0 -0
  178. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/235_en +0 -0
  179. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/236_en +0 -0
  180. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/237_en +0 -0
  181. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/238_en +0 -0
  182. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/239_en +0 -0
  183. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/240_en +0 -0
  184. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/241_en +0 -0
  185. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/242_en +0 -0
  186. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/243_en +0 -0
  187. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/244_en +0 -0
  188. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/245_en +0 -0
  189. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/248_en +0 -0
  190. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/249_en +0 -0
  191. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/250_en +0 -0
  192. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/251_en +0 -0
  193. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/252_en +0 -0
  194. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/253_en +0 -0
  195. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/254_en +0 -0
  196. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/255_en +0 -0
  197. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/256_en +0 -0
  198. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/257_en +0 -0
  199. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/258_en +0 -0
  200. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/260_en +0 -0
  201. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/261_en +0 -0
  202. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/263_en +0 -0
  203. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/265_en +0 -0
  204. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/267_en +0 -0
  205. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/268_en +0 -0
  206. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/27_en +0 -0
  207. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/297_en +0 -0
  208. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/298_en +0 -0
  209. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/299_en +0 -0
  210. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/30_en +0 -0
  211. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/31_en +0 -0
  212. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/32_en +0 -0
  213. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/33_en +0 -0
  214. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/350_en +0 -0
  215. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/351_en +0 -0
  216. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/352_en +0 -0
  217. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/353_en +0 -0
  218. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/354_en +0 -0
  219. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/355_en +0 -0
  220. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/356_en +0 -0
  221. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/357_en +0 -0
  222. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/358_en +0 -0
  223. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/359_en +0 -0
  224. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/36_en +0 -0
  225. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/370_en +0 -0
  226. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/372_en +0 -0
  227. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/373_en +0 -0
  228. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_en +0 -0
  229. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_ru +0 -0
  230. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_be +0 -0
  231. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_en +0 -0
  232. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_ru +0 -0
  233. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/376_en +0 -0
  234. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/380_en +0 -0
  235. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/381_en +0 -0
  236. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/382_en +0 -0
  237. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/385_en +0 -0
  238. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/386_en +0 -0
  239. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/387_en +0 -0
  240. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/389_en +0 -0
  241. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/39_en +0 -0
  242. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/40_en +0 -0
  243. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/41_en +0 -0
  244. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/420_en +0 -0
  245. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/421_en +0 -0
  246. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/43_en +0 -0
  247. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/45_en +0 -0
  248. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/47_en +0 -0
  249. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/48_en +0 -0
  250. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/49_en +0 -0
  251. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/501_en +0 -0
  252. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/505_en +0 -0
  253. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/506_en +0 -0
  254. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/507_en +0 -0
  255. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/509_en +0 -0
  256. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/51_en +0 -0
  257. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/53_en +0 -0
  258. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/54_en +0 -0
  259. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/55_en +0 -0
  260. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/56_en +0 -0
  261. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/57_en +0 -0
  262. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/58_en +0 -0
  263. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/591_en +0 -0
  264. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/592_en +0 -0
  265. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/595_en +0 -0
  266. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/597_en +0 -0
  267. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/598_en +0 -0
  268. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/599_en +0 -0
  269. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/60_en +0 -0
  270. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/61_en +0 -0
  271. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/62_en +0 -0
  272. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/63_en +0 -0
  273. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/64_en +0 -0
  274. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/65_en +0 -0
  275. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/66_en +0 -0
  276. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/670_en +0 -0
  277. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/673_en +0 -0
  278. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/675_en +0 -0
  279. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/676_en +0 -0
  280. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/677_en +0 -0
  281. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/678_en +0 -0
  282. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/679_en +0 -0
  283. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/685_en +0 -0
  284. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/686_en +0 -0
  285. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/689_en +0 -0
  286. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_en +0 -0
  287. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/84_en +0 -0
  288. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_en +0 -0
  289. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh +0 -0
  290. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh_Hant +0 -0
  291. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/853_en +0 -0
  292. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/855_en +0 -0
  293. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/856_en +0 -0
  294. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_en +0 -0
  295. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh +0 -0
  296. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh_Hant +0 -0
  297. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/880_en +0 -0
  298. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/90_en +0 -0
  299. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en +0 -0
  300. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/92_en +0 -0
  301. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_en +0 -0
  302. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_fa +0 -0
  303. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/94_en +0 -0
  304. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/95_en +0 -0
  305. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/960_en +0 -0
  306. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/961_en +0 -0
  307. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/962_en +0 -0
  308. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/963_en +0 -0
  309. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/964_en +0 -0
  310. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_ar +0 -0
  311. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_en +0 -0
  312. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/966_en +0 -0
  313. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/967_en +0 -0
  314. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/968_en +0 -0
  315. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/970_en +0 -0
  316. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/971_en +0 -0
  317. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/972_en +0 -0
  318. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/973_en +0 -0
  319. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/974_en +0 -0
  320. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/975_en +0 -0
  321. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/976_en +0 -0
  322. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/977_en +0 -0
  323. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_en +0 -0
  324. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_fa +0 -0
  325. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/992_en +0 -0
  326. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/993_en +0 -0
  327. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/994_en +0 -0
  328. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/995_en +0 -0
  329. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/996_en +0 -0
  330. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/998_en +0 -0
  331. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/config +0 -0
  332. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapperTest.java +0 -121
  333. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/1650_en +0 -0
  334. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/244_en +0 -0
  335. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_en +0 -0
  336. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_sv +0 -0
  337. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/config +0 -0
  338. data/data/libphonenumber/java/demo/README +0 -16
  339. data/data/libphonenumber/java/demo/build.xml +0 -59
  340. data/data/libphonenumber/java/demo/pom.xml +0 -112
  341. data/data/libphonenumber/java/demo/src/com/google/phonenumbers/PhoneNumberParserServlet.java +0 -434
  342. data/data/libphonenumber/java/demo/war/WEB-INF/appengine-web.xml +0 -11
  343. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  344. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-io-1.4.jar +0 -0
  345. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-lang-2.6.jar +0 -0
  346. data/data/libphonenumber/java/demo/war/WEB-INF/logging.properties +0 -13
  347. data/data/libphonenumber/java/demo/war/WEB-INF/web.xml +0 -18
  348. data/data/libphonenumber/java/demo/war/favicon.ico +0 -0
  349. data/data/libphonenumber/java/demo/war/phonenumberparser.jsp +0 -39
  350. data/data/libphonenumber/java/demo/war/stylesheets/main.css +0 -26
  351. data/data/libphonenumber/java/geocoder/pom.xml +0 -76
  352. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapper.java +0 -191
  353. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java +0 -217
  354. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1201_en +0 -0
  355. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1202_en +0 -0
  356. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1203_en +0 -0
  357. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1204_en +0 -0
  358. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1205_en +0 -0
  359. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1206_en +0 -0
  360. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1207_en +0 -0
  361. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1208_en +0 -0
  362. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1209_en +0 -0
  363. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1210_en +0 -0
  364. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1212_en +0 -0
  365. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1213_en +0 -0
  366. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1214_en +0 -0
  367. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1215_en +0 -0
  368. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1216_en +0 -0
  369. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1217_en +0 -0
  370. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1218_en +0 -0
  371. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1219_en +0 -0
  372. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1220_en +0 -0
  373. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1224_en +0 -0
  374. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1225_en +0 -0
  375. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1226_en +0 -0
  376. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1228_en +0 -0
  377. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1229_en +0 -0
  378. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1231_en +0 -0
  379. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1234_en +0 -0
  380. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1236_en +0 -0
  381. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1239_en +0 -0
  382. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1240_en +0 -0
  383. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1242_en +0 -0
  384. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1248_en +0 -0
  385. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1250_en +0 -0
  386. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1251_en +0 -0
  387. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1252_en +0 -0
  388. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1253_en +0 -0
  389. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1254_en +0 -0
  390. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1256_en +0 -0
  391. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1260_en +0 -0
  392. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1262_en +0 -0
  393. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1267_en +0 -0
  394. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1269_en +0 -0
  395. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1270_en +0 -0
  396. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1272_en +0 -0
  397. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1276_en +0 -0
  398. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1281_en +0 -0
  399. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1289_en +0 -0
  400. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1301_en +0 -0
  401. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1302_en +0 -0
  402. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1303_en +0 -0
  403. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1304_en +0 -0
  404. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1305_en +0 -0
  405. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1306_en +0 -0
  406. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1307_en +0 -0
  407. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1308_en +0 -0
  408. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1309_en +0 -0
  409. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1310_en +0 -0
  410. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1312_en +0 -0
  411. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1313_en +0 -0
  412. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1314_en +0 -0
  413. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1315_en +0 -0
  414. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1316_en +0 -0
  415. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1317_en +0 -0
  416. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1318_en +0 -0
  417. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1319_en +0 -0
  418. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1320_en +0 -0
  419. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1321_en +0 -0
  420. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1323_en +0 -0
  421. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1325_en +0 -0
  422. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1330_en +0 -0
  423. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1331_en +0 -0
  424. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1334_en +0 -0
  425. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1336_en +0 -0
  426. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1337_en +0 -0
  427. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1339_en +0 -0
  428. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1345_en +0 -0
  429. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1346_en +0 -0
  430. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1347_en +0 -0
  431. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1351_en +0 -0
  432. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1352_en +0 -0
  433. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1360_en +0 -0
  434. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1361_en +0 -0
  435. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1364_en +0 -0
  436. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1365_en +0 -0
  437. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1380_en +0 -0
  438. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1385_en +0 -0
  439. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1386_en +0 -0
  440. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1401_en +0 -0
  441. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1402_en +0 -0
  442. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1403_en +0 -0
  443. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1404_en +0 -0
  444. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1405_en +0 -0
  445. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1406_en +0 -0
  446. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1407_en +0 -0
  447. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1408_en +0 -0
  448. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1409_en +0 -0
  449. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1410_en +0 -0
  450. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1412_en +0 -0
  451. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1413_en +0 -0
  452. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1414_en +0 -0
  453. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1415_en +0 -0
  454. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1416_en +0 -0
  455. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1417_en +0 -0
  456. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1418_en +0 -0
  457. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1419_en +0 -0
  458. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1423_en +0 -0
  459. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1424_en +0 -0
  460. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1425_en +0 -0
  461. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1430_en +0 -0
  462. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1431_en +0 -0
  463. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1432_en +0 -0
  464. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1434_en +0 -0
  465. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1435_en +0 -0
  466. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1437_en +0 -0
  467. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1438_en +0 -0
  468. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1440_en +0 -0
  469. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1441_en +0 -0
  470. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1443_en +0 -0
  471. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1450_en +0 -0
  472. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1469_en +0 -0
  473. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1478_en +0 -0
  474. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1479_en +0 -0
  475. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1480_en +0 -0
  476. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1484_en +0 -0
  477. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1501_en +0 -0
  478. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1502_en +0 -0
  479. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1503_en +0 -0
  480. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1504_en +0 -0
  481. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1505_en +0 -0
  482. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1506_en +0 -0
  483. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1507_en +0 -0
  484. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1508_en +0 -0
  485. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1509_en +0 -0
  486. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1510_en +0 -0
  487. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1512_en +0 -0
  488. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1513_en +0 -0
  489. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1514_en +0 -0
  490. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1515_en +0 -0
  491. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1516_en +0 -0
  492. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1517_en +0 -0
  493. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1518_en +0 -0
  494. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1519_en +0 -0
  495. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1520_en +0 -0
  496. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1530_en +0 -0
  497. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1540_en +0 -0
  498. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1541_en +0 -0
  499. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1548_en +0 -0
  500. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1551_en +0 -0
  501. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1559_en +0 -0
  502. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1561_en +0 -0
  503. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1562_en +0 -0
  504. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1563_en +0 -0
  505. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1567_en +0 -0
  506. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1570_en +0 -0
  507. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1571_en +0 -0
  508. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1573_en +0 -0
  509. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1574_en +0 -0
  510. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1575_en +0 -0
  511. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1580_en +0 -0
  512. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1585_en +0 -0
  513. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1586_en +0 -0
  514. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1587_en +0 -0
  515. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1601_en +0 -0
  516. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1602_en +0 -0
  517. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1603_en +0 -0
  518. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1604_en +0 -0
  519. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1605_en +0 -0
  520. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1606_en +0 -0
  521. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1607_en +0 -0
  522. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1608_en +0 -0
  523. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1609_en +0 -0
  524. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1610_en +0 -0
  525. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1612_en +0 -0
  526. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1613_en +0 -0
  527. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1614_en +0 -0
  528. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1615_en +0 -0
  529. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1616_en +0 -0
  530. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1617_en +0 -0
  531. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1618_en +0 -0
  532. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1619_en +0 -0
  533. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1620_en +0 -0
  534. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1623_en +0 -0
  535. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1626_en +0 -0
  536. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1628_en +0 -0
  537. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1629_en +0 -0
  538. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1630_en +0 -0
  539. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1631_en +0 -0
  540. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1636_en +0 -0
  541. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1639_en +0 -0
  542. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1641_en +0 -0
  543. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1646_en +0 -0
  544. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1647_en +0 -0
  545. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1649_en +0 -0
  546. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1650_en +0 -0
  547. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1651_en +0 -0
  548. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1657_en +0 -0
  549. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1660_en +0 -0
  550. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1661_en +0 -0
  551. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1662_en +0 -0
  552. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1667_en +0 -0
  553. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1669_en +0 -0
  554. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1671_en +0 -0
  555. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1678_en +0 -0
  556. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1682_en +0 -0
  557. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1701_en +0 -0
  558. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1702_en +0 -0
  559. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1703_en +0 -0
  560. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1704_en +0 -0
  561. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1705_en +0 -0
  562. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1706_en +0 -0
  563. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1707_en +0 -0
  564. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1708_en +0 -0
  565. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1709_en +0 -0
  566. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1712_en +0 -0
  567. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1713_en +0 -0
  568. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1714_en +0 -0
  569. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1715_en +0 -0
  570. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1716_en +0 -0
  571. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1717_en +0 -0
  572. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1718_en +0 -0
  573. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1719_en +0 -0
  574. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1720_en +0 -0
  575. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1724_en +0 -0
  576. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1725_en +0 -0
  577. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1727_en +0 -0
  578. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1731_en +0 -0
  579. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1732_en +0 -0
  580. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1734_en +0 -0
  581. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1737_en +0 -0
  582. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1740_en +0 -0
  583. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1743_en +0 -0
  584. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1747_en +0 -0
  585. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1754_en +0 -0
  586. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1757_en +0 -0
  587. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1760_en +0 -0
  588. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1763_en +0 -0
  589. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1765_en +0 -0
  590. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1769_en +0 -0
  591. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1770_en +0 -0
  592. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1772_en +0 -0
  593. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1773_en +0 -0
  594. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1774_en +0 -0
  595. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1775_en +0 -0
  596. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1778_en +0 -0
  597. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1779_en +0 -0
  598. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1780_en +0 -0
  599. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1781_en +0 -0
  600. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1782_en +0 -0
  601. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1785_en +0 -0
  602. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1786_en +0 -0
  603. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1801_en +0 -0
  604. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1802_en +0 -0
  605. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1803_en +0 -0
  606. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1804_en +0 -0
  607. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1805_en +0 -0
  608. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1806_en +0 -0
  609. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1807_en +0 -0
  610. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1808_en +0 -0
  611. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1809_en +0 -0
  612. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1810_en +0 -0
  613. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1812_en +0 -0
  614. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1813_en +0 -0
  615. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1814_en +0 -0
  616. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1815_en +0 -0
  617. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1816_en +0 -0
  618. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1817_en +0 -0
  619. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1818_en +0 -0
  620. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1819_en +0 -0
  621. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1825_en +0 -0
  622. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1828_en +0 -0
  623. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1830_en +0 -0
  624. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1831_en +0 -0
  625. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1832_en +0 -0
  626. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1843_en +0 -0
  627. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1845_en +0 -0
  628. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1847_en +0 -0
  629. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1848_en +0 -0
  630. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1850_en +0 -0
  631. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1854_en +0 -0
  632. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1856_en +0 -0
  633. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1857_en +0 -0
  634. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1858_en +0 -0
  635. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1859_en +0 -0
  636. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1860_en +0 -0
  637. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1862_en +0 -0
  638. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1863_en +0 -0
  639. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1864_en +0 -0
  640. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1865_en +0 -0
  641. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1867_en +0 -0
  642. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1870_en +0 -0
  643. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1872_en +0 -0
  644. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1873_en +0 -0
  645. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1876_en +0 -0
  646. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1878_en +0 -0
  647. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1901_en +0 -0
  648. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1902_en +0 -0
  649. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1903_en +0 -0
  650. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1904_en +0 -0
  651. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1905_en +0 -0
  652. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1906_en +0 -0
  653. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1907_en +0 -0
  654. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1908_en +0 -0
  655. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1909_en +0 -0
  656. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1910_en +0 -0
  657. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1912_en +0 -0
  658. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1913_en +0 -0
  659. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1914_en +0 -0
  660. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1915_en +0 -0
  661. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1916_en +0 -0
  662. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1917_en +0 -0
  663. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1918_en +0 -0
  664. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1919_en +0 -0
  665. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1920_en +0 -0
  666. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1925_en +0 -0
  667. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1928_en +0 -0
  668. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1929_en +0 -0
  669. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1930_en +0 -0
  670. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1931_en +0 -0
  671. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1934_en +0 -0
  672. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1936_en +0 -0
  673. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1937_en +0 -0
  674. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1938_en +0 -0
  675. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1940_en +0 -0
  676. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1941_en +0 -0
  677. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1947_en +0 -0
  678. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1949_en +0 -0
  679. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1951_en +0 -0
  680. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1952_en +0 -0
  681. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1954_en +0 -0
  682. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1956_en +0 -0
  683. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1959_en +0 -0
  684. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1970_en +0 -0
  685. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1971_en +0 -0
  686. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1972_en +0 -0
  687. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1973_en +0 -0
  688. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1978_en +0 -0
  689. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1979_en +0 -0
  690. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1980_en +0 -0
  691. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1984_en +0 -0
  692. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1985_en +0 -0
  693. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1989_en +0 -0
  694. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/20_en +0 -0
  695. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_en +0 -0
  696. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_fr +0 -0
  697. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/213_en +0 -0
  698. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/216_en +0 -0
  699. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/220_en +0 -0
  700. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/221_en +0 -0
  701. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_en +0 -0
  702. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_fr +0 -0
  703. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/223_en +0 -0
  704. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/224_en +0 -0
  705. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/225_en +0 -0
  706. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/226_en +0 -0
  707. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_en +0 -0
  708. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_es +0 -0
  709. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_fr +0 -0
  710. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_en +0 -0
  711. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_fr +0 -0
  712. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_en +0 -0
  713. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_es +0 -0
  714. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_fr +0 -0
  715. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/232_en +0 -0
  716. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/233_en +0 -0
  717. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/234_en +0 -0
  718. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/237_en +0 -0
  719. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/238_en +0 -0
  720. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_en +0 -0
  721. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_pt +0 -0
  722. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/241_en +0 -0
  723. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/242_en +0 -0
  724. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_en +0 -0
  725. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_fr +0 -0
  726. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_en +0 -0
  727. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_pt +0 -0
  728. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_en +0 -0
  729. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_pt +0 -0
  730. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/247_en +0 -0
  731. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/249_en +0 -0
  732. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/251_en +0 -0
  733. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/252_en +0 -0
  734. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/254_en +0 -0
  735. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/256_en +0 -0
  736. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/257_en +0 -0
  737. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_en +0 -0
  738. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_pt +0 -0
  739. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/260_en +0 -0
  740. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/261_en +0 -0
  741. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/263_en +0 -0
  742. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/264_en +0 -0
  743. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/266_en +0 -0
  744. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/267_en +0 -0
  745. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/268_en +0 -0
  746. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/269_en +0 -0
  747. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/27_en +0 -0
  748. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_en +0 -0
  749. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_fr +0 -0
  750. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/299_en +0 -0
  751. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_el +0 -0
  752. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_en +0 -0
  753. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_en +0 -0
  754. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_nl +0 -0
  755. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_de +0 -0
  756. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_en +0 -0
  757. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_fr +0 -0
  758. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_nl +0 -0
  759. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_en +0 -0
  760. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_fr +0 -0
  761. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_en +0 -0
  762. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_es +0 -0
  763. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_en +0 -0
  764. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_pt +0 -0
  765. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_de +0 -0
  766. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_en +0 -0
  767. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_fr +0 -0
  768. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/353_en +0 -0
  769. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/354_en +0 -0
  770. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/355_en +0 -0
  771. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_en +0 -0
  772. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_fi +0 -0
  773. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_se +0 -0
  774. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_bg +0 -0
  775. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_en +0 -0
  776. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_en +0 -0
  777. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_hu +0 -0
  778. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/370_en +0 -0
  779. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/371_en +0 -0
  780. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/372_en +0 -0
  781. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_en +0 -0
  782. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ro +0 -0
  783. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ru +0 -0
  784. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_am +0 -0
  785. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en +0 -0
  786. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_ru +0 -0
  787. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_be +0 -0
  788. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_en +0 -0
  789. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_ru +0 -0
  790. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_en +0 -0
  791. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_sr +0 -0
  792. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/389_en +0 -0
  793. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_en +0 -0
  794. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_it +0 -0
  795. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_en +0 -0
  796. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_ro +0 -0
  797. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_de +0 -0
  798. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_en +0 -0
  799. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_fr +0 -0
  800. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_it +0 -0
  801. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/420_en +0 -0
  802. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/421_en +0 -0
  803. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_de +0 -0
  804. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_en +0 -0
  805. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/44_en +0 -0
  806. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_en +0 -0
  807. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_sv +0 -0
  808. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/47_en +0 -0
  809. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_en +0 -0
  810. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_pl +0 -0
  811. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_de +0 -0
  812. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_en +0 -0
  813. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/501_en +0 -0
  814. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/504_en +0 -0
  815. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/51_en +0 -0
  816. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/53_en +0 -0
  817. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_en +0 -0
  818. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_es +0 -0
  819. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_en +0 -0
  820. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_pt +0 -0
  821. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_en +0 -0
  822. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_es +0 -0
  823. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/57_en +0 -0
  824. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_en +0 -0
  825. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_es +0 -0
  826. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/592_en +0 -0
  827. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/599_en +0 -0
  828. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en +0 -0
  829. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id +0 -0
  830. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/64_en +0 -0
  831. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_en +0 -0
  832. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_th +0 -0
  833. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/686_en +0 -0
  834. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/688_en +0 -0
  835. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_en +0 -0
  836. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_ru +0 -0
  837. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_en +0 -0
  838. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_ja +0 -0
  839. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ar +0 -0
  840. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_bg +0 -0
  841. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ca +0 -0
  842. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_cs +0 -0
  843. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_el +0 -0
  844. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_en +0 -0
  845. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_es +0 -0
  846. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fi +0 -0
  847. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fr +0 -0
  848. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_hi +0 -0
  849. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_hu +0 -0
  850. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_iw +0 -0
  851. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ja +0 -0
  852. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ko +0 -0
  853. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_tr +0 -0
  854. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh +0 -0
  855. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh_Hant +0 -0
  856. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en +0 -0
  857. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_vi +0 -0
  858. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_en +0 -0
  859. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_zh +0 -0
  860. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_en +0 -0
  861. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh +0 -0
  862. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh_Hant +0 -0
  863. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_en +0 -0
  864. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_tr +0 -0
  865. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/91_en +0 -0
  866. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/93_en +0 -0
  867. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/93_fa +0 -0
  868. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/94_en +0 -0
  869. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/95_en +0 -0
  870. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/962_en +0 -0
  871. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_ar +0 -0
  872. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_en +0 -0
  873. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/968_en +0 -0
  874. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/972_en +0 -0
  875. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/975_en +0 -0
  876. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_en +0 -0
  877. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_fa +0 -0
  878. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/992_en +0 -0
  879. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/994_en +0 -0
  880. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
  881. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data +0 -0
  882. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapperTest.java +0 -136
  883. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java +0 -170
  884. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de +0 -0
  885. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_en +0 -0
  886. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1212_en +0 -0
  887. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1617_en +0 -0
  888. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de +0 -0
  889. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_en +0 -0
  890. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1989_en +0 -0
  891. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/54_en +0 -0
  892. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_en +0 -0
  893. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko +0 -0
  894. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/config +0 -0
  895. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/timezones/testing_data/map_data +0 -0
  896. data/data/libphonenumber/java/internal/prefixmapper/pom.xml +0 -58
  897. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/DefaultMapStorage.java +0 -94
  898. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorage.java +0 -263
  899. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/MappingFileProvider.java +0 -229
  900. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMap.java +0 -216
  901. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy.java +0 -108
  902. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReader.java +0 -143
  903. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMap.java +0 -126
  904. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorageTest.java +0 -107
  905. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/MappingFileProviderTest.java +0 -93
  906. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapTest.java +0 -193
  907. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReaderTest.java +0 -75
  908. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMapTest.java +0 -176
  909. data/data/libphonenumber/java/lib/junit-4.8.1.jar +0 -0
  910. data/data/libphonenumber/java/lib/protobuf-javanano-3.0.0-alpha-7.jar +0 -0
  911. data/data/libphonenumber/java/lib/protobuf-javanano-readme.md +0 -20
  912. data/data/libphonenumber/java/libphonenumber/pom.xml +0 -64
  913. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java +0 -79
  914. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +0 -664
  915. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java +0 -938
  916. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataLoader.java +0 -35
  917. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java +0 -183
  918. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java +0 -38
  919. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java +0 -133
  920. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/NumberParseException.java +0 -62
  921. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatch.java +0 -123
  922. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java +0 -727
  923. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +0 -3312
  924. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonenumber.java +0 -285
  925. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/RegexCache.java +0 -78
  926. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java +0 -608
  927. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java +0 -274
  928. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java +0 -122
  929. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_255 +0 -0
  930. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_27 +0 -0
  931. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_30 +0 -0
  932. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_31 +0 -0
  933. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_34 +0 -0
  934. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_350 +0 -0
  935. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_351 +0 -0
  936. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_352 +0 -0
  937. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_358 +0 -0
  938. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_359 +0 -0
  939. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_36 +0 -0
  940. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_372 +0 -0
  941. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_373 +0 -0
  942. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_375 +0 -0
  943. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_380 +0 -0
  944. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_381 +0 -0
  945. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_385 +0 -0
  946. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_43 +0 -0
  947. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_44 +0 -0
  948. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_49 +0 -0
  949. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_505 +0 -0
  950. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_506 +0 -0
  951. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_54 +0 -0
  952. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_55 +0 -0
  953. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_58 +0 -0
  954. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_595 +0 -0
  955. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_61 +0 -0
  956. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_62 +0 -0
  957. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_63 +0 -0
  958. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_66 +0 -0
  959. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_675 +0 -0
  960. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_676 +0 -0
  961. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_679 +0 -0
  962. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_7 +0 -0
  963. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_81 +0 -0
  964. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_84 +0 -0
  965. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_855 +0 -0
  966. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_90 +0 -0
  967. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_91 +0 -0
  968. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_94 +0 -0
  969. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_95 +0 -0
  970. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_971 +0 -0
  971. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_972 +0 -0
  972. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_995 +0 -0
  973. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_800 +0 -0
  974. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_808 +0 -0
  975. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_870 +0 -0
  976. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_878 +0 -0
  977. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_881 +0 -0
  978. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_882 +0 -0
  979. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_883 +0 -0
  980. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_888 +0 -0
  981. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_979 +0 -0
  982. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC +0 -0
  983. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD +0 -0
  984. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE +0 -0
  985. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF +0 -0
  986. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG +0 -0
  987. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI +0 -0
  988. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL +0 -0
  989. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +0 -0
  990. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO +0 -0
  991. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +0 -0
  992. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS +0 -0
  993. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT +0 -0
  994. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +0 -0
  995. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW +0 -0
  996. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX +0 -0
  997. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ +0 -0
  998. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA +0 -0
  999. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB +0 -0
  1000. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +0 -0
  1001. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE +0 -0
  1002. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF +0 -0
  1003. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG +0 -0
  1004. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +0 -0
  1005. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI +0 -0
  1006. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +0 -0
  1007. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +0 -0
  1008. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM +0 -0
  1009. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN +0 -0
  1010. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO +0 -0
  1011. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BQ +0 -0
  1012. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR +0 -0
  1013. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS +0 -0
  1014. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT +0 -0
  1015. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +0 -0
  1016. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY +0 -0
  1017. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ +0 -0
  1018. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA +0 -0
  1019. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC +0 -0
  1020. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD +0 -0
  1021. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF +0 -0
  1022. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG +0 -0
  1023. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH +0 -0
  1024. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI +0 -0
  1025. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK +0 -0
  1026. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL +0 -0
  1027. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM +0 -0
  1028. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN +0 -0
  1029. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +0 -0
  1030. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR +0 -0
  1031. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +0 -0
  1032. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV +0 -0
  1033. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CW +0 -0
  1034. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX +0 -0
  1035. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY +0 -0
  1036. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ +0 -0
  1037. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE +0 -0
  1038. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ +0 -0
  1039. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK +0 -0
  1040. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM +0 -0
  1041. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO +0 -0
  1042. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ +0 -0
  1043. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC +0 -0
  1044. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +0 -0
  1045. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +0 -0
  1046. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH +0 -0
  1047. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER +0 -0
  1048. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES +0 -0
  1049. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET +0 -0
  1050. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI +0 -0
  1051. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ +0 -0
  1052. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK +0 -0
  1053. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM +0 -0
  1054. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO +0 -0
  1055. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +0 -0
  1056. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA +0 -0
  1057. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +0 -0
  1058. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD +0 -0
  1059. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +0 -0
  1060. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +0 -0
  1061. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG +0 -0
  1062. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH +0 -0
  1063. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI +0 -0
  1064. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +0 -0
  1065. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM +0 -0
  1066. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN +0 -0
  1067. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +0 -0
  1068. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ +0 -0
  1069. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR +0 -0
  1070. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +0 -0
  1071. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +0 -0
  1072. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW +0 -0
  1073. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +0 -0
  1074. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +0 -0
  1075. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN +0 -0
  1076. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +0 -0
  1077. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT +0 -0
  1078. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU +0 -0
  1079. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID +0 -0
  1080. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE +0 -0
  1081. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +0 -0
  1082. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM +0 -0
  1083. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN +0 -0
  1084. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO +0 -0
  1085. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ +0 -0
  1086. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR +0 -0
  1087. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS +0 -0
  1088. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT +0 -0
  1089. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE +0 -0
  1090. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +0 -0
  1091. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO +0 -0
  1092. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +0 -0
  1093. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE +0 -0
  1094. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +0 -0
  1095. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH +0 -0
  1096. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI +0 -0
  1097. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM +0 -0
  1098. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN +0 -0
  1099. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP +0 -0
  1100. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +0 -0
  1101. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW +0 -0
  1102. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY +0 -0
  1103. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +0 -0
  1104. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA +0 -0
  1105. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB +0 -0
  1106. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC +0 -0
  1107. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +0 -0
  1108. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK +0 -0
  1109. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR +0 -0
  1110. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS +0 -0
  1111. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT +0 -0
  1112. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU +0 -0
  1113. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV +0 -0
  1114. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY +0 -0
  1115. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +0 -0
  1116. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC +0 -0
  1117. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD +0 -0
  1118. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME +0 -0
  1119. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +0 -0
  1120. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG +0 -0
  1121. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH +0 -0
  1122. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +0 -0
  1123. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML +0 -0
  1124. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM +0 -0
  1125. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN +0 -0
  1126. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO +0 -0
  1127. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP +0 -0
  1128. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +0 -0
  1129. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR +0 -0
  1130. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS +0 -0
  1131. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT +0 -0
  1132. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +0 -0
  1133. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV +0 -0
  1134. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW +0 -0
  1135. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +0 -0
  1136. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +0 -0
  1137. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ +0 -0
  1138. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA +0 -0
  1139. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC +0 -0
  1140. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE +0 -0
  1141. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF +0 -0
  1142. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG +0 -0
  1143. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI +0 -0
  1144. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL +0 -0
  1145. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +0 -0
  1146. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP +0 -0
  1147. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR +0 -0
  1148. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +0 -0
  1149. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +0 -0
  1150. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
  1151. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
  1152. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE +0 -0
  1153. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF +0 -0
  1154. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG +0 -0
  1155. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH +0 -0
  1156. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +0 -0
  1157. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +0 -0
  1158. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +0 -0
  1159. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR +0 -0
  1160. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS +0 -0
  1161. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT +0 -0
  1162. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW +0 -0
  1163. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY +0 -0
  1164. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA +0 -0
  1165. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +0 -0
  1166. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +0 -0
  1167. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS +0 -0
  1168. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +0 -0
  1169. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +0 -0
  1170. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +0 -0
  1171. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB +0 -0
  1172. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC +0 -0
  1173. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD +0 -0
  1174. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE +0 -0
  1175. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +0 -0
  1176. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH +0 -0
  1177. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI +0 -0
  1178. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ +0 -0
  1179. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK +0 -0
  1180. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL +0 -0
  1181. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM +0 -0
  1182. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN +0 -0
  1183. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
  1184. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR +0 -0
  1185. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SS +0 -0
  1186. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST +0 -0
  1187. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +0 -0
  1188. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX +0 -0
  1189. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY +0 -0
  1190. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ +0 -0
  1191. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TA +0 -0
  1192. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC +0 -0
  1193. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD +0 -0
  1194. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG +0 -0
  1195. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH +0 -0
  1196. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +0 -0
  1197. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK +0 -0
  1198. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL +0 -0
  1199. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM +0 -0
  1200. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +0 -0
  1201. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO +0 -0
  1202. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +0 -0
  1203. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT +0 -0
  1204. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV +0 -0
  1205. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW +0 -0
  1206. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ +0 -0
  1207. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA +0 -0
  1208. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +0 -0
  1209. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +0 -0
  1210. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +0 -0
  1211. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +0 -0
  1212. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA +0 -0
  1213. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC +0 -0
  1214. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE +0 -0
  1215. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG +0 -0
  1216. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI +0 -0
  1217. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +0 -0
  1218. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU +0 -0
  1219. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF +0 -0
  1220. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS +0 -0
  1221. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE +0 -0
  1222. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +0 -0
  1223. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA +0 -0
  1224. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM +0 -0
  1225. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW +0 -0
  1226. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AC +0 -0
  1227. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AD +0 -0
  1228. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AE +0 -0
  1229. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AF +0 -0
  1230. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AG +0 -0
  1231. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AI +0 -0
  1232. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AL +0 -0
  1233. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM +0 -0
  1234. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AO +0 -0
  1235. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR +0 -0
  1236. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AS +0 -0
  1237. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AT +0 -0
  1238. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AU +0 -0
  1239. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AW +0 -0
  1240. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AX +0 -0
  1241. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AZ +0 -0
  1242. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BA +0 -0
  1243. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BB +0 -0
  1244. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD +0 -0
  1245. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BE +0 -0
  1246. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BF +0 -0
  1247. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BG +0 -0
  1248. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BH +0 -0
  1249. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BI +0 -0
  1250. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BJ +0 -0
  1251. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BL +0 -0
  1252. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BM +0 -0
  1253. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BN +0 -0
  1254. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BO +0 -0
  1255. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BQ +0 -0
  1256. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BR +0 -0
  1257. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BS +0 -0
  1258. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BT +0 -0
  1259. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BW +0 -0
  1260. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BY +0 -0
  1261. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BZ +0 -0
  1262. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CA +0 -0
  1263. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CC +0 -0
  1264. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CD +0 -0
  1265. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CF +0 -0
  1266. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CG +0 -0
  1267. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH +0 -0
  1268. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CI +0 -0
  1269. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CK +0 -0
  1270. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CL +0 -0
  1271. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CM +0 -0
  1272. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CN +0 -0
  1273. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CO +0 -0
  1274. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR +0 -0
  1275. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU +0 -0
  1276. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CV +0 -0
  1277. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CW +0 -0
  1278. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CX +0 -0
  1279. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CY +0 -0
  1280. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ +0 -0
  1281. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE +0 -0
  1282. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DJ +0 -0
  1283. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DK +0 -0
  1284. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DM +0 -0
  1285. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DO +0 -0
  1286. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DZ +0 -0
  1287. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EC +0 -0
  1288. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE +0 -0
  1289. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EG +0 -0
  1290. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EH +0 -0
  1291. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ER +0 -0
  1292. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ES +0 -0
  1293. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ET +0 -0
  1294. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FI +0 -0
  1295. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ +0 -0
  1296. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK +0 -0
  1297. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FM +0 -0
  1298. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO +0 -0
  1299. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR +0 -0
  1300. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GA +0 -0
  1301. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB +0 -0
  1302. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GD +0 -0
  1303. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GE +0 -0
  1304. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GF +0 -0
  1305. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG +0 -0
  1306. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GH +0 -0
  1307. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI +0 -0
  1308. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GL +0 -0
  1309. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GM +0 -0
  1310. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GN +0 -0
  1311. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GP +0 -0
  1312. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GR +0 -0
  1313. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT +0 -0
  1314. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GU +0 -0
  1315. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GW +0 -0
  1316. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY +0 -0
  1317. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HK +0 -0
  1318. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HN +0 -0
  1319. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HR +0 -0
  1320. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT +0 -0
  1321. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HU +0 -0
  1322. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ID +0 -0
  1323. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IE +0 -0
  1324. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL +0 -0
  1325. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM +0 -0
  1326. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IN +0 -0
  1327. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IQ +0 -0
  1328. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IR +0 -0
  1329. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IS +0 -0
  1330. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT +0 -0
  1331. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE +0 -0
  1332. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JM +0 -0
  1333. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO +0 -0
  1334. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JP +0 -0
  1335. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE +0 -0
  1336. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KG +0 -0
  1337. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KH +0 -0
  1338. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI +0 -0
  1339. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KM +0 -0
  1340. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KN +0 -0
  1341. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KP +0 -0
  1342. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KR +0 -0
  1343. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW +0 -0
  1344. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KY +0 -0
  1345. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KZ +0 -0
  1346. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LA +0 -0
  1347. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LB +0 -0
  1348. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LC +0 -0
  1349. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI +0 -0
  1350. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LK +0 -0
  1351. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LR +0 -0
  1352. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LS +0 -0
  1353. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LT +0 -0
  1354. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU +0 -0
  1355. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LV +0 -0
  1356. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LY +0 -0
  1357. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MA +0 -0
  1358. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MC +0 -0
  1359. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD +0 -0
  1360. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME +0 -0
  1361. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MF +0 -0
  1362. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MG +0 -0
  1363. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MH +0 -0
  1364. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MK +0 -0
  1365. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ML +0 -0
  1366. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MM +0 -0
  1367. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MN +0 -0
  1368. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MO +0 -0
  1369. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MP +0 -0
  1370. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MQ +0 -0
  1371. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MR +0 -0
  1372. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MS +0 -0
  1373. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MT +0 -0
  1374. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU +0 -0
  1375. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV +0 -0
  1376. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MW +0 -0
  1377. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MX +0 -0
  1378. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MY +0 -0
  1379. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ +0 -0
  1380. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA +0 -0
  1381. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC +0 -0
  1382. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NE +0 -0
  1383. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NF +0 -0
  1384. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NG +0 -0
  1385. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NI +0 -0
  1386. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL +0 -0
  1387. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NO +0 -0
  1388. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NP +0 -0
  1389. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR +0 -0
  1390. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NU +0 -0
  1391. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NZ +0 -0
  1392. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_OM +0 -0
  1393. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA +0 -0
  1394. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PE +0 -0
  1395. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PF +0 -0
  1396. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PG +0 -0
  1397. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PH +0 -0
  1398. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PK +0 -0
  1399. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PL +0 -0
  1400. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PM +0 -0
  1401. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PR +0 -0
  1402. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PT +0 -0
  1403. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PW +0 -0
  1404. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY +0 -0
  1405. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA +0 -0
  1406. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RE +0 -0
  1407. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RO +0 -0
  1408. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS +0 -0
  1409. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RU +0 -0
  1410. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RW +0 -0
  1411. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA +0 -0
  1412. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB +0 -0
  1413. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC +0 -0
  1414. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SD +0 -0
  1415. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SE +0 -0
  1416. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG +0 -0
  1417. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH +0 -0
  1418. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SI +0 -0
  1419. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SJ +0 -0
  1420. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SK +0 -0
  1421. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SL +0 -0
  1422. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SM +0 -0
  1423. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SN +0 -0
  1424. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SO +0 -0
  1425. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR +0 -0
  1426. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ST +0 -0
  1427. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SV +0 -0
  1428. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SX +0 -0
  1429. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SY +0 -0
  1430. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SZ +0 -0
  1431. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TC +0 -0
  1432. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TD +0 -0
  1433. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TG +0 -0
  1434. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TH +0 -0
  1435. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TJ +0 -0
  1436. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL +0 -0
  1437. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TM +0 -0
  1438. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TN +0 -0
  1439. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TO +0 -0
  1440. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TR +0 -0
  1441. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TT +0 -0
  1442. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TV +0 -0
  1443. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TW +0 -0
  1444. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TZ +0 -0
  1445. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UA +0 -0
  1446. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UG +0 -0
  1447. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_US +0 -0
  1448. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY +0 -0
  1449. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UZ +0 -0
  1450. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VA +0 -0
  1451. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VC +0 -0
  1452. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VE +0 -0
  1453. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VG +0 -0
  1454. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VI +0 -0
  1455. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VN +0 -0
  1456. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VU +0 -0
  1457. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WF +0 -0
  1458. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WS +0 -0
  1459. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YE +0 -0
  1460. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YT +0 -0
  1461. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZA +0 -0
  1462. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZM +0 -0
  1463. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZW +0 -0
  1464. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/MatcherApi.java +0 -38
  1465. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java +0 -52
  1466. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/nano/Phonemetadata.java +0 -1040
  1467. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java +0 -1173
  1468. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java +0 -146
  1469. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +0 -274
  1470. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java +0 -51
  1471. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java +0 -67
  1472. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatchTest.java +0 -70
  1473. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java +0 -1090
  1474. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +0 -2591
  1475. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhonenumberTest.java +0 -112
  1476. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegexCacheTest.java +0 -55
  1477. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegionCode.java +0 -61
  1478. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ShortNumberInfoTest.java +0 -355
  1479. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java +0 -40
  1480. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java +0 -47
  1481. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_800 +0 -0
  1482. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_979 +0 -0
  1483. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD +0 -0
  1484. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE +0 -0
  1485. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO +0 -0
  1486. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR +0 -0
  1487. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU +0 -0
  1488. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BB +0 -0
  1489. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BR +0 -0
  1490. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS +0 -0
  1491. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BY +0 -0
  1492. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CA +0 -0
  1493. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CC +0 -0
  1494. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CN +0 -0
  1495. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CX +0 -0
  1496. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE +0 -0
  1497. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_FR +0 -0
  1498. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB +0 -0
  1499. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GG +0 -0
  1500. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_HU +0 -0
  1501. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT +0 -0
  1502. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP +0 -0
  1503. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR +0 -0
  1504. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX +0 -0
  1505. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ +0 -0
  1506. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL +0 -0
  1507. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE +0 -0
  1508. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SE +0 -0
  1509. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG +0 -0
  1510. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US +0 -0
  1511. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT +0 -0
  1512. data/data/libphonenumber/java/pending_code_changes.txt +0 -1
  1513. data/data/libphonenumber/java/pom.xml +0 -185
  1514. data/data/libphonenumber/java/release_notes.txt +0 -1306
  1515. data/data/libphonenumber/javadoc/allclasses-frame.html +0 -49
  1516. data/data/libphonenumber/javadoc/allclasses-noframe.html +0 -49
  1517. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/AsYouTypeFormatter.html +0 -302
  1518. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.ErrorType.html +0 -369
  1519. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.html +0 -311
  1520. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberMatch.html +0 -378
  1521. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.Leniency.html +0 -330
  1522. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.MatchType.html +0 -373
  1523. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberFormat.html +0 -365
  1524. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberType.html +0 -469
  1525. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.ValidationResult.html +0 -357
  1526. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.html +0 -1405
  1527. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-frame.html +0 -68
  1528. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-summary.html +0 -211
  1529. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-tree.html +0 -161
  1530. data/data/libphonenumber/javadoc/constant-values.html +0 -142
  1531. data/data/libphonenumber/javadoc/deprecated-list.html +0 -142
  1532. data/data/libphonenumber/javadoc/help-doc.html +0 -209
  1533. data/data/libphonenumber/javadoc/index-all.html +0 -413
  1534. data/data/libphonenumber/javadoc/index.html +0 -36
  1535. data/data/libphonenumber/javadoc/overview-tree.html +0 -163
  1536. data/data/libphonenumber/javadoc/package-list +0 -1
  1537. data/data/libphonenumber/javadoc/resources/inherit.gif +0 -0
  1538. data/data/libphonenumber/javadoc/serialized-form.html +0 -184
  1539. data/data/libphonenumber/javadoc/stylesheet.css +0 -29
  1540. data/data/libphonenumber/javascript/README.md +0 -86
  1541. data/data/libphonenumber/javascript/build.xml +0 -137
  1542. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter.js +0 -1113
  1543. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.html +0 -38
  1544. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +0 -1207
  1545. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.html +0 -53
  1546. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +0 -459
  1547. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.html +0 -62
  1548. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.js +0 -161
  1549. data/data/libphonenumber/javascript/i18n/phonenumbers/metadata.js +0 -5234
  1550. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatafortesting.js +0 -632
  1551. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +0 -5234
  1552. data/data/libphonenumber/javascript/i18n/phonenumbers/phonemetadata.pb.js +0 -2443
  1553. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumber.pb.js +0 -536
  1554. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil.js +0 -4223
  1555. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.html +0 -37
  1556. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.js +0 -3330
  1557. data/data/libphonenumber/javascript/i18n/phonenumbers/regioncodefortesting.js +0 -66
  1558. data/data/libphonenumber/pom.xml +0 -26
  1559. data/data/libphonenumber/resources/PhoneNumberAlternateFormats.xml +0 -1869
  1560. data/data/libphonenumber/resources/PhoneNumberMetadata.xml +0 -25723
  1561. data/data/libphonenumber/resources/PhoneNumberMetadataForTesting.xml +0 -973
  1562. data/data/libphonenumber/resources/ShortNumberMetadata.xml +0 -9837
  1563. data/data/libphonenumber/resources/carrier/README +0 -2
  1564. data/data/libphonenumber/resources/carrier/ar/965.txt +0 -17
  1565. data/data/libphonenumber/resources/carrier/be/375.txt +0 -28
  1566. data/data/libphonenumber/resources/carrier/en/1.txt +0 -479
  1567. data/data/libphonenumber/resources/carrier/en/20.txt +0 -17
  1568. data/data/libphonenumber/resources/carrier/en/211.txt +0 -18
  1569. data/data/libphonenumber/resources/carrier/en/212.txt +0 -124
  1570. data/data/libphonenumber/resources/carrier/en/213.txt +0 -20
  1571. data/data/libphonenumber/resources/carrier/en/216.txt +0 -28
  1572. data/data/libphonenumber/resources/carrier/en/220.txt +0 -19
  1573. data/data/libphonenumber/resources/carrier/en/221.txt +0 -23
  1574. data/data/libphonenumber/resources/carrier/en/222.txt +0 -19
  1575. data/data/libphonenumber/resources/carrier/en/223.txt +0 -31
  1576. data/data/libphonenumber/resources/carrier/en/224.txt +0 -21
  1577. data/data/libphonenumber/resources/carrier/en/225.txt +0 -56
  1578. data/data/libphonenumber/resources/carrier/en/226.txt +0 -36
  1579. data/data/libphonenumber/resources/carrier/en/227.txt +0 -26
  1580. data/data/libphonenumber/resources/carrier/en/228.txt +0 -16
  1581. data/data/libphonenumber/resources/carrier/en/229.txt +0 -29
  1582. data/data/libphonenumber/resources/carrier/en/230.txt +0 -63
  1583. data/data/libphonenumber/resources/carrier/en/231.txt +0 -22
  1584. data/data/libphonenumber/resources/carrier/en/232.txt +0 -31
  1585. data/data/libphonenumber/resources/carrier/en/233.txt +0 -28
  1586. data/data/libphonenumber/resources/carrier/en/234.txt +0 -257
  1587. data/data/libphonenumber/resources/carrier/en/235.txt +0 -17
  1588. data/data/libphonenumber/resources/carrier/en/236.txt +0 -18
  1589. data/data/libphonenumber/resources/carrier/en/237.txt +0 -28
  1590. data/data/libphonenumber/resources/carrier/en/238.txt +0 -20
  1591. data/data/libphonenumber/resources/carrier/en/239.txt +0 -17
  1592. data/data/libphonenumber/resources/carrier/en/240.txt +0 -17
  1593. data/data/libphonenumber/resources/carrier/en/241.txt +0 -35
  1594. data/data/libphonenumber/resources/carrier/en/242.txt +0 -19
  1595. data/data/libphonenumber/resources/carrier/en/243.txt +0 -23
  1596. data/data/libphonenumber/resources/carrier/en/244.txt +0 -19
  1597. data/data/libphonenumber/resources/carrier/en/245.txt +0 -18
  1598. data/data/libphonenumber/resources/carrier/en/248.txt +0 -18
  1599. data/data/libphonenumber/resources/carrier/en/249.txt +0 -20
  1600. data/data/libphonenumber/resources/carrier/en/250.txt +0 -15
  1601. data/data/libphonenumber/resources/carrier/en/251.txt +0 -21
  1602. data/data/libphonenumber/resources/carrier/en/252.txt +0 -34
  1603. data/data/libphonenumber/resources/carrier/en/253.txt +0 -17
  1604. data/data/libphonenumber/resources/carrier/en/254.txt +0 -63
  1605. data/data/libphonenumber/resources/carrier/en/255.txt +0 -29
  1606. data/data/libphonenumber/resources/carrier/en/256.txt +0 -26
  1607. data/data/libphonenumber/resources/carrier/en/257.txt +0 -28
  1608. data/data/libphonenumber/resources/carrier/en/258.txt +0 -18
  1609. data/data/libphonenumber/resources/carrier/en/260.txt +0 -17
  1610. data/data/libphonenumber/resources/carrier/en/261.txt +0 -18
  1611. data/data/libphonenumber/resources/carrier/en/263.txt +0 -18
  1612. data/data/libphonenumber/resources/carrier/en/265.txt +0 -16
  1613. data/data/libphonenumber/resources/carrier/en/267.txt +0 -57
  1614. data/data/libphonenumber/resources/carrier/en/268.txt +0 -15
  1615. data/data/libphonenumber/resources/carrier/en/27.txt +0 -70
  1616. data/data/libphonenumber/resources/carrier/en/297.txt +0 -29
  1617. data/data/libphonenumber/resources/carrier/en/298.txt +0 -18
  1618. data/data/libphonenumber/resources/carrier/en/299.txt +0 -17
  1619. data/data/libphonenumber/resources/carrier/en/30.txt +0 -20
  1620. data/data/libphonenumber/resources/carrier/en/31.txt +0 -65
  1621. data/data/libphonenumber/resources/carrier/en/32.txt +0 -36
  1622. data/data/libphonenumber/resources/carrier/en/33.txt +0 -72
  1623. data/data/libphonenumber/resources/carrier/en/350.txt +0 -19
  1624. data/data/libphonenumber/resources/carrier/en/351.txt +0 -26
  1625. data/data/libphonenumber/resources/carrier/en/352.txt +0 -27
  1626. data/data/libphonenumber/resources/carrier/en/353.txt +0 -20
  1627. data/data/libphonenumber/resources/carrier/en/354.txt +0 -55
  1628. data/data/libphonenumber/resources/carrier/en/355.txt +0 -18
  1629. data/data/libphonenumber/resources/carrier/en/356.txt +0 -27
  1630. data/data/libphonenumber/resources/carrier/en/357.txt +0 -20
  1631. data/data/libphonenumber/resources/carrier/en/358.txt +0 -44
  1632. data/data/libphonenumber/resources/carrier/en/359.txt +0 -19
  1633. data/data/libphonenumber/resources/carrier/en/36.txt +0 -17
  1634. data/data/libphonenumber/resources/carrier/en/370.txt +0 -50
  1635. data/data/libphonenumber/resources/carrier/en/372.txt +0 -30
  1636. data/data/libphonenumber/resources/carrier/en/373.txt +0 -44
  1637. data/data/libphonenumber/resources/carrier/en/374.txt +0 -29
  1638. data/data/libphonenumber/resources/carrier/en/375.txt +0 -28
  1639. data/data/libphonenumber/resources/carrier/en/376.txt +0 -15
  1640. data/data/libphonenumber/resources/carrier/en/380.txt +0 -26
  1641. data/data/libphonenumber/resources/carrier/en/381.txt +0 -23
  1642. data/data/libphonenumber/resources/carrier/en/382.txt +0 -29
  1643. data/data/libphonenumber/resources/carrier/en/385.txt +0 -22
  1644. data/data/libphonenumber/resources/carrier/en/386.txt +0 -23
  1645. data/data/libphonenumber/resources/carrier/en/387.txt +0 -20
  1646. data/data/libphonenumber/resources/carrier/en/389.txt +0 -23
  1647. data/data/libphonenumber/resources/carrier/en/39.txt +0 -23
  1648. data/data/libphonenumber/resources/carrier/en/40.txt +0 -21
  1649. data/data/libphonenumber/resources/carrier/en/41.txt +0 -18
  1650. data/data/libphonenumber/resources/carrier/en/420.txt +0 -32
  1651. data/data/libphonenumber/resources/carrier/en/421.txt +0 -38
  1652. data/data/libphonenumber/resources/carrier/en/43.txt +0 -26
  1653. data/data/libphonenumber/resources/carrier/en/45.txt +0 -599
  1654. data/data/libphonenumber/resources/carrier/en/47.txt +0 -239
  1655. data/data/libphonenumber/resources/carrier/en/48.txt +0 -118
  1656. data/data/libphonenumber/resources/carrier/en/49.txt +0 -50
  1657. data/data/libphonenumber/resources/carrier/en/501.txt +0 -16
  1658. data/data/libphonenumber/resources/carrier/en/505.txt +0 -101
  1659. data/data/libphonenumber/resources/carrier/en/506.txt +0 -50
  1660. data/data/libphonenumber/resources/carrier/en/507.txt +0 -84
  1661. data/data/libphonenumber/resources/carrier/en/509.txt +0 -24
  1662. data/data/libphonenumber/resources/carrier/en/51.txt +0 -584
  1663. data/data/libphonenumber/resources/carrier/en/53.txt +0 -15
  1664. data/data/libphonenumber/resources/carrier/en/54.txt +0 -98
  1665. data/data/libphonenumber/resources/carrier/en/55.txt +0 -9479
  1666. data/data/libphonenumber/resources/carrier/en/56.txt +0 -538
  1667. data/data/libphonenumber/resources/carrier/en/57.txt +0 -38
  1668. data/data/libphonenumber/resources/carrier/en/58.txt +0 -18
  1669. data/data/libphonenumber/resources/carrier/en/591.txt +0 -51
  1670. data/data/libphonenumber/resources/carrier/en/592.txt +0 -15
  1671. data/data/libphonenumber/resources/carrier/en/595.txt +0 -19
  1672. data/data/libphonenumber/resources/carrier/en/597.txt +0 -33
  1673. data/data/libphonenumber/resources/carrier/en/598.txt +0 -25
  1674. data/data/libphonenumber/resources/carrier/en/599.txt +0 -49
  1675. data/data/libphonenumber/resources/carrier/en/60.txt +0 -301
  1676. data/data/libphonenumber/resources/carrier/en/61.txt +0 -95
  1677. data/data/libphonenumber/resources/carrier/en/62.txt +0 -702
  1678. data/data/libphonenumber/resources/carrier/en/63.txt +0 -55
  1679. data/data/libphonenumber/resources/carrier/en/64.txt +0 -22
  1680. data/data/libphonenumber/resources/carrier/en/65.txt +0 -591
  1681. data/data/libphonenumber/resources/carrier/en/66.txt +0 -48
  1682. data/data/libphonenumber/resources/carrier/en/670.txt +0 -16
  1683. data/data/libphonenumber/resources/carrier/en/673.txt +0 -22
  1684. data/data/libphonenumber/resources/carrier/en/675.txt +0 -30
  1685. data/data/libphonenumber/resources/carrier/en/676.txt +0 -39
  1686. data/data/libphonenumber/resources/carrier/en/677.txt +0 -44
  1687. data/data/libphonenumber/resources/carrier/en/678.txt +0 -35
  1688. data/data/libphonenumber/resources/carrier/en/679.txt +0 -23
  1689. data/data/libphonenumber/resources/carrier/en/685.txt +0 -17
  1690. data/data/libphonenumber/resources/carrier/en/686.txt +0 -20
  1691. data/data/libphonenumber/resources/carrier/en/689.txt +0 -16
  1692. data/data/libphonenumber/resources/carrier/en/7.txt +0 -25
  1693. data/data/libphonenumber/resources/carrier/en/84.txt +0 -27
  1694. data/data/libphonenumber/resources/carrier/en/852.txt +0 -282
  1695. data/data/libphonenumber/resources/carrier/en/853.txt +0 -326
  1696. data/data/libphonenumber/resources/carrier/en/855.txt +0 -36
  1697. data/data/libphonenumber/resources/carrier/en/856.txt +0 -18
  1698. data/data/libphonenumber/resources/carrier/en/86.txt +0 -64
  1699. data/data/libphonenumber/resources/carrier/en/880.txt +0 -20
  1700. data/data/libphonenumber/resources/carrier/en/90.txt +0 -26
  1701. data/data/libphonenumber/resources/carrier/en/91.txt +0 -2883
  1702. data/data/libphonenumber/resources/carrier/en/92.txt +0 -51
  1703. data/data/libphonenumber/resources/carrier/en/93.txt +0 -24
  1704. data/data/libphonenumber/resources/carrier/en/94.txt +0 -22
  1705. data/data/libphonenumber/resources/carrier/en/95.txt +0 -46
  1706. data/data/libphonenumber/resources/carrier/en/960.txt +0 -16
  1707. data/data/libphonenumber/resources/carrier/en/961.txt +0 -35
  1708. data/data/libphonenumber/resources/carrier/en/962.txt +0 -20
  1709. data/data/libphonenumber/resources/carrier/en/963.txt +0 -50
  1710. data/data/libphonenumber/resources/carrier/en/964.txt +0 -27
  1711. data/data/libphonenumber/resources/carrier/en/965.txt +0 -17
  1712. data/data/libphonenumber/resources/carrier/en/966.txt +0 -27
  1713. data/data/libphonenumber/resources/carrier/en/967.txt +0 -21
  1714. data/data/libphonenumber/resources/carrier/en/968.txt +0 -34
  1715. data/data/libphonenumber/resources/carrier/en/970.txt +0 -16
  1716. data/data/libphonenumber/resources/carrier/en/971.txt +0 -19
  1717. data/data/libphonenumber/resources/carrier/en/972.txt +0 -40
  1718. data/data/libphonenumber/resources/carrier/en/973.txt +0 -32
  1719. data/data/libphonenumber/resources/carrier/en/974.txt +0 -18
  1720. data/data/libphonenumber/resources/carrier/en/975.txt +0 -17
  1721. data/data/libphonenumber/resources/carrier/en/976.txt +0 -21
  1722. data/data/libphonenumber/resources/carrier/en/977.txt +0 -26
  1723. data/data/libphonenumber/resources/carrier/en/98.txt +0 -30
  1724. data/data/libphonenumber/resources/carrier/en/992.txt +0 -27
  1725. data/data/libphonenumber/resources/carrier/en/993.txt +0 -19
  1726. data/data/libphonenumber/resources/carrier/en/994.txt +0 -23
  1727. data/data/libphonenumber/resources/carrier/en/995.txt +0 -34
  1728. data/data/libphonenumber/resources/carrier/en/996.txt +0 -22
  1729. data/data/libphonenumber/resources/carrier/en/998.txt +0 -33
  1730. data/data/libphonenumber/resources/carrier/fa/93.txt +0 -24
  1731. data/data/libphonenumber/resources/carrier/fa/98.txt +0 -30
  1732. data/data/libphonenumber/resources/carrier/ru/374.txt +0 -28
  1733. data/data/libphonenumber/resources/carrier/ru/375.txt +0 -28
  1734. data/data/libphonenumber/resources/carrier/zh/852.txt +0 -283
  1735. data/data/libphonenumber/resources/carrier/zh/86.txt +0 -64
  1736. data/data/libphonenumber/resources/carrier/zh_Hant/852.txt +0 -283
  1737. data/data/libphonenumber/resources/carrier/zh_Hant/86.txt +0 -64
  1738. data/data/libphonenumber/resources/geocoding/am/374.txt +0 -177
  1739. data/data/libphonenumber/resources/geocoding/ar/82.txt +0 -34
  1740. data/data/libphonenumber/resources/geocoding/ar/966.txt +0 -27
  1741. data/data/libphonenumber/resources/geocoding/be/375.txt +0 -144
  1742. data/data/libphonenumber/resources/geocoding/bg/359.txt +0 -2105
  1743. data/data/libphonenumber/resources/geocoding/bg/82.txt +0 -34
  1744. data/data/libphonenumber/resources/geocoding/ca/82.txt +0 -34
  1745. data/data/libphonenumber/resources/geocoding/cs/82.txt +0 -35
  1746. data/data/libphonenumber/resources/geocoding/de/32.txt +0 -59
  1747. data/data/libphonenumber/resources/geocoding/de/352.txt +0 -229
  1748. data/data/libphonenumber/resources/geocoding/de/41.txt +0 -37
  1749. data/data/libphonenumber/resources/geocoding/de/43.txt +0 -1037
  1750. data/data/libphonenumber/resources/geocoding/de/49.txt +0 -5219
  1751. data/data/libphonenumber/resources/geocoding/el/30.txt +0 -259
  1752. data/data/libphonenumber/resources/geocoding/el/82.txt +0 -28
  1753. data/data/libphonenumber/resources/geocoding/en/1.txt +0 -36238
  1754. data/data/libphonenumber/resources/geocoding/en/20.txt +0 -45
  1755. data/data/libphonenumber/resources/geocoding/en/212.txt +0 -86
  1756. data/data/libphonenumber/resources/geocoding/en/213.txt +0 -30
  1757. data/data/libphonenumber/resources/geocoding/en/216.txt +0 -26
  1758. data/data/libphonenumber/resources/geocoding/en/220.txt +0 -59
  1759. data/data/libphonenumber/resources/geocoding/en/221.txt +0 -19
  1760. data/data/libphonenumber/resources/geocoding/en/222.txt +0 -28
  1761. data/data/libphonenumber/resources/geocoding/en/223.txt +0 -37
  1762. data/data/libphonenumber/resources/geocoding/en/224.txt +0 -38
  1763. data/data/libphonenumber/resources/geocoding/en/225.txt +0 -28
  1764. data/data/libphonenumber/resources/geocoding/en/226.txt +0 -50
  1765. data/data/libphonenumber/resources/geocoding/en/228.txt +0 -24
  1766. data/data/libphonenumber/resources/geocoding/en/229.txt +0 -52
  1767. data/data/libphonenumber/resources/geocoding/en/230.txt +0 -25
  1768. data/data/libphonenumber/resources/geocoding/en/232.txt +0 -20
  1769. data/data/libphonenumber/resources/geocoding/en/233.txt +0 -86
  1770. data/data/libphonenumber/resources/geocoding/en/234.txt +0 -79
  1771. data/data/libphonenumber/resources/geocoding/en/237.txt +0 -125
  1772. data/data/libphonenumber/resources/geocoding/en/238.txt +0 -54
  1773. data/data/libphonenumber/resources/geocoding/en/239.txt +0 -35
  1774. data/data/libphonenumber/resources/geocoding/en/241.txt +0 -48
  1775. data/data/libphonenumber/resources/geocoding/en/242.txt +0 -23
  1776. data/data/libphonenumber/resources/geocoding/en/243.txt +0 -22
  1777. data/data/libphonenumber/resources/geocoding/en/244.txt +0 -54
  1778. data/data/libphonenumber/resources/geocoding/en/245.txt +0 -38
  1779. data/data/libphonenumber/resources/geocoding/en/247.txt +0 -27
  1780. data/data/libphonenumber/resources/geocoding/en/249.txt +0 -28
  1781. data/data/libphonenumber/resources/geocoding/en/251.txt +0 -386
  1782. data/data/libphonenumber/resources/geocoding/en/252.txt +0 -21
  1783. data/data/libphonenumber/resources/geocoding/en/254.txt +0 -46
  1784. data/data/libphonenumber/resources/geocoding/en/256.txt +0 -30
  1785. data/data/libphonenumber/resources/geocoding/en/257.txt +0 -28
  1786. data/data/libphonenumber/resources/geocoding/en/258.txt +0 -27
  1787. data/data/libphonenumber/resources/geocoding/en/260.txt +0 -26
  1788. data/data/libphonenumber/resources/geocoding/en/261.txt +0 -40
  1789. data/data/libphonenumber/resources/geocoding/en/263.txt +0 -134
  1790. data/data/libphonenumber/resources/geocoding/en/264.txt +0 -1047
  1791. data/data/libphonenumber/resources/geocoding/en/266.txt +0 -18
  1792. data/data/libphonenumber/resources/geocoding/en/267.txt +0 -35
  1793. data/data/libphonenumber/resources/geocoding/en/268.txt +0 -54
  1794. data/data/libphonenumber/resources/geocoding/en/269.txt +0 -32
  1795. data/data/libphonenumber/resources/geocoding/en/27.txt +0 -57
  1796. data/data/libphonenumber/resources/geocoding/en/290.txt +0 -24
  1797. data/data/libphonenumber/resources/geocoding/en/299.txt +0 -43
  1798. data/data/libphonenumber/resources/geocoding/en/30.txt +0 -261
  1799. data/data/libphonenumber/resources/geocoding/en/31.txt +0 -137
  1800. data/data/libphonenumber/resources/geocoding/en/32.txt +0 -59
  1801. data/data/libphonenumber/resources/geocoding/en/33.txt +0 -5592
  1802. data/data/libphonenumber/resources/geocoding/en/34.txt +0 -123
  1803. data/data/libphonenumber/resources/geocoding/en/351.txt +0 -67
  1804. data/data/libphonenumber/resources/geocoding/en/352.txt +0 -229
  1805. data/data/libphonenumber/resources/geocoding/en/353.txt +0 -71
  1806. data/data/libphonenumber/resources/geocoding/en/354.txt +0 -23
  1807. data/data/libphonenumber/resources/geocoding/en/355.txt +0 -188
  1808. data/data/libphonenumber/resources/geocoding/en/358.txt +0 -74
  1809. data/data/libphonenumber/resources/geocoding/en/359.txt +0 -2102
  1810. data/data/libphonenumber/resources/geocoding/en/36.txt +0 -70
  1811. data/data/libphonenumber/resources/geocoding/en/370.txt +0 -64
  1812. data/data/libphonenumber/resources/geocoding/en/371.txt +0 -56
  1813. data/data/libphonenumber/resources/geocoding/en/372.txt +0 -35
  1814. data/data/libphonenumber/resources/geocoding/en/373.txt +0 -62
  1815. data/data/libphonenumber/resources/geocoding/en/374.txt +0 -184
  1816. data/data/libphonenumber/resources/geocoding/en/375.txt +0 -142
  1817. data/data/libphonenumber/resources/geocoding/en/381.txt +0 -50
  1818. data/data/libphonenumber/resources/geocoding/en/389.txt +0 -28
  1819. data/data/libphonenumber/resources/geocoding/en/39.txt +0 -137
  1820. data/data/libphonenumber/resources/geocoding/en/40.txt +0 -98
  1821. data/data/libphonenumber/resources/geocoding/en/41.txt +0 -37
  1822. data/data/libphonenumber/resources/geocoding/en/420.txt +0 -37
  1823. data/data/libphonenumber/resources/geocoding/en/421.txt +0 -42
  1824. data/data/libphonenumber/resources/geocoding/en/43.txt +0 -1036
  1825. data/data/libphonenumber/resources/geocoding/en/44.txt +0 -870
  1826. data/data/libphonenumber/resources/geocoding/en/46.txt +0 -280
  1827. data/data/libphonenumber/resources/geocoding/en/47.txt +0 -49
  1828. data/data/libphonenumber/resources/geocoding/en/48.txt +0 -65
  1829. data/data/libphonenumber/resources/geocoding/en/49.txt +0 -5218
  1830. data/data/libphonenumber/resources/geocoding/en/501.txt +0 -23
  1831. data/data/libphonenumber/resources/geocoding/en/504.txt +0 -19
  1832. data/data/libphonenumber/resources/geocoding/en/51.txt +0 -42
  1833. data/data/libphonenumber/resources/geocoding/en/53.txt +0 -33
  1834. data/data/libphonenumber/resources/geocoding/en/54.txt +0 -236
  1835. data/data/libphonenumber/resources/geocoding/en/55.txt +0 -15271
  1836. data/data/libphonenumber/resources/geocoding/en/56.txt +0 -41
  1837. data/data/libphonenumber/resources/geocoding/en/57.txt +0 -186
  1838. data/data/libphonenumber/resources/geocoding/en/58.txt +0 -73
  1839. data/data/libphonenumber/resources/geocoding/en/592.txt +0 -82
  1840. data/data/libphonenumber/resources/geocoding/en/599.txt +0 -22
  1841. data/data/libphonenumber/resources/geocoding/en/62.txt +0 -325
  1842. data/data/libphonenumber/resources/geocoding/en/64.txt +0 -124
  1843. data/data/libphonenumber/resources/geocoding/en/66.txt +0 -40
  1844. data/data/libphonenumber/resources/geocoding/en/686.txt +0 -50
  1845. data/data/libphonenumber/resources/geocoding/en/688.txt +0 -25
  1846. data/data/libphonenumber/resources/geocoding/en/7.txt +0 -355
  1847. data/data/libphonenumber/resources/geocoding/en/81.txt +0 -1547
  1848. data/data/libphonenumber/resources/geocoding/en/82.txt +0 -35
  1849. data/data/libphonenumber/resources/geocoding/en/84.txt +0 -88
  1850. data/data/libphonenumber/resources/geocoding/en/86.txt +0 -154830
  1851. data/data/libphonenumber/resources/geocoding/en/886.txt +0 -30
  1852. data/data/libphonenumber/resources/geocoding/en/90.txt +0 -182
  1853. data/data/libphonenumber/resources/geocoding/en/91.txt +0 -2666
  1854. data/data/libphonenumber/resources/geocoding/en/93.txt +0 -52
  1855. data/data/libphonenumber/resources/geocoding/en/94.txt +0 -46
  1856. data/data/libphonenumber/resources/geocoding/en/95.txt +0 -17
  1857. data/data/libphonenumber/resources/geocoding/en/962.txt +0 -32
  1858. data/data/libphonenumber/resources/geocoding/en/966.txt +0 -29
  1859. data/data/libphonenumber/resources/geocoding/en/968.txt +0 -18
  1860. data/data/libphonenumber/resources/geocoding/en/972.txt +0 -20
  1861. data/data/libphonenumber/resources/geocoding/en/975.txt +0 -21
  1862. data/data/libphonenumber/resources/geocoding/en/98.txt +0 -51
  1863. data/data/libphonenumber/resources/geocoding/en/992.txt +0 -77
  1864. data/data/libphonenumber/resources/geocoding/en/994.txt +0 -98
  1865. data/data/libphonenumber/resources/geocoding/es/228.txt +0 -23
  1866. data/data/libphonenumber/resources/geocoding/es/230.txt +0 -23
  1867. data/data/libphonenumber/resources/geocoding/es/34.txt +0 -124
  1868. data/data/libphonenumber/resources/geocoding/es/54.txt +0 -238
  1869. data/data/libphonenumber/resources/geocoding/es/56.txt +0 -43
  1870. data/data/libphonenumber/resources/geocoding/es/57.txt +0 -186
  1871. data/data/libphonenumber/resources/geocoding/es/58.txt +0 -72
  1872. data/data/libphonenumber/resources/geocoding/es/82.txt +0 -33
  1873. data/data/libphonenumber/resources/geocoding/fa/93.txt +0 -53
  1874. data/data/libphonenumber/resources/geocoding/fa/98.txt +0 -48
  1875. data/data/libphonenumber/resources/geocoding/fi/358.txt +0 -74
  1876. data/data/libphonenumber/resources/geocoding/fi/82.txt +0 -34
  1877. data/data/libphonenumber/resources/geocoding/fr/212.txt +0 -85
  1878. data/data/libphonenumber/resources/geocoding/fr/222.txt +0 -29
  1879. data/data/libphonenumber/resources/geocoding/fr/225.txt +0 -30
  1880. data/data/libphonenumber/resources/geocoding/fr/228.txt +0 -24
  1881. data/data/libphonenumber/resources/geocoding/fr/229.txt +0 -55
  1882. data/data/libphonenumber/resources/geocoding/fr/230.txt +0 -23
  1883. data/data/libphonenumber/resources/geocoding/fr/242.txt +0 -25
  1884. data/data/libphonenumber/resources/geocoding/fr/243.txt +0 -24
  1885. data/data/libphonenumber/resources/geocoding/fr/269.txt +0 -34
  1886. data/data/libphonenumber/resources/geocoding/fr/290.txt +0 -24
  1887. data/data/libphonenumber/resources/geocoding/fr/32.txt +0 -59
  1888. data/data/libphonenumber/resources/geocoding/fr/33.txt +0 -5593
  1889. data/data/libphonenumber/resources/geocoding/fr/352.txt +0 -231
  1890. data/data/libphonenumber/resources/geocoding/fr/41.txt +0 -37
  1891. data/data/libphonenumber/resources/geocoding/fr/82.txt +0 -33
  1892. data/data/libphonenumber/resources/geocoding/hi/82.txt +0 -36
  1893. data/data/libphonenumber/resources/geocoding/hu/36.txt +0 -71
  1894. data/data/libphonenumber/resources/geocoding/hu/82.txt +0 -35
  1895. data/data/libphonenumber/resources/geocoding/id/62.txt +0 -326
  1896. data/data/libphonenumber/resources/geocoding/it/39.txt +0 -248
  1897. data/data/libphonenumber/resources/geocoding/it/41.txt +0 -37
  1898. data/data/libphonenumber/resources/geocoding/iw/82.txt +0 -37
  1899. data/data/libphonenumber/resources/geocoding/ja/81.txt +0 -1546
  1900. data/data/libphonenumber/resources/geocoding/ja/82.txt +0 -35
  1901. data/data/libphonenumber/resources/geocoding/ko/82.txt +0 -35
  1902. data/data/libphonenumber/resources/geocoding/nl/31.txt +0 -145
  1903. data/data/libphonenumber/resources/geocoding/nl/32.txt +0 -59
  1904. data/data/libphonenumber/resources/geocoding/pl/48.txt +0 -66
  1905. data/data/libphonenumber/resources/geocoding/pt/238.txt +0 -58
  1906. data/data/libphonenumber/resources/geocoding/pt/239.txt +0 -37
  1907. data/data/libphonenumber/resources/geocoding/pt/244.txt +0 -59
  1908. data/data/libphonenumber/resources/geocoding/pt/245.txt +0 -37
  1909. data/data/libphonenumber/resources/geocoding/pt/258.txt +0 -29
  1910. data/data/libphonenumber/resources/geocoding/pt/351.txt +0 -69
  1911. data/data/libphonenumber/resources/geocoding/pt/55.txt +0 -15269
  1912. data/data/libphonenumber/resources/geocoding/ro/373.txt +0 -61
  1913. data/data/libphonenumber/resources/geocoding/ro/40.txt +0 -99
  1914. data/data/libphonenumber/resources/geocoding/ru/373.txt +0 -61
  1915. data/data/libphonenumber/resources/geocoding/ru/374.txt +0 -177
  1916. data/data/libphonenumber/resources/geocoding/ru/375.txt +0 -143
  1917. data/data/libphonenumber/resources/geocoding/ru/7.txt +0 -108
  1918. data/data/libphonenumber/resources/geocoding/se/358.txt +0 -74
  1919. data/data/libphonenumber/resources/geocoding/sr/381.txt +0 -51
  1920. data/data/libphonenumber/resources/geocoding/sv/46.txt +0 -266
  1921. data/data/libphonenumber/resources/geocoding/th/66.txt +0 -39
  1922. data/data/libphonenumber/resources/geocoding/tr/82.txt +0 -35
  1923. data/data/libphonenumber/resources/geocoding/tr/90.txt +0 -182
  1924. data/data/libphonenumber/resources/geocoding/vi/84.txt +0 -80
  1925. data/data/libphonenumber/resources/geocoding/zh/82.txt +0 -35
  1926. data/data/libphonenumber/resources/geocoding/zh/86.txt +0 -154830
  1927. data/data/libphonenumber/resources/geocoding/zh/886.txt +0 -30
  1928. data/data/libphonenumber/resources/geocoding/zh_Hant/82.txt +0 -35
  1929. data/data/libphonenumber/resources/geocoding/zh_Hant/886.txt +0 -30
  1930. data/data/libphonenumber/resources/phonemetadata.proto +0 -282
  1931. data/data/libphonenumber/resources/phonenumber.proto +0 -124
  1932. data/data/libphonenumber/resources/test/carrier/en/1.txt +0 -16
  1933. data/data/libphonenumber/resources/test/carrier/en/244.txt +0 -16
  1934. data/data/libphonenumber/resources/test/carrier/en/44.txt +0 -17
  1935. data/data/libphonenumber/resources/test/carrier/sv/44.txt +0 -15
  1936. data/data/libphonenumber/resources/test/geocoding/de/1.txt +0 -16
  1937. data/data/libphonenumber/resources/test/geocoding/en/1.txt +0 -21
  1938. data/data/libphonenumber/resources/test/geocoding/en/54.txt +0 -15
  1939. data/data/libphonenumber/resources/test/geocoding/en/82.txt +0 -31
  1940. data/data/libphonenumber/resources/test/geocoding/ko/82.txt +0 -29
  1941. data/data/libphonenumber/resources/test/timezones/map_data.txt +0 -24
  1942. data/data/libphonenumber/resources/timezones/map_data.txt +0 -2070
  1943. data/data/libphonenumber/tools/cpp/CMakeLists.txt +0 -57
  1944. data/data/libphonenumber/tools/cpp/gtest.cmake +0 -47
  1945. data/data/libphonenumber/tools/cpp/src/base/basictypes.h +0 -330
  1946. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.cc +0 -655
  1947. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.h +0 -37
  1948. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data_main.cc +0 -21
  1949. data/data/libphonenumber/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc +0 -39
  1950. data/data/libphonenumber/tools/cpp/test/cpp-build/run_tests.cc +0 -21
  1951. data/data/libphonenumber/tools/java/common/pom.xml +0 -69
  1952. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +0 -530
  1953. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/Command.java +0 -51
  1954. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CommandDispatcher.java +0 -78
  1955. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CopyrightNotice.java +0 -66
  1956. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/FileUtils.java +0 -52
  1957. data/data/libphonenumber/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +0 -654
  1958. data/data/libphonenumber/tools/java/cpp-build/pom.xml +0 -114
  1959. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/BuildMetadataCppFromXml.java +0 -230
  1960. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/CppMetadataGenerator.java +0 -197
  1961. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/EntryPoint.java +0 -33
  1962. data/data/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1963. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/BuildMetadataCppFromXmlTest.java +0 -185
  1964. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/CppMetadataGeneratorTest.java +0 -122
  1965. data/data/libphonenumber/tools/java/data/README +0 -16
  1966. data/data/libphonenumber/tools/java/data/pom.xml +0 -101
  1967. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoData.java +0 -287
  1968. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoDataServlet.java +0 -46
  1969. data/data/libphonenumber/tools/java/data/test/com/google/i18n/phonenumbers/CombineGeoDataTest.java +0 -233
  1970. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/appengine-web.xml +0 -8
  1971. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/logging.properties +0 -13
  1972. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/web.xml +0 -18
  1973. data/data/libphonenumber/tools/java/data/webapp/index.html +0 -22
  1974. data/data/libphonenumber/tools/java/java-build/pom.xml +0 -121
  1975. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +0 -397
  1976. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +0 -381
  1977. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/EntryPoint.java +0 -39
  1978. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/JSArrayBuilder.java +0 -142
  1979. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/AbstractPhonePrefixDataIOHandler.java +0 -62
  1980. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixData.java +0 -483
  1981. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataEntryPoint.java +0 -58
  1982. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapData.java +0 -143
  1983. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataEntryPoint.java +0 -60
  1984. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/PhonePrefixDataIOHandler.java +0 -59
  1985. data/data/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1986. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataTest.java +0 -291
  1987. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataTest.java +0 -136
  1988. data/data/libphonenumber/tools/java/pom.xml +0 -29
  1989. data/data/libphonenumber/tools/script/continuous-integration.sh +0 -96
@@ -1,201 +0,0 @@
1
- // Copyright (C) 2011 The Libphonenumber Authors
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
- //
15
- // Author: Lara Rennie
16
- // Author: Tao Huang
17
- //
18
- // This is a direct port from PhoneNumberMatcher.java.
19
- // Changes to this class should also happen to the Java version, whenever it
20
- // makes sense.
21
-
22
- #ifndef I18N_PHONENUMBERS_PHONENUMBERMATCHER_H_
23
- #define I18N_PHONENUMBERS_PHONENUMBERMATCHER_H_
24
-
25
- #include <string>
26
- #include <vector>
27
-
28
- #include "phonenumbers/base/basictypes.h"
29
- #include "phonenumbers/base/memory/scoped_ptr.h"
30
- #include "phonenumbers/callback.h"
31
- #include "phonenumbers/regexp_adapter.h"
32
-
33
- namespace i18n {
34
- namespace phonenumbers {
35
-
36
- template <class R, class A1, class A2, class A3, class A4>
37
- class ResultCallback4;
38
-
39
- using std::string;
40
- using std::vector;
41
-
42
- class AlternateFormats;
43
- class NumberFormat;
44
- class PhoneNumber;
45
- class PhoneNumberMatch;
46
- class PhoneNumberMatcherRegExps;
47
- class PhoneNumberUtil;
48
-
49
- class PhoneNumberMatcher {
50
- friend class PhoneNumberMatcherTest;
51
- public:
52
- // Leniency when finding potential phone numbers in text segments. The levels
53
- // here are ordered in increasing strictness.
54
- enum Leniency {
55
- // Phone numbers accepted are possible, but not necessarily valid.
56
- POSSIBLE,
57
- // Phone numbers accepted are possible and valid.
58
- VALID,
59
- // Phone numbers accepted are valid and are grouped in a possible way for
60
- // this locale. For example, a US number written as "65 02 53 00 00" is not
61
- // accepted at this leniency level, whereas "650 253 0000" or "6502530000"
62
- // are. Numbers with more than one '/' symbol are also dropped at this
63
- // level.
64
- // Warning: The next two levels might result in lower coverage especially
65
- // for regions outside of country code "+1". If you are not sure about which
66
- // level to use, you can send an e-mail to the discussion group
67
- // http://groups.google.com/group/libphonenumber-discuss/
68
- STRICT_GROUPING,
69
- // Phone numbers accepted are valid and are grouped in the same way that we
70
- // would have formatted it, or as a single block. For example, a US number
71
- // written as "650 2530000" is not accepted at this leniency level, whereas
72
- // "650 253 0000" or "6502530000" are.
73
- EXACT_GROUPING,
74
- };
75
-
76
- // Constructs a phone number matcher.
77
- PhoneNumberMatcher(const PhoneNumberUtil& util,
78
- const string& text,
79
- const string& region_code,
80
- Leniency leniency,
81
- int max_tries);
82
-
83
- // Wrapper to construct a phone number matcher, with no limitation on the
84
- // number of retries and VALID Leniency.
85
- PhoneNumberMatcher(const string& text,
86
- const string& region_code);
87
-
88
- ~PhoneNumberMatcher();
89
-
90
- // Returns true if the text sequence has another match.
91
- bool HasNext();
92
-
93
- // Gets next match from text sequence.
94
- bool Next(PhoneNumberMatch* match);
95
-
96
- private:
97
- // The potential states of a PhoneNumberMatcher.
98
- enum State {
99
- NOT_READY,
100
- READY,
101
- DONE,
102
- };
103
-
104
- // Attempts to extract a match from a candidate string. Returns true if a
105
- // match is found, otherwise returns false. The value "offset" refers to the
106
- // start index of the candidate string within the overall text.
107
- bool Find(int index, PhoneNumberMatch* match);
108
-
109
- // Checks a number was formatted with a national prefix, if the number was
110
- // found in national format, and a national prefix is required for that
111
- // number. Returns false if the number needed to have a national prefix and
112
- // none was found.
113
- bool IsNationalPrefixPresentIfRequired(const PhoneNumber& number) const;
114
-
115
- // Attempts to extract a match from candidate. Returns true if the match was
116
- // found, otherwise returns false.
117
- bool ExtractMatch(const string& candidate, int offset,
118
- PhoneNumberMatch* match);
119
-
120
- // Attempts to extract a match from a candidate string if the whole candidate
121
- // does not qualify as a match. Returns true if a match is found, otherwise
122
- // returns false.
123
- bool ExtractInnerMatch(const string& candidate, int offset,
124
- PhoneNumberMatch* match);
125
-
126
- // Parses a phone number from the candidate using PhoneNumberUtil::Parse() and
127
- // verifies it matches the requested leniency. If parsing and verification
128
- // succeed, returns true, otherwise this method returns false;
129
- bool ParseAndVerify(const string& candidate, int offset,
130
- PhoneNumberMatch* match);
131
-
132
- bool CheckNumberGroupingIsValid(
133
- const PhoneNumber& phone_number,
134
- const string& candidate,
135
- ResultCallback4<bool, const PhoneNumberUtil&, const PhoneNumber&,
136
- const string&, const vector<string>&>* checker) const;
137
-
138
- void GetNationalNumberGroups(
139
- const PhoneNumber& number,
140
- const NumberFormat* formatting_pattern,
141
- vector<string>* digit_blocks) const;
142
-
143
- bool AllNumberGroupsAreExactlyPresent(
144
- const PhoneNumberUtil& util,
145
- const PhoneNumber& phone_number,
146
- const string& normalized_candidate,
147
- const vector<string>& formatted_number_groups) const;
148
-
149
- bool VerifyAccordingToLeniency(Leniency leniency, const PhoneNumber& number,
150
- const string& candidate) const;
151
-
152
- // In interface for testing purposes.
153
- static bool ContainsMoreThanOneSlashInNationalNumber(
154
- const PhoneNumber& number,
155
- const string& candidate,
156
- const PhoneNumberUtil& util);
157
-
158
- // Helper method to determine if a character is a Latin-script letter or not.
159
- // For our purposes, combining marks should also return true since we assume
160
- // they have been added to a preceding Latin character.
161
- static bool IsLatinLetter(char32 letter);
162
-
163
- // Helper class holding useful regular expressions.
164
- const PhoneNumberMatcherRegExps* reg_exps_;
165
-
166
- // Helper class holding loaded data containing alternate ways phone numbers
167
- // might be formatted for certain regions.
168
- const AlternateFormats* alternate_formats_;
169
-
170
- // The phone number utility;
171
- const PhoneNumberUtil& phone_util_;
172
-
173
- // The text searched for phone numbers;
174
- const string text_;
175
-
176
- // The region(country) to assume for phone numbers without an international
177
- // prefix.
178
- const string preferred_region_;
179
-
180
- // The degree of validation requested.
181
- Leniency leniency_;
182
-
183
- // The maximum number of retries after matching an invalid number.
184
- int max_tries_;
185
-
186
- // The iteration tristate.
187
- State state_;
188
-
189
- // The last successful match, NULL unless in State.READY.
190
- scoped_ptr<PhoneNumberMatch> last_match_;
191
-
192
- // The next index to start searching at. Undefined in State.DONE.
193
- int search_index_;
194
-
195
- DISALLOW_COPY_AND_ASSIGN(PhoneNumberMatcher);
196
- };
197
-
198
- } // namespace phonenumbers
199
- } // namespace i18n
200
-
201
- #endif // I18N_PHONENUMBERS_PHONENUMBERMATCHER_H_
@@ -1,2926 +0,0 @@
1
- // Copyright (C) 2009 The Libphonenumber Authors
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- // Author: Shaopeng Jia
16
- // Open-sourced by: Philippe Liard
17
-
18
- #include "phonenumbers/phonenumberutil.h"
19
-
20
- #include <string.h>
21
- #include <algorithm>
22
- #include <cctype>
23
- #include <iterator>
24
- #include <map>
25
- #include <utility>
26
- #include <vector>
27
-
28
- #include <google/protobuf/message_lite.h>
29
- #include <unicode/uchar.h>
30
- #include <unicode/utf8.h>
31
-
32
- #include "phonenumbers/asyoutypeformatter.h"
33
- #include "phonenumbers/base/basictypes.h"
34
- #include "phonenumbers/base/logging.h"
35
- #include "phonenumbers/base/memory/singleton.h"
36
- #include "phonenumbers/default_logger.h"
37
- #include "phonenumbers/encoding_utils.h"
38
- #include "phonenumbers/metadata.h"
39
- #include "phonenumbers/normalize_utf8.h"
40
- #include "phonenumbers/phonemetadata.pb.h"
41
- #include "phonenumbers/phonenumber.h"
42
- #include "phonenumbers/phonenumber.pb.h"
43
- #include "phonenumbers/regexp_adapter.h"
44
- #include "phonenumbers/regexp_cache.h"
45
- #include "phonenumbers/regexp_factory.h"
46
- #include "phonenumbers/region_code.h"
47
- #include "phonenumbers/stl_util.h"
48
- #include "phonenumbers/stringutil.h"
49
- #include "phonenumbers/utf/unicodetext.h"
50
- #include "phonenumbers/utf/utf.h"
51
-
52
- namespace i18n {
53
- namespace phonenumbers {
54
-
55
- using google::protobuf::RepeatedPtrField;
56
-
57
- // static constants
58
- const size_t PhoneNumberUtil::kMinLengthForNsn;
59
- const size_t PhoneNumberUtil::kMaxLengthForNsn;
60
- const size_t PhoneNumberUtil::kMaxLengthCountryCode;
61
- const int PhoneNumberUtil::kNanpaCountryCode;
62
-
63
- // static
64
- const char PhoneNumberUtil::kPlusChars[] = "+\xEF\xBC\x8B"; /* "++" */
65
- // To find out the unicode code-point of the characters below in vim, highlight
66
- // the character and type 'ga'. Note that the - is used to express ranges of
67
- // full-width punctuation below, as well as being present in the expression
68
- // itself. In emacs, you can use M-x unicode-what to query information about the
69
- // unicode character.
70
- // static
71
- const char PhoneNumberUtil::kValidPunctuation[] =
72
- /* "-x‐-―−ー--/  ­<U+200B><U+2060> ()()[].\\[\\]/~⁓∼" */
73
- "-x\xE2\x80\x90-\xE2\x80\x95\xE2\x88\x92\xE3\x83\xBC\xEF\xBC\x8D-\xEF\xBC"
74
- "\x8F \xC2\xA0\xC2\xAD\xE2\x80\x8B\xE2\x81\xA0\xE3\x80\x80()\xEF\xBC\x88"
75
- "\xEF\xBC\x89\xEF\xBC\xBB\xEF\xBC\xBD.\\[\\]/~\xE2\x81\x93\xE2\x88\xBC";
76
-
77
- // static
78
- const char PhoneNumberUtil::kCaptureUpToSecondNumberStart[] = "(.*)[\\\\/] *x";
79
-
80
- // static
81
- const char PhoneNumberUtil::kRegionCodeForNonGeoEntity[] = "001";
82
-
83
- namespace {
84
-
85
- // The prefix that needs to be inserted in front of a Colombian landline
86
- // number when dialed from a mobile phone in Colombia.
87
- const char kColombiaMobileToFixedLinePrefix[] = "3";
88
-
89
- // The kPlusSign signifies the international prefix.
90
- const char kPlusSign[] = "+";
91
-
92
- const char kStarSign[] = "*";
93
-
94
- const char kRfc3966ExtnPrefix[] = ";ext=";
95
- const char kRfc3966Prefix[] = "tel:";
96
- const char kRfc3966PhoneContext[] = ";phone-context=";
97
- const char kRfc3966IsdnSubaddress[] = ";isub=";
98
-
99
- const char kDigits[] = "\\p{Nd}";
100
- // We accept alpha characters in phone numbers, ASCII only. We store lower-case
101
- // here only since our regular expressions are case-insensitive.
102
- const char kValidAlpha[] = "a-z";
103
-
104
- // Default extension prefix to use when formatting. This will be put in front of
105
- // any extension component of the number, after the main national number is
106
- // formatted. For example, if you wish the default extension formatting to be "
107
- // extn: 3456", then you should specify " extn: " here as the default extension
108
- // prefix. This can be overridden by region-specific preferences.
109
- const char kDefaultExtnPrefix[] = " ext. ";
110
-
111
- // One-character symbols that can be used to indicate an extension.
112
- const char kSingleExtnSymbolsForMatching[] =
113
- "x\xEF\xBD\x98#\xEF\xBC\x83~\xEF\xBD\x9E";
114
-
115
- bool LoadCompiledInMetadata(PhoneMetadataCollection* metadata) {
116
- if (!metadata->ParseFromArray(metadata_get(), metadata_size())) {
117
- LOG(ERROR) << "Could not parse binary data.";
118
- return false;
119
- }
120
- return true;
121
- }
122
-
123
- // Returns a pointer to the description inside the metadata of the appropriate
124
- // type.
125
- const PhoneNumberDesc* GetNumberDescByType(
126
- const PhoneMetadata& metadata,
127
- PhoneNumberUtil::PhoneNumberType type) {
128
- switch (type) {
129
- case PhoneNumberUtil::PREMIUM_RATE:
130
- return &metadata.premium_rate();
131
- case PhoneNumberUtil::TOLL_FREE:
132
- return &metadata.toll_free();
133
- case PhoneNumberUtil::MOBILE:
134
- return &metadata.mobile();
135
- case PhoneNumberUtil::FIXED_LINE:
136
- case PhoneNumberUtil::FIXED_LINE_OR_MOBILE:
137
- return &metadata.fixed_line();
138
- case PhoneNumberUtil::SHARED_COST:
139
- return &metadata.shared_cost();
140
- case PhoneNumberUtil::VOIP:
141
- return &metadata.voip();
142
- case PhoneNumberUtil::PERSONAL_NUMBER:
143
- return &metadata.personal_number();
144
- case PhoneNumberUtil::PAGER:
145
- return &metadata.pager();
146
- case PhoneNumberUtil::UAN:
147
- return &metadata.uan();
148
- case PhoneNumberUtil::VOICEMAIL:
149
- return &metadata.voicemail();
150
- default:
151
- return &metadata.general_desc();
152
- }
153
- }
154
-
155
- // A helper function that is used by Format and FormatByPattern.
156
- void PrefixNumberWithCountryCallingCode(
157
- int country_calling_code,
158
- PhoneNumberUtil::PhoneNumberFormat number_format,
159
- string* formatted_number) {
160
- switch (number_format) {
161
- case PhoneNumberUtil::E164:
162
- formatted_number->insert(0, StrCat(kPlusSign, country_calling_code));
163
- return;
164
- case PhoneNumberUtil::INTERNATIONAL:
165
- formatted_number->insert(0, StrCat(kPlusSign, country_calling_code, " "));
166
- return;
167
- case PhoneNumberUtil::RFC3966:
168
- formatted_number->insert(0, StrCat(kRfc3966Prefix, kPlusSign,
169
- country_calling_code, "-"));
170
- return;
171
- case PhoneNumberUtil::NATIONAL:
172
- default:
173
- // Do nothing.
174
- return;
175
- }
176
- }
177
-
178
- // Returns true when one national number is the suffix of the other or both are
179
- // the same.
180
- bool IsNationalNumberSuffixOfTheOther(const PhoneNumber& first_number,
181
- const PhoneNumber& second_number) {
182
- const string& first_number_national_number =
183
- SimpleItoa(static_cast<uint64>(first_number.national_number()));
184
- const string& second_number_national_number =
185
- SimpleItoa(static_cast<uint64>(second_number.national_number()));
186
- // Note that HasSuffixString returns true if the numbers are equal.
187
- return HasSuffixString(first_number_national_number,
188
- second_number_national_number) ||
189
- HasSuffixString(second_number_national_number,
190
- first_number_national_number);
191
- }
192
-
193
- char32 ToUnicodeCodepoint(const char* unicode_char) {
194
- char32 codepoint;
195
- EncodingUtils::DecodeUTF8Char(unicode_char, &codepoint);
196
- return codepoint;
197
- }
198
-
199
- // Helper initialiser method to create the regular-expression pattern to match
200
- // extensions, allowing the one-codepoint extension symbols provided by
201
- // single_extn_symbols.
202
- // Note that there are currently three capturing groups for the extension itself
203
- // - if this number is changed, MaybeStripExtension needs to be updated.
204
- string CreateExtnPattern(const string& single_extn_symbols) {
205
- static const string capturing_extn_digits = StrCat("([", kDigits, "]{1,7})");
206
- // The first regular expression covers RFC 3966 format, where the extension is
207
- // added using ";ext=". The second more generic one starts with optional white
208
- // space and ends with an optional full stop (.), followed by zero or more
209
- // spaces/tabs and then the numbers themselves. The third one covers the
210
- // special case of American numbers where the extension is written with a hash
211
- // at the end, such as "- 503#".
212
- // Note that the only capturing groups should be around the digits that you
213
- // want to capture as part of the extension, or else parsing will fail!
214
- // Canonical-equivalence doesn't seem to be an option with RE2, so we allow
215
- // two options for representing the ó - the character itself, and one in the
216
- // unicode decomposed form with the combining acute accent.
217
- return (StrCat(
218
- kRfc3966ExtnPrefix, capturing_extn_digits, "|"
219
- /* "[  \\t,]*(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|single_extn_symbols|"
220
- "int|int|anexo)"
221
- "[:\\..]?[  \\t,-]*", capturing_extn_digits, "#?|" */
222
- "[ \xC2\xA0\\t,]*(?:e?xt(?:ensi(?:o\xCC\x81?|\xC3\xB3))?n?|"
223
- "(?:\xEF\xBD\x85)?\xEF\xBD\x98\xEF\xBD\x94(?:\xEF\xBD\x8E)?|"
224
- "[", single_extn_symbols, "]|int|"
225
- "\xEF\xBD\x89\xEF\xBD\x8E\xEF\xBD\x94|anexo)"
226
- "[:\\.\xEF\xBC\x8E]?[ \xC2\xA0\\t,-]*", capturing_extn_digits,
227
- "#?|[- ]+([", kDigits, "]{1,5})#"));
228
- }
229
-
230
- // Normalizes a string of characters representing a phone number by replacing
231
- // all characters found in the accompanying map with the values therein, and
232
- // stripping all other characters if remove_non_matches is true.
233
- // Parameters:
234
- // number - a pointer to a string of characters representing a phone number to
235
- // be normalized.
236
- // normalization_replacements - a mapping of characters to what they should be
237
- // replaced by in the normalized version of the phone number
238
- // remove_non_matches - indicates whether characters that are not able to be
239
- // replaced should be stripped from the number. If this is false, they will be
240
- // left unchanged in the number.
241
- void NormalizeHelper(const map<char32, char>& normalization_replacements,
242
- bool remove_non_matches,
243
- string* number) {
244
- DCHECK(number);
245
- UnicodeText number_as_unicode;
246
- number_as_unicode.PointToUTF8(number->data(), number->size());
247
- string normalized_number;
248
- char unicode_char[5];
249
- for (UnicodeText::const_iterator it = number_as_unicode.begin();
250
- it != number_as_unicode.end();
251
- ++it) {
252
- map<char32, char>::const_iterator found_glyph_pair =
253
- normalization_replacements.find(*it);
254
- if (found_glyph_pair != normalization_replacements.end()) {
255
- normalized_number.push_back(found_glyph_pair->second);
256
- } else if (!remove_non_matches) {
257
- // Find out how long this unicode char is so we can append it all.
258
- int char_len = it.get_utf8(unicode_char);
259
- normalized_number.append(unicode_char, char_len);
260
- }
261
- // If neither of the above are true, we remove this character.
262
- }
263
- number->assign(normalized_number);
264
- }
265
-
266
- PhoneNumberUtil::ValidationResult TestNumberLengthAgainstPattern(
267
- const RegExp& number_pattern, const string& number) {
268
- string extracted_number;
269
- if (number_pattern.FullMatch(number, &extracted_number)) {
270
- return PhoneNumberUtil::IS_POSSIBLE;
271
- }
272
- if (number_pattern.PartialMatch(number, &extracted_number)) {
273
- return PhoneNumberUtil::TOO_LONG;
274
- } else {
275
- return PhoneNumberUtil::TOO_SHORT;
276
- }
277
- }
278
-
279
- } // namespace
280
-
281
- void PhoneNumberUtil::SetLogger(Logger* logger) {
282
- logger_.reset(logger);
283
- Logger::set_logger_impl(logger_.get());
284
- }
285
-
286
- class PhoneNumberRegExpsAndMappings {
287
- private:
288
- void InitializeMapsAndSets() {
289
- diallable_char_mappings_.insert(std::make_pair('+', '+'));
290
- diallable_char_mappings_.insert(std::make_pair('*', '*'));
291
- // Here we insert all punctuation symbols that we wish to respect when
292
- // formatting alpha numbers, as they show the intended number groupings.
293
- all_plus_number_grouping_symbols_.insert(
294
- std::make_pair(ToUnicodeCodepoint("-"), '-'));
295
- all_plus_number_grouping_symbols_.insert(
296
- std::make_pair(ToUnicodeCodepoint("\xEF\xBC\x8D" /* "-" */), '-'));
297
- all_plus_number_grouping_symbols_.insert(
298
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x90" /* "‐" */), '-'));
299
- all_plus_number_grouping_symbols_.insert(
300
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x91" /* "‑" */), '-'));
301
- all_plus_number_grouping_symbols_.insert(
302
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x92" /* "‒" */), '-'));
303
- all_plus_number_grouping_symbols_.insert(
304
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x93" /* "–" */), '-'));
305
- all_plus_number_grouping_symbols_.insert(
306
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x94" /* "—" */), '-'));
307
- all_plus_number_grouping_symbols_.insert(
308
- std::make_pair(ToUnicodeCodepoint("\xE2\x80\x95" /* "―" */), '-'));
309
- all_plus_number_grouping_symbols_.insert(
310
- std::make_pair(ToUnicodeCodepoint("\xE2\x88\x92" /* "−" */), '-'));
311
- all_plus_number_grouping_symbols_.insert(
312
- std::make_pair(ToUnicodeCodepoint("/"), '/'));
313
- all_plus_number_grouping_symbols_.insert(
314
- std::make_pair(ToUnicodeCodepoint("\xEF\xBC\x8F" /* "/" */), '/'));
315
- all_plus_number_grouping_symbols_.insert(
316
- std::make_pair(ToUnicodeCodepoint(" "), ' '));
317
- all_plus_number_grouping_symbols_.insert(
318
- std::make_pair(ToUnicodeCodepoint("\xE3\x80\x80" /* " " */), ' '));
319
- all_plus_number_grouping_symbols_.insert(
320
- std::make_pair(ToUnicodeCodepoint("\xE2\x81\xA0"), ' '));
321
- all_plus_number_grouping_symbols_.insert(
322
- std::make_pair(ToUnicodeCodepoint("."), '.'));
323
- all_plus_number_grouping_symbols_.insert(
324
- std::make_pair(ToUnicodeCodepoint("\xEF\xBC\x8E" /* "." */), '.'));
325
- // Only the upper-case letters are added here - the lower-case versions are
326
- // added programmatically.
327
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("A"), '2'));
328
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("B"), '2'));
329
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("C"), '2'));
330
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("D"), '3'));
331
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("E"), '3'));
332
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("F"), '3'));
333
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("G"), '4'));
334
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("H"), '4'));
335
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("I"), '4'));
336
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("J"), '5'));
337
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("K"), '5'));
338
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("L"), '5'));
339
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("M"), '6'));
340
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("N"), '6'));
341
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("O"), '6'));
342
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("P"), '7'));
343
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("Q"), '7'));
344
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("R"), '7'));
345
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("S"), '7'));
346
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("T"), '8'));
347
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("U"), '8'));
348
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("V"), '8'));
349
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("W"), '9'));
350
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("X"), '9'));
351
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("Y"), '9'));
352
- alpha_mappings_.insert(std::make_pair(ToUnicodeCodepoint("Z"), '9'));
353
- map<char32, char> lower_case_mappings;
354
- map<char32, char> alpha_letters;
355
- for (map<char32, char>::const_iterator it = alpha_mappings_.begin();
356
- it != alpha_mappings_.end();
357
- ++it) {
358
- // Convert all the upper-case ASCII letters to lower-case.
359
- if (it->first < 128) {
360
- char letter_as_upper = static_cast<char>(it->first);
361
- char32 letter_as_lower = static_cast<char32>(tolower(letter_as_upper));
362
- lower_case_mappings.insert(std::make_pair(letter_as_lower, it->second));
363
- // Add the letters in both variants to the alpha_letters map. This just
364
- // pairs each letter with its upper-case representation so that it can
365
- // be retained when normalising alpha numbers.
366
- alpha_letters.insert(std::make_pair(letter_as_lower, letter_as_upper));
367
- alpha_letters.insert(std::make_pair(it->first, letter_as_upper));
368
- }
369
- }
370
- // In the Java version we don't insert the lower-case mappings in the map,
371
- // because we convert to upper case on the fly. Doing this here would
372
- // involve pulling in all of ICU, which we don't want to do if we don't have
373
- // to.
374
- alpha_mappings_.insert(lower_case_mappings.begin(),
375
- lower_case_mappings.end());
376
- alpha_phone_mappings_.insert(alpha_mappings_.begin(),
377
- alpha_mappings_.end());
378
- all_plus_number_grouping_symbols_.insert(alpha_letters.begin(),
379
- alpha_letters.end());
380
- // Add the ASCII digits so that they don't get deleted by NormalizeHelper().
381
- for (char c = '0'; c <= '9'; ++c) {
382
- diallable_char_mappings_.insert(std::make_pair(c, c));
383
- alpha_phone_mappings_.insert(std::make_pair(c, c));
384
- all_plus_number_grouping_symbols_.insert(std::make_pair(c, c));
385
- }
386
-
387
- mobile_token_mappings_.insert(std::make_pair(52, '1'));
388
- mobile_token_mappings_.insert(std::make_pair(54, '9'));
389
- geo_mobile_countries_without_mobile_area_codes_.insert(86); // China
390
- geo_mobile_countries_.insert(52); // Mexico
391
- geo_mobile_countries_.insert(54); // Argentina
392
- geo_mobile_countries_.insert(55); // Brazil
393
- // Indonesia: some prefixes only (fixed CMDA wireless)
394
- geo_mobile_countries_.insert(62);
395
- geo_mobile_countries_.insert(
396
- geo_mobile_countries_without_mobile_area_codes_.begin(),
397
- geo_mobile_countries_without_mobile_area_codes_.end());
398
- }
399
-
400
- // Small string helpers since StrCat has a maximum number of arguments. These
401
- // are both used to build valid_phone_number_.
402
- const string punctuation_and_star_sign_;
403
- const string min_length_phone_number_pattern_;
404
-
405
- // Regular expression of viable phone numbers. This is location independent.
406
- // Checks we have at least three leading digits, and only valid punctuation,
407
- // alpha characters and digits in the phone number. Does not include extension
408
- // data. The symbol 'x' is allowed here as valid punctuation since it is often
409
- // used as a placeholder for carrier codes, for example in Brazilian phone
410
- // numbers. We also allow multiple plus-signs at the start.
411
- // Corresponds to the following:
412
- // [digits]{minLengthNsn}|
413
- // plus_sign*(([punctuation]|[star])*[digits]){3,}
414
- // ([punctuation]|[star]|[digits]|[alpha])*
415
- //
416
- // The first reg-ex is to allow short numbers (two digits long) to be parsed
417
- // if they are entered as "15" etc, but only if there is no punctuation in
418
- // them. The second expression restricts the number of digits to three or
419
- // more, but then allows them to be in international form, and to have
420
- // alpha-characters and punctuation.
421
- const string valid_phone_number_;
422
-
423
- // Regexp of all possible ways to write extensions, for use when parsing. This
424
- // will be run as a case-insensitive regexp match. Wide character versions are
425
- // also provided after each ASCII version.
426
- // For parsing, we are slightly more lenient in our interpretation than for
427
- // matching. Here we allow a "comma" as a possible extension indicator. When
428
- // matching, this is hardly ever used to indicate this.
429
- const string extn_patterns_for_parsing_;
430
-
431
- public:
432
- scoped_ptr<const AbstractRegExpFactory> regexp_factory_;
433
- scoped_ptr<RegExpCache> regexp_cache_;
434
-
435
- // A map that contains characters that are essential when dialling. That means
436
- // any of the characters in this map must not be removed from a number when
437
- // dialing, otherwise the call will not reach the intended destination.
438
- map<char32, char> diallable_char_mappings_;
439
- // These mappings map a character (key) to a specific digit that should
440
- // replace it for normalization purposes.
441
- map<char32, char> alpha_mappings_;
442
- // For performance reasons, store a map of combining alpha_mappings with ASCII
443
- // digits.
444
- map<char32, char> alpha_phone_mappings_;
445
-
446
- // Separate map of all symbols that we wish to retain when formatting alpha
447
- // numbers. This includes digits, ascii letters and number grouping symbols
448
- // such as "-" and " ".
449
- map<char32, char> all_plus_number_grouping_symbols_;
450
-
451
- // Map of country calling codes that use a mobile token before the area code.
452
- // One example of when this is relevant is when determining the length of the
453
- // national destination code, which should be the length of the area code plus
454
- // the length of the mobile token.
455
- map<int, char> mobile_token_mappings_;
456
-
457
- // Set of country codes that have geographically assigned mobile numbers (see
458
- // geo_mobile_countries_ below) which are not based on *area codes*. For
459
- // example, in China mobile numbers start with a carrier indicator, and beyond
460
- // that are geographically assigned: this carrier indicator is not considered
461
- // to be an area code.
462
- set<int> geo_mobile_countries_without_mobile_area_codes_;
463
-
464
- // Set of country calling codes that have geographically assigned mobile
465
- // numbers. This may not be complete; we add calling codes case by case, as we
466
- // find geographical mobile numbers or hear from user reports.
467
- set<int> geo_mobile_countries_;
468
-
469
- // Pattern that makes it easy to distinguish whether a region has a unique
470
- // international dialing prefix or not. If a region has a unique international
471
- // prefix (e.g. 011 in USA), it will be represented as a string that contains
472
- // a sequence of ASCII digits. If there are multiple available international
473
- // prefixes in a region, they will be represented as a regex string that
474
- // always contains character(s) other than ASCII digits.
475
- // Note this regex also includes tilde, which signals waiting for the tone.
476
- scoped_ptr<const RegExp> unique_international_prefix_;
477
-
478
- scoped_ptr<const RegExp> digits_pattern_;
479
- scoped_ptr<const RegExp> capturing_digit_pattern_;
480
- scoped_ptr<const RegExp> capturing_ascii_digits_pattern_;
481
-
482
- // Regular expression of acceptable characters that may start a phone number
483
- // for the purposes of parsing. This allows us to strip away meaningless
484
- // prefixes to phone numbers that may be mistakenly given to us. This consists
485
- // of digits, the plus symbol and arabic-indic digits. This does not contain
486
- // alpha characters, although they may be used later in the number. It also
487
- // does not include other punctuation, as this will be stripped later during
488
- // parsing and is of no information value when parsing a number. The string
489
- // starting with this valid character is captured.
490
- // This corresponds to VALID_START_CHAR in the java version.
491
- scoped_ptr<const RegExp> valid_start_char_pattern_;
492
-
493
- // Regular expression of valid characters before a marker that might indicate
494
- // a second number.
495
- scoped_ptr<const RegExp> capture_up_to_second_number_start_pattern_;
496
-
497
- // Regular expression of trailing characters that we want to remove. We remove
498
- // all characters that are not alpha or numerical characters. The hash
499
- // character is retained here, as it may signify the previous block was an
500
- // extension. Note the capturing block at the start to capture the rest of the
501
- // number if this was a match.
502
- // This corresponds to UNWANTED_END_CHAR_PATTERN in the java version.
503
- scoped_ptr<const RegExp> unwanted_end_char_pattern_;
504
-
505
- // Regular expression of groups of valid punctuation characters.
506
- scoped_ptr<const RegExp> separator_pattern_;
507
-
508
- // Regexp of all possible ways to write extensions, for use when finding phone
509
- // numbers in text. This will be run as a case-insensitive regexp match. Wide
510
- // character versions are also provided after each ASCII version.
511
- const string extn_patterns_for_matching_;
512
-
513
- // Regexp of all known extension prefixes used by different regions followed
514
- // by 1 or more valid digits, for use when parsing.
515
- scoped_ptr<const RegExp> extn_pattern_;
516
-
517
- // We append optionally the extension pattern to the end here, as a valid
518
- // phone number may have an extension prefix appended, followed by 1 or more
519
- // digits.
520
- scoped_ptr<const RegExp> valid_phone_number_pattern_;
521
-
522
- // We use this pattern to check if the phone number has at least three letters
523
- // in it - if so, then we treat it as a number where some phone-number digits
524
- // are represented by letters.
525
- scoped_ptr<const RegExp> valid_alpha_phone_pattern_;
526
-
527
- scoped_ptr<const RegExp> first_group_capturing_pattern_;
528
-
529
- scoped_ptr<const RegExp> carrier_code_pattern_;
530
-
531
- scoped_ptr<const RegExp> plus_chars_pattern_;
532
-
533
- PhoneNumberRegExpsAndMappings()
534
- : punctuation_and_star_sign_(StrCat(PhoneNumberUtil::kValidPunctuation,
535
- kStarSign)),
536
- min_length_phone_number_pattern_(
537
- StrCat(kDigits, "{", PhoneNumberUtil::kMinLengthForNsn, "}")),
538
- valid_phone_number_(
539
- StrCat(min_length_phone_number_pattern_, "|[",
540
- PhoneNumberUtil::kPlusChars, "]*(?:[",
541
- punctuation_and_star_sign_, "]*",
542
- kDigits, "){3,}[", kValidAlpha,
543
- punctuation_and_star_sign_, kDigits,
544
- "]*")),
545
- extn_patterns_for_parsing_(
546
- CreateExtnPattern(StrCat(",", kSingleExtnSymbolsForMatching))),
547
- regexp_factory_(new RegExpFactory()),
548
- regexp_cache_(new RegExpCache(*regexp_factory_.get(), 128)),
549
- diallable_char_mappings_(),
550
- alpha_mappings_(),
551
- alpha_phone_mappings_(),
552
- all_plus_number_grouping_symbols_(),
553
- mobile_token_mappings_(),
554
- geo_mobile_countries_without_mobile_area_codes_(),
555
- geo_mobile_countries_(),
556
- unique_international_prefix_(regexp_factory_->CreateRegExp(
557
- /* "[\\d]+(?:[~⁓∼~][\\d]+)?" */
558
- "[\\d]+(?:[~\xE2\x81\x93\xE2\x88\xBC\xEF\xBD\x9E][\\d]+)?")),
559
- digits_pattern_(
560
- regexp_factory_->CreateRegExp(StrCat("[", kDigits, "]*"))),
561
- capturing_digit_pattern_(
562
- regexp_factory_->CreateRegExp(StrCat("([", kDigits, "])"))),
563
- capturing_ascii_digits_pattern_(
564
- regexp_factory_->CreateRegExp("(\\d+)")),
565
- valid_start_char_pattern_(regexp_factory_->CreateRegExp(
566
- StrCat("[", PhoneNumberUtil::kPlusChars, kDigits, "]"))),
567
- capture_up_to_second_number_start_pattern_(
568
- regexp_factory_->CreateRegExp(
569
- PhoneNumberUtil::kCaptureUpToSecondNumberStart)),
570
- unwanted_end_char_pattern_(
571
- regexp_factory_->CreateRegExp("[^\\p{N}\\p{L}#]")),
572
- separator_pattern_(
573
- regexp_factory_->CreateRegExp(
574
- StrCat("[", PhoneNumberUtil::kValidPunctuation, "]+"))),
575
- extn_patterns_for_matching_(
576
- CreateExtnPattern(kSingleExtnSymbolsForMatching)),
577
- extn_pattern_(regexp_factory_->CreateRegExp(
578
- StrCat("(?i)(?:", extn_patterns_for_parsing_, ")$"))),
579
- valid_phone_number_pattern_(regexp_factory_->CreateRegExp(
580
- StrCat("(?i)", valid_phone_number_,
581
- "(?:", extn_patterns_for_parsing_, ")?"))),
582
- valid_alpha_phone_pattern_(regexp_factory_->CreateRegExp(
583
- StrCat("(?i)(?:.*?[", kValidAlpha, "]){3}"))),
584
- // The first_group_capturing_pattern was originally set to $1 but there
585
- // are some countries for which the first group is not used in the
586
- // national pattern (e.g. Argentina) so the $1 group does not match
587
- // correctly. Therefore, we use \d, so that the first group actually
588
- // used in the pattern will be matched.
589
- first_group_capturing_pattern_(
590
- regexp_factory_->CreateRegExp("(\\$\\d)")),
591
- carrier_code_pattern_(regexp_factory_->CreateRegExp("\\$CC")),
592
- plus_chars_pattern_(
593
- regexp_factory_->CreateRegExp(
594
- StrCat("[", PhoneNumberUtil::kPlusChars, "]+"))) {
595
- InitializeMapsAndSets();
596
- }
597
-
598
- private:
599
- DISALLOW_COPY_AND_ASSIGN(PhoneNumberRegExpsAndMappings);
600
- };
601
-
602
- // Private constructor. Also takes care of initialisation.
603
- PhoneNumberUtil::PhoneNumberUtil()
604
- : logger_(Logger::set_logger_impl(new NullLogger())),
605
- reg_exps_(new PhoneNumberRegExpsAndMappings),
606
- country_calling_code_to_region_code_map_(new vector<IntRegionsPair>()),
607
- nanpa_regions_(new set<string>()),
608
- region_to_metadata_map_(new map<string, PhoneMetadata>()),
609
- country_code_to_non_geographical_metadata_map_(
610
- new map<int, PhoneMetadata>) {
611
- Logger::set_logger_impl(logger_.get());
612
- // TODO: Update the java version to put the contents of the init
613
- // method inside the constructor as well to keep both in sync.
614
- PhoneMetadataCollection metadata_collection;
615
- if (!LoadCompiledInMetadata(&metadata_collection)) {
616
- LOG(DFATAL) << "Could not parse compiled-in metadata.";
617
- return;
618
- }
619
- // Storing data in a temporary map to make it easier to find other regions
620
- // that share a country calling code when inserting data.
621
- map<int, list<string>* > country_calling_code_to_region_map;
622
- for (RepeatedPtrField<PhoneMetadata>::const_iterator it =
623
- metadata_collection.metadata().begin();
624
- it != metadata_collection.metadata().end();
625
- ++it) {
626
- const string& region_code = it->id();
627
- if (region_code == RegionCode::GetUnknown()) {
628
- continue;
629
- }
630
-
631
- int country_calling_code = it->country_code();
632
- if (kRegionCodeForNonGeoEntity == region_code) {
633
- country_code_to_non_geographical_metadata_map_->insert(
634
- std::make_pair(country_calling_code, *it));
635
- } else {
636
- region_to_metadata_map_->insert(std::make_pair(region_code, *it));
637
- }
638
- map<int, list<string>* >::iterator calling_code_in_map =
639
- country_calling_code_to_region_map.find(country_calling_code);
640
- if (calling_code_in_map != country_calling_code_to_region_map.end()) {
641
- if (it->main_country_for_code()) {
642
- calling_code_in_map->second->push_front(region_code);
643
- } else {
644
- calling_code_in_map->second->push_back(region_code);
645
- }
646
- } else {
647
- // For most country calling codes, there will be only one region code.
648
- list<string>* list_with_region_code = new list<string>();
649
- list_with_region_code->push_back(region_code);
650
- country_calling_code_to_region_map.insert(
651
- std::make_pair(country_calling_code, list_with_region_code));
652
- }
653
- if (country_calling_code == kNanpaCountryCode) {
654
- nanpa_regions_->insert(region_code);
655
- }
656
- }
657
-
658
- country_calling_code_to_region_code_map_->insert(
659
- country_calling_code_to_region_code_map_->begin(),
660
- country_calling_code_to_region_map.begin(),
661
- country_calling_code_to_region_map.end());
662
- // Sort all the pairs in ascending order according to country calling code.
663
- std::sort(country_calling_code_to_region_code_map_->begin(),
664
- country_calling_code_to_region_code_map_->end(),
665
- OrderByFirst());
666
- }
667
-
668
- PhoneNumberUtil::~PhoneNumberUtil() {
669
- STLDeleteContainerPairSecondPointers(
670
- country_calling_code_to_region_code_map_->begin(),
671
- country_calling_code_to_region_code_map_->end());
672
- }
673
-
674
- void PhoneNumberUtil::GetSupportedRegions(set<string>* regions) const {
675
- DCHECK(regions);
676
- for (map<string, PhoneMetadata>::const_iterator it =
677
- region_to_metadata_map_->begin(); it != region_to_metadata_map_->end();
678
- ++it) {
679
- regions->insert(it->first);
680
- }
681
- }
682
-
683
- void PhoneNumberUtil::GetSupportedGlobalNetworkCallingCodes(
684
- set<int>* calling_codes) const {
685
- DCHECK(calling_codes);
686
- for (map<int, PhoneMetadata>::const_iterator it =
687
- country_code_to_non_geographical_metadata_map_->begin();
688
- it != country_code_to_non_geographical_metadata_map_->end(); ++it) {
689
- calling_codes->insert(it->first);
690
- }
691
- }
692
-
693
- // Public wrapper function to get a PhoneNumberUtil instance with the default
694
- // metadata file.
695
- // static
696
- PhoneNumberUtil* PhoneNumberUtil::GetInstance() {
697
- return Singleton<PhoneNumberUtil>::GetInstance();
698
- }
699
-
700
- const string& PhoneNumberUtil::GetExtnPatternsForMatching() const {
701
- return reg_exps_->extn_patterns_for_matching_;
702
- }
703
-
704
- bool PhoneNumberUtil::StartsWithPlusCharsPattern(const string& number)
705
- const {
706
- const scoped_ptr<RegExpInput> number_string_piece(
707
- reg_exps_->regexp_factory_->CreateInput(number));
708
- return reg_exps_->plus_chars_pattern_->Consume(number_string_piece.get());
709
- }
710
-
711
- bool PhoneNumberUtil::ContainsOnlyValidDigits(const string& s) const {
712
- return reg_exps_->digits_pattern_->FullMatch(s);
713
- }
714
-
715
- void PhoneNumberUtil::TrimUnwantedEndChars(string* number) const {
716
- DCHECK(number);
717
- UnicodeText number_as_unicode;
718
- number_as_unicode.PointToUTF8(number->data(), number->size());
719
- char current_char[5];
720
- int len;
721
- UnicodeText::const_reverse_iterator reverse_it(number_as_unicode.end());
722
- for (; reverse_it.base() != number_as_unicode.begin(); ++reverse_it) {
723
- len = reverse_it.get_utf8(current_char);
724
- current_char[len] = '\0';
725
- if (!reg_exps_->unwanted_end_char_pattern_->FullMatch(current_char)) {
726
- break;
727
- }
728
- }
729
-
730
- number->assign(UnicodeText::UTF8Substring(number_as_unicode.begin(),
731
- reverse_it.base()));
732
- }
733
-
734
- bool PhoneNumberUtil::IsFormatEligibleForAsYouTypeFormatter(
735
- const string& format) const {
736
- // A pattern that is used to determine if a numberFormat under
737
- // availableFormats is eligible to be used by the AYTF. It is eligible when
738
- // the format element under numberFormat contains groups of the dollar sign
739
- // followed by a single digit, separated by valid phone number punctuation.
740
- // This prevents invalid punctuation (such as the star sign in Israeli star
741
- // numbers) getting into the output of the AYTF.
742
- const RegExp& eligible_format_pattern = reg_exps_->regexp_cache_->GetRegExp(
743
- StrCat("[", kValidPunctuation, "]*", "(\\$\\d", "[",
744
- kValidPunctuation, "]*)+"));
745
- return eligible_format_pattern.FullMatch(format);
746
- }
747
-
748
- bool PhoneNumberUtil::FormattingRuleHasFirstGroupOnly(
749
- const string& national_prefix_formatting_rule) const {
750
- // A pattern that is used to determine if the national prefix formatting rule
751
- // has the first group only, i.e., does not start with the national prefix.
752
- // Note that the pattern explicitly allows for unbalanced parentheses.
753
- const RegExp& first_group_only_prefix_pattern =
754
- reg_exps_->regexp_cache_->GetRegExp("\\(?\\$1\\)?");
755
- return national_prefix_formatting_rule.empty() ||
756
- first_group_only_prefix_pattern.FullMatch(
757
- national_prefix_formatting_rule);
758
- }
759
-
760
- void PhoneNumberUtil::GetNddPrefixForRegion(const string& region_code,
761
- bool strip_non_digits,
762
- string* national_prefix) const {
763
- DCHECK(national_prefix);
764
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
765
- if (!metadata) {
766
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
767
- << ") provided.";
768
- return;
769
- }
770
- national_prefix->assign(metadata->national_prefix());
771
- if (strip_non_digits) {
772
- // Note: if any other non-numeric symbols are ever used in national
773
- // prefixes, these would have to be removed here as well.
774
- strrmm(national_prefix, "~");
775
- }
776
- }
777
-
778
- bool PhoneNumberUtil::IsValidRegionCode(const string& region_code) const {
779
- return (region_to_metadata_map_->find(region_code) !=
780
- region_to_metadata_map_->end());
781
- }
782
-
783
- bool PhoneNumberUtil::HasValidCountryCallingCode(
784
- int country_calling_code) const {
785
- // Create an IntRegionsPair with the country_code passed in, and use it to
786
- // locate the pair with the same country_code in the sorted vector.
787
- IntRegionsPair target_pair;
788
- target_pair.first = country_calling_code;
789
- return (binary_search(country_calling_code_to_region_code_map_->begin(),
790
- country_calling_code_to_region_code_map_->end(),
791
- target_pair, OrderByFirst()));
792
- }
793
-
794
- // Returns a pointer to the phone metadata for the appropriate region or NULL
795
- // if the region code is invalid or unknown.
796
- const PhoneMetadata* PhoneNumberUtil::GetMetadataForRegion(
797
- const string& region_code) const {
798
- map<string, PhoneMetadata>::const_iterator it =
799
- region_to_metadata_map_->find(region_code);
800
- if (it != region_to_metadata_map_->end()) {
801
- return &it->second;
802
- }
803
- return NULL;
804
- }
805
-
806
- const PhoneMetadata* PhoneNumberUtil::GetMetadataForNonGeographicalRegion(
807
- int country_calling_code) const {
808
- map<int, PhoneMetadata>::const_iterator it =
809
- country_code_to_non_geographical_metadata_map_->find(
810
- country_calling_code);
811
- if (it != country_code_to_non_geographical_metadata_map_->end()) {
812
- return &it->second;
813
- }
814
- return NULL;
815
- }
816
-
817
- void PhoneNumberUtil::Format(const PhoneNumber& number,
818
- PhoneNumberFormat number_format,
819
- string* formatted_number) const {
820
- DCHECK(formatted_number);
821
- if (number.national_number() == 0) {
822
- const string& raw_input = number.raw_input();
823
- if (!raw_input.empty()) {
824
- // Unparseable numbers that kept their raw input just use that.
825
- // This is the only case where a number can be formatted as E164 without a
826
- // leading '+' symbol (but the original number wasn't parseable anyway).
827
- // TODO: Consider removing the 'if' above so that unparseable
828
- // strings without raw input format to the empty string instead of "+00".
829
- formatted_number->assign(raw_input);
830
- return;
831
- }
832
- }
833
- int country_calling_code = number.country_code();
834
- string national_significant_number;
835
- GetNationalSignificantNumber(number, &national_significant_number);
836
- if (number_format == E164) {
837
- // Early exit for E164 case (even if the country calling code is invalid)
838
- // since no formatting of the national number needs to be applied.
839
- // Extensions are not formatted.
840
- formatted_number->assign(national_significant_number);
841
- PrefixNumberWithCountryCallingCode(country_calling_code, E164,
842
- formatted_number);
843
- return;
844
- }
845
- if (!HasValidCountryCallingCode(country_calling_code)) {
846
- formatted_number->assign(national_significant_number);
847
- return;
848
- }
849
- // Note here that all NANPA formatting rules are contained by US, so we use
850
- // that to format NANPA numbers. The same applies to Russian Fed regions -
851
- // rules are contained by Russia. French Indian Ocean country rules are
852
- // contained by Réunion.
853
- string region_code;
854
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
855
- // Metadata cannot be NULL because the country calling code is valid (which
856
- // means that the region code cannot be ZZ and must be one of our supported
857
- // region codes).
858
- const PhoneMetadata* metadata =
859
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
860
- FormatNsn(national_significant_number, *metadata, number_format,
861
- formatted_number);
862
- MaybeAppendFormattedExtension(number, *metadata, number_format,
863
- formatted_number);
864
- PrefixNumberWithCountryCallingCode(country_calling_code, number_format,
865
- formatted_number);
866
- }
867
-
868
- void PhoneNumberUtil::FormatByPattern(
869
- const PhoneNumber& number,
870
- PhoneNumberFormat number_format,
871
- const RepeatedPtrField<NumberFormat>& user_defined_formats,
872
- string* formatted_number) const {
873
- DCHECK(formatted_number);
874
- int country_calling_code = number.country_code();
875
- // Note GetRegionCodeForCountryCode() is used because formatting information
876
- // for regions which share a country calling code is contained by only one
877
- // region for performance reasons. For example, for NANPA regions it will be
878
- // contained in the metadata for US.
879
- string national_significant_number;
880
- GetNationalSignificantNumber(number, &national_significant_number);
881
- if (!HasValidCountryCallingCode(country_calling_code)) {
882
- formatted_number->assign(national_significant_number);
883
- return;
884
- }
885
- string region_code;
886
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
887
- // Metadata cannot be NULL because the country calling code is valid.
888
- const PhoneMetadata* metadata =
889
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
890
- const NumberFormat* formatting_pattern =
891
- ChooseFormattingPatternForNumber(user_defined_formats,
892
- national_significant_number);
893
- if (!formatting_pattern) {
894
- // If no pattern above is matched, we format the number as a whole.
895
- formatted_number->assign(national_significant_number);
896
- } else {
897
- NumberFormat num_format_copy;
898
- // Before we do a replacement of the national prefix pattern $NP with the
899
- // national prefix, we need to copy the rule so that subsequent replacements
900
- // for different numbers have the appropriate national prefix.
901
- num_format_copy.MergeFrom(*formatting_pattern);
902
- string national_prefix_formatting_rule(
903
- formatting_pattern->national_prefix_formatting_rule());
904
- if (!national_prefix_formatting_rule.empty()) {
905
- const string& national_prefix = metadata->national_prefix();
906
- if (!national_prefix.empty()) {
907
- // Replace $NP with national prefix and $FG with the first group ($1).
908
- GlobalReplaceSubstring("$NP", national_prefix,
909
- &national_prefix_formatting_rule);
910
- GlobalReplaceSubstring("$FG", "$1",
911
- &national_prefix_formatting_rule);
912
- num_format_copy.set_national_prefix_formatting_rule(
913
- national_prefix_formatting_rule);
914
- } else {
915
- // We don't want to have a rule for how to format the national prefix if
916
- // there isn't one.
917
- num_format_copy.clear_national_prefix_formatting_rule();
918
- }
919
- }
920
- FormatNsnUsingPattern(national_significant_number, num_format_copy,
921
- number_format, formatted_number);
922
- }
923
- MaybeAppendFormattedExtension(number, *metadata, NATIONAL, formatted_number);
924
- PrefixNumberWithCountryCallingCode(country_calling_code, number_format,
925
- formatted_number);
926
- }
927
-
928
- void PhoneNumberUtil::FormatNationalNumberWithCarrierCode(
929
- const PhoneNumber& number,
930
- const string& carrier_code,
931
- string* formatted_number) const {
932
- int country_calling_code = number.country_code();
933
- string national_significant_number;
934
- GetNationalSignificantNumber(number, &national_significant_number);
935
- if (!HasValidCountryCallingCode(country_calling_code)) {
936
- formatted_number->assign(national_significant_number);
937
- return;
938
- }
939
-
940
- // Note GetRegionCodeForCountryCode() is used because formatting information
941
- // for regions which share a country calling code is contained by only one
942
- // region for performance reasons. For example, for NANPA regions it will be
943
- // contained in the metadata for US.
944
- string region_code;
945
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
946
- // Metadata cannot be NULL because the country calling code is valid.
947
- const PhoneMetadata* metadata =
948
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
949
- FormatNsnWithCarrier(national_significant_number, *metadata, NATIONAL,
950
- carrier_code, formatted_number);
951
- MaybeAppendFormattedExtension(number, *metadata, NATIONAL, formatted_number);
952
- PrefixNumberWithCountryCallingCode(country_calling_code, NATIONAL,
953
- formatted_number);
954
- }
955
-
956
- const PhoneMetadata* PhoneNumberUtil::GetMetadataForRegionOrCallingCode(
957
- int country_calling_code, const string& region_code) const {
958
- return kRegionCodeForNonGeoEntity == region_code
959
- ? GetMetadataForNonGeographicalRegion(country_calling_code)
960
- : GetMetadataForRegion(region_code);
961
- }
962
-
963
- void PhoneNumberUtil::FormatNationalNumberWithPreferredCarrierCode(
964
- const PhoneNumber& number,
965
- const string& fallback_carrier_code,
966
- string* formatted_number) const {
967
- FormatNationalNumberWithCarrierCode(
968
- number,
969
- number.has_preferred_domestic_carrier_code()
970
- ? number.preferred_domestic_carrier_code()
971
- : fallback_carrier_code,
972
- formatted_number);
973
- }
974
-
975
- void PhoneNumberUtil::FormatNumberForMobileDialing(
976
- const PhoneNumber& number,
977
- const string& calling_from,
978
- bool with_formatting,
979
- string* formatted_number) const {
980
- int country_calling_code = number.country_code();
981
- if (!HasValidCountryCallingCode(country_calling_code)) {
982
- formatted_number->assign(number.has_raw_input() ? number.raw_input() : "");
983
- return;
984
- }
985
-
986
- formatted_number->assign("");
987
- // Clear the extension, as that part cannot normally be dialed together with
988
- // the main number.
989
- PhoneNumber number_no_extension(number);
990
- number_no_extension.clear_extension();
991
- string region_code;
992
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
993
- PhoneNumberType number_type = GetNumberType(number_no_extension);
994
- bool is_valid_number = (number_type != UNKNOWN);
995
- if (calling_from == region_code) {
996
- bool is_fixed_line_or_mobile =
997
- (number_type == FIXED_LINE) || (number_type == MOBILE) ||
998
- (number_type == FIXED_LINE_OR_MOBILE);
999
- // Carrier codes may be needed in some countries. We handle this here.
1000
- if ((region_code == "CO") && (number_type == FIXED_LINE)) {
1001
- FormatNationalNumberWithCarrierCode(
1002
- number_no_extension, kColombiaMobileToFixedLinePrefix,
1003
- formatted_number);
1004
- } else if ((region_code == "BR") && (is_fixed_line_or_mobile)) {
1005
- if (number_no_extension.has_preferred_domestic_carrier_code()) {
1006
- FormatNationalNumberWithPreferredCarrierCode(number_no_extension, "",
1007
- formatted_number);
1008
- } else {
1009
- // Brazilian fixed line and mobile numbers need to be dialed with a
1010
- // carrier code when called within Brazil. Without that, most of the
1011
- // carriers won't connect the call. Because of that, we return an empty
1012
- // string here.
1013
- formatted_number->assign("");
1014
- }
1015
- } else if (is_valid_number && region_code == "HU") {
1016
- // The national format for HU numbers doesn't contain the national prefix,
1017
- // because that is how numbers are normally written down. However, the
1018
- // national prefix is obligatory when dialing from a mobile phone, except
1019
- // for short numbers. As a result, we add it back here if it is a valid
1020
- // regular length phone number.
1021
- Format(number_no_extension, NATIONAL, formatted_number);
1022
- string hu_national_prefix;
1023
- GetNddPrefixForRegion(region_code, true /* strip non-digits */,
1024
- &hu_national_prefix);
1025
- formatted_number->assign(
1026
- StrCat(hu_national_prefix, " ", *formatted_number));
1027
- } else if (country_calling_code == kNanpaCountryCode) {
1028
- // For NANPA countries, we output international format for numbers that
1029
- // can be dialed internationally, since that always works, except for
1030
- // numbers which might potentially be short numbers, which are always
1031
- // dialled in national format.
1032
- const PhoneMetadata* region_metadata = GetMetadataForRegion(calling_from);
1033
- string national_number;
1034
- GetNationalSignificantNumber(number_no_extension, &national_number);
1035
- if (CanBeInternationallyDialled(number_no_extension) &&
1036
- !IsShorterThanPossibleNormalNumber(region_metadata,
1037
- national_number)) {
1038
- Format(number_no_extension, INTERNATIONAL, formatted_number);
1039
- } else {
1040
- Format(number_no_extension, NATIONAL, formatted_number);
1041
- }
1042
- } else {
1043
- // For non-geographical countries, and Mexican and Chilean fixed line and
1044
- // mobile numbers, we output international format for numbers that can be
1045
- // dialed internationally as that always works.
1046
- if ((region_code == kRegionCodeForNonGeoEntity ||
1047
- // MX fixed line and mobile numbers should always be formatted in
1048
- // international format, even when dialed within MX. For national
1049
- // format to work, a carrier code needs to be used, and the correct
1050
- // carrier code depends on if the caller and callee are from the same
1051
- // local area. It is trickier to get that to work correctly than
1052
- // using international format, which is tested to work fine on all
1053
- // carriers.
1054
- // CL fixed line numbers need the national prefix when dialing in the
1055
- // national format, but don't have it when used for display. The
1056
- // reverse is true for mobile numbers. As a result, we output them in
1057
- // the international format to make it work.
1058
- ((region_code == "MX" || region_code == "CL") &&
1059
- is_fixed_line_or_mobile)) &&
1060
- CanBeInternationallyDialled(number_no_extension)) {
1061
- Format(number_no_extension, INTERNATIONAL, formatted_number);
1062
- } else {
1063
- Format(number_no_extension, NATIONAL, formatted_number);
1064
- }
1065
- }
1066
- } else if (is_valid_number &&
1067
- CanBeInternationallyDialled(number_no_extension)) {
1068
- // We assume that short numbers are not diallable from outside their
1069
- // region, so if a number is not a valid regular length phone number, we
1070
- // treat it as if it cannot be internationally dialled.
1071
- with_formatting
1072
- ? Format(number_no_extension, INTERNATIONAL, formatted_number)
1073
- : Format(number_no_extension, E164, formatted_number);
1074
- return;
1075
- }
1076
- if (!with_formatting) {
1077
- NormalizeDiallableCharsOnly(formatted_number);
1078
- }
1079
- }
1080
-
1081
- void PhoneNumberUtil::FormatOutOfCountryCallingNumber(
1082
- const PhoneNumber& number,
1083
- const string& calling_from,
1084
- string* formatted_number) const {
1085
- DCHECK(formatted_number);
1086
- if (!IsValidRegionCode(calling_from)) {
1087
- VLOG(1) << "Trying to format number from invalid region " << calling_from
1088
- << ". International formatting applied.";
1089
- Format(number, INTERNATIONAL, formatted_number);
1090
- return;
1091
- }
1092
- int country_code = number.country_code();
1093
- string national_significant_number;
1094
- GetNationalSignificantNumber(number, &national_significant_number);
1095
- if (!HasValidCountryCallingCode(country_code)) {
1096
- formatted_number->assign(national_significant_number);
1097
- return;
1098
- }
1099
- if (country_code == kNanpaCountryCode) {
1100
- if (IsNANPACountry(calling_from)) {
1101
- // For NANPA regions, return the national format for these regions but
1102
- // prefix it with the country calling code.
1103
- Format(number, NATIONAL, formatted_number);
1104
- formatted_number->insert(0, StrCat(country_code, " "));
1105
- return;
1106
- }
1107
- } else if (country_code == GetCountryCodeForValidRegion(calling_from)) {
1108
- // If neither region is a NANPA region, then we check to see if the
1109
- // country calling code of the number and the country calling code of the
1110
- // region we are calling from are the same.
1111
- // For regions that share a country calling code, the country calling code
1112
- // need not be dialled. This also applies when dialling within a region, so
1113
- // this if clause covers both these cases.
1114
- // Technically this is the case for dialling from la Réunion to other
1115
- // overseas departments of France (French Guiana, Martinique, Guadeloupe),
1116
- // but not vice versa - so we don't cover this edge case for now and for
1117
- // those cases return the version including country calling code.
1118
- // Details here:
1119
- // http://www.petitfute.com/voyage/225-info-pratiques-reunion
1120
- Format(number, NATIONAL, formatted_number);
1121
- return;
1122
- }
1123
- // Metadata cannot be NULL because we checked 'IsValidRegionCode()' above.
1124
- const PhoneMetadata* metadata_calling_from =
1125
- GetMetadataForRegion(calling_from);
1126
- const string& international_prefix =
1127
- metadata_calling_from->international_prefix();
1128
-
1129
- // For regions that have multiple international prefixes, the international
1130
- // format of the number is returned, unless there is a preferred international
1131
- // prefix.
1132
- const string international_prefix_for_formatting(
1133
- reg_exps_->unique_international_prefix_->FullMatch(international_prefix)
1134
- ? international_prefix
1135
- : metadata_calling_from->preferred_international_prefix());
1136
-
1137
- string region_code;
1138
- GetRegionCodeForCountryCode(country_code, &region_code);
1139
- // Metadata cannot be NULL because the country_code is valid.
1140
- const PhoneMetadata* metadata_for_region =
1141
- GetMetadataForRegionOrCallingCode(country_code, region_code);
1142
- FormatNsn(national_significant_number, *metadata_for_region, INTERNATIONAL,
1143
- formatted_number);
1144
- MaybeAppendFormattedExtension(number, *metadata_for_region, INTERNATIONAL,
1145
- formatted_number);
1146
- if (!international_prefix_for_formatting.empty()) {
1147
- formatted_number->insert(
1148
- 0, StrCat(international_prefix_for_formatting, " ", country_code, " "));
1149
- } else {
1150
- PrefixNumberWithCountryCallingCode(country_code, INTERNATIONAL,
1151
- formatted_number);
1152
- }
1153
- }
1154
-
1155
- void PhoneNumberUtil::FormatInOriginalFormat(const PhoneNumber& number,
1156
- const string& region_calling_from,
1157
- string* formatted_number) const {
1158
- DCHECK(formatted_number);
1159
-
1160
- if (number.has_raw_input() &&
1161
- (HasUnexpectedItalianLeadingZero(number) ||
1162
- !HasFormattingPatternForNumber(number))) {
1163
- // We check if we have the formatting pattern because without that, we might
1164
- // format the number as a group without national prefix.
1165
- formatted_number->assign(number.raw_input());
1166
- return;
1167
- }
1168
- if (!number.has_country_code_source()) {
1169
- Format(number, NATIONAL, formatted_number);
1170
- return;
1171
- }
1172
- switch (number.country_code_source()) {
1173
- case PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN:
1174
- Format(number, INTERNATIONAL, formatted_number);
1175
- break;
1176
- case PhoneNumber::FROM_NUMBER_WITH_IDD:
1177
- FormatOutOfCountryCallingNumber(number, region_calling_from,
1178
- formatted_number);
1179
- break;
1180
- case PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN:
1181
- Format(number, INTERNATIONAL, formatted_number);
1182
- formatted_number->erase(formatted_number->begin());
1183
- break;
1184
- case PhoneNumber::FROM_DEFAULT_COUNTRY:
1185
- // Fall-through to default case.
1186
- default:
1187
- string region_code;
1188
- GetRegionCodeForCountryCode(number.country_code(), &region_code);
1189
- // We strip non-digits from the NDD here, and from the raw input later, so
1190
- // that we can compare them easily.
1191
- string national_prefix;
1192
- GetNddPrefixForRegion(region_code, true /* strip non-digits */,
1193
- &national_prefix);
1194
- if (national_prefix.empty()) {
1195
- // If the region doesn't have a national prefix at all, we can safely
1196
- // return the national format without worrying about a national prefix
1197
- // being added.
1198
- Format(number, NATIONAL, formatted_number);
1199
- break;
1200
- }
1201
- // Otherwise, we check if the original number was entered with a national
1202
- // prefix.
1203
- if (RawInputContainsNationalPrefix(number.raw_input(), national_prefix,
1204
- region_code)) {
1205
- // If so, we can safely return the national format.
1206
- Format(number, NATIONAL, formatted_number);
1207
- break;
1208
- }
1209
- // Metadata cannot be NULL here because GetNddPrefixForRegion() (above)
1210
- // leaves the prefix empty if there is no metadata for the region.
1211
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
1212
- string national_number;
1213
- GetNationalSignificantNumber(number, &national_number);
1214
- // This shouldn't be NULL, because we have checked that above with
1215
- // HasFormattingPatternForNumber.
1216
- const NumberFormat* format_rule =
1217
- ChooseFormattingPatternForNumber(metadata->number_format(),
1218
- national_number);
1219
- // The format rule could still be NULL here if the national number was 0
1220
- // and there was no raw input (this should not be possible for numbers
1221
- // generated by the phonenumber library as they would also not have a
1222
- // country calling code and we would have exited earlier).
1223
- if (!format_rule) {
1224
- Format(number, NATIONAL, formatted_number);
1225
- break;
1226
- }
1227
- // When the format we apply to this number doesn't contain national
1228
- // prefix, we can just return the national format.
1229
- // TODO: Refactor the code below with the code in
1230
- // IsNationalPrefixPresentIfRequired.
1231
- string candidate_national_prefix_rule(
1232
- format_rule->national_prefix_formatting_rule());
1233
- // We assume that the first-group symbol will never be _before_ the
1234
- // national prefix.
1235
- if (!candidate_national_prefix_rule.empty()) {
1236
- candidate_national_prefix_rule.erase(
1237
- candidate_national_prefix_rule.find("$1"));
1238
- NormalizeDigitsOnly(&candidate_national_prefix_rule);
1239
- }
1240
- if (candidate_national_prefix_rule.empty()) {
1241
- // National prefix not used when formatting this number.
1242
- Format(number, NATIONAL, formatted_number);
1243
- break;
1244
- }
1245
- // Otherwise, we need to remove the national prefix from our output.
1246
- RepeatedPtrField<NumberFormat> number_formats;
1247
- NumberFormat* number_format = number_formats.Add();
1248
- number_format->MergeFrom(*format_rule);
1249
- number_format->clear_national_prefix_formatting_rule();
1250
- FormatByPattern(number, NATIONAL, number_formats, formatted_number);
1251
- break;
1252
- }
1253
- // If no digit is inserted/removed/modified as a result of our formatting, we
1254
- // return the formatted phone number; otherwise we return the raw input the
1255
- // user entered.
1256
- if (!formatted_number->empty() && !number.raw_input().empty()) {
1257
- string normalized_formatted_number(*formatted_number);
1258
- NormalizeDiallableCharsOnly(&normalized_formatted_number);
1259
- string normalized_raw_input(number.raw_input());
1260
- NormalizeDiallableCharsOnly(&normalized_raw_input);
1261
- if (normalized_formatted_number != normalized_raw_input) {
1262
- formatted_number->assign(number.raw_input());
1263
- }
1264
- }
1265
- }
1266
-
1267
- // Check if raw_input, which is assumed to be in the national format, has a
1268
- // national prefix. The national prefix is assumed to be in digits-only form.
1269
- bool PhoneNumberUtil::RawInputContainsNationalPrefix(
1270
- const string& raw_input,
1271
- const string& national_prefix,
1272
- const string& region_code) const {
1273
- string normalized_national_number(raw_input);
1274
- NormalizeDigitsOnly(&normalized_national_number);
1275
- if (HasPrefixString(normalized_national_number, national_prefix)) {
1276
- // Some Japanese numbers (e.g. 00777123) might be mistaken to contain
1277
- // the national prefix when written without it (e.g. 0777123) if we just
1278
- // do prefix matching. To tackle that, we check the validity of the
1279
- // number if the assumed national prefix is removed (777123 won't be
1280
- // valid in Japan).
1281
- PhoneNumber number_without_national_prefix;
1282
- if (Parse(normalized_national_number.substr(national_prefix.length()),
1283
- region_code, &number_without_national_prefix)
1284
- == NO_PARSING_ERROR) {
1285
- return IsValidNumber(number_without_national_prefix);
1286
- }
1287
- }
1288
- return false;
1289
- }
1290
-
1291
- bool PhoneNumberUtil::HasUnexpectedItalianLeadingZero(
1292
- const PhoneNumber& number) const {
1293
- return number.has_italian_leading_zero() &&
1294
- !IsLeadingZeroPossible(number.country_code());
1295
- }
1296
-
1297
- bool PhoneNumberUtil::HasFormattingPatternForNumber(
1298
- const PhoneNumber& number) const {
1299
- int country_calling_code = number.country_code();
1300
- string region_code;
1301
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
1302
- const PhoneMetadata* metadata =
1303
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
1304
- if (!metadata) {
1305
- return false;
1306
- }
1307
- string national_number;
1308
- GetNationalSignificantNumber(number, &national_number);
1309
- const NumberFormat* format_rule =
1310
- ChooseFormattingPatternForNumber(metadata->number_format(),
1311
- national_number);
1312
- return format_rule;
1313
- }
1314
-
1315
- void PhoneNumberUtil::FormatOutOfCountryKeepingAlphaChars(
1316
- const PhoneNumber& number,
1317
- const string& calling_from,
1318
- string* formatted_number) const {
1319
- // If there is no raw input, then we can't keep alpha characters because there
1320
- // aren't any. In this case, we return FormatOutOfCountryCallingNumber.
1321
- if (number.raw_input().empty()) {
1322
- FormatOutOfCountryCallingNumber(number, calling_from, formatted_number);
1323
- return;
1324
- }
1325
- int country_code = number.country_code();
1326
- if (!HasValidCountryCallingCode(country_code)) {
1327
- formatted_number->assign(number.raw_input());
1328
- return;
1329
- }
1330
- // Strip any prefix such as country calling code, IDD, that was present. We do
1331
- // this by comparing the number in raw_input with the parsed number.
1332
- string raw_input_copy(number.raw_input());
1333
- // Normalize punctuation. We retain number grouping symbols such as " " only.
1334
- NormalizeHelper(reg_exps_->all_plus_number_grouping_symbols_, true,
1335
- &raw_input_copy);
1336
- // Now we trim everything before the first three digits in the parsed number.
1337
- // We choose three because all valid alpha numbers have 3 digits at the start
1338
- // - if it does not, then we don't trim anything at all. Similarly, if the
1339
- // national number was less than three digits, we don't trim anything at all.
1340
- string national_number;
1341
- GetNationalSignificantNumber(number, &national_number);
1342
- if (national_number.length() > 3) {
1343
- size_t first_national_number_digit =
1344
- raw_input_copy.find(national_number.substr(0, 3));
1345
- if (first_national_number_digit != string::npos) {
1346
- raw_input_copy = raw_input_copy.substr(first_national_number_digit);
1347
- }
1348
- }
1349
- const PhoneMetadata* metadata = GetMetadataForRegion(calling_from);
1350
- if (country_code == kNanpaCountryCode) {
1351
- if (IsNANPACountry(calling_from)) {
1352
- StrAppend(formatted_number, country_code, " ", raw_input_copy);
1353
- return;
1354
- }
1355
- } else if (metadata &&
1356
- country_code == GetCountryCodeForValidRegion(calling_from)) {
1357
- const NumberFormat* formatting_pattern =
1358
- ChooseFormattingPatternForNumber(metadata->number_format(),
1359
- national_number);
1360
- if (!formatting_pattern) {
1361
- // If no pattern above is matched, we format the original input.
1362
- formatted_number->assign(raw_input_copy);
1363
- return;
1364
- }
1365
- NumberFormat new_format;
1366
- new_format.MergeFrom(*formatting_pattern);
1367
- // The first group is the first group of digits that the user wrote
1368
- // together.
1369
- new_format.set_pattern("(\\d+)(.*)");
1370
- // Here we just concatenate them back together after the national prefix
1371
- // has been fixed.
1372
- new_format.set_format("$1$2");
1373
- // Now we format using this pattern instead of the default pattern, but
1374
- // with the national prefix prefixed if necessary.
1375
- // This will not work in the cases where the pattern (and not the
1376
- // leading digits) decide whether a national prefix needs to be used, since
1377
- // we have overridden the pattern to match anything, but that is not the
1378
- // case in the metadata to date.
1379
- FormatNsnUsingPattern(raw_input_copy, new_format, NATIONAL,
1380
- formatted_number);
1381
- return;
1382
- }
1383
-
1384
- string international_prefix_for_formatting;
1385
- // If an unsupported region-calling-from is entered, or a country with
1386
- // multiple international prefixes, the international format of the number is
1387
- // returned, unless there is a preferred international prefix.
1388
- if (metadata) {
1389
- const string& international_prefix = metadata->international_prefix();
1390
- international_prefix_for_formatting =
1391
- reg_exps_->unique_international_prefix_->FullMatch(international_prefix)
1392
- ? international_prefix
1393
- : metadata->preferred_international_prefix();
1394
- }
1395
- if (!international_prefix_for_formatting.empty()) {
1396
- StrAppend(formatted_number, international_prefix_for_formatting, " ",
1397
- country_code, " ", raw_input_copy);
1398
- } else {
1399
- // Invalid region entered as country-calling-from (so no metadata was found
1400
- // for it) or the region chosen has multiple international dialling
1401
- // prefixes.
1402
- if (!IsValidRegionCode(calling_from)) {
1403
- VLOG(1) << "Trying to format number from invalid region " << calling_from
1404
- << ". International formatting applied.";
1405
- }
1406
- formatted_number->assign(raw_input_copy);
1407
- PrefixNumberWithCountryCallingCode(country_code, INTERNATIONAL,
1408
- formatted_number);
1409
- }
1410
- }
1411
-
1412
- const NumberFormat* PhoneNumberUtil::ChooseFormattingPatternForNumber(
1413
- const RepeatedPtrField<NumberFormat>& available_formats,
1414
- const string& national_number) const {
1415
- for (RepeatedPtrField<NumberFormat>::const_iterator
1416
- it = available_formats.begin(); it != available_formats.end(); ++it) {
1417
- int size = it->leading_digits_pattern_size();
1418
- if (size > 0) {
1419
- const scoped_ptr<RegExpInput> number_copy(
1420
- reg_exps_->regexp_factory_->CreateInput(national_number));
1421
- // We always use the last leading_digits_pattern, as it is the most
1422
- // detailed.
1423
- if (!reg_exps_->regexp_cache_->GetRegExp(
1424
- it->leading_digits_pattern(size - 1)).Consume(
1425
- number_copy.get())) {
1426
- continue;
1427
- }
1428
- }
1429
- const RegExp& pattern_to_match(
1430
- reg_exps_->regexp_cache_->GetRegExp(it->pattern()));
1431
- if (pattern_to_match.FullMatch(national_number)) {
1432
- return &(*it);
1433
- }
1434
- }
1435
- return NULL;
1436
- }
1437
-
1438
- // Note that carrier_code is optional - if an empty string, no carrier code
1439
- // replacement will take place.
1440
- void PhoneNumberUtil::FormatNsnUsingPatternWithCarrier(
1441
- const string& national_number,
1442
- const NumberFormat& formatting_pattern,
1443
- PhoneNumberUtil::PhoneNumberFormat number_format,
1444
- const string& carrier_code,
1445
- string* formatted_number) const {
1446
- DCHECK(formatted_number);
1447
- string number_format_rule(formatting_pattern.format());
1448
- if (number_format == PhoneNumberUtil::NATIONAL &&
1449
- carrier_code.length() > 0 &&
1450
- formatting_pattern.domestic_carrier_code_formatting_rule().length() > 0) {
1451
- // Replace the $CC in the formatting rule with the desired carrier code.
1452
- string carrier_code_formatting_rule =
1453
- formatting_pattern.domestic_carrier_code_formatting_rule();
1454
- reg_exps_->carrier_code_pattern_->Replace(&carrier_code_formatting_rule,
1455
- carrier_code);
1456
- reg_exps_->first_group_capturing_pattern_->
1457
- Replace(&number_format_rule, carrier_code_formatting_rule);
1458
- } else {
1459
- // Use the national prefix formatting rule instead.
1460
- string national_prefix_formatting_rule =
1461
- formatting_pattern.national_prefix_formatting_rule();
1462
- if (number_format == PhoneNumberUtil::NATIONAL &&
1463
- national_prefix_formatting_rule.length() > 0) {
1464
- // Apply the national_prefix_formatting_rule as the formatting_pattern
1465
- // contains only information on how the national significant number
1466
- // should be formatted at this point.
1467
- reg_exps_->first_group_capturing_pattern_->Replace(
1468
- &number_format_rule, national_prefix_formatting_rule);
1469
- }
1470
- }
1471
- formatted_number->assign(national_number);
1472
-
1473
- const RegExp& pattern_to_match(
1474
- reg_exps_->regexp_cache_->GetRegExp(formatting_pattern.pattern()));
1475
- pattern_to_match.GlobalReplace(formatted_number, number_format_rule);
1476
-
1477
- if (number_format == RFC3966) {
1478
- // First consume any leading punctuation, if any was present.
1479
- const scoped_ptr<RegExpInput> number(
1480
- reg_exps_->regexp_factory_->CreateInput(*formatted_number));
1481
- if (reg_exps_->separator_pattern_->Consume(number.get())) {
1482
- formatted_number->assign(number->ToString());
1483
- }
1484
- // Then replace all separators with a "-".
1485
- reg_exps_->separator_pattern_->GlobalReplace(formatted_number, "-");
1486
- }
1487
- }
1488
-
1489
- // Simple wrapper of FormatNsnUsingPatternWithCarrier for the common case of
1490
- // no carrier code.
1491
- void PhoneNumberUtil::FormatNsnUsingPattern(
1492
- const string& national_number,
1493
- const NumberFormat& formatting_pattern,
1494
- PhoneNumberUtil::PhoneNumberFormat number_format,
1495
- string* formatted_number) const {
1496
- DCHECK(formatted_number);
1497
- FormatNsnUsingPatternWithCarrier(national_number, formatting_pattern,
1498
- number_format, "", formatted_number);
1499
- }
1500
-
1501
- void PhoneNumberUtil::FormatNsn(const string& number,
1502
- const PhoneMetadata& metadata,
1503
- PhoneNumberFormat number_format,
1504
- string* formatted_number) const {
1505
- DCHECK(formatted_number);
1506
- FormatNsnWithCarrier(number, metadata, number_format, "", formatted_number);
1507
- }
1508
-
1509
- // Note in some regions, the national number can be written in two completely
1510
- // different ways depending on whether it forms part of the NATIONAL format or
1511
- // INTERNATIONAL format. The number_format parameter here is used to specify
1512
- // which format to use for those cases. If a carrier_code is specified, this
1513
- // will be inserted into the formatted string to replace $CC.
1514
- void PhoneNumberUtil::FormatNsnWithCarrier(const string& number,
1515
- const PhoneMetadata& metadata,
1516
- PhoneNumberFormat number_format,
1517
- const string& carrier_code,
1518
- string* formatted_number) const {
1519
- DCHECK(formatted_number);
1520
- // When the intl_number_formats exists, we use that to format national number
1521
- // for the INTERNATIONAL format instead of using the number_formats.
1522
- const RepeatedPtrField<NumberFormat> available_formats =
1523
- (metadata.intl_number_format_size() == 0 || number_format == NATIONAL)
1524
- ? metadata.number_format()
1525
- : metadata.intl_number_format();
1526
- const NumberFormat* formatting_pattern =
1527
- ChooseFormattingPatternForNumber(available_formats, number);
1528
- if (!formatting_pattern) {
1529
- formatted_number->assign(number);
1530
- } else {
1531
- FormatNsnUsingPatternWithCarrier(number, *formatting_pattern, number_format,
1532
- carrier_code, formatted_number);
1533
- }
1534
- }
1535
-
1536
- // Appends the formatted extension of a phone number, if the phone number had an
1537
- // extension specified.
1538
- void PhoneNumberUtil::MaybeAppendFormattedExtension(
1539
- const PhoneNumber& number,
1540
- const PhoneMetadata& metadata,
1541
- PhoneNumberFormat number_format,
1542
- string* formatted_number) const {
1543
- DCHECK(formatted_number);
1544
- if (number.has_extension() && number.extension().length() > 0) {
1545
- if (number_format == RFC3966) {
1546
- StrAppend(formatted_number, kRfc3966ExtnPrefix, number.extension());
1547
- } else {
1548
- if (metadata.has_preferred_extn_prefix()) {
1549
- StrAppend(formatted_number, metadata.preferred_extn_prefix(),
1550
- number.extension());
1551
- } else {
1552
- StrAppend(formatted_number, kDefaultExtnPrefix, number.extension());
1553
- }
1554
- }
1555
- }
1556
- }
1557
-
1558
- bool PhoneNumberUtil::IsNANPACountry(const string& region_code) const {
1559
- return nanpa_regions_->find(region_code) != nanpa_regions_->end();
1560
- }
1561
-
1562
- // Returns the region codes that matches the specific country calling code. In
1563
- // the case of no region code being found, region_codes will be left empty.
1564
- void PhoneNumberUtil::GetRegionCodesForCountryCallingCode(
1565
- int country_calling_code,
1566
- list<string>* region_codes) const {
1567
- DCHECK(region_codes);
1568
- // Create a IntRegionsPair with the country_code passed in, and use it to
1569
- // locate the pair with the same country_code in the sorted vector.
1570
- IntRegionsPair target_pair;
1571
- target_pair.first = country_calling_code;
1572
- typedef vector<IntRegionsPair>::const_iterator ConstIterator;
1573
- pair<ConstIterator, ConstIterator> range = equal_range(
1574
- country_calling_code_to_region_code_map_->begin(),
1575
- country_calling_code_to_region_code_map_->end(),
1576
- target_pair, OrderByFirst());
1577
- if (range.first != range.second) {
1578
- region_codes->insert(region_codes->begin(),
1579
- range.first->second->begin(),
1580
- range.first->second->end());
1581
- }
1582
- }
1583
-
1584
- // Returns the region code that matches the specific country calling code. In
1585
- // the case of no region code being found, the unknown region code will be
1586
- // returned.
1587
- void PhoneNumberUtil::GetRegionCodeForCountryCode(
1588
- int country_calling_code,
1589
- string* region_code) const {
1590
- DCHECK(region_code);
1591
- list<string> region_codes;
1592
-
1593
- GetRegionCodesForCountryCallingCode(country_calling_code, &region_codes);
1594
- *region_code = (region_codes.size() > 0) ?
1595
- region_codes.front() : RegionCode::GetUnknown();
1596
- }
1597
-
1598
- void PhoneNumberUtil::GetRegionCodeForNumber(const PhoneNumber& number,
1599
- string* region_code) const {
1600
- DCHECK(region_code);
1601
- int country_calling_code = number.country_code();
1602
- list<string> region_codes;
1603
- GetRegionCodesForCountryCallingCode(country_calling_code, &region_codes);
1604
- if (region_codes.size() == 0) {
1605
- string number_string;
1606
- GetNationalSignificantNumber(number, &number_string);
1607
- VLOG(1) << "Missing/invalid country calling code ("
1608
- << country_calling_code
1609
- << ") for number " << number_string;
1610
- *region_code = RegionCode::GetUnknown();
1611
- return;
1612
- }
1613
- if (region_codes.size() == 1) {
1614
- *region_code = region_codes.front();
1615
- } else {
1616
- GetRegionCodeForNumberFromRegionList(number, region_codes, region_code);
1617
- }
1618
- }
1619
-
1620
- void PhoneNumberUtil::GetRegionCodeForNumberFromRegionList(
1621
- const PhoneNumber& number, const list<string>& region_codes,
1622
- string* region_code) const {
1623
- DCHECK(region_code);
1624
- string national_number;
1625
- GetNationalSignificantNumber(number, &national_number);
1626
- for (list<string>::const_iterator it = region_codes.begin();
1627
- it != region_codes.end(); ++it) {
1628
- // Metadata cannot be NULL because the region codes come from the country
1629
- // calling code map.
1630
- const PhoneMetadata* metadata = GetMetadataForRegion(*it);
1631
- if (metadata->has_leading_digits()) {
1632
- const scoped_ptr<RegExpInput> number(
1633
- reg_exps_->regexp_factory_->CreateInput(national_number));
1634
- if (reg_exps_->regexp_cache_->
1635
- GetRegExp(metadata->leading_digits()).Consume(number.get())) {
1636
- *region_code = *it;
1637
- return;
1638
- }
1639
- } else if (GetNumberTypeHelper(national_number, *metadata) != UNKNOWN) {
1640
- *region_code = *it;
1641
- return;
1642
- }
1643
- }
1644
- *region_code = RegionCode::GetUnknown();
1645
- }
1646
-
1647
- int PhoneNumberUtil::GetCountryCodeForRegion(const string& region_code) const {
1648
- if (!IsValidRegionCode(region_code)) {
1649
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
1650
- << ") provided.";
1651
- return 0;
1652
- }
1653
- return GetCountryCodeForValidRegion(region_code);
1654
- }
1655
-
1656
- int PhoneNumberUtil::GetCountryCodeForValidRegion(
1657
- const string& region_code) const {
1658
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
1659
- return metadata->country_code();
1660
- }
1661
-
1662
- // Gets a valid fixed-line number for the specified region_code. Returns false
1663
- // if the region was unknown or 001 (representing non-geographical regions), or
1664
- // if no number exists.
1665
- bool PhoneNumberUtil::GetExampleNumber(const string& region_code,
1666
- PhoneNumber* number) const {
1667
- DCHECK(number);
1668
- return GetExampleNumberForType(region_code, FIXED_LINE, number);
1669
- }
1670
-
1671
- bool PhoneNumberUtil::GetInvalidExampleNumber(const string& region_code,
1672
- PhoneNumber* number) const {
1673
- DCHECK(number);
1674
- if (!IsValidRegionCode(region_code)) {
1675
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
1676
- << ") provided.";
1677
- return false;
1678
- }
1679
- // We start off with a valid fixed-line number since every country supports
1680
- // this. Alternatively we could start with a different number type, since
1681
- // fixed-line numbers typically have a wide breadth of valid number lengths
1682
- // and we may have to make it very short before we get an invalid number.
1683
- const PhoneMetadata* region_metadata = GetMetadataForRegion(region_code);
1684
- const PhoneNumberDesc* desc =
1685
- GetNumberDescByType(*region_metadata, FIXED_LINE);
1686
- if (!desc->has_example_number()) {
1687
- // This shouldn't happen - we have a test for this.
1688
- return false;
1689
- }
1690
- const string& example_number = desc->example_number();
1691
- // Try and make the number invalid. We do this by changing the length. We try
1692
- // reducing the length of the number, since currently no region has a number
1693
- // that is the same length as kMinLengthForNsn. This is probably quicker than
1694
- // making the number longer, which is another alternative. We could also use
1695
- // the possible number pattern to extract the possible lengths of the number
1696
- // to make this faster, but this method is only for unit-testing so simplicity
1697
- // is preferred to performance.
1698
- // We don't want to return a number that can't be parsed, so we check the
1699
- // number is long enough. We try all possible lengths because phone number
1700
- // plans often have overlapping prefixes so the number 123456 might be valid
1701
- // as a fixed-line number, and 12345 as a mobile number. It would be faster to
1702
- // loop in a different order, but we prefer numbers that look closer to real
1703
- // numbers (and it gives us a variety of different lengths for the resulting
1704
- // phone numbers - otherwise they would all be kMinLengthForNsn digits long.)
1705
- for (size_t phone_number_length = example_number.length() - 1;
1706
- phone_number_length >= kMinLengthForNsn;
1707
- phone_number_length--) {
1708
- string number_to_try = example_number.substr(0, phone_number_length);
1709
- PhoneNumber possibly_valid_number;
1710
- Parse(number_to_try, region_code, &possibly_valid_number);
1711
- // We don't check the return value since we have already checked the
1712
- // length, we know example numbers have only valid digits, and we know the
1713
- // region code is fine.
1714
- if (!IsValidNumber(possibly_valid_number)) {
1715
- number->MergeFrom(possibly_valid_number);
1716
- return true;
1717
- }
1718
- }
1719
- // We have a test to check that this doesn't happen for any of our supported
1720
- // regions.
1721
- return false;
1722
- }
1723
-
1724
- // Gets a valid number for the specified region_code and type. Returns false if
1725
- // the country was unknown or 001 (representing non-geographical regions), or if
1726
- // no number exists.
1727
- bool PhoneNumberUtil::GetExampleNumberForType(
1728
- const string& region_code,
1729
- PhoneNumberUtil::PhoneNumberType type,
1730
- PhoneNumber* number) const {
1731
- DCHECK(number);
1732
- if (!IsValidRegionCode(region_code)) {
1733
- LOG(WARNING) << "Invalid or unknown region code (" << region_code
1734
- << ") provided.";
1735
- return false;
1736
- }
1737
- const PhoneMetadata* region_metadata = GetMetadataForRegion(region_code);
1738
- const PhoneNumberDesc* desc = GetNumberDescByType(*region_metadata, type);
1739
- if (desc && desc->has_example_number()) {
1740
- ErrorType success = Parse(desc->example_number(), region_code, number);
1741
- if (success == NO_PARSING_ERROR) {
1742
- return true;
1743
- } else {
1744
- LOG(ERROR) << "Error parsing example number ("
1745
- << static_cast<int>(success) << ")";
1746
- }
1747
- }
1748
- return false;
1749
- }
1750
-
1751
- bool PhoneNumberUtil::GetExampleNumberForType(
1752
- PhoneNumberUtil::PhoneNumberType type,
1753
- PhoneNumber* number) const {
1754
- DCHECK(number);
1755
- set<string> regions;
1756
- GetSupportedRegions(&regions);
1757
- for (set<string>::const_iterator it = regions.begin();
1758
- it != regions.end(); ++it) {
1759
- if (GetExampleNumberForType(*it, type, number)) {
1760
- return true;
1761
- }
1762
- }
1763
- // If there wasn't an example number for a region, try the non-geographical
1764
- // entities.
1765
- set<int> global_network_calling_codes;
1766
- GetSupportedGlobalNetworkCallingCodes(&global_network_calling_codes);
1767
- for (set<int>::const_iterator it = global_network_calling_codes.begin();
1768
- it != global_network_calling_codes.end(); ++it) {
1769
- int country_calling_code = *it;
1770
- const PhoneMetadata* metadata =
1771
- GetMetadataForNonGeographicalRegion(country_calling_code);
1772
- const PhoneNumberDesc& desc = metadata->general_desc();
1773
- if (desc.has_example_number()) {
1774
- ErrorType success = Parse(StrCat(kPlusSign,
1775
- country_calling_code,
1776
- desc.example_number()),
1777
- RegionCode::GetUnknown(), number);
1778
- if (success == NO_PARSING_ERROR) {
1779
- return true;
1780
- } else {
1781
- LOG(ERROR) << "Error parsing example number ("
1782
- << static_cast<int>(success) << ")";
1783
- }
1784
- }
1785
- }
1786
- // There are no example numbers of this type for any country in the library.
1787
- return false;
1788
- }
1789
-
1790
- bool PhoneNumberUtil::GetExampleNumberForNonGeoEntity(
1791
- int country_calling_code, PhoneNumber* number) const {
1792
- DCHECK(number);
1793
- const PhoneMetadata* metadata =
1794
- GetMetadataForNonGeographicalRegion(country_calling_code);
1795
- if (metadata) {
1796
- const PhoneNumberDesc& desc = metadata->general_desc();
1797
- if (desc.has_example_number()) {
1798
- ErrorType success = Parse(StrCat(kPlusSign,
1799
- SimpleItoa(country_calling_code),
1800
- desc.example_number()),
1801
- RegionCode::GetUnknown(), number);
1802
- if (success == NO_PARSING_ERROR) {
1803
- return true;
1804
- } else {
1805
- LOG(ERROR) << "Error parsing example number ("
1806
- << static_cast<int>(success) << ")";
1807
- }
1808
- }
1809
- } else {
1810
- LOG(WARNING) << "Invalid or unknown country calling code provided: "
1811
- << country_calling_code;
1812
- }
1813
- return false;
1814
- }
1815
-
1816
- PhoneNumberUtil::ErrorType PhoneNumberUtil::Parse(const string& number_to_parse,
1817
- const string& default_region,
1818
- PhoneNumber* number) const {
1819
- DCHECK(number);
1820
- return ParseHelper(number_to_parse, default_region, false, true, number);
1821
- }
1822
-
1823
- PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseAndKeepRawInput(
1824
- const string& number_to_parse,
1825
- const string& default_region,
1826
- PhoneNumber* number) const {
1827
- DCHECK(number);
1828
- return ParseHelper(number_to_parse, default_region, true, true, number);
1829
- }
1830
-
1831
- // Checks to see that the region code used is valid, or if it is not valid, that
1832
- // the number to parse starts with a + symbol so that we can attempt to infer
1833
- // the country from the number. Returns false if it cannot use the region
1834
- // provided and the region cannot be inferred.
1835
- bool PhoneNumberUtil::CheckRegionForParsing(
1836
- const string& number_to_parse,
1837
- const string& default_region) const {
1838
- if (!IsValidRegionCode(default_region) && !number_to_parse.empty()) {
1839
- const scoped_ptr<RegExpInput> number(
1840
- reg_exps_->regexp_factory_->CreateInput(number_to_parse));
1841
- if (!reg_exps_->plus_chars_pattern_->Consume(number.get())) {
1842
- return false;
1843
- }
1844
- }
1845
- return true;
1846
- }
1847
-
1848
- // Converts number_to_parse to a form that we can parse and write it to
1849
- // national_number if it is written in RFC3966; otherwise extract a possible
1850
- // number out of it and write to national_number.
1851
- void PhoneNumberUtil::BuildNationalNumberForParsing(
1852
- const string& number_to_parse, string* national_number) const {
1853
- size_t index_of_phone_context = number_to_parse.find(kRfc3966PhoneContext);
1854
- if (index_of_phone_context != string::npos) {
1855
- int phone_context_start =
1856
- index_of_phone_context + strlen(kRfc3966PhoneContext);
1857
- // If the phone context contains a phone number prefix, we need to capture
1858
- // it, whereas domains will be ignored.
1859
- if (number_to_parse.at(phone_context_start) == kPlusSign[0]) {
1860
- // Additional parameters might follow the phone context. If so, we will
1861
- // remove them here because the parameters after phone context are not
1862
- // important for parsing the phone number.
1863
- size_t phone_context_end = number_to_parse.find(';', phone_context_start);
1864
- if (phone_context_end != string::npos) {
1865
- StrAppend(
1866
- national_number, number_to_parse.substr(
1867
- phone_context_start, phone_context_end - phone_context_start));
1868
- } else {
1869
- StrAppend(national_number, number_to_parse.substr(phone_context_start));
1870
- }
1871
- }
1872
-
1873
- // Now append everything between the "tel:" prefix and the phone-context.
1874
- // This should include the national number, an optional extension or
1875
- // isdn-subaddress component. Note we also handle the case when "tel:" is
1876
- // missing, as we have seen in some of the phone number inputs. In that
1877
- // case, we append everything from the beginning.
1878
- size_t index_of_rfc_prefix = number_to_parse.find(kRfc3966Prefix);
1879
- int index_of_national_number = (index_of_rfc_prefix != string::npos) ?
1880
- index_of_rfc_prefix + strlen(kRfc3966Prefix) : 0;
1881
- StrAppend(
1882
- national_number,
1883
- number_to_parse.substr(
1884
- index_of_national_number,
1885
- index_of_phone_context - index_of_national_number));
1886
- } else {
1887
- // Extract a possible number from the string passed in (this strips leading
1888
- // characters that could not be the start of a phone number.)
1889
- ExtractPossibleNumber(number_to_parse, national_number);
1890
- }
1891
-
1892
- // Delete the isdn-subaddress and everything after it if it is present. Note
1893
- // extension won't appear at the same time with isdn-subaddress according to
1894
- // paragraph 5.3 of the RFC3966 spec.
1895
- size_t index_of_isdn = national_number->find(kRfc3966IsdnSubaddress);
1896
- if (index_of_isdn != string::npos) {
1897
- national_number->erase(index_of_isdn);
1898
- }
1899
- // If both phone context and isdn-subaddress are absent but other parameters
1900
- // are present, the parameters are left in nationalNumber. This is because
1901
- // we are concerned about deleting content from a potential number string
1902
- // when there is no strong evidence that the number is actually written in
1903
- // RFC3966.
1904
- }
1905
-
1906
- PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseHelper(
1907
- const string& number_to_parse,
1908
- const string& default_region,
1909
- bool keep_raw_input,
1910
- bool check_region,
1911
- PhoneNumber* phone_number) const {
1912
- DCHECK(phone_number);
1913
-
1914
- string national_number;
1915
- BuildNationalNumberForParsing(number_to_parse, &national_number);
1916
-
1917
- if (!IsViablePhoneNumber(national_number)) {
1918
- VLOG(2) << "The string supplied did not seem to be a phone number.";
1919
- return NOT_A_NUMBER;
1920
- }
1921
-
1922
- if (check_region &&
1923
- !CheckRegionForParsing(national_number, default_region)) {
1924
- VLOG(1) << "Missing or invalid default country.";
1925
- return INVALID_COUNTRY_CODE_ERROR;
1926
- }
1927
- PhoneNumber temp_number;
1928
- if (keep_raw_input) {
1929
- temp_number.set_raw_input(number_to_parse);
1930
- }
1931
- // Attempt to parse extension first, since it doesn't require country-specific
1932
- // data and we want to have the non-normalised number here.
1933
- string extension;
1934
- MaybeStripExtension(&national_number, &extension);
1935
- if (!extension.empty()) {
1936
- temp_number.set_extension(extension);
1937
- }
1938
- const PhoneMetadata* country_metadata = GetMetadataForRegion(default_region);
1939
- // Check to see if the number is given in international format so we know
1940
- // whether this number is from the default country or not.
1941
- string normalized_national_number(national_number);
1942
- ErrorType country_code_error =
1943
- MaybeExtractCountryCode(country_metadata, keep_raw_input,
1944
- &normalized_national_number, &temp_number);
1945
- if (country_code_error != NO_PARSING_ERROR) {
1946
- const scoped_ptr<RegExpInput> number_string_piece(
1947
- reg_exps_->regexp_factory_->CreateInput(national_number));
1948
- if ((country_code_error == INVALID_COUNTRY_CODE_ERROR) &&
1949
- (reg_exps_->plus_chars_pattern_->Consume(number_string_piece.get()))) {
1950
- normalized_national_number.assign(number_string_piece->ToString());
1951
- // Strip the plus-char, and try again.
1952
- MaybeExtractCountryCode(country_metadata,
1953
- keep_raw_input,
1954
- &normalized_national_number,
1955
- &temp_number);
1956
- if (temp_number.country_code() == 0) {
1957
- return INVALID_COUNTRY_CODE_ERROR;
1958
- }
1959
- } else {
1960
- return country_code_error;
1961
- }
1962
- }
1963
- int country_code = temp_number.country_code();
1964
- if (country_code != 0) {
1965
- string phone_number_region;
1966
- GetRegionCodeForCountryCode(country_code, &phone_number_region);
1967
- if (phone_number_region != default_region) {
1968
- country_metadata =
1969
- GetMetadataForRegionOrCallingCode(country_code, phone_number_region);
1970
- }
1971
- } else if (country_metadata) {
1972
- // If no extracted country calling code, use the region supplied instead.
1973
- // Note that the national number was already normalized by
1974
- // MaybeExtractCountryCode.
1975
- country_code = country_metadata->country_code();
1976
- }
1977
- if (normalized_national_number.length() < kMinLengthForNsn) {
1978
- VLOG(2) << "The string supplied is too short to be a phone number.";
1979
- return TOO_SHORT_NSN;
1980
- }
1981
- if (country_metadata) {
1982
- string carrier_code;
1983
- string potential_national_number(normalized_national_number);
1984
- MaybeStripNationalPrefixAndCarrierCode(*country_metadata,
1985
- &potential_national_number,
1986
- &carrier_code);
1987
- // We require that the NSN remaining after stripping the national prefix
1988
- // and carrier code be of a possible length for the region. Otherwise, we
1989
- // don't do the stripping, since the original number could be a valid short
1990
- // number.
1991
- if (!IsShorterThanPossibleNormalNumber(country_metadata,
1992
- potential_national_number)) {
1993
- normalized_national_number.assign(potential_national_number);
1994
- if (keep_raw_input) {
1995
- temp_number.set_preferred_domestic_carrier_code(carrier_code);
1996
- }
1997
- }
1998
- }
1999
- size_t normalized_national_number_length =
2000
- normalized_national_number.length();
2001
- if (normalized_national_number_length < kMinLengthForNsn) {
2002
- VLOG(2) << "The string supplied is too short to be a phone number.";
2003
- return TOO_SHORT_NSN;
2004
- }
2005
- if (normalized_national_number_length > kMaxLengthForNsn) {
2006
- VLOG(2) << "The string supplied is too long to be a phone number.";
2007
- return TOO_LONG_NSN;
2008
- }
2009
- temp_number.set_country_code(country_code);
2010
- SetItalianLeadingZerosForPhoneNumber(normalized_national_number,
2011
- &temp_number);
2012
- uint64 number_as_int;
2013
- safe_strtou64(normalized_national_number, &number_as_int);
2014
- temp_number.set_national_number(number_as_int);
2015
- phone_number->Swap(&temp_number);
2016
- return NO_PARSING_ERROR;
2017
- }
2018
-
2019
- // Attempts to extract a possible number from the string passed in. This
2020
- // currently strips all leading characters that could not be used to start a
2021
- // phone number. Characters that can be used to start a phone number are
2022
- // defined in the valid_start_char_pattern. If none of these characters are
2023
- // found in the number passed in, an empty string is returned. This function
2024
- // also attempts to strip off any alternative extensions or endings if two or
2025
- // more are present, such as in the case of: (530) 583-6985 x302/x2303. The
2026
- // second extension here makes this actually two phone numbers, (530) 583-6985
2027
- // x302 and (530) 583-6985 x2303. We remove the second extension so that the
2028
- // first number is parsed correctly.
2029
- void PhoneNumberUtil::ExtractPossibleNumber(const string& number,
2030
- string* extracted_number) const {
2031
- DCHECK(extracted_number);
2032
-
2033
- UnicodeText number_as_unicode;
2034
- number_as_unicode.PointToUTF8(number.data(), number.size());
2035
- char current_char[5];
2036
- int len;
2037
- UnicodeText::const_iterator it;
2038
- for (it = number_as_unicode.begin(); it != number_as_unicode.end(); ++it) {
2039
- len = it.get_utf8(current_char);
2040
- current_char[len] = '\0';
2041
- if (reg_exps_->valid_start_char_pattern_->FullMatch(current_char)) {
2042
- break;
2043
- }
2044
- }
2045
-
2046
- if (it == number_as_unicode.end()) {
2047
- // No valid start character was found. extracted_number should be set to
2048
- // empty string.
2049
- extracted_number->assign("");
2050
- return;
2051
- }
2052
-
2053
- extracted_number->assign(
2054
- UnicodeText::UTF8Substring(it, number_as_unicode.end()));
2055
- TrimUnwantedEndChars(extracted_number);
2056
- if (extracted_number->length() == 0) {
2057
- return;
2058
- }
2059
-
2060
- VLOG(3) << "After stripping starting and trailing characters, left with: "
2061
- << *extracted_number;
2062
-
2063
- // Now remove any extra numbers at the end.
2064
- reg_exps_->capture_up_to_second_number_start_pattern_->
2065
- PartialMatch(*extracted_number, extracted_number);
2066
- }
2067
-
2068
- bool PhoneNumberUtil::IsPossibleNumber(const PhoneNumber& number) const {
2069
- return IsPossibleNumberWithReason(number) == IS_POSSIBLE;
2070
- }
2071
-
2072
- bool PhoneNumberUtil::IsPossibleNumberForString(
2073
- const string& number,
2074
- const string& region_dialing_from) const {
2075
- PhoneNumber number_proto;
2076
- if (Parse(number, region_dialing_from, &number_proto) == NO_PARSING_ERROR) {
2077
- return IsPossibleNumber(number_proto);
2078
- } else {
2079
- return false;
2080
- }
2081
- }
2082
-
2083
- PhoneNumberUtil::ValidationResult PhoneNumberUtil::IsPossibleNumberWithReason(
2084
- const PhoneNumber& number) const {
2085
- string national_number;
2086
- GetNationalSignificantNumber(number, &national_number);
2087
- int country_code = number.country_code();
2088
- // Note: For Russian Fed and NANPA numbers, we just use the rules from the
2089
- // default region (US or Russia) since the GetRegionCodeForNumber will not
2090
- // work if the number is possible but not valid. This would need to be
2091
- // revisited if the possible number pattern ever differed between various
2092
- // regions within those plans.
2093
- if (!HasValidCountryCallingCode(country_code)) {
2094
- return INVALID_COUNTRY_CODE;
2095
- }
2096
- string region_code;
2097
- GetRegionCodeForCountryCode(country_code, &region_code);
2098
- // Metadata cannot be NULL because the country calling code is valid.
2099
- const PhoneMetadata* metadata =
2100
- GetMetadataForRegionOrCallingCode(country_code, region_code);
2101
- const RegExp& possible_number_pattern = reg_exps_->regexp_cache_->GetRegExp(
2102
- StrCat("(", metadata->general_desc().possible_number_pattern(), ")"));
2103
- return TestNumberLengthAgainstPattern(possible_number_pattern,
2104
- national_number);
2105
- }
2106
-
2107
- bool PhoneNumberUtil::TruncateTooLongNumber(PhoneNumber* number) const {
2108
- if (IsValidNumber(*number)) {
2109
- return true;
2110
- }
2111
- PhoneNumber number_copy(*number);
2112
- uint64 national_number = number->national_number();
2113
- do {
2114
- national_number /= 10;
2115
- number_copy.set_national_number(national_number);
2116
- if (IsPossibleNumberWithReason(number_copy) == TOO_SHORT ||
2117
- national_number == 0) {
2118
- return false;
2119
- }
2120
- } while (!IsValidNumber(number_copy));
2121
- number->set_national_number(national_number);
2122
- return true;
2123
- }
2124
-
2125
- PhoneNumberUtil::PhoneNumberType PhoneNumberUtil::GetNumberType(
2126
- const PhoneNumber& number) const {
2127
- string region_code;
2128
- GetRegionCodeForNumber(number, &region_code);
2129
- const PhoneMetadata* metadata =
2130
- GetMetadataForRegionOrCallingCode(number.country_code(), region_code);
2131
- if (!metadata) {
2132
- return UNKNOWN;
2133
- }
2134
- string national_significant_number;
2135
- GetNationalSignificantNumber(number, &national_significant_number);
2136
- return GetNumberTypeHelper(national_significant_number, *metadata);
2137
- }
2138
-
2139
- bool PhoneNumberUtil::IsValidNumber(const PhoneNumber& number) const {
2140
- string region_code;
2141
- GetRegionCodeForNumber(number, &region_code);
2142
- return IsValidNumberForRegion(number, region_code);
2143
- }
2144
-
2145
- bool PhoneNumberUtil::IsValidNumberForRegion(const PhoneNumber& number,
2146
- const string& region_code) const {
2147
- int country_code = number.country_code();
2148
- const PhoneMetadata* metadata =
2149
- GetMetadataForRegionOrCallingCode(country_code, region_code);
2150
- if (!metadata ||
2151
- ((kRegionCodeForNonGeoEntity != region_code) &&
2152
- country_code != GetCountryCodeForValidRegion(region_code))) {
2153
- // Either the region code was invalid, or the country calling code for this
2154
- // number does not match that of the region code.
2155
- return false;
2156
- }
2157
- string national_number;
2158
- GetNationalSignificantNumber(number, &national_number);
2159
-
2160
- return GetNumberTypeHelper(national_number, *metadata) != UNKNOWN;
2161
- }
2162
-
2163
- bool PhoneNumberUtil::IsNumberGeographical(
2164
- const PhoneNumber& phone_number) const {
2165
- return IsNumberGeographical(GetNumberType(phone_number),
2166
- phone_number.country_code());
2167
- }
2168
-
2169
- bool PhoneNumberUtil::IsNumberGeographical(
2170
- PhoneNumberType number_type, int country_calling_code) const {
2171
- return number_type == PhoneNumberUtil::FIXED_LINE ||
2172
- number_type == PhoneNumberUtil::FIXED_LINE_OR_MOBILE ||
2173
- (reg_exps_->geo_mobile_countries_.find(country_calling_code)
2174
- != reg_exps_->geo_mobile_countries_.end() &&
2175
- number_type == PhoneNumberUtil::MOBILE);
2176
- }
2177
-
2178
- bool PhoneNumberUtil::IsLeadingZeroPossible(int country_calling_code) const {
2179
- string region_code;
2180
- GetRegionCodeForCountryCode(country_calling_code, &region_code);
2181
- const PhoneMetadata* main_metadata_for_calling_code =
2182
- GetMetadataForRegionOrCallingCode(country_calling_code, region_code);
2183
- if (!main_metadata_for_calling_code) return false;
2184
- return main_metadata_for_calling_code->leading_zero_possible();
2185
- }
2186
-
2187
- // A helper function to set the values related to leading zeros in a
2188
- // PhoneNumber.
2189
- void PhoneNumberUtil::SetItalianLeadingZerosForPhoneNumber(
2190
- const string& national_number, PhoneNumber* phone_number) const {
2191
- if (national_number.length() > 1 && national_number[0] == '0') {
2192
- phone_number->set_italian_leading_zero(true);
2193
- size_t number_of_leading_zeros = 1;
2194
- // Note that if the national number is all "0"s, the last "0" is not
2195
- // counted as a leading zero.
2196
- while (number_of_leading_zeros < national_number.length() - 1 &&
2197
- national_number[number_of_leading_zeros] == '0') {
2198
- number_of_leading_zeros++;
2199
- }
2200
- if (number_of_leading_zeros != 1) {
2201
- phone_number->set_number_of_leading_zeros(number_of_leading_zeros);
2202
- }
2203
- }
2204
- }
2205
-
2206
- bool PhoneNumberUtil::IsNumberPossibleForDesc(
2207
- const string& national_number, const PhoneNumberDesc& number_desc) const {
2208
- return reg_exps_->regexp_cache_.get()->
2209
- GetRegExp(number_desc.possible_number_pattern())
2210
- .FullMatch(national_number);
2211
- }
2212
-
2213
- bool PhoneNumberUtil::IsNumberMatchingDesc(
2214
- const string& national_number, const PhoneNumberDesc& number_desc) const {
2215
- return IsNumberPossibleForDesc(national_number, number_desc) &&
2216
- reg_exps_->regexp_cache_.get()->
2217
- GetRegExp(number_desc.national_number_pattern())
2218
- .FullMatch(national_number);
2219
- }
2220
-
2221
- PhoneNumberUtil::PhoneNumberType PhoneNumberUtil::GetNumberTypeHelper(
2222
- const string& national_number, const PhoneMetadata& metadata) const {
2223
- if (!IsNumberMatchingDesc(national_number, metadata.general_desc())) {
2224
- VLOG(4) << "Number type unknown - doesn't match general national number"
2225
- << " pattern.";
2226
- return PhoneNumberUtil::UNKNOWN;
2227
- }
2228
- if (IsNumberMatchingDesc(national_number, metadata.premium_rate())) {
2229
- VLOG(4) << "Number is a premium number.";
2230
- return PhoneNumberUtil::PREMIUM_RATE;
2231
- }
2232
- if (IsNumberMatchingDesc(national_number, metadata.toll_free())) {
2233
- VLOG(4) << "Number is a toll-free number.";
2234
- return PhoneNumberUtil::TOLL_FREE;
2235
- }
2236
- if (IsNumberMatchingDesc(national_number, metadata.shared_cost())) {
2237
- VLOG(4) << "Number is a shared cost number.";
2238
- return PhoneNumberUtil::SHARED_COST;
2239
- }
2240
- if (IsNumberMatchingDesc(national_number, metadata.voip())) {
2241
- VLOG(4) << "Number is a VOIP (Voice over IP) number.";
2242
- return PhoneNumberUtil::VOIP;
2243
- }
2244
- if (IsNumberMatchingDesc(national_number, metadata.personal_number())) {
2245
- VLOG(4) << "Number is a personal number.";
2246
- return PhoneNumberUtil::PERSONAL_NUMBER;
2247
- }
2248
- if (IsNumberMatchingDesc(national_number, metadata.pager())) {
2249
- VLOG(4) << "Number is a pager number.";
2250
- return PhoneNumberUtil::PAGER;
2251
- }
2252
- if (IsNumberMatchingDesc(national_number, metadata.uan())) {
2253
- VLOG(4) << "Number is a UAN.";
2254
- return PhoneNumberUtil::UAN;
2255
- }
2256
- if (IsNumberMatchingDesc(national_number, metadata.voicemail())) {
2257
- VLOG(4) << "Number is a voicemail number.";
2258
- return PhoneNumberUtil::VOICEMAIL;
2259
- }
2260
-
2261
- bool is_fixed_line =
2262
- IsNumberMatchingDesc(national_number, metadata.fixed_line());
2263
- if (is_fixed_line) {
2264
- if (metadata.same_mobile_and_fixed_line_pattern()) {
2265
- VLOG(4) << "Fixed-line and mobile patterns equal, number is fixed-line"
2266
- << " or mobile";
2267
- return PhoneNumberUtil::FIXED_LINE_OR_MOBILE;
2268
- } else if (IsNumberMatchingDesc(national_number, metadata.mobile())) {
2269
- VLOG(4) << "Fixed-line and mobile patterns differ, but number is "
2270
- << "still fixed-line or mobile";
2271
- return PhoneNumberUtil::FIXED_LINE_OR_MOBILE;
2272
- }
2273
- VLOG(4) << "Number is a fixed line number.";
2274
- return PhoneNumberUtil::FIXED_LINE;
2275
- }
2276
- // Otherwise, test to see if the number is mobile. Only do this if certain
2277
- // that the patterns for mobile and fixed line aren't the same.
2278
- if (!metadata.same_mobile_and_fixed_line_pattern() &&
2279
- IsNumberMatchingDesc(national_number, metadata.mobile())) {
2280
- VLOG(4) << "Number is a mobile number.";
2281
- return PhoneNumberUtil::MOBILE;
2282
- }
2283
- VLOG(4) << "Number type unknown - doesn\'t match any specific number type"
2284
- << " pattern.";
2285
- return PhoneNumberUtil::UNKNOWN;
2286
- }
2287
-
2288
- void PhoneNumberUtil::GetNationalSignificantNumber(
2289
- const PhoneNumber& number,
2290
- string* national_number) const {
2291
- DCHECK(national_number);
2292
- // If leading zero(s) have been set, we prefix this now. Note this is not a
2293
- // national prefix.
2294
- StrAppend(national_number, number.italian_leading_zero() ?
2295
- string(number.number_of_leading_zeros(), '0') : "");
2296
- StrAppend(national_number, number.national_number());
2297
- }
2298
-
2299
- int PhoneNumberUtil::GetLengthOfGeographicalAreaCode(
2300
- const PhoneNumber& number) const {
2301
- string region_code;
2302
- GetRegionCodeForNumber(number, &region_code);
2303
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
2304
- if (!metadata) {
2305
- return 0;
2306
- }
2307
- // If a country doesn't use a national prefix, and this number doesn't have an
2308
- // Italian leading zero, we assume it is a closed dialling plan with no area
2309
- // codes.
2310
- if (!metadata->has_national_prefix() && !number.italian_leading_zero()) {
2311
- return 0;
2312
- }
2313
-
2314
- PhoneNumberType type = GetNumberType(number);
2315
- int country_calling_code = number.country_code();
2316
- if (type == PhoneNumberUtil::MOBILE &&
2317
- reg_exps_->geo_mobile_countries_without_mobile_area_codes_.find(
2318
- country_calling_code) !=
2319
- reg_exps_->geo_mobile_countries_without_mobile_area_codes_.end()) {
2320
- return 0;
2321
- }
2322
-
2323
- if (!IsNumberGeographical(type, country_calling_code)) {
2324
- return 0;
2325
- }
2326
-
2327
- return GetLengthOfNationalDestinationCode(number);
2328
- }
2329
-
2330
- int PhoneNumberUtil::GetLengthOfNationalDestinationCode(
2331
- const PhoneNumber& number) const {
2332
- PhoneNumber copied_proto(number);
2333
- if (number.has_extension()) {
2334
- // Clear the extension so it's not included when formatting.
2335
- copied_proto.clear_extension();
2336
- }
2337
-
2338
- string formatted_number;
2339
- Format(copied_proto, INTERNATIONAL, &formatted_number);
2340
- const scoped_ptr<RegExpInput> i18n_number(
2341
- reg_exps_->regexp_factory_->CreateInput(formatted_number));
2342
- string digit_group;
2343
- string ndc;
2344
- string third_group;
2345
- for (int i = 0; i < 3; ++i) {
2346
- if (!reg_exps_->capturing_ascii_digits_pattern_->FindAndConsume(
2347
- i18n_number.get(), &digit_group)) {
2348
- // We should find at least three groups.
2349
- return 0;
2350
- }
2351
- if (i == 1) {
2352
- ndc = digit_group;
2353
- } else if (i == 2) {
2354
- third_group = digit_group;
2355
- }
2356
- }
2357
-
2358
- if (GetNumberType(number) == MOBILE) {
2359
- // For example Argentinian mobile numbers, when formatted in the
2360
- // international format, are in the form of +54 9 NDC XXXX.... As a result,
2361
- // we take the length of the third group (NDC) and add the length of the
2362
- // mobile token, which also forms part of the national significant number.
2363
- // This assumes that the mobile token is always formatted separately from
2364
- // the rest of the phone number.
2365
- string mobile_token;
2366
- GetCountryMobileToken(number.country_code(), &mobile_token);
2367
- if (!mobile_token.empty()) {
2368
- return third_group.size() + mobile_token.size();
2369
- }
2370
- }
2371
- return ndc.size();
2372
- }
2373
-
2374
- void PhoneNumberUtil::GetCountryMobileToken(int country_calling_code,
2375
- string* mobile_token) const {
2376
- DCHECK(mobile_token);
2377
- map<int, char>::iterator it = reg_exps_->mobile_token_mappings_.find(
2378
- country_calling_code);
2379
- if (it != reg_exps_->mobile_token_mappings_.end()) {
2380
- *mobile_token = it->second;
2381
- } else {
2382
- mobile_token->assign("");
2383
- }
2384
- }
2385
-
2386
- void PhoneNumberUtil::NormalizeDigitsOnly(string* number) const {
2387
- DCHECK(number);
2388
- const RegExp& non_digits_pattern = reg_exps_->regexp_cache_->GetRegExp(
2389
- StrCat("[^", kDigits, "]"));
2390
- // Delete everything that isn't valid digits.
2391
- non_digits_pattern.GlobalReplace(number, "");
2392
- // Normalize all decimal digits to ASCII digits.
2393
- number->assign(NormalizeUTF8::NormalizeDecimalDigits(*number));
2394
- }
2395
-
2396
- void PhoneNumberUtil::NormalizeDiallableCharsOnly(string* number) const {
2397
- DCHECK(number);
2398
- NormalizeHelper(reg_exps_->diallable_char_mappings_,
2399
- true /* remove non matches */, number);
2400
- }
2401
-
2402
- bool PhoneNumberUtil::IsAlphaNumber(const string& number) const {
2403
- if (!IsViablePhoneNumber(number)) {
2404
- // Number is too short, or doesn't match the basic phone number pattern.
2405
- return false;
2406
- }
2407
- // Copy the number, since we are going to try and strip the extension from it.
2408
- string number_copy(number);
2409
- string extension;
2410
- MaybeStripExtension(&number_copy, &extension);
2411
- return reg_exps_->valid_alpha_phone_pattern_->FullMatch(number_copy);
2412
- }
2413
-
2414
- void PhoneNumberUtil::ConvertAlphaCharactersInNumber(string* number) const {
2415
- DCHECK(number);
2416
- NormalizeHelper(reg_exps_->alpha_phone_mappings_, false, number);
2417
- }
2418
-
2419
- // Normalizes a string of characters representing a phone number. This performs
2420
- // the following conversions:
2421
- // - Punctuation is stripped.
2422
- // For ALPHA/VANITY numbers:
2423
- // - Letters are converted to their numeric representation on a telephone
2424
- // keypad. The keypad used here is the one defined in ITU Recommendation
2425
- // E.161. This is only done if there are 3 or more letters in the number, to
2426
- // lessen the risk that such letters are typos.
2427
- // For other numbers:
2428
- // - Wide-ascii digits are converted to normal ASCII (European) digits.
2429
- // - Arabic-Indic numerals are converted to European numerals.
2430
- // - Spurious alpha characters are stripped.
2431
- void PhoneNumberUtil::Normalize(string* number) const {
2432
- DCHECK(number);
2433
- if (reg_exps_->valid_alpha_phone_pattern_->PartialMatch(*number)) {
2434
- NormalizeHelper(reg_exps_->alpha_phone_mappings_, true, number);
2435
- }
2436
- NormalizeDigitsOnly(number);
2437
- }
2438
-
2439
- // Checks to see if the string of characters could possibly be a phone number at
2440
- // all. At the moment, checks to see that the string begins with at least 3
2441
- // digits, ignoring any punctuation commonly found in phone numbers. This
2442
- // method does not require the number to be normalized in advance - but does
2443
- // assume that leading non-number symbols have been removed, such as by the
2444
- // method ExtractPossibleNumber.
2445
- bool PhoneNumberUtil::IsViablePhoneNumber(const string& number) const {
2446
- if (number.length() < kMinLengthForNsn) {
2447
- VLOG(2) << "Number too short to be viable:" << number;
2448
- return false;
2449
- }
2450
- return reg_exps_->valid_phone_number_pattern_->FullMatch(number);
2451
- }
2452
-
2453
- // Strips the IDD from the start of the number if present. Helper function used
2454
- // by MaybeStripInternationalPrefixAndNormalize.
2455
- bool PhoneNumberUtil::ParsePrefixAsIdd(const RegExp& idd_pattern,
2456
- string* number) const {
2457
- DCHECK(number);
2458
- const scoped_ptr<RegExpInput> number_copy(
2459
- reg_exps_->regexp_factory_->CreateInput(*number));
2460
- // First attempt to strip the idd_pattern at the start, if present. We make a
2461
- // copy so that we can revert to the original string if necessary.
2462
- if (idd_pattern.Consume(number_copy.get())) {
2463
- // Only strip this if the first digit after the match is not a 0, since
2464
- // country calling codes cannot begin with 0.
2465
- string extracted_digit;
2466
- if (reg_exps_->capturing_digit_pattern_->PartialMatch(
2467
- number_copy->ToString(), &extracted_digit)) {
2468
- NormalizeDigitsOnly(&extracted_digit);
2469
- if (extracted_digit == "0") {
2470
- return false;
2471
- }
2472
- }
2473
- number->assign(number_copy->ToString());
2474
- return true;
2475
- }
2476
- return false;
2477
- }
2478
-
2479
- // Strips any international prefix (such as +, 00, 011) present in the number
2480
- // provided, normalizes the resulting number, and indicates if an international
2481
- // prefix was present.
2482
- //
2483
- // possible_idd_prefix represents the international direct dialing prefix from
2484
- // the region we think this number may be dialed in.
2485
- // Returns true if an international dialing prefix could be removed from the
2486
- // number, otherwise false if the number did not seem to be in international
2487
- // format.
2488
- PhoneNumber::CountryCodeSource
2489
- PhoneNumberUtil::MaybeStripInternationalPrefixAndNormalize(
2490
- const string& possible_idd_prefix,
2491
- string* number) const {
2492
- DCHECK(number);
2493
- if (number->empty()) {
2494
- return PhoneNumber::FROM_DEFAULT_COUNTRY;
2495
- }
2496
- const scoped_ptr<RegExpInput> number_string_piece(
2497
- reg_exps_->regexp_factory_->CreateInput(*number));
2498
- if (reg_exps_->plus_chars_pattern_->Consume(number_string_piece.get())) {
2499
- number->assign(number_string_piece->ToString());
2500
- // Can now normalize the rest of the number since we've consumed the "+"
2501
- // sign at the start.
2502
- Normalize(number);
2503
- return PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN;
2504
- }
2505
- // Attempt to parse the first digits as an international prefix.
2506
- const RegExp& idd_pattern =
2507
- reg_exps_->regexp_cache_->GetRegExp(possible_idd_prefix);
2508
- Normalize(number);
2509
- return ParsePrefixAsIdd(idd_pattern, number)
2510
- ? PhoneNumber::FROM_NUMBER_WITH_IDD
2511
- : PhoneNumber::FROM_DEFAULT_COUNTRY;
2512
- }
2513
-
2514
- // Strips any national prefix (such as 0, 1) present in the number provided.
2515
- // The number passed in should be the normalized telephone number that we wish
2516
- // to strip any national dialing prefix from. The metadata should be for the
2517
- // region that we think this number is from. Returns true if a national prefix
2518
- // and/or carrier code was stripped.
2519
- bool PhoneNumberUtil::MaybeStripNationalPrefixAndCarrierCode(
2520
- const PhoneMetadata& metadata,
2521
- string* number,
2522
- string* carrier_code) const {
2523
- DCHECK(number);
2524
- string carrier_code_temp;
2525
- const string& possible_national_prefix =
2526
- metadata.national_prefix_for_parsing();
2527
- if (number->empty() || possible_national_prefix.empty()) {
2528
- // Early return for numbers of zero length or with no national prefix
2529
- // possible.
2530
- return false;
2531
- }
2532
- // We use two copies here since Consume modifies the phone number, and if the
2533
- // first if-clause fails the number will already be changed.
2534
- const scoped_ptr<RegExpInput> number_copy(
2535
- reg_exps_->regexp_factory_->CreateInput(*number));
2536
- const scoped_ptr<RegExpInput> number_copy_without_transform(
2537
- reg_exps_->regexp_factory_->CreateInput(*number));
2538
- string number_string_copy(*number);
2539
- string captured_part_of_prefix;
2540
- const RegExp& national_number_rule = reg_exps_->regexp_cache_->GetRegExp(
2541
- metadata.general_desc().national_number_pattern());
2542
- // Check if the original number is viable.
2543
- bool is_viable_original_number = national_number_rule.FullMatch(*number);
2544
- // Attempt to parse the first digits as a national prefix. We make a
2545
- // copy so that we can revert to the original string if necessary.
2546
- const string& transform_rule = metadata.national_prefix_transform_rule();
2547
- const RegExp& possible_national_prefix_pattern =
2548
- reg_exps_->regexp_cache_->GetRegExp(possible_national_prefix);
2549
- if (!transform_rule.empty() &&
2550
- (possible_national_prefix_pattern.Consume(
2551
- number_copy.get(), &carrier_code_temp, &captured_part_of_prefix) ||
2552
- possible_national_prefix_pattern.Consume(
2553
- number_copy.get(), &captured_part_of_prefix)) &&
2554
- !captured_part_of_prefix.empty()) {
2555
- // If this succeeded, then we must have had a transform rule and there must
2556
- // have been some part of the prefix that we captured.
2557
- // We make the transformation and check that the resultant number is still
2558
- // viable. If so, replace the number and return.
2559
- possible_national_prefix_pattern.Replace(&number_string_copy,
2560
- transform_rule);
2561
- if (is_viable_original_number &&
2562
- !national_number_rule.FullMatch(number_string_copy)) {
2563
- return false;
2564
- }
2565
- number->assign(number_string_copy);
2566
- if (carrier_code) {
2567
- carrier_code->assign(carrier_code_temp);
2568
- }
2569
- } else if (possible_national_prefix_pattern.Consume(
2570
- number_copy_without_transform.get(), &carrier_code_temp) ||
2571
- possible_national_prefix_pattern.Consume(
2572
- number_copy_without_transform.get())) {
2573
- VLOG(4) << "Parsed the first digits as a national prefix.";
2574
- // If captured_part_of_prefix is empty, this implies nothing was captured by
2575
- // the capturing groups in possible_national_prefix; therefore, no
2576
- // transformation is necessary, and we just remove the national prefix.
2577
- const string number_copy_as_string =
2578
- number_copy_without_transform->ToString();
2579
- if (is_viable_original_number &&
2580
- !national_number_rule.FullMatch(number_copy_as_string)) {
2581
- return false;
2582
- }
2583
- number->assign(number_copy_as_string);
2584
- if (carrier_code) {
2585
- carrier_code->assign(carrier_code_temp);
2586
- }
2587
- } else {
2588
- return false;
2589
- VLOG(4) << "The first digits did not match the national prefix.";
2590
- }
2591
- return true;
2592
- }
2593
-
2594
- // Strips any extension (as in, the part of the number dialled after the call is
2595
- // connected, usually indicated with extn, ext, x or similar) from the end of
2596
- // the number, and returns it. The number passed in should be non-normalized.
2597
- bool PhoneNumberUtil::MaybeStripExtension(string* number, string* extension)
2598
- const {
2599
- DCHECK(number);
2600
- DCHECK(extension);
2601
- // There are three extension capturing groups in the regular expression.
2602
- string possible_extension_one;
2603
- string possible_extension_two;
2604
- string possible_extension_three;
2605
- string number_copy(*number);
2606
- const scoped_ptr<RegExpInput> number_copy_as_regexp_input(
2607
- reg_exps_->regexp_factory_->CreateInput(number_copy));
2608
- if (reg_exps_->extn_pattern_->Consume(number_copy_as_regexp_input.get(),
2609
- false,
2610
- &possible_extension_one,
2611
- &possible_extension_two,
2612
- &possible_extension_three)) {
2613
- // Replace the extensions in the original string here.
2614
- reg_exps_->extn_pattern_->Replace(&number_copy, "");
2615
- VLOG(4) << "Found an extension. Possible extension one: "
2616
- << possible_extension_one
2617
- << ". Possible extension two: " << possible_extension_two
2618
- << ". Possible extension three: " << possible_extension_three
2619
- << ". Remaining number: " << number_copy;
2620
- // If we find a potential extension, and the number preceding this is a
2621
- // viable number, we assume it is an extension.
2622
- if ((!possible_extension_one.empty() || !possible_extension_two.empty() ||
2623
- !possible_extension_three.empty()) &&
2624
- IsViablePhoneNumber(number_copy)) {
2625
- number->assign(number_copy);
2626
- if (!possible_extension_one.empty()) {
2627
- extension->assign(possible_extension_one);
2628
- } else if (!possible_extension_two.empty()) {
2629
- extension->assign(possible_extension_two);
2630
- } else if (!possible_extension_three.empty()) {
2631
- extension->assign(possible_extension_three);
2632
- }
2633
- return true;
2634
- }
2635
- }
2636
- return false;
2637
- }
2638
-
2639
- // Extracts country calling code from national_number, and returns it. It
2640
- // assumes that the leading plus sign or IDD has already been removed. Returns 0
2641
- // if national_number doesn't start with a valid country calling code, and
2642
- // leaves national_number unmodified. Assumes the national_number is at least 3
2643
- // characters long.
2644
- int PhoneNumberUtil::ExtractCountryCode(string* national_number) const {
2645
- int potential_country_code;
2646
- if (national_number->empty() || (national_number->at(0) == '0')) {
2647
- // Country codes do not begin with a '0'.
2648
- return 0;
2649
- }
2650
- for (size_t i = 1; i <= kMaxLengthCountryCode; ++i) {
2651
- safe_strto32(national_number->substr(0, i), &potential_country_code);
2652
- string region_code;
2653
- GetRegionCodeForCountryCode(potential_country_code, &region_code);
2654
- if (region_code != RegionCode::GetUnknown()) {
2655
- national_number->erase(0, i);
2656
- return potential_country_code;
2657
- }
2658
- }
2659
- return 0;
2660
- }
2661
-
2662
- // Tries to extract a country calling code from a number. Country calling codes
2663
- // are extracted in the following ways:
2664
- // - by stripping the international dialing prefix of the region the person
2665
- // is dialing from, if this is present in the number, and looking at the next
2666
- // digits
2667
- // - by stripping the '+' sign if present and then looking at the next digits
2668
- // - by comparing the start of the number and the country calling code of the
2669
- // default region. If the number is not considered possible for the numbering
2670
- // plan of the default region initially, but starts with the country calling
2671
- // code of this region, validation will be reattempted after stripping this
2672
- // country calling code. If this number is considered a possible number, then
2673
- // the first digits will be considered the country calling code and removed as
2674
- // such.
2675
- //
2676
- // Returns NO_PARSING_ERROR if a country calling code was successfully
2677
- // extracted or none was present, or the appropriate error otherwise, such as
2678
- // if a + was present but it was not followed by a valid country calling code.
2679
- // If NO_PARSING_ERROR is returned, the national_number without the country
2680
- // calling code is populated, and the country_code of the phone_number passed
2681
- // in is set to the country calling code if found, otherwise to 0.
2682
- PhoneNumberUtil::ErrorType PhoneNumberUtil::MaybeExtractCountryCode(
2683
- const PhoneMetadata* default_region_metadata,
2684
- bool keep_raw_input,
2685
- string* national_number,
2686
- PhoneNumber* phone_number) const {
2687
- DCHECK(national_number);
2688
- DCHECK(phone_number);
2689
- // Set the default prefix to be something that will never match if there is no
2690
- // default region.
2691
- string possible_country_idd_prefix = default_region_metadata
2692
- ? default_region_metadata->international_prefix()
2693
- : "NonMatch";
2694
- PhoneNumber::CountryCodeSource country_code_source =
2695
- MaybeStripInternationalPrefixAndNormalize(possible_country_idd_prefix,
2696
- national_number);
2697
- if (keep_raw_input) {
2698
- phone_number->set_country_code_source(country_code_source);
2699
- }
2700
- if (country_code_source != PhoneNumber::FROM_DEFAULT_COUNTRY) {
2701
- if (national_number->length() <= kMinLengthForNsn) {
2702
- VLOG(2) << "Phone number had an IDD, but after this was not "
2703
- << "long enough to be a viable phone number.";
2704
- return TOO_SHORT_AFTER_IDD;
2705
- }
2706
- int potential_country_code = ExtractCountryCode(national_number);
2707
- if (potential_country_code != 0) {
2708
- phone_number->set_country_code(potential_country_code);
2709
- return NO_PARSING_ERROR;
2710
- }
2711
- // If this fails, they must be using a strange country calling code that we
2712
- // don't recognize, or that doesn't exist.
2713
- return INVALID_COUNTRY_CODE_ERROR;
2714
- } else if (default_region_metadata) {
2715
- // Check to see if the number starts with the country calling code for the
2716
- // default region. If so, we remove the country calling code, and do some
2717
- // checks on the validity of the number before and after.
2718
- int default_country_code = default_region_metadata->country_code();
2719
- string default_country_code_string(SimpleItoa(default_country_code));
2720
- VLOG(4) << "Possible country calling code: " << default_country_code_string;
2721
- string potential_national_number;
2722
- if (TryStripPrefixString(*national_number,
2723
- default_country_code_string,
2724
- &potential_national_number)) {
2725
- const PhoneNumberDesc& general_num_desc =
2726
- default_region_metadata->general_desc();
2727
- const RegExp& valid_number_pattern =
2728
- reg_exps_->regexp_cache_->GetRegExp(
2729
- general_num_desc.national_number_pattern());
2730
- MaybeStripNationalPrefixAndCarrierCode(*default_region_metadata,
2731
- &potential_national_number,
2732
- NULL);
2733
- VLOG(4) << "Number without country calling code prefix: "
2734
- << potential_national_number;
2735
- const RegExp& possible_number_pattern =
2736
- reg_exps_->regexp_cache_->GetRegExp(
2737
- StrCat("(", general_num_desc.possible_number_pattern(), ")"));
2738
- // If the number was not valid before but is valid now, or if it was too
2739
- // long before, we consider the number with the country code stripped to
2740
- // be a better result and keep that instead.
2741
- if ((!valid_number_pattern.FullMatch(*national_number) &&
2742
- valid_number_pattern.FullMatch(potential_national_number)) ||
2743
- TestNumberLengthAgainstPattern(possible_number_pattern,
2744
- *national_number) == TOO_LONG) {
2745
- national_number->assign(potential_national_number);
2746
- if (keep_raw_input) {
2747
- phone_number->set_country_code_source(
2748
- PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN);
2749
- }
2750
- phone_number->set_country_code(default_country_code);
2751
- return NO_PARSING_ERROR;
2752
- }
2753
- }
2754
- }
2755
- // No country calling code present. Set the country_code to 0.
2756
- phone_number->set_country_code(0);
2757
- return NO_PARSING_ERROR;
2758
- }
2759
-
2760
- PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatch(
2761
- const PhoneNumber& first_number_in,
2762
- const PhoneNumber& second_number_in) const {
2763
- // Make copies of the phone number so that the numbers passed in are not
2764
- // edited.
2765
- PhoneNumber first_number(first_number_in);
2766
- PhoneNumber second_number(second_number_in);
2767
- // First clear raw_input and country_code_source and
2768
- // preferred_domestic_carrier_code fields and any empty-string extensions so
2769
- // that we can use the proto-buffer equality method.
2770
- first_number.clear_raw_input();
2771
- first_number.clear_country_code_source();
2772
- first_number.clear_preferred_domestic_carrier_code();
2773
- second_number.clear_raw_input();
2774
- second_number.clear_country_code_source();
2775
- second_number.clear_preferred_domestic_carrier_code();
2776
- if (first_number.extension().empty()) {
2777
- first_number.clear_extension();
2778
- }
2779
- if (second_number.extension().empty()) {
2780
- second_number.clear_extension();
2781
- }
2782
- // Early exit if both had extensions and these are different.
2783
- if (first_number.has_extension() && second_number.has_extension() &&
2784
- first_number.extension() != second_number.extension()) {
2785
- return NO_MATCH;
2786
- }
2787
- int first_number_country_code = first_number.country_code();
2788
- int second_number_country_code = second_number.country_code();
2789
- // Both had country calling code specified.
2790
- if (first_number_country_code != 0 && second_number_country_code != 0) {
2791
- if (ExactlySameAs(first_number, second_number)) {
2792
- return EXACT_MATCH;
2793
- } else if (first_number_country_code == second_number_country_code &&
2794
- IsNationalNumberSuffixOfTheOther(first_number, second_number)) {
2795
- // A SHORT_NSN_MATCH occurs if there is a difference because of the
2796
- // presence or absence of an 'Italian leading zero', the presence or
2797
- // absence of an extension, or one NSN being a shorter variant of the
2798
- // other.
2799
- return SHORT_NSN_MATCH;
2800
- }
2801
- // This is not a match.
2802
- return NO_MATCH;
2803
- }
2804
- // Checks cases where one or both country calling codes were not specified. To
2805
- // make equality checks easier, we first set the country_code fields to be
2806
- // equal.
2807
- first_number.set_country_code(second_number_country_code);
2808
- // If all else was the same, then this is an NSN_MATCH.
2809
- if (ExactlySameAs(first_number, second_number)) {
2810
- return NSN_MATCH;
2811
- }
2812
- if (IsNationalNumberSuffixOfTheOther(first_number, second_number)) {
2813
- return SHORT_NSN_MATCH;
2814
- }
2815
- return NO_MATCH;
2816
- }
2817
-
2818
- PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatchWithTwoStrings(
2819
- const string& first_number,
2820
- const string& second_number) const {
2821
- PhoneNumber first_number_as_proto;
2822
- ErrorType error_type =
2823
- Parse(first_number, RegionCode::GetUnknown(), &first_number_as_proto);
2824
- if (error_type == NO_PARSING_ERROR) {
2825
- return IsNumberMatchWithOneString(first_number_as_proto, second_number);
2826
- }
2827
- if (error_type == INVALID_COUNTRY_CODE_ERROR) {
2828
- PhoneNumber second_number_as_proto;
2829
- ErrorType error_type = Parse(second_number, RegionCode::GetUnknown(),
2830
- &second_number_as_proto);
2831
- if (error_type == NO_PARSING_ERROR) {
2832
- return IsNumberMatchWithOneString(second_number_as_proto, first_number);
2833
- }
2834
- if (error_type == INVALID_COUNTRY_CODE_ERROR) {
2835
- error_type = ParseHelper(first_number, RegionCode::GetUnknown(), false,
2836
- false, &first_number_as_proto);
2837
- if (error_type == NO_PARSING_ERROR) {
2838
- error_type = ParseHelper(second_number, RegionCode::GetUnknown(), false,
2839
- false, &second_number_as_proto);
2840
- if (error_type == NO_PARSING_ERROR) {
2841
- return IsNumberMatch(first_number_as_proto, second_number_as_proto);
2842
- }
2843
- }
2844
- }
2845
- }
2846
- // One or more of the phone numbers we are trying to match is not a viable
2847
- // phone number.
2848
- return INVALID_NUMBER;
2849
- }
2850
-
2851
- PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatchWithOneString(
2852
- const PhoneNumber& first_number,
2853
- const string& second_number) const {
2854
- // First see if the second number has an implicit country calling code, by
2855
- // attempting to parse it.
2856
- PhoneNumber second_number_as_proto;
2857
- ErrorType error_type =
2858
- Parse(second_number, RegionCode::GetUnknown(), &second_number_as_proto);
2859
- if (error_type == NO_PARSING_ERROR) {
2860
- return IsNumberMatch(first_number, second_number_as_proto);
2861
- }
2862
- if (error_type == INVALID_COUNTRY_CODE_ERROR) {
2863
- // The second number has no country calling code. EXACT_MATCH is no longer
2864
- // possible. We parse it as if the region was the same as that for the
2865
- // first number, and if EXACT_MATCH is returned, we replace this with
2866
- // NSN_MATCH.
2867
- string first_number_region;
2868
- GetRegionCodeForCountryCode(first_number.country_code(),
2869
- &first_number_region);
2870
- if (first_number_region != RegionCode::GetUnknown()) {
2871
- PhoneNumber second_number_with_first_number_region;
2872
- Parse(second_number, first_number_region,
2873
- &second_number_with_first_number_region);
2874
- MatchType match = IsNumberMatch(first_number,
2875
- second_number_with_first_number_region);
2876
- if (match == EXACT_MATCH) {
2877
- return NSN_MATCH;
2878
- }
2879
- return match;
2880
- } else {
2881
- // If the first number didn't have a valid country calling code, then we
2882
- // parse the second number without one as well.
2883
- error_type = ParseHelper(second_number, RegionCode::GetUnknown(), false,
2884
- false, &second_number_as_proto);
2885
- if (error_type == NO_PARSING_ERROR) {
2886
- return IsNumberMatch(first_number, second_number_as_proto);
2887
- }
2888
- }
2889
- }
2890
- // One or more of the phone numbers we are trying to match is not a viable
2891
- // phone number.
2892
- return INVALID_NUMBER;
2893
- }
2894
-
2895
- AsYouTypeFormatter* PhoneNumberUtil::GetAsYouTypeFormatter(
2896
- const string& region_code) const {
2897
- return new AsYouTypeFormatter(region_code);
2898
- }
2899
-
2900
- bool PhoneNumberUtil::IsShorterThanPossibleNormalNumber(
2901
- const PhoneMetadata* country_metadata, const string& number) const {
2902
- const RegExp& possible_number_pattern =
2903
- reg_exps_->regexp_cache_->GetRegExp(StrCat("(",
2904
- country_metadata->general_desc().possible_number_pattern(), ")"));
2905
- return TestNumberLengthAgainstPattern(possible_number_pattern, number) ==
2906
- PhoneNumberUtil::TOO_SHORT;
2907
- }
2908
-
2909
- bool PhoneNumberUtil::CanBeInternationallyDialled(
2910
- const PhoneNumber& number) const {
2911
- string region_code;
2912
- GetRegionCodeForNumber(number, &region_code);
2913
- const PhoneMetadata* metadata = GetMetadataForRegion(region_code);
2914
- if (!metadata) {
2915
- // Note numbers belonging to non-geographical entities (e.g. +800 numbers)
2916
- // are always internationally diallable, and will be caught here.
2917
- return true;
2918
- }
2919
- string national_significant_number;
2920
- GetNationalSignificantNumber(number, &national_significant_number);
2921
- return !IsNumberMatchingDesc(
2922
- national_significant_number, metadata->no_international_dialling());
2923
- }
2924
-
2925
- } // namespace phonenumbers
2926
- } // namespace i18n