bduwdn (c, doesn't expire)
// gcc pwnable.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>

long compute(int c) {
  long i = 0;
  while (c > 1) {
    i++;
    if (c%2 == 0) c /= 2;
    else c = 3*c + 1;
  }

  return i;
}

int main() {
  int uid = 0;
  void* buffer = mmap(NULL, 0x1000, PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, -1, 0);

  puts("Welcome to AIC Factory Terminal.");
  puts("WARNING: The power system is about to reach its capacity limit.");
  puts("WARNING: To prevent draining, your power usage for this session will be limited.");
  puts("Now waiting for input.");

  ssize_t input_size = read(STDIN_FILENO, buffer, 0x1000);

  if (input_size > 0) {
    long long accu = 0;
    unsigned char *buf_ptr = (unsigned char *)buffer;
    for (int i = 0; i < input_size; i++) {
      long cur = compute(buf_ptr[i]);
      // printf("%ld %d\n", cur, buf_ptr[i]);

      if (cur > 35) {
    	puts("Consuming too much computational power. Aborting...");
    	exit(1);
      }
      accu += cur;
    }

    // Length limit perhaps
    if (accu > 200) {
	puts("Accumulative power usage is too high. Aborting...");
	exit(1);
    }
  } else {
    puts("Error reading input.");
  }

  puts("Now executing...");

  ((void (*)(void))buffer)();

  if (uid == 0x1337) {
    puts("Power user detected. Granting full access...");
  }

  return 0;
}