This git project contains a subset of geonames data files, downloaded from the
geonames HTTP server for use during time zone geolocation testing.

Use android/download_latest.sh to download the latest files and update the
METADATA file.

Content of project:

LICENSE - geonames license information, originally created by nfuller@ from
          the geonames readme.txt and
          https://creativecommons.org/licenses/by/4.0/legalcode.txt
METADATA - information about the license / files, generated by
           android/download_latest.sh
MODULE_LICENSE_CCBY - an empty file indicating the use of Creative
                      Commons BY license, originally created by nfuller@
README.android - this file

android/
  download_latest.sh - a script that downloads geonames files from
                       the geonames http server, originally written by
                       nfuller@
  version_info/* - header information captured during download,
                   e.g. last modified date

external/dump/* - files downloaded using android/download_latest.sh
