text: /*jshint unused: false */
  /*global charHelper, pctEncoder*/
  var rfcCharHelper = (function () {
      "use strict";
  
      /**
       * Returns if an character is an varchar character according 2.3 of rfc 6570
       * @param chr
       * @return (Boolean)
       */
      function isVarchar (chr) {
          return charHelper.isAlpha(chr) || charHelper.isDigit(chr) || chr === '_' || pctEncoder.isPctEncoded(chr);
      }
  
      /**
       * Returns if chr is an unreserved character according 1.5 of rfc 6570
       * @param chr
       * @return {Boolean}
       */
      function isUnreserved (chr) {
          return charHelper.isAlpha(chr) || charHelper.isDigit(chr) || chr === '-' || chr === '.' || chr === '_' || chr === '~';
      }
  
      /**
       * Returns if chr is an reserved character according 1.5 of rfc 6570
       * or the percent character mentioned in 3.2.1.
       * @param chr
       * @return {Boolean}
       */
      function isReserved (chr) {
          return chr === ':' || chr === '/' || chr === '?' || chr === '#' || chr === '[' || chr === ']' || chr === '@' || chr === '!' || chr === '$' || chr === '&' || chr === '(' ||
              chr === ')' || chr === '*' || chr === '+' || chr === ',' || chr === ';' || chr === '=' || chr === "'";
      }
  
      return {
          isVarchar: isVarchar,
          isUnreserved: isUnreserved,
          isReserved: isReserved
      };
  
  }());
  