anchor.diff:                                     iv_2fa_token TYPE string
                            RAISING   lcx_2fa_token_del_failed
                                      lcx_2fa_communication_error
  -                                   lcx_2fa_auth_failed.
  +                                   lcx_2fa_auth_failed,
  +    "! Begin an authenticator session that uses internal caching for authorizations
  +    "! @raising lcx_2fa_illegal_state | Session already started
  +    begin RAISING lcx_2fa_illegal_state,
  +    "! End an authenticator session and clear internal caches
  +    "! @raising lcx_2fa_illegal_state | Session not running
  +    end RAISING lcx_2fa_illegal_state.
   ENDINTERFACE.
   
   "! Default <em>LIF_2FA-AUTHENTICATOR</em> implememtation
  
positive.code: 
      TRY.
          li_authenticator = get_authenticator_for_url( iv_url ).
  
          " Is two factor authentication required for this account?
          IF li_authenticator->is_2fa_required( iv_url      = iv_url
  
negative.code:           cv_password = lv_access_token.
          ENDIF.
  
          li_authenticator->end( ).
  
        CATCH lcx_2fa_error INTO lx_ex.
          TRY.
              li_authenticator->end( ).
            CATCH lcx_2fa_illegal_state ##NO_HANDLER.
          ENDTRY.
  
          RAISE EXCEPTION TYPE lcx_exception
            EXPORTING
              iv_text     = |2FA error: { lx_ex->get_text( ) }|
  