# ALA_0_area.properties
# This file contains area values for Aland Islands
#/*******************************************************************************
# * Copyright (c) 2006 IBM Corporation and others.
# * All rights reserved. This program and the accompanying materials
# * are made available under the terms of the Eclipse Public License v1.0
# * which accompanies this distribution, and is available at
# * http://www.eclipse.org/legal/epl-v10.html
# *
# * Contributors:
# *     IBM Corporation - initial API and implementation
# *******************************************************************************/

# This is the name of the class that will interpret the rest of the file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryAreaLabelPropertyFileSpecification

# The ISO-3166-1 alpha3 code for the country
ISOKEY = ALA

# The administration level of the graph data
ADMIN_LEVEL = 0

# This is the date range for which the values in this file are valid
# See http://purl.org/dc/terms/1.1/valid
VALID = start=1900-01-01;

# This is the source of the data
SOURCE =  https://www.cia.gov/library/publications/the-world-factbook/

# The key is the ISO-3166-1 alpha3 three letter identifier of the country
# The units are square kilometers
# Country
# 5267 * (1-0.80 = 1053.4) 
ALA = 1053.4
