// Path: src/main/java/me/semx11/autotip/api/SessionKey.java
// public class SessionKey {
// 
//     private final String key;
// 
//     public SessionKey(String key) {
//         this.key = key;
//     }
// 
//     public String getKey() {
//         return key;
//     }
// 
//     @Override
//     public String toString() {
//         return key;
//     }
// 
// }
// 
// Path: src/main/java/me/semx11/autotip/gson/adapter/TypeAdapter.java
// public interface TypeAdapter<T> extends JsonSerializer<T>, JsonDeserializer<T> {
// 
//     @Override
//     default T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
//             throws JsonParseException {
//         return this.deserialize(json);
//     }
// 
//     @Override
//     default JsonElement serialize(T src, Type typeOfSrc, JsonSerializationContext context) {
//         return this.serialize(src);
//     }
// 
//     T deserialize(JsonElement json);
// 
//     JsonElement serialize(T src);
// 
// }


import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import me.semx11.autotip.api.SessionKey;
import me.semx11.autotip.gson.adapter.TypeAdapter;
package me.semx11.autotip.gson.adapter.impl;


public class SessionKeyAdapter implements TypeAdapter<SessionKey> {

    @Override
// Path: src/main/java/me/semx11/autotip/api/SessionKey.java
// public class SessionKey {
// 
//     private final String key;
// 
//     public SessionKey(String key) {
//         this.key = key;
//     }
// 
//     public String getKey() {
//         return key;
//     }
// 
//     @Override
//     public String toString() {
//         return key;
//     }
// 
// }
// 
// Path: src/main/java/me/semx11/autotip/gson/adapter/TypeAdapter.java
// public interface TypeAdapter<T> extends JsonSerializer<T>, JsonDeserializer<T> {
// 
//     @Override
//     default T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
//             throws JsonParseException {
//         return this.deserialize(json);
//     }
// 
//     @Override
//     default JsonElement serialize(T src, Type typeOfSrc, JsonSerializationContext context) {
//         return this.serialize(src);
//     }
// 
//     T deserialize(JsonElement json);
// 
//     JsonElement serialize(T src);
// 
// }


// Path: src/main/java/me/semx11/autotip/gson/adapter/impl/SessionKeyAdapter.java
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import me.semx11.autotip.api.SessionKey;
import me.semx11.autotip.gson.adapter.TypeAdapter;

package me.semx11.autotip.gson.adapter.impl;


public class SessionKeyAdapter implements TypeAdapter<SessionKey> {

    @Override
    public SessionKey deserialize(JsonElement json) {