| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | (function (w) {  "use strict";  function findBest(atobNative) {    // normal window    if ('function' === typeof atobNative) { return atobNative; }    // browserify (web worker)    if ('function' === typeof Buffer) {      return function atobBrowserify(a) {        //!! Deliberately using an API that's deprecated in node.js because        //!! this file is for browsers and we expect them to cope with it.        //!! Discussion: github.com/node-browser-compat/atob/pull/9        return new Buffer(a, 'base64').toString('binary');      };    }    // ios web worker with base64js    if ('object' === typeof w.base64js) {      // bufferToBinaryString      // https://git.coolaj86.com/coolaj86/unibabel.js/blob/master/index.js#L50      return function atobWebWorker_iOS(a) {        var buf = w.base64js.b64ToByteArray(a);        return Array.prototype.map.call(buf, function (ch) {          return String.fromCharCode(ch);        }).join('');      };    }		return function () {			// ios web worker without base64js			throw new Error("You're probably in an old browser or an iOS webworker." +				" It might help to include beatgammit's base64-js.");    };  }  var atobBest = findBest(w.atob);  w.atob = atobBest;  if ((typeof module === 'object') && module && module.exports) {    module.exports = atobBest;  }}(window));
 |