code: function(str) {
  
          // allow browser implementation if it exists
          // https://developer.mozilla.org/en-US/docs/Web/API/window.btoa
          if (typeof atob!=='undefined') {
              // utf8 decode after the fact to make sure we convert > 0xFF to ascii
              return _.utf8_decode(atob(str));
          }
          // allow node.js Buffer implementation if it exists
          if (Buffer) {
              return new Buffer(str, 'base64').toString('binary');
          }
          // now roll our own
          // decoder
          // [https://gist.github.com/1020396] by [https://github.com/atk]
          str = str.replace(/=+$/, '');
          for (
              // initialize result and counters
              var bc = 0, bs, buffer, idx = 0, output = '';
              // get next character
              buffer = str.charAt(idx++);
              // character found in table? initialize bit storage and add its ascii value;
              ~ buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
                  // and if not first of each 4 characters,
                  // convert the first 8 bits to one ascii character
                  bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
          ) {
              // try to find character in table (0-63, not found => -1)
              buffer = chars.indexOf(buffer);
          }
          return output;
      }
docs: base64_decode decode a string. This is not a strict polyfill for window.atob
  because it handles unicode characters
  
  @function module:undermore.base64_decode
  @link https://github.com/davidchambers/Base64.js
  @param {string} str The string to decode
  @return {string}
  @example _.base64_decode('4pyI') => '✈'