.withPassword(decodeUnreserved(output.password()))
.withPath(decodeUnreserved(output.path()));
}
return output
.withQuery(decodeUnreserved(output.query()))
.withFragment(decodeUnreserved(output.fragment()));
}
private String decodeUnreserved(final String input) {
if (input == null || input.isEmpty()) {
return input;