docs: private PropertyAdapter createRemoteAdapter(InetSocketAddress local,
  		InetSocketAddress host, Map options) throws KNXException
  	{
  		final KNXMediumSettings medium = (KNXMediumSettings) options.get("medium");
  		if (options.containsKey("serial")) {
  			// create FT1.2 network link
  			final String p = (String) options.get("serial");
  			try {
  				lnk = new KNXNetworkLinkFT12(Integer.parseInt(p), medium);
  			}
  			catch (final NumberFormatException e) {
  				lnk = new KNXNetworkLinkFT12(p, medium);
  			}
  		}
  		else {
  			final int mode = options.containsKey("routing") ? KNXNetworkLinkIP.ROUTER
  				: KNXNetworkLinkIP.TUNNEL;
  			lnk = new KNXNetworkLinkIP(mode, local, host, options.containsKey("nat"),
  				medium);
  		}
  		final IndividualAddress remote = (IndividualAddress) options.get("remote");
  		// if an authorization key was supplied, the adapter uses
  		// connection oriented mode and tries to authenticate
  		final byte[] authKey = (byte[]) options.get("authorize");
  		if (authKey != null)
  			return new RemotePropertyServiceAdapter(lnk, remote, null, authKey);
  		return new RemotePropertyServiceAdapter(lnk, remote, null, options
  			.containsKey("connect"));
  	}