# PRI_1_human_2000_population.properties 
# This file contains population values for the PUERTO RICO in 2000
#
# /*********************************************************************************************
# * 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
# ***********************************************************************************************/

# /**********************************************************************************************
# * Key Format: 
# * 
# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
# *
# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
# * a level 1 administration. 
# ************************************************************************************************/

# This is the name of the class that will interpret the rest of the file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.records.CountryGraphRecord$CountryPopulationLabelGraphRecord

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

# The administration level of the population data
ADMIN_LEVEL = 1

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

# This is the source of the data
SOURCE = http%3A%2F%2Ffactfinder.census.gov%2Fservlet%2FGCTTable%3F_bm%3Dy%26-geo_id%3D04000US72%26-_box_head_nbr%3DGCT-PH1%26-ds_name%3DDEC_2000_SF1_U%26-redoLog%3Dfalse%26-mt_name%3DDEC_2000_SF1_U_GCTPH1_US9%26-format%3DST-2%26-CONTEXT%3Dgct
# SOURCE = https://www.cia.gov/library/publications/the-world-factbook/

# The population identifier
POPULATION = human

# The year the data is valid
YEAR = 2006

# State/Province

PR-72071 = 44444
PR-72005 = 64685
PR-72013 = 100131
PR-72065 = 38925
PR-72115 = 25450
PR-72027 = 35244
PR-72017 = 22322
PR-72145 = 61929
PR-72143 = 37910
PR-72091 = 45409
PR-72051 = 34017
PR-72127 = 434374
PR-72137 = 94085
PR-72033 = 30071
PR-72099 = 39697
PR-72087 = 32537
PR-72031 = 186076
PR-72061 = 100053
PR-72021 = 224044
PR-72119 = 52362
PR-72003 = 42042
PR-72029 = 43335
PR-72054 = 12367
PR-72135 = 63929
PR-72131 = 44204
PR-72097 = 98434
PR-72053 = 40712
PR-72089 = 19817
PR-72139 = 75728
PR-72101 = 29965
PR-72117 = 14767
PR-72039 = 19811
PR-72047 = 36867
PR-72081 = 34415
PR-72049 = 1868
PR-72141 = 35336
PR-72105 = 29709
PR-72011 = 28348
PR-72025 = 140502
PR-72063 = 36743
PR-72007 = 29032
PR-72073 = 17318
PR-72037 = 18004
PR-72103 = 23753
PR-72107 = 23844
PR-72083 = 11061
PR-72045 = 20002
PR-72085 = 34485
PR-72077 = 36452
PR-72001 = 19143
PR-72019 = 28909
PR-72041 = 42753
PR-72129 = 40997
PR-72093 = 6449
PR-72069 = 59035
PR-72009 = 26493
PR-72149 = 27913
PR-72043 = 37597
PR-72125 = 37105
PR-72113 = 186475
PR-72153 = 46384
PR-72035 = 47370
PR-72023 = 46911
PR-72147 = 9106
PR-72067 = 16614
PR-72075 = 50531
PR-72121 = 25935
PR-72059 = 23072
PR-72111 = 26719
PR-72151 = 39246
PR-72109 = 20152
PR-72057 = 44301
PR-72123 = 31113
PR-72079 = 26261
PR-72095 = 12741
PR-72133 = 21665
PR-72015 = 19117
PR-72055 = 21888
