len = str.length;
i = 0;
out = "";
while(i < len) {
/* c1 */
do {
c1 = base64decodechars[str.charcodeat(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break;
/* c2 */
do {
c2 = base64decodechars[str.charcodeat(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break;
out += string.fromcharcode((c1 << 2) | ((c2 & 0x30) >> 4));
/* c3 */
do {