#include <stdlib.h>
#include <string.h>
#include <stdint.h>

static const char digits[] =
    "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

long a64l(const char* s) {
  int e;
  uint32_t x = 0;
  for (e = 0; e < 36 && *s; e += 6, s++)
    x |= (strchr(digits, *s) - digits) << e;
  return x;
}

char* l64a(long x0) {
  static char s[7];
  char* p;
  uint32_t x = x0;
  for (p = s; x; p++, x >>= 6)
    *p = digits[x & 63];
  *p = 0;
  return s;
}
