note
	description: "[
		Widget that represents this VITP sea area
		]"
	author: "Jimmy J. Johnson"

class
	MARSHALL_ISLANDS_WIDGET

inherit

	SEA_AREA_WIDGET
		redefine
			create_interface_objects,
			position_widgets,
			build_ocean,
			build_land
--			build_bounding_figure
		end

create
	make

feature {NONE} -- Initialization

	create_interface_objects
			-- Initialize attributes
		do
			Precursor {SEA_AREA_WIDGET}
			wake := wake_imp
			taongi_atoll := taongi_atoll_imp
			bikar_atoll := bikar_atoll_imp
			utrik_atoll := utrik_atoll_imp
			taka_atoll := taka_atoll_imp
			ailuk_atoll := ailuk_atoll_imp
			likiep_atoll := likiep_atoll_imp
			wotje_atoll := wotje_atoll_imp
			erikub_atoll := erikub_atoll_imp
			kwajalein_atoll := kwajalein_atoll_imp
			namu_atoll := namu_atoll_imp
			ailinglaplap_atoll :=ailinglaplap_atoll_imp
			maloelap_atoll := maloelap_atoll_imp
			aur_atoll := aur_atoll_imp
			majuro_atoll := majuro_atoll_imp
			amo_atoll := amo_atoll_imp
			ujae_atoll := ujae_atoll_imp
			wotho_atoll := wotho_atoll_imp
			ailinginae_atoll := ailinginae_atoll_imp
			rongelap_atoll := rongelap_atoll_imp
			rongerik_atoll := rongerik_atoll_imp
			bikini_atoll := bikini_atoll_imp
			enewetak_atoll := enewetak_atoll_imp
				-- South Marshall Islands
			kajalein_south := kajalein_south_imp
			maloelap_south := maloelap_south_imp
			mili_atoll := mili_atoll_imp
			butaritari_atoll := butaritari_atoll_imp
			abalng_island := abalng_island_imp
			tarawa_island := tarawa_island_imp
			majana_island := majana_island_imp
			kuna_island := kuna_island_imp
			aranuka_island := aranuka_island_imp
			abemama_island := abemama_island_imp
			nonouti_island := nonouti_island_imp
			tabiteuea_island := tabiteuea_island_imp
			onotoa_island := onotoa_island_imp
			beru_island := beru_island_imp
			jaluit_atoll := jaluit_atoll_imp
		end

	position_widgets
			-- Move Current and contained widgets to correct
			-- location and set their their sizes
		do
			Precursor {SEA_AREA_WIDGET}
			translate_widget (Current, 485, 251)
			translate_widget (name_mt, -30, 30)
			translate_widget (dot, 0, 55)
--			flag.center_on_dot (dot)
			flag.set_x_y (dot.x, dot.y)
			translate_widget (dot, 40, 0)
		end

	build_ocean
			-- Create the polygon representing the `ocean' here
			-- Redefined to add the points
		do
			Precursor {SEA_AREA_WIDGET}
				-- start at northern most point
			ocean.extend_point (create {EV_COORDINATE}.make (0, 0))
			ocean.extend_point (create {EV_COORDINATE}.make (113, 53))
			ocean.extend_point (create {EV_COORDINATE}.make (38, 182))
			ocean.extend_point (create {EV_COORDINATE}.make (-93, 66))		-- under Truk
		end

--	build_bounding_figure
--			-- Add points to the `jj_bounding_figure'.
--			-- Redefined to use the tile edges as the bounding area
--		local
--			t: EV_MODEL_TRANSFORMATION
--		do
--			if has (jj_bounding_figure) then
--				prune_all (jj_bounding_figure)
--			end
--			create jj_bounding_figure
--			extend (jj_bounding_figure)
--			jj_bounding_figure.extend_point (create {EV_COORDINATE}.make (0, 0))
--			jj_bounding_figure.extend_point (create {EV_COORDINATE}.make (113, 53))
--			jj_bounding_figure.extend_point (create {EV_COORDINATE}.make (38, 182))
--			jj_bounding_figure.extend_point (create {EV_COORDINATE}.make (-93, 66))		-- under Truk
--			jj_bounding_figure.enable_closed
--			create t.make_zero
--			t.translate (485, 251)	-- 553 is the board height (not including black boarder)
--			jj_bounding_figure.transform (t)
--			jj_bounding_figure.set_line_width (2)
----			show_bounding_figure
--		end

	build_land
			-- Add any brown land to Current
		do
			Precursor {SEA_AREA_WIDGET}
				-- Add North Marshall Islands polygons and tranform
				-- to match other widgets
			land.extend (wake)
			land.extend (taongi_atoll)
			land.extend (bikar_atoll)
			land.extend (utrik_atoll)
			land.extend (taka_atoll)
			land.extend (ailuk_atoll)
			land.extend (likiep_atoll)
			land.extend (wotje_atoll)
			land.extend (erikub_atoll)
--			land.extend (kwajalein_atoll)
			land.extend (namu_atoll)
			land.extend (ailinglaplap_atoll)
--			land.extend (maloelap_atoll)
			land.extend (aur_atoll)
			land.extend (majuro_atoll)
			land.extend (amo_atoll)
			land.extend (ujae_atoll)
			land.extend (wotho_atoll)
			land.extend (ailinginae_atoll)
			land.extend (rongelap_atoll)
			land.extend (rongerik_atoll)
			land.extend (bikini_atoll)
			land.extend (enewetak_atoll)
			wake.transform (north_transform)
			taongi_atoll.transform (north_transform)
			bikar_atoll.transform (north_transform)
			utrik_atoll.transform (north_transform)
			taka_atoll.transform (north_transform)
			ailuk_atoll.transform (north_transform)
			likiep_atoll.transform (north_transform)
			wotje_atoll.transform (north_transform)
			erikub_atoll.transform (north_transform)
			kwajalein_atoll.transform (north_transform)
			namu_atoll.transform (north_transform)
			ailinglaplap_atoll.transform (north_transform)
			maloelap_atoll.transform (north_transform)
			aur_atoll.transform (north_transform)
			majuro_atoll.transform (north_transform)
			amo_atoll.transform (north_transform)
			ujae_atoll.transform (north_transform)
			wotho_atoll.transform (north_transform)
			ailinginae_atoll.transform (north_transform)
			rongelap_atoll.transform (north_transform)
			rongerik_atoll.transform (north_transform)
			bikini_atoll.transform (north_transform)
			enewetak_atoll.transform (north_transform)
				-- Add South Marshall Islands polygons and tranform
				-- to match other widgets
--			land.extend (kajalein_south)
--			land.extend (maloelap_south)
			land.extend (mili_atoll)
			land.extend (butaritari_atoll)
			land.extend (abalng_island)
			land.extend (tarawa_island)
			land.extend (majana_island)
			land.extend (kuna_island)
			land.extend (aranuka_island)
			land.extend (abemama_island)
			land.extend (nonouti_island)
			land.extend (tabiteuea_island)
			land.extend (onotoa_island)
			land.extend (beru_island)
			land.extend (jaluit_atoll)
			kajalein_south.transform (south_transform)
			maloelap_south.transform (south_transform)
			mili_atoll.transform (south_transform)
			butaritari_atoll.transform (south_transform)
			abalng_island.transform (south_transform)
			tarawa_island.transform (south_transform)
			majana_island.transform (south_transform)
			kuna_island.transform (south_transform)
			aranuka_island.transform (south_transform)
			abemama_island.transform (south_transform)
			nonouti_island.transform (south_transform)
			tabiteuea_island.transform (south_transform)
			onotoa_island.transform (south_transform)
			beru_island.transform (south_transform)
			jaluit_atoll.transform (south_transform)
		end

feature -- Access (North Marshall Islands)

	wake: EV_MODEL_POLYGON
	taongi_atoll: EV_MODEL_POLYGON
	bikar_atoll: EV_MODEL_POLYGON
	utrik_atoll: EV_MODEL_POLYGON
	taka_atoll: EV_MODEL_POLYGON
	ailuk_atoll: EV_MODEL_POLYGON
	likiep_atoll: EV_MODEL_POLYGON
	wotje_atoll: EV_MODEL_POLYGON
	erikub_atoll: EV_MODEL_POLYGON
	kwajalein_atoll: EV_MODEL_POLYGON
	namu_atoll: EV_MODEL_POLYGON
	ailinglaplap_atoll: EV_MODEL_POLYGON
	maloelap_atoll: EV_MODEL_POLYGON
	aur_atoll: EV_MODEL_POLYGON
	majuro_atoll: EV_MODEL_POLYGON
	amo_atoll: EV_MODEL_POLYGON
	ujae_atoll: EV_MODEL_POLYGON
	wotho_atoll: EV_MODEL_POLYGON
	ailinginae_atoll: EV_MODEL_POLYGON
	rongelap_atoll: EV_MODEL_POLYGON
	rongerik_atoll: EV_MODEL_POLYGON
	bikini_atoll: EV_MODEL_POLYGON
	enewetak_atoll: EV_MODEL_POLYGON

feature -- Access (South Marshall Islands)

	kajalein_south: EV_MODEL_POLYGON
	maloelap_south: EV_MODEL_POLYGON
	mili_atoll: EV_MODEL_POLYGON
	butaritari_atoll: EV_MODEL_POLYGON
	abalng_island: EV_MODEL_POLYGON
	tarawa_island: EV_MODEL_POLYGON
	majana_island: EV_MODEL_POLYGON
	kuna_island: EV_MODEL_POLYGON
	aranuka_island: EV_MODEL_POLYGON
	abemama_island: EV_MODEL_POLYGON
	nonouti_island: EV_MODEL_POLYGON
	tabiteuea_island: EV_MODEL_POLYGON
	onotoa_island: EV_MODEL_POLYGON
	beru_island: EV_MODEL_POLYGON
	jaluit_atoll: EV_MODEL_POLYGON

feature {NONE} -- Implementation

	north_point: EV_COORDINATE
			-- Reference point for transformations of the north
			-- polygons (i.e. `north', `hainan', & `taiwan').
		local
			bb: EV_RECTANGLE
			mid_x: REAL_64
			mid_y: REAL_64
		once
			create Result.make_precise (0.0, 0.0)
				-- Estimate the mid_point
--3			create Result.make_precise (721.0, 176.0)
		end

	north_move: EV_COORDINATE
			-- Distance in x- and y-directions to move the north polygons.
		once
			create Result.make_precise (5.0, 19.0)
		end

	north_scale: REAL_64 = 0.07
			-- Scale factor for north polygons.

	north_angle: REAL_64 = 13.0
			-- Number of degrees to rotate the north polygons

	north_transform: EV_MODEL_TRANSFORMATION
			-- Matrix to scale, rotate, and translate polygons
			-- depicting `north', `hainan', and `taiwan'.
		local
			r, s, t: EV_MODEL_TRANSFORMATION
		once
			create r.make_zero
			create s.make_zero
			create t.make_zero
			t.translate (north_move.x_precise, north_move.y_precise)
--			s.scale (north_scale, north_scale, north_point.x_precise, north_point.y_precise, 0.0)
			s.scale (north_scale, north_scale, 0.0, 0.0, 0.0)
			r.rotate (degrees_to_radians (north_angle), north_point.x_precise, north_point.y_precise)
			Result := t * r * s
--			Result := r * s * t
--			Result := s * t * r
		end

	south_point: EV_COORDINATE
			-- Reference point for transformations of the south
			-- polygons (i.e. `kamchatsky', `shumshu', `paramushir',
			-- `atlasov', etc.).
		once
			create Result.make_precise (0.0, 200.0)
		end

	south_move: EV_COORDINATE
			-- Distance in x- and y-directions to move the south polygons.
		once
			create Result.make_precise (-54.0, 77.0)
		end

	south_scale: REAL_64 = 0.07
			-- Scale factor for south polygons

	south_angle: REAL_64 = 13.0
			-- Number of degrees to rotate the south polygons

	south_transform: EV_MODEL_TRANSFORMATION
			-- Matrix to scale, rotate, and translate polygons
			-- depicting `north', `hainan', and `taiwan'.
		local
			r, s, t: EV_MODEL_TRANSFORMATION
		once
			create r.make_zero
			create s.make_zero
			create t.make_zero
			t.translate (south_move.x_precise, south_move.y_precise)
--			s.scale (south_scale, south_scale, south_point.x_precise, south_point.y_precise, 0.0)
			s.scale (south_scale, south_scale, 0.0, 0.0, 0.0)
			r.rotate (degrees_to_radians (south_angle), south_point.x_precise, south_point.y_precise)
			Result := t * r * s
--			Result := r * s * t
--			Result := s * t * r
		end

feature {NONE} -- Implmenetation (North Marshallls)

	wake_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (0, 0))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-2.3703703703703241, -1.7777777777777768))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-2.074074074074133, -5.0370370370370345))
			Result.extend_point (create {EV_COORDINATE}.make_precise (1.1851851851852189, -7.1111111111111072))
			Result.extend_point (create {EV_COORDINATE}.make_precise (3.5555555555555429, -5.3333333333333321))
			Result.extend_point (create {EV_COORDINATE}.make_precise (3.2592592592592382, -1.1851851851851833))
		end

	taongi_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (205.33333333333337, 433.18518518518511))
			Result.extend_point (create {EV_COORDINATE}.make_precise (210.37037037037032, 432.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (216.5925925925925, 436.1481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (220.14814814814815, 443.55555555555549))
			Result.extend_point (create {EV_COORDINATE}.make_precise (217.48148148148141, 446.81481481481467))
			Result.extend_point (create {EV_COORDINATE}.make_precise (211.55555555555554, 450.96296296296288))
			Result.extend_point (create {EV_COORDINATE}.make_precise (209.77777777777771, 448.59259259259244))
			Result.extend_point (create {EV_COORDINATE}.make_precise (210.96296296296293, 445.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (210.07407407407402, 441.18518518518511))
			Result.extend_point (create {EV_COORDINATE}.make_precise (207.70370370370358, 435.85185185185179))
		end

	bikar_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (314.07407407407402, 661.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (315.25925925925912, 659.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (317.92592592592575, 661.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (320, 661.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (322.66666666666663, 665.18518518518511))
			Result.extend_point (create {EV_COORDINATE}.make_precise (320.29629629629619, 669.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (318.51851851851859, 672.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (317.33333333333337, 670.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (315.55555555555554, 670.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (313.77777777777771, 666.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (314.96296296296293, 664.29629629629619))
		end

	utrik_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (289.77777777777771, 748.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (291.25925925925912, 752.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (298.07407407407402, 759.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (290.66666666666663, 762.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (287.40740740740739, 764.14814814814792))
			Result.extend_point (create {EV_COORDINATE}.make_precise (284.44444444444434, 760.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (284.44444444444434, 752.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (285.62962962962956, 749.92592592592575))
		end

	taka_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (266.07407407407402, 762.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (272.29629629629619, 762.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (278.81481481481478, 760.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (281.48148148148141, 761.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (279.70370370370358, 763.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (279.70370370370358, 771.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (275.55555555555554, 773.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (271.40740740740739, 773.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (268.74074074074076, 769.18518518518499))
		end

	ailuk_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (293.03703703703695, 846.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (297.77777777777771, 843.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (300.14814814814815, 830.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (304.5925925925925, 829.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (307.25925925925912, 836.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (306.07407407407402, 844.14814814814792))
			Result.extend_point (create {EV_COORDINATE}.make_precise (307.25925925925912, 854.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (304, 853.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (297.77777777777771, 854.81481481481455))
		end

	likiep_Atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (217.18518518518522, 883.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (216.5925925925925, 880.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (217.77777777777771, 878.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (217.77777777777771, 873.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (215.40740740740739, 868.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (220.44444444444434, 869.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (225.18518518518522, 869.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (229.62962962962956, 875.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (243.25925925925912, 881.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (247.11111111111097, 890.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (236.14814814814815, 890.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (235.25925925925912, 893.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (227.25925925925912, 893.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (226.37037037037032, 889.18518518518499))
		end

	wotje_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (300.14814814814815, 936.88888888888869))
			Result.extend_point (create {EV_COORDINATE}.make_precise (293.92592592592575, 927.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (290.66666666666663, 927.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (290.07407407407402, 920.88888888888869))
			Result.extend_point (create {EV_COORDINATE}.make_precise (292.14814814814815, 917.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (315.55555555555554, 917.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (322.37037037037032, 913.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (331.55555555555554, 921.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (329.48148148148141, 930.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (316.44444444444434, 931.55555555555532))
			Result.extend_point (create {EV_COORDINATE}.make_precise (312.5925925925925, 934.51851851851836))
		end

	erikub_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (298.96296296296293, 952.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (299.85185185185185, 941.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (305.77777777777771, 940.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (313.77777777777771, 946.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (319.70370370370358, 956.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (319.11111111111097, 964.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (312.5925925925925, 966.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (309.92592592592575, 959.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (305.18518518518522, 958.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (303.11111111111097, 955.25925925925912))
		end

	kwajalein_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (18.96296296296299, 935.11111111111086))
			Result.extend_point (create {EV_COORDINATE}.make_precise (33.185185185185219, 935.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (43.851851851851904, 932.14814814814792))
			Result.extend_point (create {EV_COORDINATE}.make_precise (62.222222222222172, 937.18518518518499))
			Result.extend_point (create {EV_COORDINATE}.make_precise (71.111111111111086, 934.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (74.370370370370324, 934.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (81.185185185185219, 928.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (83.259259259259238, 937.18518518518499))
			Result.extend_point (create {EV_COORDINATE}.make_precise (94.51851851851859, 948.44444444444412))
			Result.extend_point (create {EV_COORDINATE}.make_precise (104.8888888888888, 958.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (102.81481481481478, 963.55555555555532))
			Result.extend_point (create {EV_COORDINATE}.make_precise (106.96296296296293, 974.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (102.81481481481478, 979.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (103.11111111111109, 993.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (91.259259259259238, 986.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (85.629629629629676, 979.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (84.148148148148152, 970.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (86.51851851851859, 966.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (78.51851851851859, 959.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (69.333333333333371, 956.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (58.666666666666629, 959.11111111111086))
			Result.extend_point (create {EV_COORDINATE}.make_precise (51.851851851851848, 954.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (46.222222222222172, 955.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (34.370370370370324, 946.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (27.555555555555543, 942.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (21.925925925925867, 939.55555555555532))
		end

	namu_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (123.55555555555554, 1042.3703703703702))
			Result.extend_point (create {EV_COORDINATE}.make_precise (123.25925925925924, 1039.1111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (126.81481481481478, 1038.2222222222219))
			Result.extend_point (create {EV_COORDINATE}.make_precise (130.66666666666663, 1039.9999999999998))
			Result.extend_point (create {EV_COORDINATE}.make_precise (144.2962962962963, 1041.185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (144, 1051.5555555555552))
			Result.extend_point (create {EV_COORDINATE}.make_precise (144.8888888888888, 1057.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (152, 1068.1481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (156.74074074074076, 1073.7777777777774))
			Result.extend_point (create {EV_COORDINATE}.make_precise (154.66666666666663, 1079.9999999999998))
			Result.extend_point (create {EV_COORDINATE}.make_precise (145.77777777777771, 1082.0740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (141.03703703703695, 1071.4074074074074))
			Result.extend_point (create {EV_COORDINATE}.make_precise (142.81481481481478, 1067.2592592592591))
			Result.extend_point (create {EV_COORDINATE}.make_precise (138.07407407407402, 1061.9259259259256))
			Result.extend_point (create {EV_COORDINATE}.make_precise (135.11111111111109, 1051.8518518518517))
			Result.extend_point (create {EV_COORDINATE}.make_precise (127.11111111111109, 1048.8888888888887))
		end

	ailinglaplap_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (176.5925925925925, 1108.4444444444441))
			Result.extend_point (create {EV_COORDINATE}.make_precise (181.62962962962968, 1104.5925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (188.74074074074076, 1104.2962962962961))
			Result.extend_point (create {EV_COORDINATE}.make_precise (194.96296296296293, 1101.6296296296296))
			Result.extend_point (create {EV_COORDINATE}.make_precise (201.18518518518522, 1101.333333333333))
			Result.extend_point (create {EV_COORDINATE}.make_precise (205.62962962962968, 1097.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (210.07407407407402, 1093.6296296296296))
			Result.extend_point (create {EV_COORDINATE}.make_precise (216.5925925925925, 1094.2222222222219))
			Result.extend_point (create {EV_COORDINATE}.make_precise (213.03703703703695, 1099.8518518518517))
			Result.extend_point (create {EV_COORDINATE}.make_precise (213.62962962962968, 1107.8518518518517))
			Result.extend_point (create {EV_COORDINATE}.make_precise (207.11111111111109, 1114.0740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (208, 1120.5925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (201.18518518518522, 1125.9259259259256))
			Result.extend_point (create {EV_COORDINATE}.make_precise (198.22222222222217, 1129.185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (191.70370370370358, 1126.2222222222219))
			Result.extend_point (create {EV_COORDINATE}.make_precise (189.62962962962968, 1122.6666666666665))
			Result.extend_point (create {EV_COORDINATE}.make_precise (180.14814814814815, 1116.1481481481478))
		end

	maloelap_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (380.74074074074076, 974.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (394.07407407407402, 973.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (404.14814814814815, 976.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (412.44444444444434, 984.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (417.48148148148141, 985.77777777777749))
			Result.extend_point (create {EV_COORDINATE}.make_precise (421.62962962962956, 992.88888888888869))
			Result.extend_point (create {EV_COORDINATE}.make_precise (416.29629629629619, 1000.8888888888887))
			Result.extend_point (create {EV_COORDINATE}.make_precise (415.70370370370358, 1009.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (416.8888888888888, 1013.037037037037))
			Result.extend_point (create {EV_COORDINATE}.make_precise (412.74074074074076, 1014.2222222222219))
			Result.extend_point (create {EV_COORDINATE}.make_precise (404.14814814814815, 1013.037037037037))
			Result.extend_point (create {EV_COORDINATE}.make_precise (400.29629629629619, 1007.1111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (399.40740740740739, 1002.074074074074))
			Result.extend_point (create {EV_COORDINATE}.make_precise (392, 988.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (386.96296296296293, 984.29629629629619))
		end

	aur_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (400.29629629629619, 1039.4074074074074))
			Result.extend_point (create {EV_COORDINATE}.make_precise (402.66666666666663, 1023.9999999999998))
			Result.extend_point (create {EV_COORDINATE}.make_precise (413.33333333333337, 1029.037037037037))
			Result.extend_point (create {EV_COORDINATE}.make_precise (413.03703703703695, 1038.2222222222219))
			Result.extend_point (create {EV_COORDINATE}.make_precise (415.70370370370358, 1041.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (415.11111111111097, 1047.1111111111109))
		end

	majuro_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (401.18518518518522, 1136.8888888888887))
			Result.extend_point (create {EV_COORDINATE}.make_precise (404.44444444444434, 1129.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (416.5925925925925, 1135.4074074074074))
			Result.extend_point (create {EV_COORDINATE}.make_precise (423.11111111111097, 1134.5185185185182))
			Result.extend_point (create {EV_COORDINATE}.make_precise (432.29629629629619, 1137.7777777777774))
			Result.extend_point (create {EV_COORDINATE}.make_precise (434.96296296296293, 1141.6296296296296))
			Result.extend_point (create {EV_COORDINATE}.make_precise (418.96296296296293, 1146.6666666666665))
		end

	amo_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (449.48148148148141, 1142.2222222222219))
			Result.extend_point (create {EV_COORDINATE}.make_precise (456.88888888888869, 1129.7777777777774))
			Result.extend_point (create {EV_COORDINATE}.make_precise (459.55555555555532, 1136.2962962962961))
			Result.extend_point (create {EV_COORDINATE}.make_precise (462.81481481481478, 1136.8888888888887))
			Result.extend_point (create {EV_COORDINATE}.make_precise (469.33333333333314, 1141.037037037037))
			Result.extend_point (create {EV_COORDINATE}.make_precise (478.22222222222206, 1141.037037037037))
			Result.extend_point (create {EV_COORDINATE}.make_precise (483.55555555555532, 1138.3703703703702))
			Result.extend_point (create {EV_COORDINATE}.make_precise (483.85185185185185, 1141.6296296296296))
			Result.extend_point (create {EV_COORDINATE}.make_precise (477.92592592592575, 1143.9999999999998))
			Result.extend_point (create {EV_COORDINATE}.make_precise (470.81481481481478, 1149.9259259259256))
			Result.extend_point (create {EV_COORDINATE}.make_precise (469.33333333333314, 1157.037037037037))
			Result.extend_point (create {EV_COORDINATE}.make_precise (460.74074074074076, 1150.8148148148146))
			Result.extend_point (create {EV_COORDINATE}.make_precise (454.51851851851859, 1151.7037037037035))
		end

	ujae_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (-100.44444444444446, 944.88888888888869))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-98.370370370370324, 943.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-93.333333333333314, 949.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-86.814814814814781, 951.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-77.03703703703701, 972.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-88.296296296296305, 968.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-95.407407407407391, 962.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-97.777777777777828, 952.88888888888869))
		end

	wotho_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (-63.703703703703695, 854.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-53.925925925925924, 856.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-53.925925925925924, 860.14814814814792))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-56, 862.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-51.851851851851848, 869.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-53.629629629629619, 872.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-60.740740740740705, 868.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-62.518518518518533, 862.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-64.296296296296305, 860.44444444444434))
		end

	ailinginae_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (-29.03703703703701, 764.14814814814792))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-18.666666666666629, 765.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-10.074074074074133, 763.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-7.1111111111111427, 765.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-6.8148148148147811, 771.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-9.4814814814814099, 772.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-12.148148148148096, 771.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-21.629629629629619, 771.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-28.740740740740705, 769.7777777777776))
		end

	rongelap_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (0.88888888888885731, 758.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (0.59259259259255259, 747.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (5.925925925925867, 737.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (16, 737.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (21.925925925925867, 733.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (30.51851851851859, 739.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (37.333333333333371, 736.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (41.777777777777771, 738.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (38.814814814814781, 742.51851851851836))
			Result.extend_point (create {EV_COORDINATE}.make_precise (36.444444444444457, 747.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (30.51851851851859, 748.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (25.481481481481467, 754.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (27.259259259259238, 767.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (20.148148148148152, 768.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (12.148148148148152, 767.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (6.8148148148147811, 762.37037037037021))
		end

	rongerik_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (68.148148148148152, 746.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (70.222222222222172, 741.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (83.555555555555543, 742.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (84.444444444444457, 746.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (82.370370370370324, 747.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (81.185185185185219, 755.85185185185173))
			Result.extend_point (create {EV_COORDINATE}.make_precise (77.629629629629676, 755.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (72.592592592592496, 757.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (72.592592592592496, 751.11111111111097))
		end

	bikini_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (-129.48148148148141, 722.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-120.88888888888891, 714.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-114.96296296296293, 716.14814814814792))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-109.92592592592592, 713.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-102.81481481481478, 719.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-94.518518518518533, 720.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-93.03703703703701, 733.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-96.592592592592609, 734.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-106.66666666666663, 735.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-118.81481481481478, 737.18518518518499))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-120, 733.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-128.2962962962963, 727.70370370370358))
		end

	enewetak_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (-416.29629629629625, 731.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-409.18518518518511, 719.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-401.77777777777771, 717.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-397.92592592592587, 717.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-394.66666666666663, 721.4814814814813))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-390.22222222222217, 722.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-389.62962962962956, 728.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-383.11111111111109, 735.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-385.18518518518511, 745.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-390.51851851851848, 751.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-401.18518518518511, 750.81481481481455))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-410.37037037037032, 745.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (-413.03703703703695, 735.11111111111097))
		end

feature {NONE} -- Implementation (South Marshalls)

	kajalein_south_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (0, 0))
			Result.extend_point (create {EV_COORDINATE}.make_precise (13.333333333333343, 0.59259259259259522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (25.18518518518519, -2.3703703703703667))
			Result.extend_point (create {EV_COORDINATE}.make_precise (45.925925925925895, 2.0740740740740762))
			Result.extend_point (create {EV_COORDINATE}.make_precise (63.407407407407391, 1.7777777777777786))
			Result.extend_point (create {EV_COORDINATE}.make_precise (82.962962962962933, 20.148148148148138))
			Result.extend_point (create {EV_COORDINATE}.make_precise (83.555555555555543, 29.925925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (88, 40.888888888888886))
			Result.extend_point (create {EV_COORDINATE}.make_precise (84.444444444444457, 46.222222222222214))
			Result.extend_point (create {EV_COORDINATE}.make_precise (84.148148148148152, 57.481481481481467))
			Result.extend_point (create {EV_COORDINATE}.make_precise (67.851851851851848, 47.407407407407405))
			Result.extend_point (create {EV_COORDINATE}.make_precise (68.148148148148152, 34.666666666666657))
			Result.extend_point (create {EV_COORDINATE}.make_precise (61.333333333333343, 26.074074074074076))
			Result.extend_point (create {EV_COORDINATE}.make_precise (51.851851851851848, 21.629629629629626))
			Result.extend_point (create {EV_COORDINATE}.make_precise (40, 23.703703703703702))
			Result.extend_point (create {EV_COORDINATE}.make_precise (32.296296296296276, 19.555555555555557))
			Result.extend_point (create {EV_COORDINATE}.make_precise (20.444444444444457, 17.18518518518519))
			Result.extend_point (create {EV_COORDINATE}.make_precise (11.851851851851848, 8))
		end

	maloelap_south_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (362.07407407407402, 38.81481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (375.7037037037037, 38.81481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (390.81481481481478, 45.037037037037038))
			Result.extend_point (create {EV_COORDINATE}.make_precise (397.92592592592587, 50.370370370370367))
			Result.extend_point (create {EV_COORDINATE}.make_precise (403.55555555555554, 56.888888888888886))
			Result.extend_point (create {EV_COORDINATE}.make_precise (396.74074074074065, 63.999999999999986))
			Result.extend_point (create {EV_COORDINATE}.make_precise (396.74074074074065, 78.81481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (382.81481481481478, 69.629629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (373.03703703703695, 54.81481481481481))
		end

	mili_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (445.03703703703695, 285.92592592592587))
			Result.extend_point (create {EV_COORDINATE}.make_precise (455.7037037037037, 283.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (464.88888888888891, 281.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (468.44444444444446, 285.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (480.59259259259261, 285.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (484.44444444444446, 292.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (483.55555555555554, 305.18518518518522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (488.59259259259261, 316.74074074074076))
			Result.extend_point (create {EV_COORDINATE}.make_precise (488, 319.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (482.66666666666663, 311.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (478.22222222222217, 307.25925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (470.81481481481478, 304.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (464.88888888888891, 305.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (461.92592592592587, 301.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (458.07407407407402, 302.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (454.22222222222217, 299.55555555555554))
			Result.extend_point (create {EV_COORDINATE}.make_precise (450.96296296296282, 302.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (446.22222222222217, 301.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (446.81481481481478, 291.55555555555554))
			Result.extend_point (create {EV_COORDINATE}.make_precise (445.03703703703695, 291.55555555555554))
		end

	butaritari_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (534.51851851851848, 553.77777777777771))
			Result.extend_point (create {EV_COORDINATE}.make_precise (540.74074074074065, 558.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (553.77777777777783, 559.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (557.33333333333326, 557.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560, 545.77777777777771))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.48148148148141, 543.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (564.44444444444446, 544))
			Result.extend_point (create {EV_COORDINATE}.make_precise (564.74074074074065, 546.66666666666663))
			Result.extend_point (create {EV_COORDINATE}.make_precise (562.37037037037021, 547.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.18518518518499, 555.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (557.62962962962956, 559.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560.8888888888888, 560.5925925925925))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.18518518518499, 565.92592592592587))
			Result.extend_point (create {EV_COORDINATE}.make_precise (554.96296296296282, 568.2962962962963))
			Result.extend_point (create {EV_COORDINATE}.make_precise (555.25925925925924, 573.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (549.33333333333326, 573.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (545.18518518518499, 575.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (541.62962962962956, 579.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (538.37037037037032, 577.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (538.37037037037032, 571.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (536.29629629629619, 569.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (535.40740740740739, 564.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (533.03703703703695, 557.33333333333326))
		end

	abalng_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (542.22222222222217, 679.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (549.92592592592587, 672.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (555.25925925925924, 674.66666666666663))
			Result.extend_point (create {EV_COORDINATE}.make_precise (566.81481481481478, 688))
			Result.extend_point (create {EV_COORDINATE}.make_precise (567.11111111111109, 692.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.48148148148141, 695.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (554.07407407407402, 691.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (552.8888888888888, 686.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (548.44444444444446, 682.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (544.29629629629619, 682.96296296296282))
		end

	tarawa_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (560, 704.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560.8888888888888, 711.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (577.77777777777783, 728))
			Result.extend_point (create {EV_COORDINATE}.make_precise (566.81481481481478, 731.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (562.37037037037021, 734.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (557.33333333333326, 731.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (553.48148148148141, 732.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (553.77777777777783, 725.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (552.59259259259261, 717.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (555.25925925925924, 707.85185185185185))
		end

	majana_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (563.25925925925924, 759.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (569.77777777777783, 766.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (566.81481481481478, 768))
			Result.extend_point (create {EV_COORDINATE}.make_precise (565.03703703703695, 775.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (562.07407407407402, 778.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (556.14814814814804, 772.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560.59259259259261, 763.55555555555543))
		end

	kuna_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (595.25925925925924, 827.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (599.11111111111109, 828.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (601.48148148148141, 831.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (605.33333333333326, 833.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (599.70370370370358, 836.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (597.92592592592587, 832.29629629629619))
		end

	aranuka_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (609.48148148148141, 835.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (615.40740740740739, 835.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (619.85185185185173, 833.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (622.81481481481478, 838.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (619.85185185185173, 844.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (616.59259259259261, 843.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (615.70370370370358, 840.59259259259238))
		end

	abemama_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (631.11111111111109, 816.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (633.77777777777783, 815.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (635.25925925925924, 810.66666666666663))
			Result.extend_point (create {EV_COORDINATE}.make_precise (641.18518518518499, 808.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (645.92592592592587, 813.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (649.18518518518499, 821.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (648.59259259259261, 826.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (642.07407407407402, 826.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (637.92592592592587, 822.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (636.74074074074065, 820.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (632.59259259259261, 819.85185185185185))
		end

	nonouti_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (665.48148148148141, 911.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (672, 898.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (675.85185185185173, 902.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (683.55555555555543, 902.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (693.33333333333326, 908.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (695.11111111111109, 914.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (696.8888888888888, 928.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (691.25925925925924, 924.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (685.62962962962956, 925.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (682.07407407407402, 927.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (679.70370370370358, 924.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (672.8888888888888, 919.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (671.40740740740739, 916.74074074074065))
		end

	tabiteuea_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (711.40740740740739, 954.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (715.25925925925924, 953.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (718.81481481481478, 956.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (725.33333333333326, 965.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (727.40740740740739, 968.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (726.81481481481478, 973.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (732.14814814814804, 974.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (735.70370370370358, 978.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (751.70370370370358, 986.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (753.18518518518499, 994.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (744, 994.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (737.77777777777783, 995.55555555555532))
			Result.extend_point (create {EV_COORDINATE}.make_precise (729.18518518518499, 989.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (728, 982.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (721.77777777777783, 979.55555555555532))
			Result.extend_point (create {EV_COORDINATE}.make_precise (720.59259259259261, 972.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (714.66666666666663, 963.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (712.29629629629619, 961.18518518518522))
		end

	onotoa_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (789.92592592592575, 1015.7037037037035))
			Result.extend_point (create {EV_COORDINATE}.make_precise (796.14814814814792, 1016.2962962962961))
			Result.extend_point (create {EV_COORDINATE}.make_precise (795.55555555555543, 1020.4444444444443))
			Result.extend_point (create {EV_COORDINATE}.make_precise (800.59259259259238, 1024.5925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (801.4814814814813, 1029.333333333333))
			Result.extend_point (create {EV_COORDINATE}.make_precise (796.74074074074065, 1032.5925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (794.07407407407402, 1026.6666666666665))
			Result.extend_point (create {EV_COORDINATE}.make_precise (789.33333333333326, 1025.1851851851852))
			Result.extend_point (create {EV_COORDINATE}.make_precise (790.81481481481455, 1020.4444444444443))
		end

	beru_island_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (829.62962962962956, 970.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (831.40740740740739, 968.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (839.70370370370358, 978.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (839.40740740740739, 979.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (837.03703703703695, 977.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (832.59259259259238, 978.07407407407402))
		end

	jaluit_atoll_imp: EV_MODEL_POLYGON
			-- Make the polygon
		do
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (234.96296296296291, 283.25925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (237.03703703703698, 278.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (242.6666666666666, 277.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (248.29629629629628, 287.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (254.81481481481475, 299.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (261.92592592592587, 300.14814814814815))
			Result.extend_point (create {EV_COORDINATE}.make_precise (265.77777777777783, 308.74074074074076))
			Result.extend_point (create {EV_COORDINATE}.make_precise (261.03703703703695, 311.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (259.55555555555554, 321.18518518518522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (253.9259259259259, 327.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (246.81481481481475, 324.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (244.74074074074068, 317.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (236.14814814814807, 310.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (237.9259259259259, 305.18518518518522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (237.9259259259259, 299.25925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (239.70370370370367, 292.14814814814815))
			Result.extend_point (create {EV_COORDINATE}.make_precise (238.5185185185185, 287.11111111111109))
		end

invariant

	is_valid_sea_area: attached target_imp implies sea_area = game.marshall_islands

end
