anchor.diff:  [source,solidity]
   ----
   
  -  return _declineRelayedCall(uint256(GSNRecipientSignedDataErrorCodes.INVALID_SIGNER));
  +  return _rejectRelayedCall(uint256(GSNBouncerSignatureErrorCodes.INVALID_SIGNER));
   
     // Defined on base class GSNBouncerBase
     // uint256 constant private RELAYED_CALL_REJECTED = 11;
  -  // function _declineRelayedCall(uint256 errorCode) internal pure returns (uint256, bytes memory) {
  +  // function _rejectRelayedCall(uint256 errorCode) internal pure returns (uint256, bytes memory) {
     //    return (RELAYED_CALL_REJECTED + errorCode, "");
     // }
   ----
  
positive.code: [source,solidity]
  ----
  
    return _confirmRelayedCall();
  
    // Defined on base class GSNBouncerBase
    // uint256 constant private RELAYED_CALL_ACCEPTED = 0;
    // function _confirmRelayedCall(bytes memory context) internal pure returns (uint256, bytes memory) {
    //    return (RELAYED_CALL_ACCEPTED, context);
    // }
  ----
  
negative.code:     returns (uint256, bytes memory)
  {
      if (_token.balanceOf(from) < maxPossibleCharge) {
          return _rejectRelayedCall(uint256(GSNBouncerERC20FeeErrorCodes.INSUFFICIENT_BALANCE));
      } else if (_token.allowance(from, address(this)) < maxPossibleCharge) {
          return _rejectRelayedCall(uint256(GSNBouncerERC20FeeErrorCodes.INSUFFICIENT_ALLOWANCE));
      }
  
      return _approveRelayedCall(abi.encode(from, maxPossibleCharge, transactionFee, gasPrice));
  }
  ----
  
  