code: public static MultivaluedMap<String, String> decode(MultivaluedMap<String, String> map) {
          MultivaluedMapImpl<String, String> decoded = new MultivaluedMapImpl<String, String>();
          for (Map.Entry<String, List<String>> entry : map.entrySet()) {
              List<String> values = entry.getValue();
              for (String value : values) {
                  try {
                      decoded.add(URLDecoder.decode(entry.getKey(), UTF_8), URLDecoder.decode(value, UTF_8));
                  } catch (UnsupportedEncodingException e) {
                      throw new RuntimeException(e);
                  }
              }
          }
          return decoded;
      }
docs: decode an encoded map
  
  @param map
  @return