Index: /applications/editors/josm/plugins/smed2/resources/msg/messages_en.properties
===================================================================
--- /applications/editors/josm/plugins/smed2/resources/msg/messages_en.properties	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/resources/msg/messages_en.properties	(revision 30325)
@@ -0,0 +1,1677 @@
+UNKOBJ=
+ADMARE=Administrative area
+AIRARE=Airfield
+ACHBRT=Anchor berth
+ACHARE=Anchorage
+BCNCAR=Cardinal beacon
+BCNISD=Isolated danger beacon
+BCNLAT=Lateral beacon
+BCNSAW=Safe water beacon
+BCNSPP=Special purpose beacon
+BERTHS=Berth
+BRIDGE=Bridge
+BUISGL=Building
+BUAARE=Built-up area
+BOYCAR=Cardinal buoy
+BOYINB=Installation buoy
+BOYISD=Isolated danger buoy
+BOYLAT=Lateral buoy
+BOYSAW=Safe water buoy
+BOYSPP=Special purpose buoy
+CBLARE=Cable area
+CBLOHD=Overhead cable
+CBLSUB=Submarine cable
+CANALS=Canal
+CANBNK=Canal bank
+CTSARE=Cargo area
+CAUSWY=Causeway
+CTNARE=Caution area
+CHKPNT=Checkpoint
+CGUSTA=Coastguard station
+COALNE=Coastline
+CONZNE=Contiguous zone
+COSARE=Continental shelf
+CTRPNT=Control point
+CONVYR=Conveyor
+CRANES=Crane
+CURENT=Current
+CUSZNE=Custom zone
+DAMCON=Dam
+DAYMAR=Daymark
+DWRTCL=Deep water route centreline
+DWRTPT=Deep water route
+DEPARE=Depth area
+DEPCNT=Depth contour
+DISMAR=Distance mark
+DOCARE=Dock
+DRGARE=Dredged area
+DRYDOC=Dry dock
+DMPGRD=Dumping ground
+DYKCON=Dyke
+EXEZNE=Exclusive economic zone
+FAIRWY=Fairway
+FNCLNE=Fenceline/Wall
+FERYRT=Ferry route
+FSHZNE=Fishery zone
+FSHFAC=Fishing facility
+FSHGRD=Fishing ground
+FLODOC=Floating dock
+FOGSIG=Fog signal
+FORSTC=Fortified structure
+FRPARE=Free port area
+GATCON=Gate
+GRIDRN=Gridiron
+HRBARE=Harbour area
+HRBFAC=Harbour
+HULKES=Hulk
+ICEARE=Ice area
+ICNARE=Incineration zone
+ISTZNE=Inshore traffic zone
+LAKARE=Lake
+LAKSHR=Lake shore
+LNDARE=Land area
+LNDELV=Land elevation
+LNDRGN=Land region
+LNDMRK=Landmark
+LIGHTS=Light
+LITFLT=Light float
+LITVES=Light vessel
+LOCMAG=Local magnetic anomaly
+LOKBSN=Lock basin
+LOGPON=Log pond
+MAGVAR=Magnetic variation
+MARCUL=Marine farm
+MIPARE=Military practice area
+MORFAC=Mooring
+NAVLNE=Navigation line
+OBSTRN=Obstruction
+OFSPLF=Offshore platform
+OSPARE=Offshore production area
+OILBAR=Oil barrier
+PILPNT=Pile
+PILBOP=Pilot boarding place
+PIPARE=Pipeline area
+PIPOHD=Overhead pipeline
+PIPSOL=Submarine pipeline
+PONTON=Pontoon
+PRCARE=Precautionary area
+PRDARE=Land production area
+PYLONS=Pylon
+RADLNE=Radar line
+RADRNG=Radar range
+RADRFL=Radar reflector
+RADSTA=Radar station
+RTPBCN=Radar transponder
+RDOCAL=Calling-in point
+RDOSTA=Radio station
+RAILWY=Railway
+RAPIDS=Rapids
+RCRTCL=Recommended route centreline
+RECTRC=Recommended track
+RCTLPT=Recommended traffic lane
+RSCSTA=Rescue station
+RESARE=Restricted area
+RETRFL=Retro reflector
+RIVERS=River
+RIVBNK=River bank
+ROADWY=Road
+RUNWAY=Runway
+SNDWAV=Sand waves
+SEAARE=Sea area
+SPLARE=Seaplane landing area
+SBDARE=Seabed area
+SLCONS=Shoreline construction
+SISTAT=Traffic signal station
+SISTAW=Warning signal station
+SILTNK=Tank/Silo
+SLOTOP=Slope topline
+SLOGRD=Sloping ground
+SMCFAC=Small craft facility
+SOUNDG=Sounding
+SPRING=Spring
+SQUARE=Square
+STSLNE=Territorial baseline
+SUBTLN=Submarine transit lane
+SWPARE=Swept area
+TESARE=Territorial area
+TIDEWY=Tideway
+TOPMAR=Topmark
+TSELNE=Separation line
+TSSBND=Separation boundary
+TSSCRS=Separation crossing
+TSSLPT=Separation lane
+TSSRON=Separation roundabout
+TSEZNE=Separation zone
+TUNNEL=Tunnel
+TWRTPT=Two-way route
+UWTROC=Rock
+UNSARE=Unsurveyed area
+VEGATN=Vegetation
+WATTUR=Water turbulence
+WATFAL=Waterfall
+WEDKLP=Weed
+WRECKS=Wreck
+TS_FEB=Tidal stream
+NOTMRK=Notice
+WTWAXS=Waterway axis
+WTWPRF=Waterway profile
+BRGARE=Bridge area
+BUNSTA=Bunker station
+COMARE=Communication area
+HRBBSN=Harbour basin
+LOKARE=Lock area
+LKBSPT=Lock basin part
+PRTARE=Port area
+BCNWTW=Waterway beacon
+BOYWTW=Waterway buoy
+REFDMP=Refuse dump
+RTPLPT=Route planning point
+TERMNL=Terminal
+TRNBSN=Turning basin
+WTWARE=Waterway area
+WTWGAG=Waterway gauge
+TISDGE=Time schedule
+VEHTRF=Vehicle transfer
+EXCNST=Exceptional structure
+LITMAJ=Major light
+LITMIN=Minor light
+
+UNKATT=
+AGENCY=Agency
+BCNSHP=Beacon shape
+BUISHP=Building shape
+BOYSHP=Buoy shape
+BURDEP=Buried depth
+CALSGN=Callsign
+CATAIR=Airfield category
+CATACH=Anchorage category
+CATBRG=Bridge category
+CATBUA=Built-up area category
+CATCBL=Cable category
+CATCAN=Canal category
+CATCAM=Cardinal mark category
+CATCHP=Checkpoint category
+CATCOA=Coastline category
+CATCTR=Control point category
+CATCON=Conveyor category
+CATCRN=Crane category
+CATDAM=Dam category
+CATDIS=Distance mark category
+CATDOC=Dock category
+CATDPG=Dumping ground category
+CATFNC=Fenceline category
+CATFRY=Ferry category
+CATFIF=Fishing facility category
+CATFOG=Fog signal category
+CATFOR=Fortified structure category
+CATGAT=Gate category
+CATHAF=Harbour category
+CATHLK=Hulk category
+CATICE=Ice category
+CATINB=Installation buoy category
+CATLND=Land region category
+CATLMK=Landmark category
+CATLAM=Lateral mark category
+CATLIT=Light category
+CATMFA=Marine farm category
+CATMPA=Military practice area category
+CATMOR=Morring category
+CATNAV=Navigation line category
+CATOBS=Obstruction category
+CATOFP=Offshore platform category
+CATOLB=Oil barrier category
+CATPLE=Pile category
+CATPIL=Pilot boarding category
+CATPIP=Pipeline category
+CATPRA=Production area category
+CATPYL=Pylon category
+CATRAS=Radar station category
+CATRTB=Radar transponder category
+CATROS=Radio station category
+CATTRK=Recommended track category
+CATRSC=Rescue station category
+CATREA=Restricted area category
+CATROD=Road category
+CATRUN=Runway category
+CATSEA=Sea area category
+CATSLC=Shoreline construction category
+CATSIT=Traffic signal station category
+CATSIW=Warning signal station category
+CATSIL=Silo/tank category
+CATSLO=Slope category
+CATSCF=Small craft facility category
+CATSPM=Special purpose mark category
+CATTSS=Traffic separation scheme category
+CATVEG=Vegetation category
+CATWAT=Water turbulence category
+CATWED=Weed category
+CATWRK=Wreck category
+CATZOC=Zone of confidence category
+COLOUR=Colour
+COLPAT=Colour pattern
+COMCHA=VHF channel
+CONDTN=Condition
+CONRAD=Radar reflectivity
+CONVIS=Visual conspicuity
+CURVEL=Current velocity
+DATEND=End date
+DATSTA=Start date
+DRVAL1=Minimum depth
+DRVAL2=Maximum depth
+DUNITS=Depth units
+ELEVAT=Elevation
+ESTRNG=Estimated range
+EXCLIT=Light exhibition
+EXPSOU=Light exposition
+FUNCTN=Function
+HEIGHT=Height
+HUNITS=Height/length units
+HORACC=Horizontal accuracy
+HORCLR=Horizontal clearance
+HORLEN=Horizontal length
+HORWID=Horizontal width
+ICEFAC=Ice factor
+INFORM=Information
+JRSDTN=Jurisdiction
+LIFCAP=Maximum load
+LITCHR=Light character
+LITVIS=Light visibility
+MARSYS=Buoyage system
+MLTYLT=Multiplicity of lights
+NATION=Nationality
+NATCON=Nature of construction
+NATSUR=Nature of surface
+NATQUA=Nature of surface qualification
+NMDATE=Notice to mariners date
+OBJNAM=Object name
+ORIENT=Orientation
+PEREND=End date
+PERSTA=Start date
+PICREP=Pictorial representation
+PILDST=Pilot district
+PRCTRY=Producing country
+PRODCT=Product
+PUBREF=Publication reference
+QUASOU=Quality of sounding
+RADWAL=Radar wavelength
+RADIUS=Radius
+RECDAT=Recording date
+RECIND=Recording indication
+RYRMGV=Magnetic variation reference year
+RESTRN=Restriction
+SECTR1=First sector limit
+SECTR2=Second sector limit
+SHIPAM=Shift parameters
+SIGFRQ=Signal frequency
+SIGGEN=Signal generation
+SIGGRP=Signal group
+SIGPER=Signal period
+SIGSEQ=Signal sequence
+SOUACC=Sounding accuracy
+SDISMX=Maximum sounding distance
+SDISMN=Minimum sounding distance
+SORDAT=Source date
+SORIND=Source
+STATUS=Status
+SURATH=Survey authority
+SUREND=Survey end date
+SURSTA=Survey start date
+SURTYP=Survey type
+TECSOU=Sounding technique
+TXTDSC=Textual description
+TIMEND=End time
+TIMSTA=Start time
+TOPSHP=Topmark/daymark shape
+TRAFIC=Traffic flow
+VALACM=Magnetic variation annual change
+VALDCO=Value of depth contour
+VALLMA=Value of local magnetic anomaly
+VALMAG=Value of magnetic variation
+VALMXR=Maximum range
+VALNMR=Nominal range
+VALSOU=Value of sounding
+VERACC=Vertical accuracy
+VERCLR=Vertical clearance
+VERCCL=Vertical clearance, closed
+VERCOP=Vertical clearance, open
+VERCSA=Vertical clearance, safe
+VERDAT=Vertical datum
+VERLEN=Vertical length
+WATLEV=Water level effect
+CAT_TS=Tidal stream category
+PUNITS=Positional units
+NINFOM=National information
+NOBJNM=National name
+NPLDST=National pilot district
+NTXTDS=National textual description
+HORDAT=Horizontal datum
+POSACC=Positional accuracy
+QUAPOS=Quality of position
+ADDMRK=Notice mark addition
+BNKWTW=Side of Waterway
+CATBNK=Waterway bank category
+CATNMK=Notice mark category
+CLSDNG=Dangerous cargo class
+DIRIMP=Direction of impact
+DISBK1=First distance from notice
+DISBK2=Second distance from notice
+DISIPU=Upstream distance of impact
+DISIPD=Downstream distance of impact
+ELEVA1=Minimum elevation
+ELEVA2=Maximum elevation
+FNCTNM=Notice mark function
+WTWDIS=Waterway distance
+BUNVES=Bunker vessel availability
+CATBRT=Berth category
+CATBUN=Bunker station category
+CATCCL=CEMT class category
+CATHBR=Harbour area category
+CATRFD=Refuse dump category
+CATTML=Terminal category
+COMCTN=Communication
+HORCLL=Horizontal clearance length
+HORCLW=Horizontal clearance width
+TRSHGD=Transshipping goods
+UNLOCD=UN location code
+CATGAG=Waterway gauge category
+HIGWAT=Value at high water
+HIGNAM=Name of high water level
+LOWWAT=Value at low water
+LOWNAM=Name of lowwater level
+MEAWAT=Value at mean water level
+MEANAM=Name of mean water level
+OTHWAT=Value at local water level
+OTHNAM=Name of local water level
+REFLEV=Reference gravitational level
+SDRLEV=Name of sounding reference level
+VCRLEV=Name of vertical datum level
+CATVTR=Vehicle transfer category
+CATTAB=Time and behaviour category
+SCHREF=Time schedule reference
+USESHP=Use of ship
+CURVHW=high water current velocity
+CURVLW=low water current velocity
+CURVMW=mean level current velocity
+CURVOW=local level current velocity
+APTREF=Average passing time reference
+CATEXS=Exceptional structure category
+CATWWM=Waterway mark category
+SHPTYP=Ship type
+UPDMSG=Update message
+LITRAD=Light sector radius
+
+BCN_UNKN=
+BCN_STAK=Stake
+BCN_WTHY=Withy
+BCN_TOWR=Tower
+BCN_LATT=Lattice
+BCN_PILE=Pile
+BCN_CARN=Cairn
+BCN_BUOY=Buoyant
+BCN_POLE=Pole
+BCN_PRCH=Perch
+BCN_POST=Post
+
+BUI_UNKN=
+BUI_HIRS=High-rise
+BUI_PYRD=Pyramid
+BUI_CYLR=Cylindrical
+BUI_SPHR=Spherical
+BUI_CUBE=Cubic
+
+BOY_UNKN=
+BOY_CONE=Conical
+BOY_CAN=Can
+BOY_SPHR=Spherical
+BOY_PILR=Pillar
+BOY_SPAR=Spar
+BOY_BARL=Barrel
+BOY_SUPR=Super-buoy
+BOY_ICE=Ice buoy
+
+AIR_UNKN=
+AIR_MILA=Military
+AIR_CIVA=Civil
+AIR_MILH=Military heliport
+AIR_CIVH=Civil heliport
+AIR_GLDR=Glider
+AIR_SMLP=Small planes
+AIR_EMRG=Emergency
+
+ACH_UNKN=
+ACH_UNRD=Unrestricted
+ACH_DEEP=Deep water
+ACH_TANK=Tanker
+ACH_EXPL=Explosives
+ACH_QUAR=Quarantine
+ACH_SEAP=Seaplane
+ACH_SMCF=Small craft
+ACH_SMCM=Small craft mooring
+ACH_H24P=24 hour limit
+ACH_LTPD=Limited period
+ACH_NPSH=Non-pushing vessels
+ACH_DRYC=Dry cargo vessels
+ACH_RAFT=Rafts
+
+BRG_UNKN=
+BRG_FIXD=Fixed bridge
+BRG_OPEN=Opening bridge
+BRG_SWNG=Swing bridge
+BRG_LIFT=Lifting bridge
+BRG_BASC=Bascule bridge
+BRG_PONT=Pontoon bridge
+BRG_DRAW=Drawbridge
+BRG_TRNS=Transporter bridge
+BRG_FOOT=Footbridge
+BRG_VIAD=Viaduct
+BRG_AQUA=Aqueduct
+BRG_SUSP=Suspension bridge
+
+BUA_UNKN=
+BUA_URBN=Urban
+BUA_STTL=Settlement
+BUA_VLLG=Village
+BUA_TOWN=Town
+BUA_CITY=City
+BUA_HOLV=Holiday village
+
+CBL_UNKN=
+CBL_POWR=Power
+CBL_TRNS=Transmission
+CBL_TELE=Telephone
+CBL_TGPH=Telegraph
+CBL_MOOR=Mooring
+CBL_OPTC=Optical
+CBL_FERY=Ferry
+
+CAN_UNKN=
+CAN_TRNS=Transportation
+CAN_DRNG=Drainage
+CAN_IRGN=Irrigation
+
+CAM_UNKN=
+CAM_NORTH=North
+CAM_EAST=East
+CAM_SOUTH=South
+CAM_WEST=West
+
+CHP_UNKN=
+CHP_CSTM=Customs
+CHP_BRDR=Border
+
+COA_UNKN=
+COA_STEP=Steep
+COA_FLAT=Flat
+COA_SAND=Sandy
+COA_STON=Stony
+COA_SHNG=Shingly
+COA_GLCR=Glacial
+COA_MNGV=Mangrove
+COA_MRSH=Marshy
+COA_CRRF=Coral_reef
+COA_ICE=Ice
+COA_SHEL=Shelly
+
+CTR_UNKN=
+CTR_TRGN=Triangulation
+CTR_OBSV=Observation
+CTR_FIXD=Fixed
+CTR_BMRK=Benchmark
+CTR_BDRY=Boundary
+CTR_HORM=Horizontal, main
+CTR_HORS=Horizontal, secondary
+
+CON_UNKN=
+CAT_AERL=Aerial
+CAT_BELT=Belt
+
+CRN_UNKN=
+CRN_NONS=Non-specific
+CRN_CONT=Container
+CRN_SHRL=Sheerlegs
+CRN_TRAV=Travelling
+CRN_AFRM=A-frame
+
+DAM_UNKN=
+DAM_WEIR=Weir
+DAM_DAM=Dam
+DAM_FLDB=Flood barrage
+
+DIS_UNKN=
+DIS_NONI=Not installed
+DIS_POLE=Pole
+DIS_BORD=Board
+DIS_UKSH=Unknown shape
+
+DOC_UNKN=
+DOC_TIDL=Tidal
+DOC_NTDL=Non-tidal
+
+DPG_UNKN=
+DPG_GENL=General
+DPG_CHEM=Chemical
+DPG_NCLR=Nuclear
+DPG_EXPL=Explosives
+DPG_SPIL=Spoil
+DPG_VSSL=Vessel
+
+FNC_UNKN=
+FNC_FENC=Fence
+FNC_MUIR=Muir
+FNC_HEDG=Hedge
+FNC_WALL=Wall
+
+FRY_UNKN=
+FRY_FREE=Free
+FRY_CABL=Cable
+FRY_ICE=Ice
+FRY_SWWR=Swinging-wire ferry
+
+FIF_UNKN=
+FIF_STAK=Stake
+FIF_TRAP=Trap
+FIF_WEIR=Weir
+FIF_TUNY=Tunny
+
+FOG_UNKN=
+FOG_EXPL=Explosive
+FOG_DIA=Diaphone
+FOG_SIRN=Siren
+FOG_NAUT=Nautophone
+FOG_REED=Reed
+FOG_TYPH=Tyfon
+FOG_BELL=Bell
+FOG_WHIS=Whistle
+FOG_GONG=Gong
+FOG_HORN=Horn
+
+FOR_UNKN=
+FOR_CSTL=Castle
+FOR_FORT=Fort
+FOR_BTTY=Battery
+FOR_BKHS=Blockhouse
+FOR_MTWR=Martello tower
+FOR_RDBT=Redoubt
+
+GAT_UNKN=
+GAT_GNRL=General
+GAT_FLBG=Flood barrage
+GAT_CSSN=Caisson
+GAT_LOCK=Lock
+GAT_DYKE=Dyke
+GAT_SLUC=Sluice
+
+HAF_UNKN=
+HAF_RORO=Ro-Ro
+HAF_FERY=Ferry
+HAF_FISH=Fishing
+HAF_MRNA=Marina
+HAF_NAVL=Naval
+HAF_TNKR=Tanker
+HAF_PSGR=Passenger
+HAF_YARD=Shipyard
+HAF_CNTR=Container
+HAF_BULK=Bulk
+HAF_SYNC=Syncrolift
+HAF_STCR=Straddle carrier
+HAF_LUVB=Lay-up
+HAF_TMBR=Timber
+HAF_REPR=Service & repair
+HAF_QUAR=Quarantine
+HAF_SPLN=Seaplane
+HAF_CARG=Cargo
+HAF_OFFS=Offshore support
+HAF_OFFS=Port support base
+HAF_MANF=Marina, no facilities
+
+HLK_UNKN=
+HLK_REST=Floating restaurant
+HLK_HIST=Historic
+HLK_MUSM=Museum
+HLK_ACCM=Accommodation
+HLK_BWTR=Floating breakwater
+HLK_CSNO=Casino boat
+
+ICE_UNKN=
+ICE_FAST=Fast
+ICE_SEA=Sea
+ICE_GRLR=Growler
+ICE_PANK=Pancake
+ICE_GLAS=Glacier
+ICE_PEAK=Peak
+ICE_PACK=Pack
+ICE_POLR=Polar
+
+INB_UNKN=
+INB_CALM=CALM
+INB_SBM=SBM
+
+LND_UNKN=
+LND_FEN=Fen
+LND_MRSH=Marsh
+LND_BOG=Bog
+LND_HTHL=Heathland
+LND_MNTN=Mountain
+LND_LOWL=Lowlands
+LND_CNYN=Canyon
+LND_PDDY=Paddy
+LND_AGRI=Agricultural
+LND_SVNA=Savanna
+LND_PARK=Parkland
+LND_SWMP=Swamp
+LND_LSLD=Landslide
+LND_LAVA=Lava
+LND_SLTP=Salt pan
+LND_MORN=Moraine
+LND_CRTR=Crater
+LND_CAVE=Cave
+LND_PINCL=Rock pinnacle
+LND_CAY=Cay
+
+LMK_UNKN=
+LMK_CARN=Cairn
+LMK_CMTY=Cemetery
+LMK_CHMY=Chimney
+LMK_DISH=Dish aerial
+LMK_FLAG=Flagstaff
+LMK_FLAR=Flare stack
+LMK_MAST=Mast
+LMK_WNDS=Windsock
+LMK_MNMT=Monument
+LMK_CLMN=Column
+LMK_MEML=Memorial
+LMK_OBLK=Obelisk
+LMK_STAT=Statue
+LMK_CROS=Cross
+LMK_DOME=Dome
+LMK_RADR=Radar scanner
+LMK_TOWR=Tower
+LMK_WNDM=Windmill
+LMK_WNDG=Windmotor
+LMK_SPIR=Spire
+LMK_BLDR=Boulder
+LMK_MNRT=Minaret
+LMK_WTRT=Water tower
+
+LAM_UNKN=
+LAM_PORT=Port hand
+LAM_STBD=Starboard hand
+LAM_PCST=Preferred channel to starboard
+LAM_PCPT=Preferred channel to port
+LAM_WWLT=Waterway left bank
+LAM_WWRT=Waterway right bank
+LAM_CHLT=Channel left bank
+LAM_CHRT=Channel right bank
+LAM_WWSN=Waterway bifurcation
+LAM_CHSN=Channel bifurcation
+LAM_CHRB=Channel close to right bank
+LAM_CHLB=Channel close to left bank
+LAM_CRRT=Channel crosses over to right
+LAM_CRLT=Channel crosses over to left
+LAM_DRLT=Obstacles by right bank
+LAM_DRRT=Obstacles by left bank
+LAM_TOLT=Turnoff on right
+LAM_TPRT=Turnoff on left
+LAM_JBRT=Junction to right
+LAM_JNLT=Junction to left
+LAM_HBRT=Harbour to right
+LAM_HBLT=Harbour to left
+LAM_BRGP=Bridge pier mark
+
+LIT_UNKN=
+LIT_DIR=Directional
+LIT_LEAD=Leading
+LIT_AERO=Aero
+LIT_AIR=Air obstruction
+LIT_FOG=Fog detector
+LIT_FLDL=Floodlight
+LIT_STRP=Strip light
+LIT_SUBS=Subsidiary
+LIT_SPOT=Spotlight
+LIT_FRNT=Front
+LIT_REAR=Rear
+LIT_LOWR=Lower
+LIT_UPPR=Upper
+LIT_MOIR=Moire
+LIT_EMRG=Emergency
+LIT_BRNG=Bearing
+LIT_HORI=Horizontally disposed
+LIT_VERT=Vertically disposed
+
+MFA_UNKN=
+MFA_CRST=Crustaceans
+MFA_OYMS=Oysters/mussels
+MFA_FISH=Fish
+MFA_SEAW=Seaweed
+MFA_PRLC=Pearl culture
+
+MPA_UNKN=
+MPA_PRCT=Practice
+MPA_TRPD=Torpedo
+MPA_SUBM=Submarine
+MPA_FIRG=Firing
+MPA_MINL=Mine-laying
+MPA_SMLA=Small arms
+
+MOR_UNKN=
+MOR_DLPN=Dolphin
+MOR_DDPN=Deviation dolphin
+MOR_BLRD=Bollard
+MOR_WALL=Wall
+MOR_PILE=Pile
+MOR_CHAN=Chain
+MOR_BUOY=Buoy
+MOR_SHRP=Shore ropes
+MOR_AUTO=Automatic
+MOR_POST=Post
+MOR_WIRE=Wire
+MOR_CABL=Cable
+
+NAV_UNKN=
+NAV_CLRG=Clearing
+NAV_TRST=Transit
+NAV_LDNG=Leading
+
+OBS_UNKN=
+OBS_STMP=Stump
+OBS_WELH=Wellhead
+OBS_DIFF=Diffuser
+OBS_CRIB=Crib
+OBS_FHVN=Fish haven
+OBS_FLAR=Foul area
+OBS_FLGD=Foul ground
+OBS_ICEB=Ice boom
+OBS_GTKL=Ground tackle
+OBS_BOOM=Boom
+
+OFP_UNKN=
+OFP_OIL=Oil
+OFP_PROD=Production
+OFP_OBS=Observation
+OFP_ALP=ALP
+OFP_SALM=SALM
+OFP_MOOR=Mooring tower
+OFP_AISL=Artificial island
+OFP_FPSO=FPSO
+OFP_ACCN=Accommodation
+OFP_NCCB=NCCB
+
+OLB_UNKN=
+OLB_RETN=Retention
+OLB_FLTG=Floating
+
+PLE_UNKN=
+PLE_STAK=Stake
+PLE_SNAG=Snag
+PLE_POST=Post
+PLE_TRIP=Tripodal
+
+PIL_UNKN=
+PIL_CVSL=Cruising vessel
+PIL_HELI=Helicopter
+PIL_SHOR=From shore
+
+PIP_UNKN=
+PIP_OFAL=Outfall
+PIP_ITAK=Intake
+PIP_SEWR=Sewer
+PIP_BBLR=Bubbler
+PIP_SPPL=Supply
+
+PRA_UNKN=
+PRA_QRRY=Quarry
+PRA_MINE=Mine
+PRA_STPL=Stockpile
+PRA_PSTN=Power station
+PRA_RFNY=Refinery
+PRA_TYRD=Timber yard
+PRA_FACT=Factory
+PRA_TFRM=Tank farm
+PRA_WFRM=Wind farm
+PRA_SLAG=Slag_heap
+PRA_CURF=Current farm
+PRA_OILF=Oil
+PRA_GASF=Gas
+PRA_WAVE=Wave energy
+
+PYL_UNKN=
+PYL_POWR=Power
+PYL_TELE=Telecommunications
+PYL_AERL=Aerial
+PYL_BRDG=Bridge
+PYL_PIER=Bridge pier
+
+RAS_UNKN=
+RAS_SURV=Surveillance
+RAS_COST=Coast
+
+RTB_UNKN=
+RTB_RAMK=Ramark
+RTB_RACN=Racon
+RTB_LDG=Leading
+
+ROS_UNKN=
+ROS_OMNI=Omnidirectional
+ROS_DIRL=Directional
+ROS_ROTP=Rotating pattern
+ROS_CNSL=CONSOL
+ROS_RDF=RDF
+ROS_QTA=QTG
+ROS_AERO=Aeronautical
+ROS_DECA=Decca
+ROS_LORN=Loran
+ROS_DGPS=DGPS
+ROS_TORN=Toran
+ROS_OMGA=Omega
+ROS_SYLD=Syledis
+ROS_CHKA=Chiaka
+ROS_PCOM=Public communication
+ROS_COMB=Commercial broadcast
+ROS_FACS=Facsimile
+ROS_TIME=Time signal
+ROS_PAIS=Physical AIS
+ROS_SAIS=Synthetic AIS
+ROS_VAIS=Virtual AIS
+ROS_VANC=Virtual AIS, North cardinal
+ROS_VASC=Virtual AIS, South cardinal
+ROS_VAEC=Virtual AIS, East cardinal
+ROS_VAWC=Virtual AIS, West cardinal
+ROS_VAPL=Virtual AIS, Port lateral
+ROS_VASL=Virtual AIS, Starboard lateral
+ROS_VAID=Virtual AIS, Isolated danger
+ROS_VASW=Virtual AIS, Safe water
+ROS_VASP=Virtual AIS, Special purpose
+ROS_VAWK=Virtual AIS, Wreck
+
+RSC_UNKN=
+RSC_LIFB=Lifeboat
+RSC_ROKT=Rocket
+RSC_LBRK=Lifeboat rocket
+RSC_RFSW=Refuge, shipwrecked
+RSC_RFIT=Refuge, intertidal
+RSC_LBOM=Lifeboat on mooring
+RSC_RDIO=Radio
+RSC_FSTA=First aid
+RSC_SPLN=Seaplane
+RSC_ACFT=Aircraft
+RSC_STUG=Tug
+
+REA_UNKN=
+REA_SFTY=Safety
+REA_NANC=No anchoring
+REA_NFSH=No fishing
+REA_NATR=Nature reserve
+REA_BRDS=Bird sanctuary
+REA_GRSV=Game reserve
+REA_SEAL=Seal sanctuary
+REA_DEGR=Degaussing range
+REA_MILY=Military
+REA_HIST=Historic wreck
+REA_INST=Inshore traffic
+REA_NASF=Navigational aid safety
+REA_STRD=Stranding danger
+REA_MINE=Minefield
+REA_NDIV=No diving
+REA_TBAV=To be avoided
+REA_PROH=Prohibited
+REA_SWIM=Swimming
+REA_WAIT=Waiting
+REA_RSCH=Research
+REA_DREG=Dredging
+REA_FSNC=Fish sanctuary
+REA_ERES=Ecological reserve
+REA_NWAK=No wake
+REA_SWNG=Swinging
+REA_WSKI=Water skiing
+REA_ESSA=Environmentally sensitive
+REA_PSSA=Particularly sensitive
+
+ROD_UNKN=
+ROD_MWAY=Motorway
+ROD_MAJR=Major road
+ROD_MINR=Minor road
+ROD_TRAK=Track
+ROD_MAJS=Major street
+ROD_MINS=Minor street
+ROD_CRSG=Crossing
+ROD_PATH=Path
+
+RUN_UNKN=
+RUN_AERP=Aeroplane
+RUN_HELI=Helicopter
+
+SEA_UNKN=
+SEA_GENL=General
+SEA_GAT=Gat
+SEA_BANK=Bank
+SEA_DEEP=Deep
+SEA_BAY=Bay
+SEA_TRCH=Trench
+SEA_BASN=Basin
+SEA_MDFT=Flat
+SEA_REEF=Reef
+SEA_LEDG=Edge
+SEA_CNYN=Canyon
+SEA_NRRW=Narrows
+SEA_SHOL=Shoal
+SEA_KNOL=Knoll
+SEA_RIDG=Ridge
+SEA_SMNT=Seamount
+SEA_PNCL=Pinnacle
+SEA_APLN=Abyssal plain
+SEA_PLTU=Plateau
+SEA_SPUR=Spur
+SEA_SHLF=Shelf
+SEA_TRGH=Trough
+SEA_SDDL=Saddle
+SEA_AHLL=Abyssal hills
+SEA_APRN=Apron
+SEA_AAPN=Archipelagic apron
+SEA_BLND=Borderland
+SEA_CMGN=Continental margin
+SEA_CRIS=Continental rise
+SEA_ESCT=Escarpment
+SEA_FAN=Fan
+SEA_FZON=Fracture zone
+SEA_GAP=Gap
+SEA_GUYT=Guyot
+SEA_HILL=Hill
+SEA_HOLE=Hole
+SEA_LEVE=Levee
+SEA_MVLY=Median valley
+SEA_MOAT=Moat
+SEA_MTNS=Mountains
+SEA_PEAK=Peak
+SEA_PVNC=Province
+SEA_RISE=Rise
+SEA_SCNL=Sea channel
+SEA_SCHN=Seamount chain
+SEA_SEDG=Shelf-edge
+SEA_SILL=Sill
+SEA_SLOP=Slope
+SEA_TRRC=Terrace
+SEA_VLLY=Valley
+SEA_CANL=Canal
+SEA_LAKE=Lake
+SEA_RIVR=River
+SEA_RECH=Reach
+
+SLC_UNKN=
+SLC_BWTR=Breakwater
+SLC_GRYN=Groyne
+SLC_MOLE=Mole
+SLC_PIER=Pier
+SLC_PPER=Promenade pier
+SLC_WHRF=Wharf
+SLC_TWAL=Training wall
+SLC_RPRP=Rip rap
+SLC_RVMT=Revetment
+SLC_SWAL=Sea wall
+SLC_LSTP=Landing steps
+SLC_RAMP=Ramp
+SLC_SWAY=Slipway
+SLC_FNDR=Fender
+SLC_SFWF=Solid face wharf
+SLC_OFWF=Open face wharf
+SLC_LRMP=Log ramp
+SLC_LWAL=Lock wall
+SLC_ICEB=Ice breaker
+
+SIT_UNKN=
+SIT_PRTC=Port control
+SIT_PRTE=Port entry & departure
+SIT_IPT=IPT
+SIT_BRTH=Berthing
+SIT_DOCK=Dock
+SIT_LOCK=Lock
+SIT_FLDB=Flood barrage
+SIT_BRDG=Bridge passage
+SIT_DRDG=Dredging
+SIT_TCLT=Traffic control
+SIT_PLTG=Pilotage
+SIT_SPCL=Special
+SIT_ONCT=Oncoming traffic
+
+SIW_UNKN=
+SIW_DNGR=Danger
+SIW_OBST=Maritime obstruction
+SIW_CABL=Cable
+SIW_MILY=Military
+SIW_DSTR=Distress
+SIW_WTHR=Weather
+SIW_STRM=Storm
+SIW_ICE=Ice
+SIW_TIME=Time
+SIW_TIDE=Tide
+SIW_TSTR=Tidal stream
+SIW_TIDG=Tide gauge
+SIW_TIDS=Tide scale
+SIW_DIVE=Diving
+SIW_WTLG=Water level gauge
+SIW_VRCL=Vertical clearance
+SIW_HIWM=High water
+SIW_DPTH=Depth
+SIW_CURR=Current
+
+SIL_UNKN=
+SIL_SILO=Silo
+SIL_TANK=Tank
+SIL_GRNE=Grain elevator
+SIL_WTRT=Wwater tower
+
+SLO_UNKN=
+SLO_CUTG=Cutting
+SLO_EMBK=Embankment
+SLO_DUNE=Dune
+SLO_HILL=Hill
+SLO_PINO=Pingo
+SLO_CLIF=Cliff
+SLO_SCRE=Scree
+
+SCF_UNKN=
+SCF_VBTH=Visitor berth
+SCF_CLUB=Nautical club
+SCF_BHST=Boat hoist
+SCF_SMKR=Sailmaker
+SCF_BTYD=Boatyard
+SCF_INN=Public inn
+SCF_RSRT=Restaurant
+SCF_CHDR=Chandler
+SCF_PROV=Provisions
+SCF_DCTR=Doctor
+SCF_PHRM=Pharmacy
+SCF_WTRT=Water tap
+SCF_FUEL=Fuel station
+SCF_ELEC=Electricity
+SCF_BGAS=Bottle gas
+SCF_SHWR=Showers
+SCF_LAUN=Laundrette
+SCF_WC=Toilets
+SCF_POST=Post_box
+SCF_TELE=Telephone
+SCF_REFB=Refuse bin
+SCF_CARP=Car park
+SCF_BTPK=Boat trailers park
+SCF_CRVN=Caravan site
+SCF_CAMP=Camping site
+SCF_PMPO=Pump-out
+SCF_EMRT=Emergency telephone
+SCF_SLPW=Slipway
+SCF_VMOR=Visitors mooring
+SCF_SCRB=Scrubbing berth
+SCF_PCNC=Picnic area
+SCF_MECH=Mechanics workshop
+SCF_SECS=Security service
+
+SPM_UNKN=
+SPM_FDGA=Firing danger area
+SPM_TRGT=Target
+SPM_MSHP=Marker ship
+SPM_DGRG=Degaussing range
+SPM_BARG=Barge
+SPM_CABL=Cable
+SPM_SPLG=Spoil ground
+SPM_OFAL=Outfall
+SPM_ODAS=ODAS
+SPM_RCDG=Recording
+SPM_SPLA=Seaplane anchorage
+SPM_RCZN=Recreation zone
+SPM_PRVT=Private
+SPM_MOOR=Mooring
+SPM_LNBY=LANBY
+SPM_LDNG=Leading
+SPM_MDST=Measured distance
+SPM_NOTC=Notice
+SPM_TSS=TSS
+SPM_NANC=No anchoring
+SPM_NBRT=No berthing
+SPM_NOTK=No overtaking
+SPM_NTWT=No two-way traffic
+SPM_RWAK=Reduced wake
+SPM_SPDL=Speed limit
+SPM_STOP=Stop
+SPM_WRNG=Warning
+SPM_SSSN=Sound ship siren
+SPM_RVCL=Restricted vertical clearance
+SPM_MVDT=Maximum vessel draught
+SPM_RHCL=Restricted horizontal clearance
+SPM_SCNT=Strong current
+SPM_BRTH=Berthing
+SPM_OHPC=Overhead power cable
+SPM_CHEG=Channel edge gradient
+SPM_TELE=Telephone
+SPM_FCRS=Ferry crossing
+SPM_MTRL=Marine traffic lights
+SPM_PLIN=Pipeline
+SPM_ANCH=Anchorage
+SPM_CLRG=Clearing
+SPM_CTRL=Control
+SPM_DIVG=Diving
+SPM_RBCN=Refuge beacon
+SPM_FGND=Foul ground
+SPM_YCHT=Yachting
+SPM_HPRT=Heliport
+SPM_GPS=GPS
+SPM_SLDG=Seaplane landing
+SPM_NENT=No entry
+SPM_WRKP=Work in progress
+SPM_UKPP=Unknown purpose
+SPM_WELH=Wellhead
+SPM_CHSP=Channel separation
+SPM_MFRM=Marine farm
+SPM_AREF=Artificial reef
+
+TRK_UNKN=
+TRK_FIXM=Fixed marks
+TRK_NFXM=No fixed marks
+
+TSS_UNKN=
+TSS_IMOA=IMO adopted
+TSS_NIMO=Not IMO adopted
+
+VEG_UNKN=
+VEG_GRAS=Grass
+VEG_PDDY=Paddy
+VEG_BUSH=Bush
+VEG_DCDW=Deciduous wood
+VEG_CONW=Coniferous wood
+VEG_WOOD=Wood
+VEG_MGRV=Mangroves
+VEG_PARK=Park
+VEG_PKLD=Parkland
+VEG_MCRP=Mixed crops
+VEG_REED=Reed
+VEG_MOSS=Moss
+VEG_TREE=Tree
+VEG_EVGT=Evergreen tree
+VEG_CONT=Coniferous tree
+VEG_PLMT=Palm tree
+VEG_NPMT=Nipa palm tree
+VEG_CSAT=Casuarina tree
+VEG_EUCT=Eucalypt tree
+VEG_DCDT=Deciduous tree
+VEG_MRVT=Mangrove tree
+VEG_FLOT=Filao tree
+
+WAT_UNKN=
+WAT_BKRS=Breakers
+WAT_EDDY=Eddies
+WAT_OVFL=Overfalls
+WAT_TDRP=Tide rips
+WAT_BMBR=Bombora
+
+WED_UNKN=
+WED_KELP=Kelp
+WED_SWED=Sea weed
+WED_SGRS=Sea grass
+WED_SGSO=Sargasso
+
+WRK_UNKN=
+WRK_NDGR=Non-dangerous
+WRK_DNGR=Dangerous
+WRK_DREM=Distributed remains
+WRK_MSTS=Mast showing
+WRK_HULS=Hull showing
+
+ZOC_UNKN=
+ZOC_A1=A1
+ZOC_A2=A2
+ZOC_B=B
+ZOC_C=C
+ZOC_D=D
+ZOC_U=U
+
+COL_UNK=
+COL_WHT=White
+COL_BLK=Black
+COL_RED=Red
+COL_GRN=Green
+COL_BLU=Blue
+COL_YEL=Yellow
+COL_GRY=Grey
+COL_BRN=Brown
+COL_AMB=Amber
+COL_VIO=Violet
+COL_ORG=Orange
+COL_MAG=Magenta
+COL_PNK=Pink
+
+PAT_UNKN=
+PAT_HORI=Horizontal stripe
+PAT_VERT=Vertical stripe
+PAT_DIAG=Diagonal stripe
+PAT_SQUR=Squared
+PAT_STRP=Stripes
+PAT_BRDR=Border
+PAT_CROS=Cross
+PAT_SALT=Saltire
+
+CND_UNKN=
+CND_UCNS=Under construction
+CND_RUIN=Ruined
+CND_URCL=Under reclamation
+CND_WLES=Wingless
+CND_PCNS=Planned construction
+
+RAD_UNKN=
+RAD_CNSP=Conspicuous
+RAD_NCSP=Not conspicuous
+RAD_REFL=Radar reflector
+
+VIS_UNKN=
+VIS_CNSP=Conspicuous
+VIS_NCSP=Not conspicuous
+
+DPU_UNKN=
+DPU_METR=Metres
+DPU_FTFT=Fathoms & feet
+DPU_FTHM=Fathoms
+DPU_FTFR=Fathoms & fractions
+
+EXH_UNKN=
+EXH_24H=24 hours
+EXH_DAY=Day
+EXH_FOG=Fog
+EXH_NGHT=Night
+EXH_WRNG=Warning
+EXH_STRM=Storm
+
+EXP_UNKN=
+EXP_WTHN=Within
+EXP_SHLR=Shoaler
+EXP_DEPR=Deeper
+
+FNC_UNKN=
+FNC_HBRM=Harbour master
+FNC_CSTM=Customs
+FNC_HLTH=Health
+FNC_HOSP=Hospital
+FNC_POST=Post office
+FNC_HOTL=Hotel
+FNC_RAIL=Railway station
+FNC_POLC=Police station
+FNC_WPOL=Water-police station
+FNC_PILO=Pilot office
+FNC_PILL=Pilot lookout
+FNC_BANK=Bank
+FNC_DIST=District control
+FNC_TRNS=Transit shed
+FNC_FCTY=Factory
+FNC_POWR=Power station
+FNC_ADMIN=Administrative
+FNC_EDUC=Educational
+FNC_CHCH=Church
+FNC_CHPL=Chapel
+FNC_TMPL=Temple
+FNC_PGDA=Pagoda
+FNC_SHSH=Shinto shrine
+FNC_BTMP=Buddhist temple
+FNC_MOSQ=Mosque
+FNC_MRBT=Marabout
+FNC_LOOK=Lookout
+FNC_COMM=Communication
+FNC_TV=Television
+FNC_RADO=Radio
+FNC_RADR=Radar
+FNC_LGHT=Light support
+FNC_MCWV=Microwave
+FNC_COOL=Cooling
+FNC_OBS=Observation
+FNC_TMBL=Time ball
+FNC_CLOK=Clock
+FNC_CTRL=Control
+FNC_ASHM=Airship mooring
+FNC_STAD=Stadium
+FNC_BUSS=Bus station
+
+HLU_UNKN=
+HLU_METR=Metres
+HLU_FEET=Feet
+HLU_KMTR=Kilometres
+HLU_HMTR=Hectometres
+HLU_SMIL=Statute miles
+HLU_NMIL=Nautical miles
+
+JRS_UNKN=
+JRS_INT=International
+JRS_NAT=National
+JRS_NSD=National sub-division
+
+CHR_UNKN=
+CHR_F=Fixed
+CHR_FL=Flashing
+CHR_LFL=Long flashing
+CHR_Q=Quick flashing
+CHR_VQ=Very quick flashing
+CHR_UQ=Ultra quick flashing
+CHR_ISO=Isopahsed
+CHR_OC=Occulting
+CHR_IQ=Interrupted quick flashing
+CHR_IVQ=Interrupted very quick flashing
+CHR_IUQ=Interrupted ultra quick flashing
+CHR_MO=Morse
+CHR_FFL=Fixed/flash
+CHR_FLLFL=Flash/long flash
+CHR_OCFL=Occulting/flash
+CHR_FLFL=Fixed/long flash
+CHR_ALOC=Occulting alternating
+CHR_ALLFL=Long flash alternating
+CHR_ALFL=Flash alternating
+CHR_ALGR=Group alternating
+CHR_QLFL=Quick flash plus long flash
+CHR_VQLFL=Very quick flash plus long flash
+CHR_UQLFL=Ultra quick flash plus long flash
+CHR_AL=Alternating
+CHR_ALFFL=Fixed and alternating flashing
+
+LIT_UNKN=
+LIT_HIGH=High
+LIT_LOW=Low
+LIT_FANT=Faint
+LIT_INTS=Intensified
+LIT_UINT=Unintensified
+LIT_RSTR=Restricted
+LIT_OBSC=Obscured
+LIT_POBS=Part obscured
+
+SYS_UNKN=
+SYS_IALA=IALA-A
+SYS_IALB=IALA-B
+SYS_NONE=None
+SYS_OTHR=Other
+SYS_CEVN=CEVNI
+SYS_RIWR=RIWR
+SYS_BWR2=BNIWR 2 sides
+SYS_BNWR=BNIR side independant
+SYS_PPWB=PPWBC
+
+CON_UNKN=
+CON_MSNY=Masonry
+CON_CONC=Concreted
+CON_BDRS=Loose boulders
+CON_HSRF=Hard-surfaced
+CON_USRF=Unsurfaced
+CON_WOOD=Wooden
+CON_METL=Metal
+CON_GRP=GRP
+CON_PNTD=Painted
+CON_FMWK=Framework
+
+SUR_UNKN=
+SUR_MUD=Mud
+SUR_CLAY=Clay
+SUR_SILT=Silt
+SUR_SAND=Sand
+SUR_STON=Stone
+SUR_GRVL=Gravel
+SUR_PBBL=Pebbles
+SUR_CBBL=Cobbles
+SUR_ROCK=Rock
+SUR_LAVA=Lava
+SUR_CORL=Coral
+SUR_SHEL=Shells
+SUR_BLDR=Boulder
+
+QUA_UNKN=
+QUA_FINE=Fine
+QUA_MEDM=Medium
+QUA_CORS=Coarse
+QUA_BRKN=Broken
+QUA_STKY=Sticky
+QUA_SOFT=Soft
+QUA_STIF=Stiff
+QUA_VCNC=Volcanic
+QUA_CALC=Calcareous
+QUA_HARD=Hard
+
+PRD_UNKN=
+PRD_OIL=Oil
+PRD_GAS=Gas
+PRD_WATR=Water
+PRD_STON=Stone
+PRD_COAL=Coal
+PRD_ORE=Ore
+PRD_CHEM=Chemicals
+PRD_DWTR=Drinking water
+PRD_MILK=Milk
+PRD_BXIT=Bauxite
+PRD_COKE=Coke
+PRD_IIGS=Iron ingots
+PRD_SALT=Salt
+PRD_SAND=Sand
+PRD_TMBR=Timber
+PRD_SDST=Sawdust
+PRD_SCRP=Scrap
+PRD_LNA=LNG
+PRD_LPA=LPG
+PRD_WINE=Wine
+PRD_CMNT=Cement
+PRD_GRAN=Grain
+
+SOU_UNKN=
+SOU_KNWN=Known
+SOU_UKNN=Unknown
+SOU_DFUL=Doubtful
+SOU_UNRL=Unreliable
+SOU_NBFD=No bottom found
+SOU_LKWN=Least known
+SOU_LUKN=Least unknown
+SOU_NSRV=Not surveyed
+SOU_NCNF=Not confirmed
+SOU_MANT=Maintained
+SOU_NMNT=Not maintained
+
+RST_UNKN=
+RST_NANC=No anchoring
+RST_RANC=Restricted anchoring
+RST_NFSH=No fishing
+RST_RFSH=Restricted fishing
+RST_NTRL=No trawling
+RST_RTRL=Restricted trawling
+RST_NENT=No entry
+RST_RENT=Restricted entry
+RST_NDRG=No dredging
+RST_RDRG=Restricted dredging
+RST_NDVG=No diving
+RST_RDVG=Restricteddiving
+RST_NWAK=No wake
+RST_TBAV=To be avoided
+RST_NCST=No construction
+RST_NDSC=No discharging
+RST_RDSC=Restricted discharging
+RST_NEXD=No exploration/development
+RST_REXD=Restricted exploration/development
+RST_NDRL=No drilling
+RST_RDRL=Restricted drilling
+RST_NHAR=No historical artifacts removal
+RST_NLTG=No lightering
+RST_NDRA=No dragging
+RST_NSTP=No stopping
+RST_NLND=No landing
+RST_RSPD=Restricted speed
+RST_NOVT=No overtaking
+RST_NCOV=No convoy overtaking
+RST_NPOV=No passing or overtaking
+RST_NBRT=No berthing
+RST_RBRT=Restricted berthing
+RST_NMFT=No making fast
+RST_RMFT=Restricted making fast
+RST_NTRN=No turning
+RST_RFWD=Restricted fairway depth
+
+GEN_UNKN=
+GEN_AUTO=Automatic
+GEN_WAVE=Wave
+GEN_HAND=Hand
+GEN_WIND=Wind
+
+STS_UNKN=
+STS_PERM=Permanent
+STS_OCAS=Occasional
+STS_RCMD=Recommended
+STS_NIUS=Not in use
+STS_IMTT=Intermittent
+STS_RESV=Reserved
+STS_TEMP=Temporary
+STS_PRIV=Private
+STS_MAND=Mandatory
+STS_EXTD=Extinguished
+STS_ILLD=Illuminated
+STS_HIST=Historic
+STS_PBLC=Public
+STS_SYNC=Synchronised
+STS_WCHD=Watched
+STS_UWCD=Unwatched
+STS_EDBT=Existence doubtful
+STS_OREQ=On request
+STS_DPAW=Drop away
+STS_RSNG=Rising
+STS_INCR=Increasing
+STS_DECR=Decreasing
+TS_STNG=Strong
+STS_GOOD=Good
+STS_MODY=Moderately
+STS_POOR=Poor
+
+TYP_UNKN=
+TYP_SKCH=Sketch
+TYP_CTLD=Controlled
+TYP_PSSG=Examination
+TYP_PSSG=Passage
+TYP_REMT=Remote
+
+SOU_UNKN=
+SOU_ESND=Echo-sounder
+SOU_FSSN=Side-scan sonar
+SOU_MLBM=Multi-beam
+SOU_DIVR=Diver
+SOU_LDLN=Lead-line
+SOU_WDRG=Wire-drag
+SOU_LASR=Laser
+SOU_VACC=Vertical acoustic
+SOU_EMAG=Electromagnetic
+SOU_PHGY=Photogrammetry
+SOU_SATL=Satellite
+SOU_LEVL=Levelling
+SOU_SSSN=Side-scan sonar swept
+SOU_COMP=Computer
+
+TOP_UNKN=
+TOP_CONE=Cone, point up
+TOP_ICONE=Cone, point down
+TOP_SPHR=Sphere
+TOP_ISD=2 spheres
+TOP_CAN=Cylinder
+TOP_BORD=Board
+TOP_SALT=X-shape
+TOP_CROS=Cross
+TOP_CUBE=Cube, point up
+TOP_WEST=Cones point together
+TOP_EAST=2 cones base together
+TOP_RHOM=Rhombus
+TOP_NORTH=2 cones up
+TOP_SOUTH=2 cones down
+TOP_BESM=Besom, point up
+TOP_IBESM=Besom, point down
+TOP_FLAG=Flag
+TOP_SPRH=Sphere over rhombus
+TOP_SQUR=Square
+TOP_HRECT=Rectangle, horizontal
+TOP_VRECT=Rectangle, vertical
+TOP_TRAP=Trapezium, up
+TOP_ITRAP=Trapezium, down
+TOP_TRI=Ttriangle, point up
+TOP_ITRI=Triangle, point down
+TOP_CIRC=Circle
+TOP_CRSS=2 upright crosses
+TOP_T=T-shape
+TOP_TRCL=Triangle, point up over circle
+TOP_CRCL=Upright cross over circle
+TOP_RHCL=Rhombus over circle
+TOP_CLTR=Circle over triangle, point up
+TOP_OTHR=Other
+
+TRF_UNKN=
+TRF_INBD=Inbound
+TRF_OBND=Outbbound
+TRF_ONEW=One-way
+TRF_TWOW=Two-way
+
+LEV_UNKN=
+LEV_PSUB=Part-submerged
+LEV_DRY=Dry
+LEV_SUBM=Submerged
+LEV_CVRS=Covers
+LEV_AWSH=Awash
+LEV_FLDS=Floods
+LEV_FLTG=Floating
+LEV_AMWL=Above MWL
+LEV_BMWL=Below MWL
+
+TS_UNKN=
+TS_FLOD=1, "flood
+TS_EBB=2, "ebb
+TS_OTHR=3, "other
+
+PAU_UNKN=
+PAU_MTRS=Metres
+PAU_DGRS=Degrees
+PAU_MMTR=Millimetres
+PAU_FEET=Feet
+PAU_CBLS=Cables
+
+POS_UNKN=
+POS_SRVD=Surveyed
+POS_USRV=Unsurveyed
+POS_PSRV=Part-surveyed
+POS_APRX=Approximate
+POS_DBTF=Doubtful
+POS_URLB=Unreliable
+POS_RSRV=Reported unsurveyd
+POS_UCNF=Unconfirmed
+POS_ESTM=Estimated
+POS_PRCS=Precise
+POS_CALC=Calculated
+
+DAT_UNKN=
+DAT_MLWS=Mean low water springs
+DAT_MLLWS=Mean lower low water springs
+DAT_MSL=Mean sea level
+DAT_LLW=Lowest low water
+DAT_MLW=Mean low water
+DAT_LLWS=Lowest low water springs
+DAT_AMLWS=Approximate mean low water springs
+DAT_ISLW=Indian spring low water
+DAT_LWS=Low water springs
+DAT_ALAT=Approximate lowest astronomical tide
+DAT_NLLW=Nearly lowest low water
+DAT_MLLW=Mean lower low water
+DAT_LW=Low water
+DAT_AMLW=Approximate mean low water
+DAT_AMLLW=Approximate mean lower low water
+DAT_MHW=Mean high water
+DAT_MHWS=Mean high water springs
+DAT_HW=High water
+DAT_AMSL=Approximate mean sea level
+DAT_HWS=High water springs
+DAT_MHHW=Mean higher high water
+DAT_ESLW=Equinoctial spring low water
+DAT_LAT=Lowest astronomical tide
+DAT_LOCAL=Local datum
+DAT_IGLD=International great lakes datum 1985
+DAT_MWL=Mean water level
+DAT_LLWLT=Lower low water large tide
+DAT_HHWLT=Higher high water large tide
+DAT_NHHW=Nearly highest high water
+DAT_HAT=Highest astronomical tide
+DAT_LLWRL=Local low water reference level
+DAT_LHWRL=Local high water reference level
+DAT_LMWRL=Local mean water reference level
+DAT_EHW=Equivalent height of water
+DAT_HSHW=Highest Shipping Height of Water
+DAT_RLWL=Reference low water level, Danube
+DAT_HSHWD=Highest shipping height of water, Danube
+DAT_DRLWRL=Dutch river low water reference level
+DAT_RPWL=Russian project water level
+DAT_RNBL=Russian normal backwater level
+DAT_OHIO=Ohio River Datum
Index: /applications/editors/josm/plugins/smed2/src/panels/PanelMain.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/panels/PanelMain.java	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/src/panels/PanelMain.java	(revision 30325)
@@ -143,5 +143,5 @@
 		Renderer.reRender(g2, Integer.parseInt(zt.getText()), Integer.parseInt(ft.getText()), Smed2Action.map, Smed2Action.rendering);
 		try {
-			ImageIO.write(img, "png", new File("/Users/mherring/Desktop/export.png"));
+			ImageIO.write(img, "png", new File(System.getProperty("user.home") + "/Desktop/export.png"));
 		} catch (Exception x) {
 			System.out.println("Exception");
Index: /applications/editors/josm/plugins/smed2/src/panels/PanelS57.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/panels/PanelS57.java	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/src/panels/PanelS57.java	(revision 30325)
@@ -41,5 +41,5 @@
 	ArrayList<Obj> types = new ArrayList<Obj>();
 	S57map map;
-	HashMap<Long, Long> done = new HashMap<Long, Long>();
+	HashMap<Long, Long> uids = new HashMap<Long, Long>();
 	
 	public PanelS57() {
@@ -82,10 +82,10 @@
 							Snode snode;
 							while ((snode = map.nodes.get(ref)) != null) {
-								if (!done.containsKey(ref)) {
+								if (!uids.containsKey(ref)) {
 									Node node = new Node(0, 1);
 									node.setCoor((new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon))));
 									data.addPrimitive(node);
 									addKeys(node, feature, type);
-									done.put(ref, node.getUniqueId());
+									uids.put(ref, node.getUniqueId());
 								}
 								ref++;
@@ -110,9 +110,9 @@
 									long ref = git.nextRef();
 									Snode snode = map.nodes.get(ref);
-									if (!done.containsKey(ref)) {
+									if (!uids.containsKey(ref)) {
 										Node node = new Node(0, 1);
 										node.setCoor((new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon))));
 										data.addPrimitive(node);
-										done.put(ref, node.getUniqueId());
+										uids.put(ref, node.getUniqueId());
 									}
 								}
@@ -121,5 +121,5 @@
 						git = map.new GeomIterator(feature.geom);
 						while (git.hasComp()) {
-							long edge = git.nextComp();
+							git.nextComp();
 							Way way = new Way(0, 1);
 							data.addPrimitive(way);
@@ -128,5 +128,5 @@
 								while (git.hasNode()) {
 									long ref = git.nextRef();
-									way.addNode((Node)data.getPrimitiveById(done.get(ref), OsmPrimitiveType.NODE));
+									way.addNode((Node)data.getPrimitiveById(uids.get(ref), OsmPrimitiveType.NODE));
 								}
 							}
@@ -142,9 +142,9 @@
 									long ref = git.nextRef();
 									Snode snode = map.nodes.get(ref);
-									if (!done.containsKey(ref)) {
+									if (!uids.containsKey(ref)) {
 										Node node = new Node(0, 1);
 										node.setCoor((new LatLon(Math.toDegrees(snode.lat), Math.toDegrees(snode.lon))));
 										data.addPrimitive(node);
-										done.put(ref, node.getUniqueId());
+										uids.put(ref, node.getUniqueId());
 									}
 								}
@@ -155,5 +155,5 @@
 							long ref = git.nextComp();
 							Way way = new Way(0, 1);
-							done.put(ref, way.getUniqueId());
+							uids.put(ref, way.getUniqueId());
 							data.addPrimitive(way);
 							while (git.hasEdge()) {
@@ -161,5 +161,5 @@
 								while (git.hasNode()) {
 									ref = git.nextRef();
-									way.addNode((Node) data.getPrimitiveById(done.get(ref), OsmPrimitiveType.NODE));
+									way.addNode((Node) data.getPrimitiveById(uids.get(ref), OsmPrimitiveType.NODE));
 								}
 							}
@@ -172,7 +172,7 @@
 							long ref = git.nextComp();
 							if (outers-- > 0) {
-								rel.addMember(new RelationMember("outer", (Way) data.getPrimitiveById(done.get(ref), OsmPrimitiveType.WAY)));
+								rel.addMember(new RelationMember("outer", (Way) data.getPrimitiveById(uids.get(ref), OsmPrimitiveType.WAY)));
 							} else {
-								rel.addMember(new RelationMember("inner", (Way) data.getPrimitiveById(done.get(ref), OsmPrimitiveType.WAY)));
+								rel.addMember(new RelationMember("inner", (Way) data.getPrimitiveById(uids.get(ref), OsmPrimitiveType.WAY)));
 							}
 						}
Index: /applications/editors/josm/plugins/smed2/src/render/Rules.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/render/Rules.java	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/src/render/Rules.java	(revision 30325)
@@ -351,13 +351,14 @@
 				}
 			} else {
-				Renderer.symbol(feature, Beacons.Shapes.get(shape),
-						getScheme(feature, feature.type));
-				if (feature.objs.get(Obj.TOPMAR) != null)
-					Renderer.symbol(
-							feature,
-							Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR)
-									.get(0).get(Att.TOPSHP).val),
-							getScheme(feature, Obj.TOPMAR),
-							Topmarks.BeaconDelta);
+				Renderer.symbol(feature, Beacons.Shapes.get(shape), getScheme(feature, feature.type));
+				if (hasObject(feature, Obj.TOPMAR)) {
+					Symbol topmark = Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val);
+					if (topmark != null)
+						Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val), getScheme(feature, Obj.TOPMAR), Topmarks.BeaconDelta);
+				} else	if (hasObject(feature, Obj.DAYMAR)) {
+					Symbol topmark = Topmarks.Shapes.get(feature.objs.get(Obj.DAYMAR).get(0).get(Att.TOPSHP).val);
+					if (topmark != null)
+						Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.DAYMAR).get(0).get(Att.TOPSHP).val), getScheme(feature, Obj.DAYMAR), Topmarks.BeaconDelta);
+				}
 			}
 			Signals.addSignals(feature);
@@ -370,6 +371,11 @@
 			Renderer.symbol(feature, Buoys.Shapes.get(shape), getScheme(feature, feature.type));
 			if (hasObject(feature, Obj.TOPMAR)) {
-				Renderer.symbol(feature, Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val),
-						getScheme(feature, Obj.TOPMAR), Topmarks.BuoyDeltas.get(shape));
+				Symbol topmark = Topmarks.Shapes.get(feature.objs.get(Obj.TOPMAR).get(0).get(Att.TOPSHP).val);
+				if (topmark != null)
+					Renderer.symbol(feature, topmark, getScheme(feature, Obj.TOPMAR), Topmarks.BuoyDeltas.get(shape));
+			} else if (hasObject(feature, Obj.DAYMAR)) {
+				Symbol topmark = Topmarks.Shapes.get(feature.objs.get(Obj.DAYMAR).get(0).get(Att.TOPSHP).val);
+				if (topmark != null)
+					Renderer.symbol(feature, topmark, getScheme(feature, Obj.DAYMAR), Topmarks.BuoyDeltas.get(shape));
 			}
 			Signals.addSignals(feature);
@@ -511,5 +517,7 @@
 			if (Renderer.zoom >= 14) {
 				Renderer.symbol(feature, Harbours.Anchorage, new Scheme(Mline));
-			Renderer.labelText(feature, name == null ? "" : name, new Font("Arial", Font.PLAIN, 30), Msymb, LabelStyle.RRCT, Mline, Color.white, new Delta(Handle.BC));
+				if (Renderer.zoom >= 15) {
+					Renderer.labelText(feature, name == null ? "" : name, new Font("Arial", Font.PLAIN, 30), Msymb, LabelStyle.RRCT, Mline, Color.white, new Delta(Handle.BC));
+				}
 			}
 			double radius = (Double)getAttVal(feature, Obj.ACHBRT, 0, Att.RADIUS);
Index: /applications/editors/josm/plugins/smed2/src/symbols/Harbours.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/symbols/Harbours.java	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/src/symbols/Harbours.java	(revision 30325)
@@ -104,20 +104,20 @@
 	public static final Symbol Fishing = new Symbol();
 	static {
-		Fishing.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
+		Fishing.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
 		Fishing.add(new Instr(Form.FILL, Rules.Msymb));
-		Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-75,-75,150,150,15,140,Arc2D.OPEN)));
-		Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-75,-75,150,150,-15,-140,Arc2D.OPEN)));
+		Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-50,-50,100,100,15,140,Arc2D.OPEN)));
+		Fishing.add(new Instr(Form.EARC, new Arc2D.Double(-50,-50,100,100,-15,-140,Arc2D.OPEN)));
 		Path2D.Double p = new Path2D.Double(); p.setWindingRule(GeneralPath.WIND_EVEN_ODD);
-		p.moveTo(-40,5); p.curveTo(20,40,50,25,80,0); p.curveTo(50,-25,20,-40,-40,-5);
-		p.lineTo(-75,-25); p.quadTo(-80, 0, -75, 25); p.closePath();
-		p.moveTo(42, 0); p.curveTo(42, 10, 56, 10, 56, 0); p.curveTo(56, -10, 42, -10, 42, 0); p.closePath();
+		p.moveTo(-24,3); p.curveTo(12,24,30,15,48,0); p.curveTo(30,-15,12,-24,-24,-3);
+		p.lineTo(-45,-15); p.quadTo(-48, 0, -45, 15); p.closePath();
+		p.moveTo(25, 0); p.curveTo(25, 6, 34, 6, 34, 0); p.curveTo(34, -6, 25, -6, 25, 0); p.closePath();
 		Fishing.add(new Instr(Form.PGON, p));
 	}
 	public static final Symbol Harbour = new Symbol();
 	static {
-		Harbour.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
+		Harbour.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
 		Harbour.add(new Instr(Form.FILL, Rules.Msymb));
-		Harbour.add(new Instr(Form.ELPS, new Ellipse2D.Double(-75,-75,150,150)));
-		Harbour.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
+		Harbour.add(new Instr(Form.ELPS, new Ellipse2D.Double(-50,-50,100,100)));
+		Harbour.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.6, 0, 0, new Scheme(Rules.Msymb), null)));
 	}
 	public static final Symbol HarbourMaster = new Symbol();
@@ -148,13 +148,12 @@
 	public static final Symbol Marina = new Symbol();
 	static {
-		Marina.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
+		Marina.add(new Instr(Form.STRK, new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
 		Marina.add(new Instr(Form.FILL, Rules.Msymb));
-		Marina.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
-		Marina.add(new Instr(Form.EARC, new Arc2D.Double(-80.0,-80.0,160.0,160.0,215.0,-250.0,Arc2D.OPEN)));
+		Marina.add(new Instr(Form.EARC, new Arc2D.Double(-50.0,-50.0,100.0,100.0,215.0,-250.0,Arc2D.OPEN)));
+		Marina.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 0.6, 0, 0, new Scheme(Rules.Msymb), null)));
 	}
 	public static final Symbol MarinaNF = new Symbol();
 	static {
-		MarinaNF.add(new Instr(Form.STRK, new BasicStroke(15, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
-		MarinaNF.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 1.0, 0, 0, new Scheme(Rules.Msymb), null)));
+		MarinaNF.add(new Instr(Form.SYMB, new Symbols.SubSymbol(Harbours.Yacht, 0.6, 0, 0, new Scheme(Rules.Msymb), null)));
 	}
 	public static final Symbol Pilot = new Symbol();
Index: /applications/editors/josm/plugins/smed2/src/symbols/Symbols.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/symbols/Symbols.java	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/src/symbols/Symbols.java	(revision 30325)
@@ -21,5 +21,5 @@
 
 	public enum Form {
-		BBOX, STRK, COLR, FILL, LINE, RECT, RRCT, ELPS, EARC, PLIN, PGON, RSHP, TEXT, SYMB, P1, P2, H2, H3, H4, H5, V2, D2, D3, D4, B2, S2, S3, S4, C2, X2
+		BBOX, STRK, COLR, FILL, LINE, RECT, RRCT, ELPS, EARC, PLIN, PGON, RSHP, TEXT, SYMB, P1, P2, H2, H3, H4, H5, V2, V3, D2, D3, D4, B2, S2, S3, S4, C2, X2
 	}
 
@@ -260,4 +260,10 @@
 								}
 								break;
+							case V3:
+								if ((cn == 3) && (cs.pat.get(0) == Patt.V)) {
+									g2.setPaint(cs.col.get(1));
+									g2.fill((Path2D.Double) patch.params);
+								}
+								break;
 							default:
 								break;
Index: /applications/editors/josm/plugins/smed2/src/symbols/Topmarks.java
===================================================================
--- /applications/editors/josm/plugins/smed2/src/symbols/Topmarks.java	(revision 30324)
+++ /applications/editors/josm/plugins/smed2/src/symbols/Topmarks.java	(revision 30325)
@@ -92,4 +92,17 @@
 		TopEast.add(new Instr(Form.PLIN, p));
 	}
+	public static final Symbol TopIcone = new Symbol();
+	static {
+		TopIcone.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
+		Symbol colours = new Symbol();
+		Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-45.0); p.lineTo(0.0,-15.0); p.lineTo(15.0,-45.0); p.closePath();
+		colours.add(new Instr(Form.P1, p));
+		TopIcone.add(new Instr(Form.COLR, colours));
+		TopIcone.add(new Instr(Form.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
+		TopIcone.add(new Instr(Form.FILL, Color.black));
+		TopIcone.add(new Instr(Form.LINE, new Line2D.Double(0,0,0,-15)));
+		p = new Path2D.Double(); p.moveTo(-15.0,-45.0); p.lineTo(0.0,-15.0); p.lineTo(15.0,-45.0); p.closePath();
+		TopIcone.add(new Instr(Form.PLIN, p));
+	}
 	public static final Symbol TopIsol = new Symbol();
 	static {
@@ -169,4 +182,12 @@
 		Path2D.Double p = new Path2D.Double(); p.moveTo(-13.0,-1.0); p.lineTo(-13.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
 		colours.add(new Instr(Form.P1, p));
+		p = new Path2D.Double(); p.moveTo(-13.0,-15.0); p.lineTo(-13.0,-1.0); p.lineTo(13.0,-1.0); p.lineTo(13.0,-15.0); p.closePath();
+		colours.add(new Instr(Form.H2, p));
+		p = new Path2D.Double(); p.moveTo(-13.0,-19.3); p.lineTo(-13.0,-10.7); p.lineTo(13.0,-10.7); p.lineTo(13.0,-19.3); p.closePath();
+		colours.add(new Instr(Form.H3, p));
+		p = new Path2D.Double(); p.moveTo(0.0,-1.0); p.lineTo(0.0,-27.0); p.lineTo(13.0,-27.0); p.lineTo(13.0,-1.0); p.closePath();
+		colours.add(new Instr(Form.V2, p));
+		p = new Path2D.Double(); p.moveTo(-4.3,-1.0); p.lineTo(-4.3,-27.0); p.lineTo(4.3,-27.0); p.lineTo(4.3,-1.0); p.closePath();
+		colours.add(new Instr(Form.V3, p));
 		TopSquare.add(new Instr(Form.COLR, colours));
 		TopSquare.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
@@ -175,4 +196,20 @@
 		TopSquare.add(new Instr(Form.PLIN, p));
 	}
+	public static final Symbol TopRhombus = new Symbol();
+	static {
+		TopRhombus.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
+		Symbol colours = new Symbol();
+		Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-29.0); p.lineTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
+		colours.add(new Instr(Form.P1, p));
+		p = new Path2D.Double(); p.moveTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
+		colours.add(new Instr(Form.H2, p));
+		p = new Path2D.Double(); p.moveTo(-10.0,-19.7); p.lineTo(-15.0,-15.0); p.lineTo(-10.0,-10.3); p.lineTo(10.0,-10.3); p.lineTo(15.0,-15.0); p.lineTo(10.0,-19.7); p.closePath();
+		colours.add(new Instr(Form.H3, p));
+		TopRhombus.add(new Instr(Form.COLR, colours));
+		TopRhombus.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
+		TopRhombus.add(new Instr(Form.FILL, Color.black));
+		p = new Path2D.Double(); p.moveTo(0.0,-29.0); p.lineTo(-15.0,-15.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-15.0); p.closePath();
+		TopRhombus.add(new Instr(Form.PLIN, p));
+	}
 	public static final Symbol TopTriangle = new Symbol();
 	static {
@@ -186,4 +223,16 @@
 		p = new Path2D.Double(); p.moveTo(-15.0,-1.0); p.lineTo(0.0,-29.0); p.lineTo(15.0,-1.0); p.closePath();
 		TopTriangle.add(new Instr(Form.PLIN, p));
+	}
+	public static final Symbol TopItriangle = new Symbol();
+	static {
+		TopItriangle.add(new Instr(Form.BBOX, new Rectangle2D.Double(-20,-80,40,80)));
+		Symbol colours = new Symbol();
+		Path2D.Double p = new Path2D.Double(); p.moveTo(-15.0,-29.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-29.0); p.closePath();
+		colours.add(new Instr(Form.P1, p));
+		TopItriangle.add(new Instr(Form.COLR, colours));
+		TopItriangle.add(new Instr(Form.STRK, new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
+		TopItriangle.add(new Instr(Form.FILL, Color.black));
+		p = new Path2D.Double(); p.moveTo(-15.0,-29.0); p.lineTo(0.0,-1.0); p.lineTo(15.0,-29.0); p.closePath();
+		TopItriangle.add(new Instr(Form.PLIN, p));
 	}
 	public static final Symbol TopWest = new Symbol();
@@ -224,7 +273,7 @@
 	static {
 		Shapes.put(TopSHP.TOP_BORD, TopBoard); Shapes.put(TopSHP.TOP_CAN, TopCan); Shapes.put(TopSHP.TOP_CONE, TopCone); Shapes.put(TopSHP.TOP_CROS, TopCross);
-		 Shapes.put(TopSHP.TOP_EAST, TopEast); Shapes.put(TopSHP.TOP_ISD, TopIsol); Shapes.put(TopSHP.TOP_NORTH, TopNorth); Shapes.put(TopSHP.TOP_SOUTH, TopSouth);
-		 Shapes.put(TopSHP.TOP_SPHR, TopSphere); Shapes.put(TopSHP.TOP_SQUR, TopSquare); Shapes.put(TopSHP.TOP_TRI, TopTriangle); Shapes.put(TopSHP.TOP_WEST, TopWest);
-		 Shapes.put(TopSHP.TOP_SALT, TopX);
+		Shapes.put(TopSHP.TOP_EAST, TopEast); Shapes.put(TopSHP.TOP_ICONE, TopIcone); Shapes.put(TopSHP.TOP_ISD, TopIsol); Shapes.put(TopSHP.TOP_NORTH, TopNorth);
+		Shapes.put(TopSHP.TOP_SOUTH, TopSouth); Shapes.put(TopSHP.TOP_SPHR, TopSphere); Shapes.put(TopSHP.TOP_SQUR, TopSquare); Shapes.put(TopSHP.TOP_TRI, TopTriangle);
+		Shapes.put(TopSHP.TOP_ITRI, TopItriangle); Shapes.put(TopSHP.TOP_WEST, TopWest); Shapes.put(TopSHP.TOP_SALT, TopX); Shapes.put(TopSHP.TOP_RHOM, TopRhombus);
 	}
 	public static final EnumMap<BoySHP, Delta> BuoyDeltas = new EnumMap<BoySHP, Delta>(BoySHP.class);
@@ -232,5 +281,5 @@
 		BuoyDeltas.put(BoySHP.BOY_PILR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 31.5, -95.0))); 
 		BuoyDeltas.put(BoySHP.BOY_SPAR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 31.5, -95.0))); 
-		BuoyDeltas.put(BoySHP.BOY_CAN, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 
+		BuoyDeltas.put(BoySHP.BOY_CAN, new Delta(Handle.BC,  new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 
 		BuoyDeltas.put(BoySHP.BOY_CONE, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 
 		BuoyDeltas.put(BoySHP.BOY_SPHR, new Delta(Handle.BC, new AffineTransform(0.948324, 0.317305, -0.3173047, 0.948324, 12.7, -37.9))); 
