// https://syzkaller.appspot.com/bug?id=03f4404da0737d2be5145ac3ed936712fcfd504c
// autogenerated by syzkaller (https://github.com/google/syzkaller)

#define _GNU_SOURCE

#include <dirent.h>
#include <endian.h>
#include <errno.h>
#include <fcntl.h>
#include <pthread.h>
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/prctl.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>

#include <linux/futex.h>

static __thread int clone_ongoing;
static __thread int skip_segv;
static __thread jmp_buf segv_env;

static void segv_handler(int sig, siginfo_t* info, void* ctx)
{
  if (__atomic_load_n(&clone_ongoing, __ATOMIC_RELAXED) != 0) {
    exit(sig);
  }
  uintptr_t addr = (uintptr_t)info->si_addr;
  const uintptr_t prog_start = 1 << 20;
  const uintptr_t prog_end = 100 << 20;
  int skip = __atomic_load_n(&skip_segv, __ATOMIC_RELAXED) != 0;
  int valid = addr < prog_start || addr > prog_end;
  if (skip && valid) {
    _longjmp(segv_env, 1);
  }
  exit(sig);
}

static void install_segv_handler(void)
{
  struct sigaction sa;
  memset(&sa, 0, sizeof(sa));
  sa.sa_handler = SIG_IGN;
  syscall(SYS_rt_sigaction, 0x20, &sa, NULL, 8);
  syscall(SYS_rt_sigaction, 0x21, &sa, NULL, 8);
  memset(&sa, 0, sizeof(sa));
  sa.sa_sigaction = segv_handler;
  sa.sa_flags = SA_NODEFER | SA_SIGINFO;
  sigaction(SIGSEGV, &sa, NULL);
  sigaction(SIGBUS, &sa, NULL);
}

#define NONFAILING(...)                                                        \
  ({                                                                           \
    int ok = 1;                                                                \
    __atomic_fetch_add(&skip_segv, 1, __ATOMIC_SEQ_CST);                       \
    if (_setjmp(segv_env) == 0) {                                              \
      __VA_ARGS__;                                                             \
    } else                                                                     \
      ok = 0;                                                                  \
    __atomic_fetch_sub(&skip_segv, 1, __ATOMIC_SEQ_CST);                       \
    ok;                                                                        \
  })

static void sleep_ms(uint64_t ms)
{
  usleep(ms * 1000);
}

static uint64_t current_time_ms(void)
{
  struct timespec ts;
  if (clock_gettime(CLOCK_MONOTONIC, &ts))
    exit(1);
  return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
}

static void thread_start(void* (*fn)(void*), void* arg)
{
  pthread_t th;
  pthread_attr_t attr;
  pthread_attr_init(&attr);
  pthread_attr_setstacksize(&attr, 128 << 10);
  int i = 0;
  for (; i < 100; i++) {
    if (pthread_create(&th, &attr, fn, arg) == 0) {
      pthread_attr_destroy(&attr);
      return;
    }
    if (errno == EAGAIN) {
      usleep(50);
      continue;
    }
    break;
  }
  exit(1);
}

typedef struct {
  int state;
} event_t;

static void event_init(event_t* ev)
{
  ev->state = 0;
}

static void event_reset(event_t* ev)
{
  ev->state = 0;
}

static void event_set(event_t* ev)
{
  if (ev->state)
    exit(1);
  __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE);
  syscall(SYS_futex, &ev->state, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1000000);
}

static void event_wait(event_t* ev)
{
  while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
    syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, 0);
}

static int event_isset(event_t* ev)
{
  return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE);
}

static int event_timedwait(event_t* ev, uint64_t timeout)
{
  uint64_t start = current_time_ms();
  uint64_t now = start;
  for (;;) {
    uint64_t remain = timeout - (now - start);
    struct timespec ts;
    ts.tv_sec = remain / 1000;
    ts.tv_nsec = (remain % 1000) * 1000 * 1000;
    syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, &ts);
    if (__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
      return 1;
    now = current_time_ms();
    if (now - start > timeout)
      return 0;
  }
}

static bool write_file(const char* file, const char* what, ...)
{
  char buf[1024];
  va_list args;
  va_start(args, what);
  vsnprintf(buf, sizeof(buf), what, args);
  va_end(args);
  buf[sizeof(buf) - 1] = 0;
  int len = strlen(buf);
  int fd = open(file, O_WRONLY | O_CLOEXEC);
  if (fd == -1)
    return false;
  if (write(fd, buf, len) != len) {
    int err = errno;
    close(fd);
    errno = err;
    return false;
  }
  close(fd);
  return true;
}

static void kill_and_wait(int pid, int* status)
{
  kill(-pid, SIGKILL);
  kill(pid, SIGKILL);
  for (int i = 0; i < 100; i++) {
    if (waitpid(-1, status, WNOHANG | __WALL) == pid)
      return;
    usleep(1000);
  }
  DIR* dir = opendir("/sys/fs/fuse/connections");
  if (dir) {
    for (;;) {
      struct dirent* ent = readdir(dir);
      if (!ent)
        break;
      if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
        continue;
      char abort[300];
      snprintf(abort, sizeof(abort), "/sys/fs/fuse/connections/%s/abort",
               ent->d_name);
      int fd = open(abort, O_WRONLY);
      if (fd == -1) {
        continue;
      }
      if (write(fd, abort, 1) < 0) {
      }
      close(fd);
    }
    closedir(dir);
  } else {
  }
  while (waitpid(-1, status, __WALL) != pid) {
  }
}

static void setup_test()
{
  prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
  setpgrp();
  write_file("/proc/self/oom_score_adj", "1000");
}

struct thread_t {
  int created, call;
  event_t ready, done;
};

static struct thread_t threads[16];
static void execute_call(int call);
static int running;

static void* thr(void* arg)
{
  struct thread_t* th = (struct thread_t*)arg;
  for (;;) {
    event_wait(&th->ready);
    event_reset(&th->ready);
    execute_call(th->call);
    __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED);
    event_set(&th->done);
  }
  return 0;
}

static void execute_one(void)
{
  if (write(1, "executing program\n", sizeof("executing program\n") - 1)) {
  }
  int i, call, thread;
  for (call = 0; call < 6; call++) {
    for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0]));
         thread++) {
      struct thread_t* th = &threads[thread];
      if (!th->created) {
        th->created = 1;
        event_init(&th->ready);
        event_init(&th->done);
        event_set(&th->done);
        thread_start(thr, th);
      }
      if (!event_isset(&th->done))
        continue;
      event_reset(&th->done);
      th->call = call;
      __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED);
      event_set(&th->ready);
      event_timedwait(&th->done, 50);
      break;
    }
  }
  for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++)
    sleep_ms(1);
}

static void execute_one(void);

#define WAIT_FLAGS __WALL

static void loop(void)
{
  int iter = 0;
  for (;; iter++) {
    int pid = fork();
    if (pid < 0)
      exit(1);
    if (pid == 0) {
      setup_test();
      execute_one();
      exit(0);
    }
    int status = 0;
    uint64_t start = current_time_ms();
    for (;;) {
      sleep_ms(10);
      if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid)
        break;
      if (current_time_ms() - start < 5000)
        continue;
      kill_and_wait(pid, &status);
      break;
    }
  }
}

uint64_t r[3] = {0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff};

void execute_call(int call)
{
  intptr_t res = 0;
  switch (call) {
  case 0:
    res = syscall(__NR_socketpair, /*domain=*/0x1eul, /*type=*/1ul, /*proto=*/0,
                  /*fds=*/0x20000000ul);
    if (res != -1) {
      NONFAILING(r[0] = *(uint32_t*)0x20000000);
      NONFAILING(r[1] = *(uint32_t*)0x20000004);
    }
    break;
  case 1:
    NONFAILING(*(uint64_t*)0x200003c0 = 0x20000180);
    NONFAILING(*(uint16_t*)0x20000180 = 0x1e);
    NONFAILING(*(uint8_t*)0x20000182 = 1);
    NONFAILING(*(uint8_t*)0x20000183 = 0);
    NONFAILING(*(uint32_t*)0x20000184 = 0);
    NONFAILING(*(uint32_t*)0x20000188 = 0);
    NONFAILING(*(uint32_t*)0x2000018c = 0);
    NONFAILING(*(uint32_t*)0x200003c8 = 0x10);
    NONFAILING(*(uint64_t*)0x200003d0 = 0x20000380);
    NONFAILING(*(uint64_t*)0x20000380 = 0x20000480);
    NONFAILING(memcpy(
        (void*)0x20000480,
        "\xc3\xe9\x72\xbd\x85\xa6\xd8\x41\x36\xd6\xdd\x55\x04\x8d\x35\x93\xa7"
        "\x4f\x33\x8c\xe6\x77\x2a\xb9\xa6\xf6\x40\x41\xc2\xf6\xfb\xbe\xcd\xc0"
        "\x8e\xbc\xd3\x19\x2b\x6a\x53\x66\x2d\xae\x7c\x8e\x9c\x66\x5e\x80\xa5"
        "\xd0\x92\x5f\x72\x8d\xca\xc3\x0c\x29\x79\x39\x92\xe5\x88\x95\x26\x53"
        "\xd4\x14\xcb\x8c\xcd\xab\xc3\x87\x67\xfe\xe8\x19\xec\x5a\xf0\xc5\xee"
        "\x93\x68\x80\xfe\x85\x49\xb4\xed\x34\x77\x79\xca\xb4\xff\xd4\xe0\xb6"
        "\x2c\x53\xa1\xc0\x1d\xb2\x8f\x2b\x3f\x91\xc3\x42\x11\xc9\x35\x3b\xc1"
        "\xde\xce\x61\x51\x19\x17\xc2\x24\x5f\xd6\x6c\xb8\xdf\xfe\xac\xb4\xd4"
        "\x6d\x62\x7c\x97\xb4\x98\xbf\x1f\xf6\xb3\x13\xbf\xbc\x97\x65\x45\x7c"
        "\x83\x17\x71\xd5\xee\xc7\x99\x7e\xc2\x42\xe4\x50\x5f\x01\xc1\xbb\x3e"
        "\x06\x9b\x2e\x63\x0f\x42\xa2\xbe\x86\x59\x8a\x61",
        182));
    NONFAILING(*(uint64_t*)0x20000388 = 0x64);
    NONFAILING(*(uint64_t*)0x20000390 = 0x20000300);
    NONFAILING(memset((void*)0x20000300, 86, 1));
    NONFAILING(*(uint64_t*)0x20000398 = 1);
    NONFAILING(*(uint64_t*)0x200003a0 = 0x20001600);
    NONFAILING(memcpy(
        (void*)0x20001600,
        "\x3e\xed\x50\xd0\x12\x57\x19\xa8\x10\xf8\x8e\x3f\x47\x18\x6f\xe4\xda"
        "\xe7\x41\x82\xdf\xd1\x09\xa2\x58\x7c\x47\x97\x41\x0c\x9b\x8e\x39\xbd"
        "\x3d\x9a\xa1\x44\xd5\x90\x86\x47\xc3\x0c\x8d\xb6\x9b\x5c\x17\x08\x4c"
        "\x9b\x1b\xfb\xb8\x68\x07\x37\xc4\xf8\x8a\xbc\xdb\xc7\xd2\x94\xd7\x2a"
        "\xb1\xb3\x44\x27\x09\x15\xdf\x9d\xdf\x56\x35\x64\x4c\x35\x1c\x22\xb2"
        "\x9d\x94\x8a\xc4\x10\x6b\xce\x71\x07\x57\x0b\xee\xd6\x30\x77\xcf\xbc"
        "\x98\xef\x71\x69\x9e\xae\x65\xd3\x77\x24\xd9\x95\xb5\x53\xe7\xa3\xad"
        "\xe6\x19\xb5\x22\x31\x3a\xb3\x82\xca\xf8\x79\xfe\xb4\x89\x42\x87\x8e"
        "\x60\x5e\xe3\xee\x28\x72\x79\x4e\x3a\xbe\x22\xa3\xf0\x25\x06\x8b\x62"
        "\x8a\x5d\x92\x46\x80\x92\xa5\xcc\x64\x9b\xbb\xd9\x78\xb5\x77\x2e\x53"
        "\x79\x39\x43\x2a\x50\x21\x22\x23\x5c\xed\x31\x2d\xaf\xd1\x08\xc9\xff"
        "\xeb\x0b\x38\xcc\x16\xda\x94\x18\xca\x01\xd4\x85\xa6\xaf\xb5\x82\x7d"
        "\xa4\xdf\x6e\x11\x21\xec\x30\x7d\xe1\x4b\xb3\x2b\x6a\x97\x76\x08\xe4"
        "\x57\x6a\x99\x81\x82\xdd\x93\xd5\x92\xff\x43\xe5\x5b\xfd\xbb\xce\x23"
        "\xec\xd5\x01\xe4\x3b\x3e\x93\xef\x8d\x9d\x01\x71\x1d\xff\x54\xc3\x01"
        "\xe2\x99\xd3\x80\x1a\x3c\xff\xe6\xc9\x88\x3f\xbd\x0e\x47\x12\x4d\xc0"
        "\x25\x69\xf6\x2d\x48\xb8\x78\xfc\xb5\x8c\xe9\x9f\xcf\xfc\xd2\xa5\x16"
        "\x6e\xff\x3a\xd9\x3c\xf1\xd1\x37\x27\x49\x93\xd8\x6a\x3b\x37\x30\xd6"
        "\x3d\xed\x75\x9f\x6c\xa8\x8f\xa4\x49\xe5\x57\x5b\x15\x32\x1e\x5a\x58"
        "\xa1\xf8\x88\xee\xd7\x46\x6d\xb4\x97\x6c\xe3\x5f\x6d\x2e\xfb\x5a\xd0"
        "\x5d\x99\xa6\x64\x82\xdc\x60\x7c\xb5\xac\xb2\x4d\x32\x68\x03\xbd\x33"
        "\x75\x19\xcc\x98\x10\x3f\x59\xc6\x3b\x59\x62\xcd\x72\xe4\x49\x7d\x1b"
        "\x00\x81\x7d\x6e\x09\xde\x70\x27\x0a\x09\xb4\x93\xc2\x22\x66\x17\xb1"
        "\xc9\xef\x9d\x50\x6b\xe0\x0d\x6e\x07\xf1\x46\x33\xa9\x66\xf0\x4e\xcc"
        "\xa9\x0f\xb8\xd2\xb9\x63\xad\x6f\x38\x17\x93\x5b\xd6\x53\x4f\xa3\xda"
        "\x1c\x5d\xc4\x68\x78\x9c\xbf\x11\x92\xf3\xc0\xbf\xf3\x77\x7f\x1e\xdd"
        "\x2a\xda\x5d\x35\xf8\x8f\x12\xf2\x9e\x95\x2c\x44\x44\x5c\xe6\x23\x50"
        "\x9d\x66\x81\x1c\x80\xa9\xe0\xf1\x3a\xd8\x5a\xba\x37\xd8\x6f\xf0\xda"
        "\x4d\xda\x60\x1d\x9e\x8a\xcb\x26\x42\x33\xbc\x93\x9f\xb0\x56\x31\x66"
        "\x12\xcf\xf6\x87\xd5\xc4\x41\x57\xbe\x05\xbc\xc8\x8b\x33\x3f\xf2\xa4"
        "\x00\x41\xd9\x8f\x1a\xcf\xe6\xe2\x23\x1a\x84\xe0\x9b\xd7\xa5\x4a\x04"
        "\x42\xcf\x87\xce\x3e\xe8\xfd\x8d\xa3\x9d\xa1\x86\x28\x62\xae\x40\xfc"
        "\x3c\xb3\x05\x5c\x8b\x70\xe6\x2f\x24\x38\x50\x70\x73\x41\xf5\x14\x26"
        "\xbb\x3e\x71\xc7\xa4\xff\xfe\xfa\xb0\x60\xdb\x78\x60\x00\x61\x8b\x05"
        "\xeb\x08\x7a\x42\x4a\x2f\x30\xf6\xa2\x32\xff\x44\xb6\x05\xf7\x0c\xee"
        "\xc0\xa8\xf7\x0e\x37\x90\x7f\x6e\x0b\xbb\xa2\x1e\x9d\x5b\x7e\xcb\x6d"
        "\x28\x77\x42\xb7\x5c\x10\x1b\xa7\x95\x25\x91\x8c\x34\x73\xea\xe3\x8f"
        "\x3c\x17\x72\x49\xdf\xa8\x81\x66\x61\xc9\x92\x1f\x0b\x0c\x85\x8d\x53"
        "\xab\x87\xc8\x40\x7b\x97\x95\x0c\x84\x21\x11\x00\x2e\xdd\x1d\x1e\x80"
        "\xb8\x01\xb4\x95\xda\x28\xbc\xd5\x40\x9b\xc9\x71\xe5\x5d\xab\x18\x57"
        "\xe1\x88\xac\x97\x28\xef\xc8\xf9\xa4\x54\x39\x45\xf8\x6a\xde\x13\xb4"
        "\x45\xea\xce\xcb\xbf\x84\x8a\x96\x41\x0a\xc3\x7c\x57\xe3\xe9\xe8\xbc"
        "\x8b\x8f\xad\xd5\x59\xd2\x25\xc7\x46\x86\x39\xda\x2b\x5d\x12\x08\x55"
        "\x8b\x51\xe9\x4c\x14\xfa\xa7\x94\x7a\x7c\x60\xe8\x1a\x96\xbb\x5d\x19"
        "\x4c\xc7\x28\x9a\xdb\xc0\x2e\xbb\x4b\x49\xbe\x1f\x1e\xfc\x42\x9d\xb2"
        "\xf9\xb7\x9b\x5a\x22\x91\x9d\xba\x0c\x35\x34\x10\x42\xc5\x77\x69\x42"
        "\xc5\x23\x65\x36\x7c\x4b\xfc\x95\xb4\x2b\xe3\x83\xcc\xa7\x10\x71\x61"
        "\xde\xd7\xe8\x51\xd0\x12\x6d\xa3\x3d\x58\x1f\x1e\x2b\x08\xd0\xc0\x61"
        "\xe8\x6d\x31\xe7\xa8\x3f\x9b\x51\xc7\x9b\x40\x34\xc7\xde\xda\x76\x97"
        "\x03\x4e\x14\x04\xc6\xe8\xe4\x59\xf7\x6c\x2e\xfe\x64\x35\x01\x46\xc7"
        "\x43\x7e\xf8\x08\xe0\x4c\xa1\x4d\xf5\xf6\xf5\x00\x26\x4f\xd9\x77\x27"
        "\x2b\xbf\x8f\xc0\x96\x77\x4e\x8e\xb6\x1d\x09\x63\x43\x07\x51\xac\x14"
        "\x25\xa0\x73\xf8\x43\x46\xb0\xeb\xa3\x68\xcb\xa7\xfa\x34\xad\xc4\x20"
        "\x80\x0d\x4f\x99\x92\x72\x80\xeb\xa1\x99\xf9\x69\x5c\xf8\x81\x24\xfa"
        "\xfc\x3a\x2b\x12\x26\xd2\xf2\xab\x3e\xa2\x7c\x69\xa1\x27\x65\x0c\xf5"
        "\xc7\x25\xb5\x4c\x02\xbd\x87\x29\x03\x3c\xf6\x99\xce\x7f\x03\x0f\x9a"
        "\x34\x42\x05\x62\x44\xda\x3c\xfb\x61\xa8\x12\x6d\xba\x11\x37\x76\x24"
        "\xf3\x9e\xb0\x09\x24\x21\x52\xfd\x7b\x8b\x88\xde\x7d\xd8\x60\x57\xf2"
        "\x9b\xfc\xb7\xb7\xdf\x0e\x65\xe7\xe9\xac\x9e\xea\xa4\x1a\xfa\x62\x74"
        "\x36\x98\xbf\xf0\x3d\x5b\x2d\x51\xfb\x6b\xca\x2d\x92\x29\x4e\x8e\x17"
        "\x7c\xfa\x36\x61\xb2\x6f\x1c\x04\x0e\x9b\xed\x98\x3b\x7b\xc0\xaa\x15"
        "\x4e\xb9\xc9\x2e\x4e\xe2\x50\x91\x31\x8c\x53\x11\x3a\x1c\x23\xac\x62"
        "\xd2\xd7\x15\x04\xcb\xa9\x90\x41\xf2\x9a\x4f\x33\x21\x33\x29\x2c\xf2"
        "\x0a\xbe\xc9\x22\x2a\x2a\xcc\xa5\x7c\xac\x48\xfa\x6c\x06\x68\xee\x5e"
        "\xec\xb4\x94\x74\x1a\x64\xd3\x3b\x01\x1d\xcc\xa7\x46\x96\xd4\x61\x4c"
        "\x5b\x45\xa5\xd2\x09\x83\xb1\x70\x8d\x36\x5e\xd3\xff\xa6\x0f\x91\x61"
        "\x97\x2a\x61\x1c\x22\x64\x2c\x3c\x25\x9b\x41\xf9\x43\xf6\xd7\xa8\xb6"
        "\x0f\x28\x4d\x32\x5e\x38\xfe\x76\xf0\x64\x5e\x06\x9f\xf7\x0c\xae\x38"
        "\x85\x0c\xcf\x97\x31\x93\xb6\x23\x2c\x98\x7d\xf2\x62\x39\xa5\x74\x69"
        "\x1f\x7f\x07\xff\xfa\x6d\xea\xe1\xeb\x03\x24\xfe\x54\x65\x73\xc3\x6f"
        "\x2a\x2c\x31\xcd\x44\x25\x17\xa9\xb0\x36\xae\x6a\x2a\x49\x1e\x73\x43"
        "\x86\x46\x93\xc1\x07\xa5\xdc\x25\x85\x82\x08\x63\xc1\x46\xc1\xba\x6c"
        "\xaa\x4f\xea\x9b\x87\xd5\x67\x71\x6f\x4c\x8c\xa1\xa9\xd2\x84\x80\x55"
        "\xcd\x75\x05\x12\xd3\xb7\x41\x5d\x09\x00\x19\xdc\x8a\x04\xa1\xa1\xd2"
        "\x89\x31\x09\x3c\xd8\xf0\x0e\x94\xc4\x07\xca\x1f\xa2\xa5\xce\x90\x3d"
        "\x9d\xf2\x6e\x00\x8c\x07\xcd\x13\xaf\xa7\x83\x22\x0e\x1b\xd5\xe6\xb6"
        "\x06\x45\xf3\xdb\xb6\xec\xb4\x15\x6f\xed\xaf\xa2\xdd\x25\x49\x8c\x6a"
        "\x99\xd9\x4f\x0b\x38\x12\x5e\xa7\x74\x1b\x75\x10\x9d\xca\xc9\xf8\x06"
        "\x35\xf7\x9f\x5c\x8a\x04\x83\xbb\x9f\x05\xa3\xa5\xbf\x72\x1c\x75\x41"
        "\xed\xb2\x52\x44\x9f\x8b\x13\xe6\x3c\x37\x0a\x61\x46\x33\x2f\x03\xca"
        "\x1f\x1b\x6f\xe0\xbe\xd9\x84\xf1\x37\x44\xbb\x7f\xa0\xfe\x32\x2e\x83"
        "\xdd\xf9\xff\xb2\x08\x3e\x94\xf3\x36\x04\xa0\xa1\x99\x22\x0c\x45\x0d"
        "\xad\x94\xbf\x15\x48\x05\xe7\xf9\xe4\x35\x0c\xa2\xd8\x1a\xdf\x29\x78"
        "\xc8\x7d\xcc\x8a\x8a\x7d\x56\x29\x7e\xc1\x24\xbf\xef\x0d\x28\xf3\x57"
        "\x77\x20\x5e\x97\x32\x72\xc8\x7e\x01\x07\x0f\x14\xf5\xb1\x4d\xaa\x3b"
        "\x51\x04\xd9\xff\x6b\x29\x6c\x4f\x16\xed\x49\xeb\x42\xd3\x5e\x7b\xa3"
        "\xbc\xcb\x7a\x26\xc3\x3a\x26\x3d\xf8\x8a\xad\xd5\x96\xe9\xd9\xde\x0a"
        "\xbb\xd4\xd4\x49\xdf\x11\x08\x1f\x2c\xd6\x2e\x1d\x89\x62\xb9\xb9\xfe"
        "\xb2\x5a\x3b\x8e\x03\x53\x7d\x61\xa6\x1c\x11\xac\x22\xb7\x21\x1d\x12"
        "\xc8\x4e\x60\xa6\xab\xcc\x21\x9e\x55\x8b\x25\x13\xd8\xc5\x30\xb3\xc7"
        "\xa5\x7c\xdc\x47\xde\x54\x5a\xaf\xbb\x2a\x13\xc0\xe6\xc7\x5b\x1b\x92"
        "\xfa\x24\x1c\x71\x3c\x83\xa0\x9c\x92\xb2\xb6\x1d\x56\x51\x20\x37\x2a"
        "\x91\x43\x41\x55\x83\xc9\x59\x6f\x27\xa6\x63\xd4\x96\x7c\xd6\x53\xb0"
        "\x8c\xeb\xd6\xcb\x96\xc1\xf0\xdc\x80\xd5\x72\x67\xac\x9a\x82\x81\xd7"
        "\x14\x9b\xde\x88\x08\x28\xee\x27\xd6\x9a\x68\x18\xdb\x58\x32\x0d\xb2"
        "\x9d\x1b\x04\x4e\xaf\x6a\xb8\xa5\x10\x8b\xc5\x22\xde\x40\x69\x90\xb5"
        "\x39\x3b\x1f\x7e\x7b\xab\x71\xbf\x6c\xf8\xee\xd1\xcd\x59\xc7\x60\x7d"
        "\x66\x2e\x8b\x31\x3f\x5c\x4f\xce\x0f\x59\xb1\x02\x73\x71\x38\x10\x11"
        "\xb6\x3d\xd5\xb2\xb0\x97\x39\x08\x2c\x0d\x62\xff\xad\x96\xe3\x01\x53"
        "\xa3\x95\x23\x49\x37\xd3\x77\xc3\x2f\xe7\xaf\x82\xac\xa3\xa1\x9d\x0e"
        "\xbc\x4a\x5c\x5f\xb5\xff\x19\x0f\x14\xd5\x69\x5c\x70\x3b\x57\x1f\xb4"
        "\xbf\x03\x75\x66\x35\xca\xfc\x6c\xf6\x26\x7e\xab\x83\x6c\x34\x7a\x9d"
        "\x07\xe8\x08\x9f\xc1\x05\x34\x69\x34\xcf\x33\x64\xe5\xbe\x37\x0b\x3c"
        "\x42\xb9\x4b\xc5\xae\x3d\x17\xa8\x17\x39\x85\x66\xa2\x95\x32\x51\xeb"
        "\x91\x69\x7d\x67\x27\x81\x45\xdf\x9a\x4b\x91\x7b\xcc\xa1\xbf\x21\x17"
        "\x80\xb2\x2f\x4c\xaa\xcf\xcb\x76\x04\xc8\x4f\x94\x3d\x05\xf6\xfd\xf8"
        "\xed\xbd\x25\x8d\x7d\x8d\xbf\x84\xf9\xd9\x9e\x57\x47\x2c\x5b\x1c\x23"
        "\x37\xd7\x49\xa1\xf3\x45\xe6\x62\xe2\x53\x6d\x23\xc7\xa6\x3b\xbb\xbf"
        "\x00\xf8\xb5\xb0\xa2\x10\x6a\x03\x42\xab\x27\xb9\xa1\x0b\x82\xe8\x26"
        "\x68\xcd\x49\xe0\xcb\xb0\x9d\x7b\xe0\x21\x76\x45\xf1\xdd\xa3\xbe\x59"
        "\xc8\x23\x2f\xa2\x90\xd3\x47\x91\xcd\xa5\x2a\xa5\xb5\xce\xc6\x33\x9a"
        "\xb9\x6a\x2e\xb3\xf5\x32\x8c\xc7\xc0\xe6\x71\x7c\x28\x24\x34\x45\x47"
        "\xa2\xed\x51\x8f\x6b\x2b\x4e\x4f\xe5\xb6\x84\x59\x6a\xa6\xa9\xd3\x98"
        "\x8f\xc5\xd5\xff\x4c\xb4\x6c\xec\x99\xd9\x51\xb8\x38\x6b\x10\x94\x9a"
        "\x16\x3a\xf9\x74\xb7\x54\x3d\xf9\x7b\x48\x82\xa4\xed\x60\xe9\x27\xa1"
        "\xde\xb6\x7c\x5f\x81\x42\x35\xbe\xf6\x5f\xea\x79\xa2\xc7\x12\x81\x5b"
        "\xe7\x40\x3c\x93\xa3\x70\x7f\xb9\x0d\x46\x04\xec\x3a\x6a\x3b\x09\x28"
        "\xf2\x53\xf6\xab\x6b\xd5\x6c\x95\x8e\x02\x6c\x8c\x58\x17\x2c\x4a\xc2"
        "\xa3\xef\xe2\xec\xd5\xce\xa7\x0c\x83\x13\xf9\xac\x2d\x63\x8b\xc2\x96"
        "\xba\x99\xe2\xca\x86\xd2\xfd\x06\xb5\x40\x2c\xdc\xdd\xc3\xf3\xc9\x84"
        "\x5d\x5a\xe7\x7f\x6f\x36\x96\x3b\x91\xe8\xf6\xcd\xcc\xd1\x7a\xbe\x8d"
        "\x40\xed\x02\x46\x3a\xf4\xbb\x0e\x49\x63\x44\xf3\x50\x09\x7f\x1c\xc1"
        "\x33\x13\xfa\x1e\x17\x2b\x63\x55\x6e\xd2\xb8\xa8\x12\x1c\x01\xa5\xfb"
        "\x34\x3f\xf7\x76\x78\x21\x62\x6f\xc4\x9b\x0d\x6b\xd5\x22\xe1\xc9\xbf"
        "\x13\x7d\x5a\x5b\xcc\xb4\xbc\x8d\xbb\x64\xc8\x3a\x82\xef\x6c\x28\x94"
        "\xf3\x89\x6c\x9f\x6b\xf0\xc3\x76\x40\x11\xd5\x3e\xeb\x6d\xb9\xea\x9d"
        "\xae\x22\xd3\xeb\xcc\xa4\x94\x2d\x58\x28\xc0\xbc\xa0\xd9\xea\x37\x70"
        "\x1d\x5a\x06\xc0\x66\xac\x4f\xe3\x18\xe1\x1e\x9c\x0d\x6c\x65\x8a\xc8"
        "\x10\xfb\x5d\x78\x36\xcf\xff\xe4\xcc\xbb\x09\x34\xe5\x56\x7d\x74\x69"
        "\x59\x80\xa1\x56\xd4\xbf\x1c\x18\x86\x1c\x5a\x29\xcc\xd3\x49\x99\x9d"
        "\xc2\x05\x62\xd0\x0e\x1f\x6c\x18\x51\xae\x56\x35\x41\x08\x64\x38\xd6"
        "\x0b\x97\x5c\x8c\xeb\x46\x64\x14\xff\x60\xef\xa0\xb2\xde\xe7\x90\xfd"
        "\x06\x59\xff\xa9\x8b\x92\x41\x4c\x13\xd5\xa6\x82\x53\x68\xf5\x6c\x49"
        "\x84\x41\x22\x05\x04\x1c\xd8\xe0\x06\xc7\x12\x7d\x43\x95\xec\xdf\xfb"
        "\x5a\xdd\xf8\x0e\xf9\x38\xce\x54\xa3\x67\x15\x4c\x4f\xc2\x86\xd5\xf9"
        "\x69\x32\x5c\x12\xb1\x36\x55\xa9\xa9\x56\xdd\x3b\x98\x28\x1f\x53\x7e"
        "\x83\x76\x69\xfc\x55\xd8\x93\x06\x76\xe8\x07\xaa\x8c\xd0\x46\xe0\xf4"
        "\x58\x3d\x59\xf8\x6c\xb9\x9f\x3f\x7a\x7d\xdd\xe1\xfb\x39\x11\x1f\xde"
        "\xc7\x67\x7d\x2f\xee\x4b\x8f\x48\x14\xa5\xde\xf5\xeb\xcc\x67\xc6\x53"
        "\x38\x4c\xe8\x0e\xaf\xfd\x88\x04\x05\xf7\xed\xf8\xfd\x3e\xa0\x49\xf0"
        "\x40\x59\x5d\xf4\xa7\x5e\x2f\x89\x2e\x7a\x85\xe0\xba\x35\x1f\xb8\xd2"
        "\x63\xbf\xff\x71\x68\xbb\x85\x01\x7b\x36\x0f\xcd\x2b\xa8\x93\x46\x68"
        "\x2a\x6e\xa7\xcc\xc4\x6a\xfb\xdb\x5a\xb4\x44\xe3\xf4\x77\x23\x8b\x2a"
        "\xb5\x03\xbd\xe9\x14\xd3\xcf\x17\x89\x53\x9c\xde\x9c\x06\x21\x15\x2c"
        "\xd9\x7b\xff\x9f\x23\x5d\x88\xa1\xef\x4e\xa4\x30\x9d\xb3\xa0\x5d\x40"
        "\x1a\xf7\xfb\x82\x78\x4b\x05\x0e\xf5\x29\xda\xb4\xf1\xf0\x03\xeb\x29"
        "\x71\x0a\x96\x2f\x75\x38\xc5\x21\xe6\x17\xe2\xf0\xef\xac\x36\x18\x2d"
        "\x09\x98\x5e\x1d\x72\x5c\xc3\x8c\x38\x33\xa5\x37\x42\xa0\x2f\x76\xfb"
        "\x28\x54\xa9\xe4\x5f\x0f\xeb\xac\xf3\xbd\xa8\x3f\x11\x18\x3e\xf5\xb9"
        "\xfe\xf0\x2e\xbc\xdf\x56\xd4\x10\x4b\x17\x5b\xad\x93\x7d\x8f\x61\x96"
        "\x4f\x97\xd6\x73\x57\x7c\xdc\xbb\xb4\x8d\x8e\xb6\x2b\x06\x3e\xe6\x56"
        "\x3b\x9f\xf0\x53\x71\x9b\xaf\xf8\x71\xbc\xd8\x38\x22\xd8\x65\xb2\xf7"
        "\xef\x02\x30\x76\x42\x5a\xc5\xcd\x71\xb1\xf2\x30\x9d\xe0\xc6\xf1\x4c"
        "\xc9\xc4\xd3\xe8\xfa\xd9\x45\xf7\x56\xa7\xc8\xa0\x84\xea\x1b\xfd\xf5"
        "\xac\x6e\x74\x00\x43\xe7\xf7\xbd\xac\xa0\x67\x74\xb0\x84\xae\x31\x4c"
        "\x26\x36\x52\x9d\x4f\xdc\xd9\x65\xc7\xf8\xc0\x71\x56\x57\x26\x20\xb8"
        "\x27\xd6\x94\xef\xdc\x9d\x2b\xfc\x5a\xa9\x39\x12\x20\xa8\x37\x65\xf2"
        "\xc7\x1f\xcd\x48\xd4\xac\xae\xd6\x0a\xfb\x53\xd1\x01\x3f\xa3\xb1\x5e"
        "\x94\x8e\xc4\x15\x9f\x7d\x13\x0e\xf8\x5b\x59\x40\x18\x34\x6e\x99\x03"
        "\x4c\x18\x73\x82\x85\x22\x3e\xa5\x3a\x6b\x1d\x5c\xf1\x1a\x60\x7d\xe2"
        "\xe1\x96\x08\xba\x03\xec\x97\x0a\x91\x5b\x77\x38\x24\x26\x1f\x3f\xc9"
        "\x31\xdd\x6d\x3b\x93\x4d\x89\xf0\x7b\xaf\x14\x77\x63\x14\xc3\xee\xb8"
        "\xcd\x05\x37\xef\x57\x36\xf5\x65\xfb\xd1\x4e\x52\x0d\x4a\xb2\xf7\x7e"
        "\xd9\x59\x7b\x76\xff\x91\xf8\xd1\xf9\x9e\xbd\x6e\x47\x3e\xfd\xa7\xac"
        "\xcb\x27\x39\x75\xa0\x69\x44\xd1\x03\x70\x32\x12\x99\x92\xb9\x94\xca"
        "\x79\x1a\x09\xb4\xd8\x39\x80\xa1\xe4\x94\xb0\xf9\x70\x98\xdf\x5f\x6f"
        "\xb6\xbb\xb0\x27\x22\xad\xb1\x1d\xc3\x19\xc5\x65\xc2\xc3\x63\xcb\xd1"
        "\x9d\x9f\xb3\xef\xb4\x61\x3b\x62\xd6\x58\x4c\xd5\x3f\x7b\xd8\x0e\x3e"
        "\x89\x30\x4f\x44\x4c\xe9\xdd\x18\x35\x66\x1e\x3b\xb4\xde\x02\xcc\xf5"
        "\x68\xa2\xa5\xda\xaf\x0d\x56\x89\x8d\x42\x86\xc3\xfb\x62\xe2\x2a\xf6"
        "\x2d\x7a\xc3\x18\x68\x58\x34\x46\x7f\x33\x75\x61\xdd\xe2\xe0\xc1\xe2"
        "\x82\x7c\xdf\xfc\xf4\x2c\x17\x72\x8e\xe6\x4b\x3f\xf4\xcc\xc0\x22\x75"
        "\x90\xba\xdd\x0b\xd7\xe4\x48\xb8\xcc\xa0\x89\x2d\x6a\x5e\x01\x30\xd2"
        "\xac\x66\x5f\x47\xc6\xb2\x8d\xaa\x10\x1c\x1b\x31\x98\x69\xbd\xd3\x9f"
        "\xa9\x24\xd6\xd9\xba\x7d\x72\xfe\xda\x5f\x21\xac\x78\x64\x1c\x7d\x48"
        "\x01\xd4\x1c\x78\x79\x72\x1b\x3b\xe4\xda\xb4\x0d\x9c\x4a\x78\x55\x24"
        "\x40\x10\x1f\x37\x34\x89\xcc\x52\x40\xb0\x14\x4a\x9c\xe3\x26\x91\xa7"
        "\x84\xb6\xdf\xe9\x71\xa2\x1b\xb5\x98\x0f\xf6\x7d\xa2\xd1\xbb\x90\xb2"
        "\x23\xc9\xe1\x92\xa3\x9c\x1a\xea\xdd\x1f\x5c\x79\x08\x11\x07\x9c\x0b"
        "\x51\xa9\x71\x05\xc9\x9b\x6f\x95\xd7\x1b\xb3\xea\x47\xc3\x3d\x9d\xcb"
        "\x0a\x53\xc9\x29\xc4\x44\x99\xe1\x84\xa3\xcd\x72\x2c\x90\x8d\x3b\x0d"
        "\x15\x7e\x28\xff\xde\xb2\xed\x71\x92\xe7\x80\xd9\x6a\x7a\x2f\x0f\xd5"
        "\xa8\x7b\xdc\x97\x3e\x04\x9d\xa0\xca\xf9\x31\xf2\x6f\x5a\x21\x81\x3e"
        "\x2e\x60\x2c\xeb\x22\x59\x99\x7e\x02\x05\xce\x48\xfd\x94\x24\xbd\x6d"
        "\x4d\x75\xdd\x43\x01\xf4\x29\xee\x30\x74\x5c\xd8\x39\xa4\x0d\xbe\xab"
        "\x4c\x3d\xb2\xf0\xf1\x0b\xba\xea\x07\x1c\xa4\x1d\x13\x92\x38\x56\x81"
        "\x73\x0a\x36\x78\xa5\xf6\x0f\x60\x4d\xbe\x19\xcb\x9d\x7d\xd2\x34\x33"
        "\x7e\x32\x74\x51\xb8\xcc\x65\x39\x4a\xf3\x99\x43\x2e\xf7\xfc\x37\x65"
        "\xd0\x55\x87\x4e\xbd\xca\x14\xe5\x99\x92\x92\xd6\xf7\x2f\x31\xe9\x2b"
        "\xac\xf2\x5d\xb5\xef\x8f\x52\x12\x95\x2c\x19\x10\xde\x06\xdd\xbe\x16"
        "\x87\xa0\xe1\x83\x79\x22\xf2\x22\x82\x89\x91\x6e\xd3\xae\xb7\xb9\xcc"
        "\x24\xda\x3a\xe4\x71\x39\xe3\x71\x93\x0a\xfa\x6d\x35\x73\xdf\x67\x32"
        "\xc2\x6c\x0c\x7a\xe0\x6d\x9c\xed\xfa\x77\x16\x07\x11\xbc\xb0\x6e\x65"
        "\x53\x33\x8d\xea\xe4\xc5\x73\x1c\xf5\x3c\xc1\x54\x11\x30\x96\xd0\x2f"
        "\x30\x36\xd7\xd9\xed\xfc\xdc\x33\x1e\x4b\xb8\x60\xc5\x20\x84\x89\x21"
        "\x2e\x90\x4e\xab\x70\xe7\xf8\x60\xb0\x37\x98\x95\xcb\xde\xcb\xf7\xa0"
        "\xb7\xa2\x5e\x5b\x85\x3c\x7d\xbe\x08\xa4\xe2\x96\xa3\x0a\xfe\xc8\xcf"
        "\x5a\x9f\x6e\xa4\xae\xf3\x2a\x50\x86\x55\xd5\x39\xa7\x70\xb2\x1e\x66"
        "\x0c\x9e\xe1\xd7\x68\x8c\x56\xab\xeb\x7c\xf1\xaf\xcc\xc8\xd5\x97\x80"
        "\xcf\x26\x31\x25\x89\xe0\xc8\xe1\xbc\x00\xad\x7b\x13\x25\xcd\x9a\x5d"
        "\xd6\x92\x46\xe0\xb3\x34\x07\xc3\x81\xea\x09\x26\x51\x54\xae\xc2\x97"
        "\xe4\xcc\xdf\x97\x85\xa1\x04\x2a\x83\xe7\x7c\x13\xd4\xce\x43\x60\x78"
        "\x2f\x24\x28\xf9\x91\x6b\x5c\xd1\x23\xb0\x89\xeb\x68\x3d\x30\xc1\xe8"
        "\x95\xb9\x94\x4a\xa9\x05\xa1\xa5\xb5\x23\x01\xd8\xcc\x5e\x47\x41\x83"
        "\x4e\xad\x6e\xbd\xb5\xdc\x05\xc9\xc4\x9c\x5e\x88\x3e\x99\xd4\x0b\x98"
        "\x38\x03\x7b\xea\xf8\x76\x53\x4d\x74\x78\x56\x10\x3e\x59\xca\xf6\x26"
        "\x6f\xbb\xe7\x60\xb6\xef\x83\xd0\x04\x63\x4b\x74\xf1\x4f\x8e\xb4\xae"
        "\xf9\x3c\x4c\xc9\xcb\xbd\x78\xd8\x3d\x53\x2c\x70\xfe\xef\x51\xea\x3f"
        "\x17\x0b\x25\xd8\x1a\x6a\x9b\x07\x4b\xfc\xa7\xe9\xb3\x77\x1b\xf8\x35"
        "\x17\xe0\xdd\x9d\x06\x00\xf7\x0b\x86\xb2\x0f\x61\xfe\x36\x07\x6f\x8b"
        "\xad\xa3\x34\xb2\x39\x0f\xa9\x54\x97\x3b\xc9\x01\x61\x9a\x3c\xfd\x03"
        "\x93\x49\xcb\x32\x86\x25\xf4\x95\xab\x28\x8d\xbd\xd6\xdb\xfd\x02\x2c"
        "\x2a\x83\xf5\x9e\x0b\x99\x86\x19\xa1\x2e\x35\x89\x1b\x5a\xe9\xe8\x3a"
        "\x71\x76\x55\x07\xb4\xa5\x71\xcd\x22\x41\xe5\x88\x5c\x70\x52\x44\xc1"
        "\x02\x26\x88\xbe\xf7\xc5\x06\x5f\xbc\xf2\x19\xfc\x01\x75\x3a\xdb\x61"
        "\x1b\x3f\xbc\x09\x40\x3d\xcb\x10\xa4\xf9\x9d\x78\x86\x67\xef\xf7\x5f"
        "\xa2\x70\x74\xca\x84\x81\xa6\x33\x53\x0e\x26\x16\x3c\xcf\x7d\xad\xa0"
        "\x49\xd2\x3e\x71\x7e\x06\x7b\x6f\xa5\xb2\xf6\x52\xbc\x50\xab\xda\x9e"
        "\x7c\xcd\xc5\xf2\xf3\xc3\x5e\xcc\x2c\x44\x31\xc8\x19\xc9\x69\x1b\xe4"
        "\x42\x2e\x37\x97\x50\x77\x4e\x9f\x39\xda\xe0\x6f\x26\x42\x3c\x8a\x42"
        "\x78\x78\x9c\x9f\x31\x11\xb4\x3f\x6d\xd2\x5b\x0a\xd4\x7c\x4c\xc5\xfd"
        "\xa3\xf3\xed\x82\x07\x9c\x93\x66\xe0\xad\xce\xd8\x83\x48\x8f\x42\x9c"
        "\x1d\x7e\x1b\x35\x1f\xd0\xbb\x20\x4d\xd7\x97\x7e\xf2\x24\xc4\xdf\x6d"
        "\x7a\x5f\x76\x97\xbc\x65\x00\xa7\xd0\x3a\x8a\x91\x41\x54\x77\x9f\xa7"
        "\x09\x2b\xf1\xbe\x6b\xad\x40\x92\x36\x7c\xe5\xd2\x95\xa5\xd5\xd0\xe7"
        "\xc4\x69\xf3\x72\xca\x20\x11\xd6\x12\x63\x70\x25\xe8\x9f\x17\x8a\xe9"
        "\xad\xa0\xc5\xb7\x3b\xcb\x7d\x7c\x03\x4f\xf5\x95\x26\x3c\xd4\x21\x6e"
        "\x3c\x76\xba\x5f\x3d\x81\x93\x2a\x08\x8a\x90\xbf\x80\x43\xe8\x77\xe2"
        "\x99\xc6\x70\xef\x16\x22\xa0\x98\xd5\x51\x9d\x9a\xdc\x4e\xe7\xd4\xcd"
        "\x00\xe5\x93\x4a\x43\x75\xfa\x83\xfd\xb8\x12\x14\xb8\x92\x48\x2b\x31"
        "\xbd\xde\x59\xa7\x0a\xaf\x25\xcb\x7f\x41\x7c\x3a\x2a\x91\xc4\xe5\x4b"
        "\x48\x14\x9f\x6c\x41\xd9\xd3\x96\xee\x6f\xf1\x3e\x30\x28\xc6\x4a\x7c"
        "\x9b\x1f\x2e\x7c\x6e\x67\x18\x4a\x3d\x52\xd6\xf5\x70\xdb\x3d\x22\x5c"
        "\x94\x74\x23\xc4\xc6\x53\x3f\x22\xdf\x57\xd1\x5c\x5e\x5a\x31\x83\x42"
        "\x2b\xd3\x78\xb0\x6f\xe4\x73\x2a\x94\x01\xdc\xb1\x98\x40\xfb\x8f\xa5"
        "\xc5\x0a\x0f\xf4\x97\xfe\xf3\x62\xc5\x07\x75\x3e\x46\xb8\x88\x1d\x3e"
        "\x76\x7f\x3b\x1d\x89\x3a\x38\x05\x94\x1c\x94\xf2\xef\xa0\x5c\xe3\x4b"
        "\x9e\xa8\x1d\x71\x69\x84\xaf\x68\x34\x23\x0d\x47\x07\xa8\x70\x89\xd4"
        "\x07\x79\x50\x3e\xe6\xa9\xbb\x24\x5d\x7d\x99\x7f\x14\xac\xb8\x0e\x89"
        "\x73\x1c\x04\x2b\xbb\xbe\x3d\xcd\x05\x17\x7b\x0e\xe0\xee\xc2\x34\x55"
        "\x83\x0e\xf5\xb6\x5a\xca\x35\x7f\x2b\x0b\x88\x7e\x0b\x98\x21\xc0",
        4096));
    NONFAILING(*(uint64_t*)0x200003a8 = 0x1000);
    NONFAILING(*(uint64_t*)0x200003b0 = 0x20000340);
    NONFAILING(memcpy((void*)0x20000340,
                      "\xb7\x68\xeb\x20\x30\x4f\x2f\xdc\x5a\x96\x94\xa4\x86\x78"
                      "\x40\xd9\x31\x70\xca\x1a\x86\x40\x6f",
                      23));
    NONFAILING(*(uint64_t*)0x200003b8 = 0xfffffec0);
    NONFAILING(*(uint64_t*)0x200003d8 = 4);
    NONFAILING(*(uint64_t*)0x200003e0 = 0);
    NONFAILING(*(uint64_t*)0x200003e8 = 0);
    NONFAILING(*(uint32_t*)0x200003f0 = 0x8010);
    syscall(__NR_sendmsg, /*fd=*/r[0], /*msg=*/0x200003c0ul, /*f=*/0ul);
    break;
  case 2:
    NONFAILING(*(uint64_t*)0x20003b00 = 0);
    NONFAILING(*(uint32_t*)0x20003b08 = 0);
    NONFAILING(*(uint64_t*)0x20003b10 = 0);
    NONFAILING(*(uint64_t*)0x20003b18 = 0);
    NONFAILING(*(uint64_t*)0x20003b20 = 0);
    NONFAILING(*(uint64_t*)0x20003b28 = 0);
    NONFAILING(*(uint32_t*)0x20003b30 = 0);
    NONFAILING(*(uint32_t*)0x20003b38 = 0);
    NONFAILING(*(uint64_t*)0x20003b40 = 0);
    NONFAILING(*(uint32_t*)0x20003b48 = 0);
    NONFAILING(*(uint64_t*)0x20003b50 = 0);
    NONFAILING(*(uint64_t*)0x20003b58 = 0);
    NONFAILING(*(uint64_t*)0x20003b60 = 0);
    NONFAILING(*(uint64_t*)0x20003b68 = 0);
    NONFAILING(*(uint32_t*)0x20003b70 = 0);
    NONFAILING(*(uint32_t*)0x20003b78 = 0);
    NONFAILING(*(uint64_t*)0x20003b80 = 0);
    NONFAILING(*(uint32_t*)0x20003b88 = 0);
    NONFAILING(*(uint64_t*)0x20003b90 = 0);
    NONFAILING(*(uint64_t*)0x20003b98 = 0);
    NONFAILING(*(uint64_t*)0x20003ba0 = 0);
    NONFAILING(*(uint64_t*)0x20003ba8 = 0);
    NONFAILING(*(uint32_t*)0x20003bb0 = 0);
    NONFAILING(*(uint32_t*)0x20003bb8 = 0);
    syscall(__NR_sendmmsg, /*fd=*/r[1], /*mmsg=*/0x20003b00ul, /*vlen=*/3ul,
            /*f=*/0ul);
    break;
  case 3:
    res = syscall(__NR_dup2, /*oldfd=*/r[1], /*newfd=*/r[0]);
    if (res != -1)
      r[2] = res;
    break;
  case 4:
    NONFAILING(*(uint32_t*)0x20000080 = -1);
    syscall(__NR_setsockopt, /*fd=*/r[0], /*level=*/1, /*optname=*/0x21,
            /*optval=*/0x20000080ul, /*optlen=*/4ul);
    break;
  case 5:
    NONFAILING(*(uint64_t*)0x20001340 = 0);
    NONFAILING(*(uint32_t*)0x20001348 = 0);
    NONFAILING(*(uint64_t*)0x20001350 = 0);
    NONFAILING(*(uint64_t*)0x20001358 = 0);
    NONFAILING(*(uint64_t*)0x20001360 = 0);
    NONFAILING(*(uint64_t*)0x20001368 = 0);
    NONFAILING(*(uint32_t*)0x20001370 = 0);
    NONFAILING(*(uint32_t*)0x20001378 = 0);
    NONFAILING(*(uint64_t*)0x20001380 = 0);
    NONFAILING(*(uint32_t*)0x20001388 = 0);
    NONFAILING(*(uint64_t*)0x20001390 = 0);
    NONFAILING(*(uint64_t*)0x20001398 = 0);
    NONFAILING(*(uint64_t*)0x200013a0 = 0);
    NONFAILING(*(uint64_t*)0x200013a8 = 0);
    NONFAILING(*(uint32_t*)0x200013b0 = 0);
    NONFAILING(*(uint32_t*)0x200013b8 = 0);
    NONFAILING(*(uint64_t*)0x200013c0 = 0x20000400);
    NONFAILING(*(uint16_t*)0x20000400 = 0);
    NONFAILING(*(uint8_t*)0x20000402 = 0);
    NONFAILING(*(uint32_t*)0x20000404 = 0);
    NONFAILING(*(uint32_t*)0x200013c8 = 0x6e);
    NONFAILING(*(uint64_t*)0x200013d0 = 0x20000140);
    NONFAILING(*(uint64_t*)0x20000140 = 0x20000540);
    NONFAILING(memcpy(
        (void*)0x20000540,
        "\xce\x96\x68\x93\xff\xb0\x5f\xfa\xc6\x77\x25\xc5\x45\x82\x60\x81\x67"
        "\x1e\x1f\x50\xa2\xf8\x8e\x2b\xbe\x53\x5f\xe7\x3b\x6b\x23\x33\xad\x91"
        "\xd8\x2d\xd7\xc4\xa8\xaa\x91\x73\x46\x0b\x74\x35\x5e\xf2\x5a\xfb\x06"
        "\x27\x3a\x96\x81\xef\x7a\x88\x2a\x6a\x55\xcc\xb3\xd3\xf9\xa4\x1f\xe7"
        "\x5f\xbd\xd6\x47\x21\x0d\x3d\xb8\xe2\x4c\x9e\x2b\x12\x1f\x6a\x5f\x0e"
        "\x4c\x92\x56\xf2\xc4\x58\xb5\x47\x79\x92\x29\xa7\x16\x03\xdf\x17\x43"
        "\x64\xaf\x93\x8e\x18\xe4\xb9\x4f\x01\xd0\x61\xde\xd2\x1a\x45\xcd\xc1"
        "\xed\x4a\x0c\xef\xf8\xe3\x93\x88\xd2\x84\x84\x12\x3f\x0b\xa5\x1b\x43"
        "\xbf\x9e\x07\x31\x9b\xee\xaa\x63\xa3\x81\x01\xa0\x92\x39\x7d\x4f\x8a"
        "\x7d\xef\x98\x64\x75\x16\x7d\x66\xb6\x75\x5c\x62\x62\xa4\xc3\x8c\xfe"
        "\xb2\x9e\x26\x8f\x53",
        175));
    NONFAILING(*(uint64_t*)0x20000148 = 0xaf);
    NONFAILING(*(uint64_t*)0x20000150 = 0x20000600);
    NONFAILING(memcpy(
        (void*)0x20000600,
        "\x47\x84\x97\x81\x37\x17\xf9\xd8\x17\x93\x6b\xd5\x2f\xe6\xe6\xa5\xa7"
        "\xce\xe0\x0f\xcf\x60\x63\xfa\x66\x64\xfc\xcc\xa2\x56\xfa\xd9\x0e\xa3"
        "\x4e\x3c\x78\xff\x04\x04\x0a\x5d\x2c\x06\x31\x88\x25\x71\x3c\x58\x51"
        "\x50\x3e\x15\x3a\x33\x1a\x93\x57\x97\x25\xb8\xaf\xbe\xe3\xa8\x27\x84"
        "\x1f\xeb\xbd\xbf\x58\x47\x03\x45\xd7\x1a\xd6\x20\x92\x3c\x72\xcc\xc6"
        "\xbd\x4f\xfb\x5f\xf6\xee\x6e\x93\x36\xef\xc0\xaa\x10\x80\xe0",
        100));
    NONFAILING(*(uint64_t*)0x20000158 = 0x64);
    NONFAILING(*(uint64_t*)0x20000160 = 0x20001480);
    NONFAILING(memcpy(
        (void*)0x20001480,
        "\x84\xa1\x3f\x5d\xb4\x65\x21\xd1\xc6\x80\x58\x5a\x41\x73\x96\xfa\x3a"
        "\x38\xc1\x03\x61\x94\xdb\x97\x12\x26\xdd\xb9\xa7\x10\xbb\xcf\x04\xec"
        "\x5d\xb1\x34\x87\x29\xa4\x8e\x71\xeb\xe5\xb6\x97\x7b\x0d\x5c\x27\xb8"
        "\x99\x1a\x02\x56\xaa\x96\xdc\x6f\xe1\x89\x63\x1d\xde\x4e\xf5\xc8\xed"
        "\xde\x46\x9d\x61\xa4\xcd\x2a\x16\xbd\x7a\x17\xf1\x04\xaa\xc6\x75\x5c"
        "\x38\x99\x37\xc8\xa6\xbc\xcb\x31\x79\x37\x27\xf3\xba\xd8\x54\xfb\x9e"
        "\x65\xd0\x4c\xed\xaa\xb0\x54\x7f\xf7\x24\x93\x12\x83\x87\xcf\x38\x51"
        "\x53\xf6\xbd\x2b\x9b\xeb\xd1\x64\x27\x0a\x2a\x55\x36\x31\x55\x8d\xfa"
        "\x80\xff\xfa\xb8\x21\xef\xab\xc0\x00\x67\xa7\x14\xf4\x33\xbc\x04\x44"
        "\x52\x35\x2b\x58\x74\xd6\x98\xd1\xe4\xc6\x66\x73\xdf\xa2\x99\xc6\xec"
        "\x39\x1f\x01\x16\x33\xbd\xc0\x0a\x68\x0a\x4c\xdd\x47\xbb\xca\x12\x4d"
        "\x19\x31\x78\xe3\x77\x35\x2d\x02\x25\xd8\xe7\xdb\xf8\x59\xd9\x1b\x9c"
        "\x99\xdd\x4d\x24\xb9\xa1\x34\xca\x2e\x69\x3d\x01\x05\x4c\xab\xf1\xd7"
        "\xc3\xa7\x0b\x8e\x7a\x50\x45\x52\x3e\x76\x1a\xc7\x68\x23\x51\xfa\x54",
        238));
    NONFAILING(*(uint64_t*)0x20000168 = 0xffc6);
    NONFAILING(*(uint64_t*)0x20000170 = 0x20000780);
    NONFAILING(memcpy(
        (void*)0x20000780,
        "\x01\x00\xf9\x49\x45\xde\x15\xae\x1b\x31\x3e\xaa\x68\x69\xb3\xe2\x60"
        "\x02\xc9\xd0\xd6\xc7\xf7\x1e\xa6\x5c\xc6\xe6\x3e\x97\x09\x13\xfd\xf8"
        "\x80\x19\x88\x07\x39\x4b\x72\x54\xe5\x4f\x27\x4d\x4a\x18\xaf\x84\xc8"
        "\x93\xd9\xf8\x41\x5c\xea\x7a\xd9\xde\xf7\x4b\x81\xeb\xcc\x00\xda\xbe"
        "\xa8\x5c\xc6\x64\xb0\x83\xd7\xa5\x8a\x82\x2b\xc7\x20\x23\x60\x70\xc9"
        "\xd1\xed\x13\x2a\xdc\x1f\x41\x84\x2a\x94\x04\x14\x3a\x4b\x4d\x5f\xad"
        "\xbb\x81\xf5\x70\x23\xa5\xe8\x39\x6a\x50\xeb\xe5\x32\x99\x90\xe5\x2a"
        "\x0f\xf6\x7e\x81\x74\xdb\x0a\xab\x6d\xfe\x2e\x0e\xb2\xed\xf9\x60",
        135));
    NONFAILING(*(uint64_t*)0x20000178 = 0x87);
    NONFAILING(*(uint64_t*)0x200013d8 = 4);
    NONFAILING(*(uint64_t*)0x200013e0 = 0x20000680);
    NONFAILING(*(uint64_t*)0x20000680 = 0x14);
    NONFAILING(*(uint32_t*)0x20000688 = 1);
    NONFAILING(*(uint32_t*)0x2000068c = 1);
    NONFAILING(*(uint32_t*)0x20000690 = -1);
    NONFAILING(*(uint64_t*)0x20000698 = 0x1c);
    NONFAILING(*(uint32_t*)0x200006a0 = 1);
    NONFAILING(*(uint32_t*)0x200006a4 = 2);
    NONFAILING(*(uint32_t*)0x200006a8 = 0);
    NONFAILING(*(uint32_t*)0x200006ac = 0);
    NONFAILING(*(uint32_t*)0x200006b0 = 0);
    NONFAILING(*(uint64_t*)0x200006b8 = 0x2c);
    NONFAILING(*(uint32_t*)0x200006c0 = 1);
    NONFAILING(*(uint32_t*)0x200006c4 = 1);
    NONFAILING(*(uint32_t*)0x200006c8 = -1);
    NONFAILING(*(uint32_t*)0x200006cc = -1);
    NONFAILING(*(uint32_t*)0x200006d0 = -1);
    NONFAILING(*(uint32_t*)0x200006d4 = -1);
    NONFAILING(*(uint32_t*)0x200006d8 = -1);
    NONFAILING(*(uint32_t*)0x200006dc = -1);
    NONFAILING(*(uint32_t*)0x200006e0 = -1);
    NONFAILING(*(uint64_t*)0x200006e8 = 0x24);
    NONFAILING(*(uint32_t*)0x200006f0 = 1);
    NONFAILING(*(uint32_t*)0x200006f4 = 1);
    NONFAILING(*(uint32_t*)0x200006f8 = -1);
    NONFAILING(*(uint32_t*)0x200006fc = -1);
    NONFAILING(*(uint32_t*)0x20000700 = -1);
    NONFAILING(*(uint32_t*)0x20000704 = -1);
    NONFAILING(*(uint32_t*)0x20000708 = -1);
    NONFAILING(*(uint64_t*)0x20000710 = 0x1c);
    NONFAILING(*(uint32_t*)0x20000718 = 1);
    NONFAILING(*(uint32_t*)0x2000071c = 2);
    NONFAILING(*(uint32_t*)0x20000720 = 0);
    NONFAILING(*(uint32_t*)0x20000724 = 0);
    NONFAILING(*(uint32_t*)0x20000728 = 0);
    NONFAILING(*(uint64_t*)0x20000730 = 0x1c);
    NONFAILING(*(uint32_t*)0x20000738 = 1);
    NONFAILING(*(uint32_t*)0x2000073c = 2);
    NONFAILING(*(uint32_t*)0x20000740 = 0);
    NONFAILING(*(uint32_t*)0x20000744 = 0);
    NONFAILING(*(uint32_t*)0x20000748 = -1);
    NONFAILING(*(uint64_t*)0x20000750 = 0x18);
    NONFAILING(*(uint32_t*)0x20000758 = 1);
    NONFAILING(*(uint32_t*)0x2000075c = 1);
    NONFAILING(*(uint32_t*)0x20000760 = -1);
    NONFAILING(*(uint32_t*)0x20000764 = -1);
    NONFAILING(*(uint64_t*)0x20000768 = 0x14);
    NONFAILING(*(uint32_t*)0x20000770 = 1);
    NONFAILING(*(uint32_t*)0x20000774 = 1);
    NONFAILING(*(uint32_t*)0x20000778 = -1);
    NONFAILING(*(uint64_t*)0x200013e8 = 0x100);
    NONFAILING(*(uint32_t*)0x200013f0 = 0);
    NONFAILING(*(uint32_t*)0x200013f8 = 0);
    NONFAILING(*(uint64_t*)0x20001400 = 0x20000c40);
    NONFAILING(*(uint16_t*)0x20000c40 = 0);
    NONFAILING(memcpy(
        (void*)0x20000c42,
        "./"
        "file0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
        "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
        "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
        "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
        "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
        "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000",
        108));
    NONFAILING(*(uint32_t*)0x20001408 = 0x6e);
    NONFAILING(*(uint64_t*)0x20001410 = 0x20000cc0);
    NONFAILING(*(uint64_t*)0x20000cc0 = 0x20000d40);
    NONFAILING(memcpy(
        (void*)0x20000d40,
        "\xc4\x85\xae\x54\x63\xe7\x37\x39\x21\xae\xdf\x2b\x7f\x3a\xe0\xa8\xca"
        "\x79\x44\x40\x55\xff\xcf\x62\x55\x97\x9e\xd1\x3a\xcb\xb8\x0c\x6c\x24"
        "\xae\x23\xd9\xcd\x68\xc2\x9e\x71\x17\x9e\x60\x3b\x5a\x77\x17\x41\x4c"
        "\x78\xfd\x06\xb7\xe6\xfb\xa1\x40\xd9\x9f\xb9\x03\x39\xaf\xec\xfc\xf7"
        "\x02\x26\xb4\xc3\xcb\x27\x9d\xea\xde\x7e\xa2\xfa\xac\x18\x77\x30\xd9"
        "\xc7\x1b\x13\xba\xa3\x78\x5a\x90\x2a\x13\xa2\xa6\xea\xf3\x88\x97\xf7"
        "\x4e\x3f\x2d\x95\xb8\x5e\x3e\xd0\x5f\xcd\xf8\xb0\xf8\x16\x60\x9e\xc8"
        "\x28\x77\xbb\x99\x09\x6f\x1e\xa9\xca\xbe\xac\xa5\x07\xca\x87\xe4\xd1"
        "\xd4\x63\x9b\xef",
        140));
    NONFAILING(*(uint64_t*)0x20000cc8 = 0x8c);
    NONFAILING(*(uint64_t*)0x20000cd0 = 0x20000e00);
    NONFAILING(
        memcpy((void*)0x20000e00,
               "\x8b\x98\xcc\x26\x69\xd0\xa8\x4b\x16\xb1\x84\x85\xe3\xb8\x02"
               "\xe1\xa3\x45\xa2\xf3\xc7\x4c\x6e\x26\x8b\x06\xda\xfc\x8d\x20"
               "\x93\x77\xa5\xf6\xf4\xf2\x7f\x66\x69\x4c\x92\xd8\x8c\x41\xc6"
               "\xc5\x27\x19\xf4\x11\x1a\x47\x89\x84\x7b\x71\x5f\x48\xd7\xbf"
               "\xdc\x03\xb4\x34\x9a\x09\x43\xc9\x63\xdb\x4b\xc0\x33\x3e\xdc",
               75));
    NONFAILING(*(uint64_t*)0x20000cd8 = 0x4b);
    NONFAILING(*(uint64_t*)0x20001418 = 2);
    NONFAILING(*(uint64_t*)0x20001420 = 0x20000ec0);
    NONFAILING(memcpy(
        (void*)0x20000ec0,
        "\x30\x00\x00\x02\xb5\x37\x1d\xe6\x00\x00\x00\x00\x01\x00\x00\x00",
        16));
    NONFAILING(*(uint32_t*)0x20000ed0 = -1);
    NONFAILING(*(uint32_t*)0x20000ed4 = -1);
    NONFAILING(*(uint32_t*)0x20000ed8 = -1);
    NONFAILING(*(uint32_t*)0x20000edc = -1);
    NONFAILING(*(uint32_t*)0x20000ee0 = -1);
    NONFAILING(*(uint32_t*)0x20000ee4 = -1);
    NONFAILING(*(uint32_t*)0x20000ee8 = -1);
    NONFAILING(*(uint32_t*)0x20000eec = -1);
    NONFAILING(*(uint64_t*)0x20001428 = 0x30);
    NONFAILING(*(uint32_t*)0x20001430 = 0xc040041);
    NONFAILING(*(uint32_t*)0x20001438 = 0);
    NONFAILING(*(uint64_t*)0x20001440 = 0);
    NONFAILING(*(uint32_t*)0x20001448 = 0);
    NONFAILING(*(uint64_t*)0x20001450 = 0x20000fc0);
    NONFAILING(*(uint64_t*)0x20000fc0 = 0x20000f00);
    NONFAILING(memcpy(
        (void*)0x20000f00,
        "\x89\x39\x58\xbb\x76\x3d\x38\x09\x1e\x7e\x24\x2e\x6b\x89\x74\x8e\x3a"
        "\xe0\xe5\x26\xdb\x91\x29\x07\xf7\x59\xbc\x2d\xa4\x32\x74\x01\xb4\x4b"
        "\xb9\xcb\xd9\x42\x0f\xd5\x76\xee\xac\x9c\x46\xc7\xd3\xa2\x1d\x84\xaa"
        "\x3b\xbb\x63\xdb\x44\x54\xd3\x63\xcb\x9d\x87\xa0\xa7\x2e\xc4\x66\x25"
        "\x17\x1c\xad\xc7\xbe\x01\xcd\xcf\xc4\xbd\x17\xe0\x9d\x0f\xfe\x8e\x3d"
        "\x65\x17\x54\x91\x88\x1c\x81\xa2\xef\x82\x57\xbe\xea\x93\x03\x1b\x11"
        "\x88\x9c\x28\xa4\x6e\xc4\xe5\xbd\x48\xf9\x2f\x08\xa9\xb6\x6a\x33\x1e"
        "\x00\xe0\xb1\xd5\xe4\x13\xb9\xb1\xb1\x10\xfc\x36\x19\xd4\xce\x65\x8d"
        "\x63\xb1\xeb\xca\x69\xfc\xa2\xaf\xa6\x8a\x8a\xc0\xd1\x33\x9a\xbf\x12"
        "\xef\x5b\xc3\xaa\x5f\x10\x22\x35\x27\xc3\xf4\x2a\xa9\xd1\x0b\x44\x59"
        "\xed\x9a\x54\xe1\x68\x36",
        176));
    NONFAILING(*(uint64_t*)0x20000fc8 = 0xb0);
    NONFAILING(*(uint64_t*)0x20001458 = 1);
    NONFAILING(*(uint64_t*)0x20001460 = 0x20001280);
    NONFAILING(*(uint64_t*)0x20001280 = 0x1c);
    NONFAILING(*(uint32_t*)0x20001288 = 1);
    NONFAILING(*(uint32_t*)0x2000128c = 2);
    NONFAILING(*(uint32_t*)0x20001290 = 0);
    NONFAILING(*(uint32_t*)0x20001294 = 0);
    NONFAILING(*(uint32_t*)0x20001298 = 0);
    NONFAILING(*(uint64_t*)0x200012a0 = 0x1c);
    NONFAILING(*(uint32_t*)0x200012a8 = 1);
    NONFAILING(*(uint32_t*)0x200012ac = 2);
    NONFAILING(*(uint32_t*)0x200012b0 = 0);
    NONFAILING(*(uint32_t*)0x200012b4 = 0);
    NONFAILING(*(uint32_t*)0x200012b8 = 0);
    NONFAILING(*(uint64_t*)0x200012c0 = 0x18);
    NONFAILING(*(uint32_t*)0x200012c8 = 1);
    NONFAILING(*(uint32_t*)0x200012cc = 1);
    NONFAILING(*(uint32_t*)0x200012d0 = -1);
    NONFAILING(*(uint32_t*)0x200012d4 = -1);
    NONFAILING(*(uint64_t*)0x200012d8 = 0x28);
    NONFAILING(*(uint32_t*)0x200012e0 = 1);
    NONFAILING(*(uint32_t*)0x200012e4 = 1);
    NONFAILING(*(uint32_t*)0x200012e8 = -1);
    NONFAILING(*(uint32_t*)0x200012ec = -1);
    NONFAILING(*(uint32_t*)0x200012f0 = -1);
    NONFAILING(*(uint32_t*)0x200012f4 = -1);
    NONFAILING(*(uint32_t*)0x200012f8 = -1);
    NONFAILING(*(uint32_t*)0x200012fc = -1);
    NONFAILING(*(uint64_t*)0x20001300 = 0x1c);
    NONFAILING(*(uint32_t*)0x20001308 = 1);
    NONFAILING(*(uint32_t*)0x2000130c = 2);
    NONFAILING(*(uint32_t*)0x20001310 = 0);
    NONFAILING(*(uint32_t*)0x20001314 = 0);
    NONFAILING(*(uint32_t*)0x20001318 = 0);
    NONFAILING(*(uint64_t*)0x20001320 = 0x1c);
    NONFAILING(*(uint32_t*)0x20001328 = 1);
    NONFAILING(*(uint32_t*)0x2000132c = 2);
    NONFAILING(*(uint32_t*)0x20001330 = 0);
    NONFAILING(*(uint32_t*)0x20001334 = 0);
    NONFAILING(*(uint32_t*)0x20001338 = 0);
    NONFAILING(*(uint64_t*)0x20001468 = 0xc0);
    NONFAILING(*(uint32_t*)0x20001470 = 0);
    NONFAILING(*(uint32_t*)0x20001478 = 0);
    syscall(__NR_sendmmsg, /*fd=*/r[2], /*mmsg=*/0x20001340ul, /*vlen=*/5ul,
            /*f=*/0ul);
    break;
  }
}
int main(void)
{
  syscall(__NR_mmap, /*addr=*/0x1ffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
          /*offset=*/0ul);
  syscall(__NR_mmap, /*addr=*/0x20000000ul, /*len=*/0x1000000ul,
          /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
          /*offset=*/0ul);
  syscall(__NR_mmap, /*addr=*/0x21000000ul, /*len=*/0x1000ul, /*prot=*/0ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
          /*offset=*/0ul);
  const char* reason;
  (void)reason;
  install_segv_handler();
  loop();
  return 0;
}