anchor.diff:  
   
   
  -validate_jwt(JwtData) ->
  -    Jwt = erljwt:pre_parse_jwt(JwtData),
  -    validate_jwt(Jwt, JwtData).
  -
  -validate_jwt(#{ claims := #{iss := Iss,
  +validate_jwt(Jwt) ->
  +    Rsp = get_rsp(erljwt:to_map(Jwt)),
  +    validate_jwt(erljwt:parse(Jwt, Rsp#watts_rsp.keys), Rsp).
  +
  +get_rsp(#{claims := #{ iss := Iss}}) ->
  +    get_info(Iss);
  +get_rsp(_) ->
  +    #watts_rsp{}.
  +
  +
  +validate_jwt(#{ claims := #{iss := _Iss,
                               sub := _Sub,
                               exp := _Exp,
                               iat := _Iat,
                               watts_service := _Service
  -                           },
  -                header := #{ kid := KeyId, alg := <<"RS256">>}
  -              } , JwtData) ->
  -    Rsp = get_info(Iss),
  -    Keys = Rsp#watts_rsp.keys,
  -    FilterKey = fun(#{kid := Kid}) ->
  -                        Kid == KeyId;
  -                   (_) ->
  -                        false
  -                end,
  -    Jwt =   case lists:filter(FilterKey, Keys) of
  -                [] ->
  -                    no_key;
  -                [#{key := Key}] ->
  -                    erljwt:parse_jwt(JwtData, Key, <<"JWT">>);
  -                [_] ->
  -                    bad_key;
  -                _ ->
  -                    too_many_keys
  -            end,
  +                           } = Jwt
  +              } , Rsp) ->
       {Jwt, Rsp};
   validate_jwt(_, _) ->
       {invalid, unknown}.
  
positive.code:     binary:match(Url, Base) == {0, byte_size(Base)}.
  
  
  update_rsp_on_success({Claims, Rsp}, Referer) when is_map(Claims) ->
      Success = jwt_get_success_url(Claims),
      Failed = jwt_get_failed_url(Claims),
      Issuer = jwt_get_issuer(Claims),
  
negative.code:          get_iss_sub/1,
           get_return_urls/1,
           get_service_data/1,
           get_list/0
          ]).
  
  