class TemplateDeserializer extends JsonDeserializer<Template> {

  @Override
  public Template deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException {<FILL_FUNCTION_BODY>}
}

    JavaType type = ctxt.getConfig().getTypeFactory().constructType(Template.class);
    BeanDescription description = ctxt.getConfig().introspect(type);

    JsonDeserializer<Object> beanDeserializer = ctxt.getFactory().createBeanDeserializer(ctxt, type, description);
    ((ResolvableDeserializer) beanDeserializer).resolve(ctxt);

    boolean inTemplate = false;
    if (!UnmatchedFieldTypeModule.isInTemplate()) {
      UnmatchedFieldTypeModule.setInTemplate();
      inTemplate = true;
    }
    try {
      return (Template) beanDeserializer.deserialize(jsonParser, ctxt);
    } finally {
      if (inTemplate) {
        UnmatchedFieldTypeModule.removeInTemplate();
      }
    }
  
<no_super_class>