src/opal-builder.js
function qpdecode(callback) {
      return function(data) {
        var string = callback(data);

        return string
          .replace(/[\t\x20]$/gm, '')
          .replace(/=(?:\r\n?|\n|$)/g, '')
          .replace(/=([a-fA-F0-9]{2})/g, function($0, $1) {
            var codePoint = parseInt($1, 16);
            return String.fromCharCode(codePoint);
          });
      }
    }
function qpdecode(callback) {
      return function(data) {
        var string = callback(data);

        return string
          .replace(/[\t\x20]$/gm, '')
          .replace(/=(?:\r\n?|\n|$)/g, '')
          .replace(/=([a-fA-F0-9]{2})/g, function($0, $1) {
            var codePoint = parseInt($1, 16);
            return String.fromCharCode(codePoint);
          });
      }
    }
function qpdecode ( callback ) { return function ( data ) { var string = callback ( data ) ; return string . replace ( / [\t\x20]$ / gm , '' ) . replace ( / =(?:\r\n?|\n|$) / g , '' ) . replace ( / =([a-fA-F0-9]{2}) / g , function ( $0 , $1 ) { var codePoint = parseInt ( $1 , 16 ) ; return String . fromCharCode ( codePoint ) ; } ) ; } }
quoted-printable decode
quoted - printable decode