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

#define _GNU_SOURCE

#include <endian.h>
#include <errno.h>
#include <fcntl.h>
#include <setjmp.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>

#include <linux/loop.h>

#ifndef __NR_memfd_create
#define __NR_memfd_create 279
#endif
#ifndef __NR_mmap
#define __NR_mmap 222
#endif
#ifndef __NR_open_by_handle_at
#define __NR_open_by_handle_at 265
#endif
#ifndef __NR_openat
#define __NR_openat 56
#endif

static unsigned long long procid;

//% This code is derived from puff.{c,h}, found in the zlib development. The
//% original files come with the following copyright notice:

//% Copyright (C) 2002-2013 Mark Adler, all rights reserved
//% version 2.3, 21 Jan 2013
//% This software is provided 'as-is', without any express or implied
//% warranty.  In no event will the author be held liable for any damages
//% arising from the use of this software.
//% Permission is granted to anyone to use this software for any purpose,
//% including commercial applications, and to alter it and redistribute it
//% freely, subject to the following restrictions:
//% 1. The origin of this software must not be misrepresented; you must not
//%    claim that you wrote the original software. If you use this software
//%    in a product, an acknowledgment in the product documentation would be
//%    appreciated but is not required.
//% 2. Altered source versions must be plainly marked as such, and must not be
//%    misrepresented as being the original software.
//% 3. This notice may not be removed or altered from any source distribution.
//% Mark Adler    madler@alumni.caltech.edu

//% BEGIN CODE DERIVED FROM puff.{c,h}

#define MAXBITS 15
#define MAXLCODES 286
#define MAXDCODES 30
#define MAXCODES (MAXLCODES + MAXDCODES)
#define FIXLCODES 288

struct puff_state {
  unsigned char* out;
  unsigned long outlen;
  unsigned long outcnt;
  const unsigned char* in;
  unsigned long inlen;
  unsigned long incnt;
  int bitbuf;
  int bitcnt;
  jmp_buf env;
};
static int puff_bits(struct puff_state* s, int need)
{
  long val = s->bitbuf;
  while (s->bitcnt < need) {
    if (s->incnt == s->inlen)
      longjmp(s->env, 1);
    val |= (long)(s->in[s->incnt++]) << s->bitcnt;
    s->bitcnt += 8;
  }
  s->bitbuf = (int)(val >> need);
  s->bitcnt -= need;
  return (int)(val & ((1L << need) - 1));
}
static int puff_stored(struct puff_state* s)
{
  s->bitbuf = 0;
  s->bitcnt = 0;
  if (s->incnt + 4 > s->inlen)
    return 2;
  unsigned len = s->in[s->incnt++];
  len |= s->in[s->incnt++] << 8;
  if (s->in[s->incnt++] != (~len & 0xff) ||
      s->in[s->incnt++] != ((~len >> 8) & 0xff))
    return -2;
  if (s->incnt + len > s->inlen)
    return 2;
  if (s->outcnt + len > s->outlen)
    return 1;
  for (; len--; s->outcnt++, s->incnt++) {
    if (s->in[s->incnt])
      s->out[s->outcnt] = s->in[s->incnt];
  }
  return 0;
}
struct puff_huffman {
  short* count;
  short* symbol;
};
static int puff_decode(struct puff_state* s, const struct puff_huffman* h)
{
  int first = 0;
  int index = 0;
  int bitbuf = s->bitbuf;
  int left = s->bitcnt;
  int code = first = index = 0;
  int len = 1;
  short* next = h->count + 1;
  while (1) {
    while (left--) {
      code |= bitbuf & 1;
      bitbuf >>= 1;
      int count = *next++;
      if (code - count < first) {
        s->bitbuf = bitbuf;
        s->bitcnt = (s->bitcnt - len) & 7;
        return h->symbol[index + (code - first)];
      }
      index += count;
      first += count;
      first <<= 1;
      code <<= 1;
      len++;
    }
    left = (MAXBITS + 1) - len;
    if (left == 0)
      break;
    if (s->incnt == s->inlen)
      longjmp(s->env, 1);
    bitbuf = s->in[s->incnt++];
    if (left > 8)
      left = 8;
  }
  return -10;
}
static int puff_construct(struct puff_huffman* h, const short* length, int n)
{
  int len;
  for (len = 0; len <= MAXBITS; len++)
    h->count[len] = 0;
  int symbol;
  for (symbol = 0; symbol < n; symbol++)
    (h->count[length[symbol]])++;
  if (h->count[0] == n)
    return 0;
  int left = 1;
  for (len = 1; len <= MAXBITS; len++) {
    left <<= 1;
    left -= h->count[len];
    if (left < 0)
      return left;
  }
  short offs[MAXBITS + 1];
  offs[1] = 0;
  for (len = 1; len < MAXBITS; len++)
    offs[len + 1] = offs[len] + h->count[len];
  for (symbol = 0; symbol < n; symbol++)
    if (length[symbol] != 0)
      h->symbol[offs[length[symbol]]++] = symbol;
  return left;
}
static int puff_codes(struct puff_state* s, const struct puff_huffman* lencode,
                      const struct puff_huffman* distcode)
{
  static const short lens[29] = {3,  4,  5,  6,   7,   8,   9,   10,  11, 13,
                                 15, 17, 19, 23,  27,  31,  35,  43,  51, 59,
                                 67, 83, 99, 115, 131, 163, 195, 227, 258};
  static const short lext[29] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
                                 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0};
  static const short dists[30] = {
      1,    2,    3,    4,    5,    7,    9,    13,    17,    25,
      33,   49,   65,   97,   129,  193,  257,  385,   513,   769,
      1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577};
  static const short dext[30] = {0, 0, 0,  0,  1,  1,  2,  2,  3,  3,
                                 4, 4, 5,  5,  6,  6,  7,  7,  8,  8,
                                 9, 9, 10, 10, 11, 11, 12, 12, 13, 13};
  int symbol;
  do {
    symbol = puff_decode(s, lencode);
    if (symbol < 0)
      return symbol;
    if (symbol < 256) {
      if (s->outcnt == s->outlen)
        return 1;
      if (symbol)
        s->out[s->outcnt] = symbol;
      s->outcnt++;
    } else if (symbol > 256) {
      symbol -= 257;
      if (symbol >= 29)
        return -10;
      int len = lens[symbol] + puff_bits(s, lext[symbol]);
      symbol = puff_decode(s, distcode);
      if (symbol < 0)
        return symbol;
      unsigned dist = dists[symbol] + puff_bits(s, dext[symbol]);
      if (dist > s->outcnt)
        return -11;
      if (s->outcnt + len > s->outlen)
        return 1;
      while (len--) {
        if (dist <= s->outcnt && s->out[s->outcnt - dist])
          s->out[s->outcnt] = s->out[s->outcnt - dist];
        s->outcnt++;
      }
    }
  } while (symbol != 256);
  return 0;
}
static int puff_fixed(struct puff_state* s)
{
  static int virgin = 1;
  static short lencnt[MAXBITS + 1], lensym[FIXLCODES];
  static short distcnt[MAXBITS + 1], distsym[MAXDCODES];
  static struct puff_huffman lencode, distcode;
  if (virgin) {
    lencode.count = lencnt;
    lencode.symbol = lensym;
    distcode.count = distcnt;
    distcode.symbol = distsym;
    short lengths[FIXLCODES];
    int symbol;
    for (symbol = 0; symbol < 144; symbol++)
      lengths[symbol] = 8;
    for (; symbol < 256; symbol++)
      lengths[symbol] = 9;
    for (; symbol < 280; symbol++)
      lengths[symbol] = 7;
    for (; symbol < FIXLCODES; symbol++)
      lengths[symbol] = 8;
    puff_construct(&lencode, lengths, FIXLCODES);
    for (symbol = 0; symbol < MAXDCODES; symbol++)
      lengths[symbol] = 5;
    puff_construct(&distcode, lengths, MAXDCODES);
    virgin = 0;
  }
  return puff_codes(s, &lencode, &distcode);
}
static int puff_dynamic(struct puff_state* s)
{
  static const short order[19] = {16, 17, 18, 0, 8,  7, 9,  6, 10, 5,
                                  11, 4,  12, 3, 13, 2, 14, 1, 15};
  int nlen = puff_bits(s, 5) + 257;
  int ndist = puff_bits(s, 5) + 1;
  int ncode = puff_bits(s, 4) + 4;
  if (nlen > MAXLCODES || ndist > MAXDCODES)
    return -3;
  short lengths[MAXCODES];
  int index;
  for (index = 0; index < ncode; index++)
    lengths[order[index]] = puff_bits(s, 3);
  for (; index < 19; index++)
    lengths[order[index]] = 0;
  short lencnt[MAXBITS + 1], lensym[MAXLCODES];
  struct puff_huffman lencode = {lencnt, lensym};
  int err = puff_construct(&lencode, lengths, 19);
  if (err != 0)
    return -4;
  index = 0;
  while (index < nlen + ndist) {
    int symbol;
    int len;
    symbol = puff_decode(s, &lencode);
    if (symbol < 0)
      return symbol;
    if (symbol < 16)
      lengths[index++] = symbol;
    else {
      len = 0;
      if (symbol == 16) {
        if (index == 0)
          return -5;
        len = lengths[index - 1];
        symbol = 3 + puff_bits(s, 2);
      } else if (symbol == 17)
        symbol = 3 + puff_bits(s, 3);
      else
        symbol = 11 + puff_bits(s, 7);
      if (index + symbol > nlen + ndist)
        return -6;
      while (symbol--)
        lengths[index++] = len;
    }
  }
  if (lengths[256] == 0)
    return -9;
  err = puff_construct(&lencode, lengths, nlen);
  if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1]))
    return -7;
  short distcnt[MAXBITS + 1], distsym[MAXDCODES];
  struct puff_huffman distcode = {distcnt, distsym};
  err = puff_construct(&distcode, lengths + nlen, ndist);
  if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1]))
    return -8;
  return puff_codes(s, &lencode, &distcode);
}
static int puff(unsigned char* dest, unsigned long* destlen,
                const unsigned char* source, unsigned long sourcelen)
{
  struct puff_state s = {
      .out = dest,
      .outlen = *destlen,
      .outcnt = 0,
      .in = source,
      .inlen = sourcelen,
      .incnt = 0,
      .bitbuf = 0,
      .bitcnt = 0,
  };
  int err;
  if (setjmp(s.env) != 0)
    err = 2;
  else {
    int last;
    do {
      last = puff_bits(&s, 1);
      int type = puff_bits(&s, 2);
      err = type == 0 ? puff_stored(&s)
                      : (type == 1 ? puff_fixed(&s)
                                   : (type == 2 ? puff_dynamic(&s) : -1));
      if (err != 0)
        break;
    } while (!last);
  }
  *destlen = s.outcnt;
  return err;
}

//% END CODE DERIVED FROM puff.{c,h}

#define ZLIB_HEADER_WIDTH 2

static int puff_zlib_to_file(const unsigned char* source,
                             unsigned long sourcelen, int dest_fd)
{
  if (sourcelen < ZLIB_HEADER_WIDTH)
    return 0;
  source += ZLIB_HEADER_WIDTH;
  sourcelen -= ZLIB_HEADER_WIDTH;
  const unsigned long max_destlen = 132 << 20;
  void* ret = mmap(0, max_destlen, PROT_WRITE | PROT_READ,
                   MAP_PRIVATE | MAP_ANON, -1, 0);
  if (ret == MAP_FAILED)
    return -1;
  unsigned char* dest = (unsigned char*)ret;
  unsigned long destlen = max_destlen;
  int err = puff(dest, &destlen, source, sourcelen);
  if (err) {
    munmap(dest, max_destlen);
    errno = -err;
    return -1;
  }
  if (write(dest_fd, dest, destlen) != (ssize_t)destlen) {
    munmap(dest, max_destlen);
    return -1;
  }
  return munmap(dest, max_destlen);
}

static int setup_loop_device(unsigned char* data, unsigned long size,
                             const char* loopname, int* loopfd_p)
{
  int err = 0, loopfd = -1;
  int memfd = syscall(__NR_memfd_create, "syzkaller", 0);
  if (memfd == -1) {
    err = errno;
    goto error;
  }
  if (puff_zlib_to_file(data, size, memfd)) {
    err = errno;
    goto error_close_memfd;
  }
  loopfd = open(loopname, O_RDWR);
  if (loopfd == -1) {
    err = errno;
    goto error_close_memfd;
  }
  if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
    if (errno != EBUSY) {
      err = errno;
      goto error_close_loop;
    }
    ioctl(loopfd, LOOP_CLR_FD, 0);
    usleep(1000);
    if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
      err = errno;
      goto error_close_loop;
    }
  }
  close(memfd);
  *loopfd_p = loopfd;
  return 0;

error_close_loop:
  close(loopfd);
error_close_memfd:
  close(memfd);
error:
  errno = err;
  return -1;
}

static void reset_loop_device(const char* loopname)
{
  int loopfd = open(loopname, O_RDWR);
  if (loopfd == -1) {
    return;
  }
  if (ioctl(loopfd, LOOP_CLR_FD, 0)) {
  }
  close(loopfd);
}

static long syz_mount_image(volatile long fsarg, volatile long dir,
                            volatile long flags, volatile long optsarg,
                            volatile long change_dir,
                            volatile unsigned long size, volatile long image)
{
  unsigned char* data = (unsigned char*)image;
  int res = -1, err = 0, need_loop_device = !!size;
  char* mount_opts = (char*)optsarg;
  char* target = (char*)dir;
  char* fs = (char*)fsarg;
  char* source = NULL;
  char loopname[64];
  if (need_loop_device) {
    int loopfd;
    memset(loopname, 0, sizeof(loopname));
    snprintf(loopname, sizeof(loopname), "/dev/loop%llu", procid);
    if (setup_loop_device(data, size, loopname, &loopfd) == -1)
      return -1;
    close(loopfd);
    source = loopname;
  }
  mkdir(target, 0777);
  char opts[256];
  memset(opts, 0, sizeof(opts));
  if (strlen(mount_opts) > (sizeof(opts) - 32)) {
  }
  strncpy(opts, mount_opts, sizeof(opts) - 32);
  if (strcmp(fs, "iso9660") == 0) {
    flags |= MS_RDONLY;
  } else if (strncmp(fs, "ext", 3) == 0) {
    bool has_remount_ro = false;
    char* remount_ro_start = strstr(opts, "errors=remount-ro");
    if (remount_ro_start != NULL) {
      char after = *(remount_ro_start + strlen("errors=remount-ro"));
      char before = remount_ro_start == opts ? '\0' : *(remount_ro_start - 1);
      has_remount_ro = ((before == '\0' || before == ',') &&
                        (after == '\0' || after == ','));
    }
    if (strstr(opts, "errors=panic") || !has_remount_ro)
      strcat(opts, ",errors=continue");
  } else if (strcmp(fs, "xfs") == 0) {
    strcat(opts, ",nouuid");
  }
  res = mount(source, target, fs, flags, opts);
  if (res == -1) {
    err = errno;
    goto error_clear_loop;
  }
  res = open(target, O_RDONLY | O_DIRECTORY);
  if (res == -1) {
    err = errno;
    goto error_clear_loop;
  }
  if (change_dir) {
    res = chdir(target);
    if (res == -1) {
      err = errno;
    }
  }

error_clear_loop:
  if (need_loop_device)
    reset_loop_device(loopname);
  errno = err;
  return res;
}

uint64_t r[1] = {0xffffffffffffffff};

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;
  intptr_t res = 0;
  if (write(1, "executing program\n", sizeof("executing program\n") - 1)) {
  }
  memcpy((void*)0x20000780, "iso9660\000", 8);
  memcpy((void*)0x20000000, "./file0\000", 8);
  memcpy((void*)0x20000e00, "map=acorn,sbsector=0x0000000000000000,uid=", 42);
  sprintf((char*)0x20000e2a, "%020llu", (long long)0);
  memcpy((void*)0x20000e3e,
         "\x00\x00\xb1\x8e\xb0\xea\x96\xe8\x43\x7d\x91\xed\xf7\x27\xe1\xe3\x85"
         "\x33\x74\x0c\x5b\x1d\xa1\x0b\x83\x27\x3f\xa4\x68\xd3\x64\x20\x5a\x63"
         "\xad\xda\x52\x62\xcd\xa8\xe6\x90\xc1\x04\x9c\x88\xd6\x15\xfd\x83\x62"
         "\xcd\x46\x4a\x35\xe1\x22\xae\x29\xc2\x03\xd5\xce\x83\x7a\x5f\x88\xeb"
         "\x1f\x09\xa8\xa7\xf5\x59\x59\x92\x6a\x7f\xd5\xac\x27\xfd\x51\x9b\x5c"
         "\x21\x7e\xd4\x20\xe4\x1d\xdc\xfd\x90\x72\xf5\x03\x65\x61\x69\xe7\x20"
         "\xfd\xc2\xda\x8c\x99\x8a\x87\x06\x83\x23\x2e\x52\x63\xa0",
         116);
  memcpy(
      (void*)0x20000eb2,
      "\xa0\x91\x60\xde\xd8\x80\xb9\xf6\x18\x27\x41\xb8\x21\x9b\xe2\x75\x3f\xed"
      "\x7f\x69\x91\x20\x1f\xac\xf3\xff\x06\x55\x02\xeb\x11\xcb\x54\x35\x13\x49"
      "\xbd\xb6\x19\x5f\xf9\xe3\x75\x3b\xda\x2a\x4e\x07\xe4\x96\x7c\x3d\xef\xae"
      "\xe7\x49\x12\x2c\x22\x29\xca\x59\x0d\x63\x6a\x18\xc3\x4f\x67\xc4\x93\xea"
      "\x3e\xbc\x3f\x1f\xf1\x23\x38\x09\x93\x05\x8c\xbd\xfd\xbc\x63\xfa\x60\x4a"
      "\xb6\x23\x0c\x74\x7c\x82\x1d\xfa\xc7\xd5\x3d\xc5\x83\x27\xa6\x00\x07\xfe"
      "\xe7\x7c\x6c\xbd\x34\x6c\x9c\xc1\xf8\xfa\xdb\xd0\xc6\x4e\x5b\x24\x73\x03"
      "\x76\x3e\xd5\x33\x01\x8d\x61\x38\x97\x5f\x73\x78\x32\x87\xa2\xee\xcc\xea"
      "\x82\x34\x57\xf0\x9c\x57\x34\xde\xdf\xeb\x76\x34\x83\xd1\x70\xe6\x78\x4b"
      "\x77\x6c\x12\xa2\x78\x34\x94\x37\x0c\x95\x5a\xd5\x96\x4b\xc2\x7f\xda\x6b"
      "\xd4\xf4\xae\x27\x22\xe7\x22\x34\xce\x2b\x28\x24\x40\x98\x41\x6b\x88\xd5"
      "\x60\x88\x0a\x5d\x07\x25\x8c\x70\x07\x97\xf3\x28\x75\x84\xc0\xea\x81\xc2"
      "\x1b\xcf\x14\xd1\x37\xde\x61\x2a\x58\x0f\x5a\x5f\x49\x39\xb4\xb5\x59\x94"
      "\x4b\xf1\xb4\xe3\xa6\xd4\xf2\xaa\x93\xa1\x41\x98\x38\xfc\x3a\xbc\x6f\xda"
      "\xa7\x43\x0e\xf7\x16\xc1\xdb\x67\x9e\xea\x21\xba\xfb\xc7\xef\x48\xc5\xa0"
      "\xb9\x47\x94\xe2\xad\x06\xda\x77\x45\xcb\xbb\xf1\xaf\xea\x2d\xa4\x98\x6e"
      "\x6d\x0a\x17\x36\xbc\xb2\x6d\x15\x1c\xba\xe6\xd7\x49\x1b\xd2\x2b\x15\xba"
      "\x97\x18\x0b\x3e\xcb\x66\x6c\x48\xf5\x7e\x7b\xfe\xcb\x95\xb2\x1e\x41\x2c"
      "\x88\xde\xcc\x22\x2b\x13\x3e\xea\xad\xab\x04\xde\x54\x60\xa7\xcc\xb0\xd8"
      "\xe3\x66\xad\x20\x45\xfa\x83\xe6\x8b\x04\x31\x05\x1c\xde\x3b\x6e\x2b\x99"
      "\x7e\x64\x71\x3a\x54\x67\xb4\xb6\x02\xf2\xe9\x14\x2f\x72\xc5\xd4\xa3\xd8"
      "\x0e\xa2\x32\x15\x5d\x03\xb6\x82\x21\x70\x8e\x3e\x0e\xe5\x8d\xd9\xf2\x2d"
      "\xcd\x03\x67\x07\x08\xd3\x22\x44\x24\xe1\x0c\x28\x7a\xdd\x16\x6b\xaf\xa4"
      "\x2e\x04\xf8\xfe\xc0\x13\x77\x94\x5f\xe2\xbc\x0e\x92\x32\x03\x1e\x98\x7d"
      "\xb1\xf9\xc2\xa8\xd1\x62\xeb\xd5\x62\x93\x49\xda\x86\x9b\x7c\xd2\x3e\x17"
      "\x66\xe9\x2a\x85\x22\xce\x90\x7f\x66\xe8\x74\xd4\xe1\x24\xf4\xfe\x43\x9e"
      "\xa6\x0a\xba\x65\xeb\x7f\xea\x00\xae\x0a\x5b\x6d\xa2\x51\x87\x53\x6f\x05"
      "\x43\x50\xa7\x36\x5e\xf9\x98\xdf\xe3\x09\xf2\xc2\xc4\xd7\xd5\x99\xc4\x75"
      "\x4b\x35\x0c\x4c\x23\x36\x6f\xc7\x64\x7c\xae\x81\xb9\xd5\xeb\x74\x82\x30"
      "\x36\x20\xf7\xc4\xec\x93\xaa\xfb\xcc\xa0\x4b\xfd\x17\x73\x1b\xd7\x9f\xd6"
      "\x9d\x1c\x6e\x7f\x8a\xa6\x85\xca\x42\x31\x0b\x9a\x19\x95\x29\x25\xc8\x36"
      "\x59\x7d\xe5\x26\x29\x51\xd1\xb8\x46\xa7\x54\xe3\x35\xfc\x82\x90\xb1\xbe"
      "\xad\xc1\x1d\x86\x31\x5c\x7c\x31\xc2\xb3\x24\x07\x1b\xa8\x44\x0f\x65\xf8"
      "\xc9\x40\x9d\xe8\xc9\x05\x4b\xd4\x78\xb3\xc2\x65\xa3\xa4\x70\xb4\x3e\x7f"
      "\x4c\x6a\xcf\xfb\x8e\xef\xd8\x66\x96\x65\x5b\xca\xf1\xb0\x6e\xad\xff\x5b"
      "\x1b\x1f\x98\x84\xba\x73\x25\x65\x32\x09\xec\x16\x3b\xa7\xca\x48\xd1\xbe"
      "\xb7\x18\x13\xe8\xcd\x80\x1d\x42\x9a\x33\xc0\x11\x1f\x76\x88\x21\x12\xb0"
      "\x02\xbc\x87\xdb\x66\xd1\x1f\xcc\x23\x89\x08\xb8\xcc\x4a\xe5\xb9\xfd\x08"
      "\x8f\xe8\xae\xc2\x09\x85\xbc\xbe\xcf\xda\x8e\xbf\x2c\x72\x31\x9e\xa6\x7f"
      "\xa1\xb6\x78\x78\xce\x00\x6e\x55\x8a\x92\xd6\x69\x92\x30\x57\xf2\x58\xb0"
      "\x3e\xdb\xd8\x5f\xe3\x06\x55\xe8\x1d\xec\xa4\xd9\xec\xea\x13\xb6\x58\xf6"
      "\x8b\xa4\xd6\x3d\x6a\x2d\xdd\x1e\x07\x8c\xee\x7b\xf4\xdd\xa2\xfa\x41\x24"
      "\xaa\xa4\xe3\x22\x3c\x1d\x6a\xe1\xcb\x08\xc6\x5b\x55\x6a\x2e\xd6\x7a\x4d"
      "\xcd\x58\xac\x57\xcb\x66\x21\xba\x81\x31\x46\x3e\xe8\x83\x75\x67\xfd\x0e"
      "\x5b\xa5\x64\x05\x4c\x1f\xe9\x2d\x2b\xeb\x67\x55\x76\xac\x85\x22\xd0\x23"
      "\xfd\x2c\x47\xa5\xb4\x61\xa8\xff\x2a\x46\xb4\xc3\xf3\x27\x69\x2d\x66\x60"
      "\x04\x29\x60\xb2\x8c\x40\x85\x72\x8a\x86\x6d\xa0\x3c\x9f\xd4\xea\xdf\x28"
      "\x65\xa3\x69\x41\x63\x5e\x1f\x6a\x58\xb7\xed\x32\x8e\xcb\x4a\x29\x9f\x5a"
      "\xd1\x41\x60\x67\x2b\xbf\xa3\xc4\xcc\x3a\x1c\x3d\x54\x7c\xac\x38\x86\x1e"
      "\xbb\x19\xf7\x92\x35\x8a\xed\x3d\xd9\x06\x0b\x2e\xd4\xc8\xd5\x09\xe7\x2b"
      "\x60\x6c\x70\x37\xda\x7f\x5c\x04\x8f\xf8\x90\x47\xc4\x84\x2e\x47\xe5\x95"
      "\xaf\x3e\x06\xad\x97\x8e\xe7\x98\x16\xcf\x60\xdb\x60\x48\xf0\xeb\x98\xb4"
      "\x35\x50\x9b\xb0\x67\x8c\xba\xbb\x32\xc6\x98\xd3\x62\xec\x1e\x7a\x6b\x2a"
      "\xb4\x81\xee\x1a\xec\xdf\xc8\x26\x64\xf8\x2c\xfb\x74\x0d\x24\x9e\xad\x85"
      "\x05\x5b\x36\xa3\xa8\x62\x8c\xfe\x72\x33\x29\x2d\x6a\xe4\x0c\xc4\x46\xb4"
      "\xf5\x0f\x33\x60\x4b\x67\x9d\xf2\xeb\xe3\xc2\x0f\x19\x72\xdd\x53\xf2\x1b"
      "\x8a\x7a\x3b\xb0\x86\xe2\x66\xe4\x0b\xf3\x89\xb7\x31\x1d\x7f\xed\xdc\x62"
      "\x0e\xb8\xb8\x0a\x86\xa0\x31\xce\x4f\x6e\x00\x63\x86\x77\x54\x18\x12\xff"
      "\x38\x65\x23\x2f\xec\xf6\x32\x51\x01\x9e\x8c\xc0\x48\xad\x27\x12\x08\x97"
      "\x35\x8d\x8e\xc1\x8d\xd9\xda\x2d\x44\xde\x2c\x6e\x89\x0d\x60\x30\x11\x71"
      "\xa2\xba\x23\xab\x37\xa2\x12\x57\xb2\x30\x52\x99\x4c\xf7\x14\x9a\x5d\xc8"
      "\x27\xff\x40\xe7\x33\x53\x74\x51\x18\x5a\x0b\x4f\xfb\xb9\xd6\x48\xec\xf8"
      "\x20\x4f\xf0\xc9\x1f\x17\xc2\x1c\x34\x0b\xde\xda\xe7\x24\x52\x85\x90\x37"
      "\xbc\x4a\x56\x9e\xe1\xab\x64\x43\x32\xbf\x9c\x6b\x10\xba\x5a\xc2\xfc\x36"
      "\xde\x0c\xe8\xfd\x4b\x03\x2c\x4e\x1f\x17\x63\xa1\x3c\x65\xab\xba\xee\xff"
      "\x5b\xb8\xe3\xa7\x13\xc5\x1b\x10\x7c\xde\x94\x40\xb6\x3e\x09\xe1\x0a\x60"
      "\xa3\x62\xc6\x71\xf2\x2b\xb4\xb2\x36\x2b\xa8\x7b\xc7\x2a\x1c\xfd\x30\xba"
      "\xf0\xe3\x88\xae\x04\x5e\x15\x0a\x30\x2b\x6f\x71\x46\xe5\x3d\x31\xe8\xac"
      "\x69\x43\x91\x4b\xe7\x49\xe5\xde\x90\x37\xd4\x63\x53\x47\x1b\x0c\x92\xde"
      "\x12\xd3\xeb\x38\x65\x22\xb9\xe3\x0a\x57\x47\x44\xf2\xe1\x46\x7d\xcc\xd9"
      "\x45\x63\xf7\x8f\x43\xf3\x72\x6a\xdd\x26\x14\xfd\x94\xc4\xcb\xa1\x4d\x44"
      "\x25\x11\xe8\xad\x04\x43\x69\x52\x2d\x4c\x9d\x09\xfb\x19\x9f\xdf\xdf\x89"
      "\x73\x98\x21\xde\x93\x47\xc9\xb2\x13\x63\x6d\xf6\xed\xa1\x19\xfe\xf0\x23"
      "\x18\x81\x54\xc3\xf7\xf9\x99\x7e\x27\x89\x43\x5a\x4e\xcb\x9b\x21\x0c\x0b"
      "\x18\x5e\x80\x52\x79\x32\x9b\x7a\xc4\xed\xe4\x9c\xd5\xb8\x12\x60\x4b\xca"
      "\x5e\xee\x8f\xa9\x47\x11\x27\x2c\x80\xb4\x52\xf4\x54\xfd\x3d\x2f\x1a\x50"
      "\xb8\xc8\xaa\xf2\x08\x06\x43\x89\xbd\xa2\x28\x92\xa8\xd9\xa7\xa7\x10\xa1"
      "\xae\x0d\xb3\xa2\x81\x36\x08\x07\x9a\x37\x84\x31\x19\x39\x7f\x4c\x29\x9e"
      "\xa5\x79\x65\xe7\x35\xbd\xf4\x58\x57\xea\x65\x02\xe2\x9a\x97\x58\x5f\x0f"
      "\x24\xa4\x36\x08\x53\x9d\xc1\x3e\x2a\x96\x7c\x86\x77\x67\xcb\x9d\x17\x38"
      "\xfb\x74\x71\xe5\x3e\x51\x47\x4f\x64\xf0\xfa\x5c\x07\xf9\xe3\x20\x7f\x6c"
      "\x40\x2a\xca\xfc\x19\xb4\xa4\x80\xf7\xff\xdb\xd6\x86\x7a\xbc\x28\x91\x47"
      "\xbc\xd3\x7f\xbc\x1d\xa5\xec\x58\xda\xc2\x42\xb7\x49\x2b\x8a\x3e\x77\x73"
      "\xbc\xd5\xea\x42\x4a\x9d\x79\xbc\x11\xba\xe8\x77\x62\x34\xd0\xc4\x7f\xf6"
      "\x8c\xee\xe2\xa1\xcb\x7c\x7f\x2a\xa7\xe8\x2a\xef\xed\xf6\x83\xf9\x8f\xdd"
      "\x0b\xb4\x72\x5b\x32\x58\x6b\xa3\x3b\x62\x56\x75\xda\x49\x4d\x2f\x75\x32"
      "\x2d\x08\xff\x57\xd7\x80\x81\x66\x2f\x87\xcc\x98\x76\x52\x8a\xea\x33\x8b"
      "\xbf\xa8\xaf\xd8\x91\x4d\xda\x07\x54\xed\x51\xc0\xe9\x73\x52\x23\x45\xc1"
      "\x61\x7d\x21\x8b\xb5\x7e\xf0\x61\xdd\xa5\x43\x6d\x3e\x39\x6a\x81\x2b\xe7"
      "\x88\xaa\xfe\x04\x41\x42\x61\x93\xa5\x78\xcd\xb6\x09\x6e\x17\x10\x68\x99"
      "\x43\xb1\xae\x69\xe2\x19\x60\x78\x2f\xa6\x19\x5c\x17\x60\xac\x0c\x07\xc3"
      "\xd0\x4b\x1f\x08\x36\xab\x55\x8e\x7d\x98\xa1\xd0\xa2\x61\xf7\xcb\x08\x94"
      "\x9d\x42\xf3\xb0\xac\x3f\x62\xca\xe3\x30\x1a\xa3\xcf\xb9\xbe\xa7\xfb\x0d"
      "\x26\x03\xcc\xe9\x58\x91\x56\xbf\xca\x54\x89\x68\x5c\x08\xbd\x06\x45\xce"
      "\xfa\x72\x67\xd6\xd4\x89\xa2\x9f\x95\xd5\xd9\x88\x5f\xa3\x85\xb8\x4f\xfe"
      "\xf0\x8c\x8a\x13\xce\x7d\x34\x39\x0a\x1e\x97\x50\xe8\x1b\xab\xf7\xc3\x03"
      "\x37\x41\x88\x74\x35\xa8\xd7\x01\xd9\xf6\x05\x87\x37\x98\x20\xdc\x19\x9e"
      "\xd3\xf6\x8b\xef\x93\x1b\x28\x2e\x5f\x46\x1b\xd6\xf8\x20\xc3\x32\x28\xd5"
      "\x41\xa4\xc2\xdc\xec\x4e\xe4\x86\x03\x25\x76\x00\xb9\x43\x30\x46\xdb\xe3"
      "\x89\x9a\x06\x08\xcc\x77\xe2\x81\xba\x89\x0b\xb1\x48\xce\x52\xb4\x68\x75"
      "\x24\x44\x8f\x42\xdf\x1b\xd7\xfa\x82\x88\xa1\x6c\x1c\x46\x59\x62\xf7\x51"
      "\x8d\x8a\x3c\x5e\x33\x6f\xc8\x1e\x65\xbf\x98\x17\x34\x36\xdc\x08\x9d\x72"
      "\x33\x18\x6a\x4f\xdf\x83\x3b\xe4\x95\xf5\x14\xe7\xcb\x63\x93\xd4\xab\xb7"
      "\x46\xff\xa5\x6b\xd4\x68\xcf\xa7\x60\x36\xde\xaa\x7f\x89\xd1\x35\xc8\xad"
      "\x75\x9d\x52\x65\xd0\x12\x01\xd5\x06\x2c\x35\xf2\xbc\xf3\xc8\xf1\x1c\x1b"
      "\x54\xd2\xeb\x70\xfd\x4c\x73\xde\x32\xff\x58\x0e\x2f\x8d\xf5\x38\x3e\x40"
      "\x54\xd1\x76\xe3\xaf\x8c\xfe\x23\x4c\x6f\x8d\x6e\xbb\xb9\x52\xf7\x24\xef"
      "\xc5\xa2\x12\xc4\xcc\x36\x0b\xfa\x0a\xfe\xeb\xf0\x3b\x33\x01\x4f\x0c\x38"
      "\xda\x97\x87\xea\xf1\xb0\x86\x2d\x49\x68\x1f\x15\x1e\xe7\x57\xec\xb1\x04"
      "\x17\x6d\xfa\x7a\x27\xb9\xca\x29\x86\xdf\xcf\xaf\x25\x92\x50\x09\x95\x8e"
      "\xbf\x92\x87\xae\x2e\xb2\xa5\x77\x57\xdc\xe1\x1b\xbf\x46\x5e\x9b\xbd\x2c"
      "\x2d\xcc\x0a\xd2\x79\x0c\xa6\x4f\xe2\x56\x4e\x03\x95\xab\x00\x9c\x7f\x56"
      "\x99\x0d\xf7\x2b\xe1\xf0\xf2\x75\xb6\xc0\x86\xbf\x56\x3f\x7b\x2f\x29\x16"
      "\xd0\xea\x14\x6c\x3a\x3e\x62\x64\xb5\xaf\x24\x1a\x5e\x71\x74\x2b\x29\x6f"
      "\x98\x23\x33\xee\x8a\x01\x64\xd4\x70\xc6\xa1\x39\xf5\x4c\xdb\x13\xca\x6c"
      "\x68\x0c\xf6\x1b\x43\x6b\x19\x65\x96\x94\x22\x14\xcf\x5e\x40\x9b\x03\x77"
      "\x08\xe4\xaa\x67\x4c\x7f\x15\x7d\x9a\x53\x5c\xdd\x32\x55\xed\x1f\x78\x26"
      "\xa6\x17\x2e\x45\xd3\x52\xc7\x42\xb8\x0b\xa8\x15\xeb\xa0\xd5\xae\x04\x5e"
      "\x50\x2b\xe1\xed\xe7\xd0\x5b\xc2\x5f\x53\xa1\xef\x14\xea\x5e\xf2\xe4\x04"
      "\x8e\x33\x51\xb0\x00\xa8\xdb\xab\x5c\x4f\x04\x7c\x5f\x62\xfb\xbc\x4a\x9f"
      "\x71\x9d\x82\x83\x5a\xb8\x09\x74\x9f\xfd\xc8\x66\x8b\x17\xb7\xdf\x65\x86"
      "\x86\x18\x47\xa8\xbe\xc7\xa3\x98\x00\x50\x47\x92\x30\xee\xeb\xdd\x44\x07"
      "\x75\x14\x50\xa2\x48\x56\x32\x0a\x6f\x75\x7c\x36\xe5\x73\x9a\x3a\x37\x42"
      "\x92\x6d\xcb\x7f\x0f\x55\xa1\xfa\x1f\x9d\x3d\xb2\x01\x63\xc7\xcd\x51\x39"
      "\x05\x12\x7d\x46\x13\x14\xd7\x3f\x1a\x77\x36\x8e\xa3\x9f\xfb\x44\x9a\x86"
      "\xb4\xeb\x1c\x3d\x2a\x28\x7f\xd1\x13\x9d\x43\x5f\x70\x7f\x5e\xb3\xf7\x0a"
      "\xdb\x1f\xf7\x11\xfc\x25\x75\x49\xc6\x65\xf6\xde\x64\x74\x06\x61\x94\x58"
      "\x2e\xd5\x15\x64\x61\x80\x93\x3d\xf9\xaf\x7b\xfc\x8f\x81\x32\xbe\x16\x50"
      "\xb8\xcb\xb5\x65\xbf\xee\xf4\x99\xe2\xe8\x1c\x04\xad\x15\xa7\xe8\x85\x43"
      "\xa9\x5e\xa8\xa2\x41\xcb\x3e\x73\x1c\x0f\xcb\x34\xc9\xd9\x7b\x7e\xc1\x11"
      "\xbc\xa1\x6d\x42\x03\xfc\xa3\x7a\x03\x39\x42\xaf\x33\xf6\x0b\x5b\x4d\xd3"
      "\xb7\x2c\xa6\x67\x2b\xc5\x3e\x45\x9f\xd8\xaf\xc3\x29\x9d\x81\xf4\x31\xd9"
      "\x6d\x5c\xad\xa9\x3c\xa5\x45\x8d\x96\xf8\x89\x93\xef\x32\xaf\xf2\xa8\xa2"
      "\x25\xe7\xe0\x0b\xb5\xed\x9f\x30\x9e\xad\x76\xc8\xc8\xc6\x33\xa3\x2c\x3d"
      "\x0e\xbc\xfe\x11\xbc\xf3\x1d\x1c\xef\x35\x0e\x54\xa1\x92\x06\x9c\xc1\x2e"
      "\x2b\x13\xbe\xd7\x5c\x1b\x9b\x8e\xef\xe5\x7d\x3c\x70\xfb\x7f\xf6\x67\x97"
      "\x63\xa1\x6b\x1c\x0e\x5b\x90\x8a\x2a\x37\x6d\xac\x08\x8d\x91\xd5\x5a\xc0"
      "\x46\x14\xaf\xd6\x4b\x2f\x4c\xc8\xdf\x03\x3f\x38\x23\xf1\xd4\x37\xd9\x6b"
      "\x4c\x39\x18\x98\x9a\x00\x72\xcc\x49\x69\xeb\x3b\xb9\x91\x84\xed\xd4\xc5"
      "\x19\xc4\x17\x38\x12\xd5\x55\x43\xa2\xcd\x78\x59\xb7\x8a\x5f\x19\x82\xaa"
      "\xd1\x99\xaa\x01\x5a\xaa\xab\xe6\xe1\xd1\xc8\x38\x8c\x08\x02\x83\x44\x2a"
      "\xe9\x02\x05\xe6\x1e\xe2\x02\x38\x58\x77\x99\xd2\x9d\xd1\x75\xec\x5f\xf8"
      "\x12\x1b\x85\x77\x3e\x35\x7a\x80\x67\xeb\x29\xaa\xb4\x93\x69\x8a\xfc\x59"
      "\x78\xe0\x79\x3f\xaa\x84\x14\xe4\x80\x44\xa3\x78\x76\xdb\x97\x35\xc3\xd5"
      "\x9b\x2b\xba\x00\x3b\x8a\xbe\x01\x12\x9d\x0f\xd9\x3c\xf9\x00\xd4\xac\xf4"
      "\x8b\x67\x60\x9e\xf8\xbc\x45\x99\xa7\xa3\x17\x82\x90\xdb\xbd\x2a\x21\xec"
      "\x4b\x40\x49\x6d\xec\x2d\x27\x81\x05\xb9\x75\xc8\xef\x7f\xad\x3d\x09\xbc"
      "\x33\x94\x3e\x23\x0c\xd1\xc4\x9b\x17\xba\xb8\xc0\x67\x21\xb6\x23\x20\x39"
      "\xf3\x0c\x76\x96\xad\x82\x44\xaa\x3a\x7a\x43\x69\x1a\xdf\xd5\xbf\xe2\x77"
      "\x0e\x45\xa3\xa4\x51\x21\x25\x8c\x51\x5d\xb8\xf3\xac\x16\x38\x4b\xf9\x53"
      "\x1b\xd6\xab\xc5\x66\x1a\xb5\x8f\x70\x89\xae\x67\x0c\x23\x54\x9e\x41\x53"
      "\x49\x2f\xda\x1b\xac\x14\x31\xfa\xfb\x65\x39\x2f\x95\xbd\xd8\xe9\x7a\x78"
      "\xa6\xb5\x82\xa5\x67\x50\xc5\x5f\x19\xab\xba\xc4\x07\xce\x6c\x74\xa2\xd4"
      "\xdf\xb5\x17\xa9\x88\x1d\x15\xfa\x63\x6d\x88\x94\x09\x5d\xd9\x3c\x15\xde"
      "\xa6\xdd\x39\xb8\xc2\xdf\x9f\x9e\xed\x0d\x23\x08\x54\xff\x72\xff\x33\x1e"
      "\xe1\x26\x43\xd1\xe9\xf1\x93\x8b\x98\x96\xc3\x26\xd8\x3e\x4d\xdd\xaa\x4a"
      "\xd9\x76\x34\x59\x78\x82\x1c\x03\x56\x9c\x72\x90\xb9\x2b\x40\x68\x51\x84"
      "\x42\x01\xf2\x32\xb9\xc3\x2a\x40\x99\x41\x4d\xb8\x24\x2f\xbd\x32\xda\x7c"
      "\x9f\xd4\x99\x92\x58\xaf\xcd\x4e\x24\x10\x29\x1b\xcb\x58\x63\x93\x18\xc1"
      "\x5e\x42\xa7\xaf\xc8\xfd\x60\xac\x09\x1c\xb4\x09\xa8\xea\xf9\x34\x0b\xfd"
      "\xf9\x22\x3e\x52\xcc\x57\x7c\x5d\x30\x4c\xfb\x3c\xfc\x45\x58\xa5\x40\x1f"
      "\xaa\xb5\x29\x44\xef\xc4\x69\x7b\xae\x59\x40\x1b\x09\x2d\x94\xa5\xe5\x6c"
      "\x2c\xfe\x56\x15\x7c\x5b\x27\xba\xe6\x6b\x84\x9c\xfd\x62\x1e\x10\xc4\xf8"
      "\xef\x5e\xad\x10\x1c\x42\xca\x77\x5c\xbf\x29\xfb\x8c\xff\x0a\x88\x21\xd9"
      "\xbb\x85\xf2\x12\x7f\xe5\x54\x84\x17\x30\xe7\x9f\x30\x70\x1f\x52\x7e\x63"
      "\x11\x38\x99\xbb\xaf\x5b\x88\x8f\xb7\x36\x83\xa2\x63\x1b\xc4\xb9\xcc\x91"
      "\x43\x86\xe0\xdf\x27\x63\xae\x9b\x46\xe0\xec\xa4\x08\x5e\x16\x76\xc8\x8d"
      "\xd7\x19\xa8\x44\x63\xf8\x6e\x30\x17\xf9\x03\x46\xe8\xc8\x80\x06\xdf\x28"
      "\x67\xbf\xf1\xcf\xea\x25\xfd\x29\xaf\x1b\x96\x24\x9c\xb4\xa7\xc7\x35\x36"
      "\x58\xb1\x6d\x95\xc3\xb7\xf5\x32\xdb\x1e\x94\x55\xa4\x86\xa9\xbf\x1b\x80"
      "\x5b\xc3\xa9\x0c\x5d\xb0\x7e\xf2\x7e\x24\x61\xf3\x56\x09\x3a\x88\x14\x99"
      "\x0c\xf7\x12\xb9\x79\x74\x91\x9b\x73\xf1\x3b\x2f\x08\xbf\xc9\xd2\xc4\xdb"
      "\x69\xc3\x51\x8b\x6a\xde\x6e\x72\x54\xae\x2e\x6d\x07\x67\x7c\x3c\x67\xd0"
      "\x08\x30\xc0\x41\xa1\x11\xeb\x10\x3a\x2d\x68\xa7\xbb\xfa\xb4\x75\x5a\xbe"
      "\x3d\xc4\xa7\x3f\x13\x70\xe7\x55\x05\x62\x2f\x4d\x47\x9e\x0c\xae\xd0\x17"
      "\x16\x0d\x35\x52\x99\xd7\x24\x6a\x29\xf2\x49\x8f\x44\x0d\x57\x82\xbd\x97"
      "\xdb\xba\x9f\x12\xa0\x53\xef\xa4\x58\xd2\x05\xab\xb3\xb8\xfc\x82\x6d\x3f"
      "\x2a\xfa\x51\xad\x42\xfa\x8d\xf3\x37\xbe\xef\xaa\x41\x1f\xc7\xb7\x63\x59"
      "\x9a\x83\xf9\x01\xfc\xbc\xea\x59\x3c\xcb\x4b\x08\xb4\xb4\x63\xed\x9e\x03"
      "\x44\x66\x72\x62\x29\x09\x94\x0f\xc1\x11\xae\x39\x1d\x32\xe0\x79\xdd\x0b"
      "\x7f\xa5\xe5\x16\xf1\x0f\x84\x9e\xdb\x35\xcd\xc1\xf3\xb6\x36\xa1\x3e\xd1"
      "\x8b\x90\x2c\x5a\x40\x99\x9f\x8e\x85\x65\xbf\x66\x1a\xe0\xb1\x7f\xf4\xc3"
      "\xf8\x0d\x38\x11\x94\xec\xad\x7d\xd7\x43\xef\xf9\x70\x12\x8c\x8c\x6d\xd1"
      "\x27\x05\xb4\xb9\x1c\xaa\xc2\x96\x3c\x35\x75\xa9\x6f\xb1\xfb\x48\x79\x0e"
      "\xe1\xea\xc5\xc9\x3a\x1c\xfd\xd0\xda\x49\xd0\x1c\x72\xdd\x84\x7f\xa1\x55"
      "\xd3\x4d\x7a\x56\x29\xe2\x3b\xf3\x6e\x56\xdc\xf9\x9d\x07\xa8\xd8\xaf\xa2"
      "\xd8\xda\xf8\x26\xa2\xcc\x7d\x81\x42\xfd\x0f\x16\xc6\x1b\xe5\x20\x68\x52"
      "\xef\xd9\xd5\xcd\x31\xda\x1f\x74\x3c\x47\xaf\x6a\x8d\xd5\x4b\x41\x1f\x3e"
      "\x1c\x07\x6e\xf5\x3d\xe3\x49\xf5\x11\x5d\x0f\x6d\x4b\x49\xce\xfe\xcc\x9d"
      "\x66\xee\x4a\xd6\x5a\x6b\x66\xec\xae\x35\x32\xb0\xac\x09\xc4\x7b\xf7\x84"
      "\x30\xed\x1b\x6c\xaa\xa8\xe2\x53\x02\x65\xd3\x7a\x77\x8b\x90\x37\x3f\x10"
      "\x46\xe7\xd7\x74\xfc\xed\xca\xc5\x82\xad\xd6\x32\x4f\xa5\x7f\x4d\x4a\x54"
      "\x32\x3a\x8d\x4e\x0a\x7a\xc8\x0e\x52\xf1\x86\x4f\x80\x4d\xec\xe8\xcf\x90"
      "\xb5\xc3\x05\xa4\x9f\xad\x0b\xa5\xa6\xe3\x8d\x47\xc8\x45\x2a\xf3\x07\x30"
      "\x44\x1b\x60\x74\xb2\x6d\x9e\x26\x4f\xed\xb5\x01\x30\x58\xee\x46\x77\xcf"
      "\x3e\x47\x87\x2e\xff\x25\x32\xfa\x3d\x18\x44\xc0\xa2\xfa\xc0\x49\xcc\xb3"
      "\xfc\x66\x8b\x72\xfb\xb0\xf6\x3e\xfb\xbe\x9e\x4a\x5d\xae\xc5\xc7\xf1\xce"
      "\xc2\xbf\x3a\x54\xcd\x61\x0c\x21\xec\xb8\x05\xf9\x1c\xaa\x7e\x63\x24\x0c"
      "\x71\xc1\x55\x3f\x36\x9b\x59\x4d\x1a\xe1\xe9\xba\x98\x86\xe1\x09\x6d\xaa"
      "\xa3\x02\x9e\x99\x21\x49\x6b\x9e\x37\xc2\x8a\xa7\xda\x13\xa3\x52\xbc\xab"
      "\xe3\x50\xf1\x1a\x2e\x67\xfb\x32\x40\x51\x6a\x36\xe3\xb3\x13\x46\x4c\x0b"
      "\xd1\x1d\xd3\xf0\xd4\xfc\x6c\x8b\x95\xfd\x87\x22\x25\x77\xd5\xb7\xea\xcf"
      "\x45\x66\x7b\x9e\xf4\x6b\xf1\xcd\x8e\xc6\x3c\x72\x7e\x07\x1b\xfb\x6b\x0f"
      "\xf8\x14\x70\xf8\x26\x02\x4b\xe2\x69\xf2\xb5\x2c\xde\x6a\x30\xf5\x55\x2c"
      "\xae\x4a\x90\xe5\x13\xab\xc9\xb1\x74\xa1\x74\xc3\xce\x3e\xa8\xbf\xc2\x3e"
      "\xf0\x88\x1f\xa4\xde\x56\x9c\xb3\x68\xab\x25\xc6\x41\x3c\x3e\xc8\x16\xfb"
      "\x16\xad\x83\x9a\x96\x06\xe1\x03\x54\x47\x01\xea\x7d\xde\x63\x10\xe6\x20"
      "\x5e\x36\x64\x6c\x68\xf5\xf5\xc5\x75\x7c\x83\xad\xaf\xc4\x14\x28\x8d\x00"
      "\x58\xb7\xe5\xbb\x26\x35\xf2\xe7\x4b\x18\x53\x77\xfb\xa4\x55\xfe\x97\xc4"
      "\xca\x2c\x9a\x6d\x0d\xa9\x04\xf6\x7b\xf5\xa9\x0c\x84\x90\xbc\xcf\x6b\x8e"
      "\x9a\x67\x74\x97\x1a\x8d\xd9\xb3\xdd\x2e\x7d\xaa\x57\x6e\xba\xf3\xa7\x03"
      "\x43\x59\xa6\x33\x25\x7a\x1c\x3c\xd0\xbe\xf5\x5f\x17\x39\xcd\x56\xaf\xc2"
      "\x84\xdb\x27\xfe\x8a\x86\x5d\x82\x16\x70\x0e\x8a\xbb\x49\x5f\x8e\x0d\xa8"
      "\x6c\xb9\x1b\x32\xd2\x04\x78\x53\xce\x39\xc7\xf7\xed\x68\x60\x7e\x9d\xd2"
      "\x18\xf2\x49\x7f\x38\x6c\x5b\x14\xff\xa1\x3f\x76\x93\x15\x38\x07\x6e\xe4"
      "\xeb\x5c\x3a\x69\xb5\xb0\x80\x49\x47\xac\xb1\x35\x15\x62\x44\x1b\xc4\xa7"
      "\x33\xf9\x88\xa9\x60\xc2\xe9\x45\x0e\xf9\x17\x02\xcf\xaf\x27\xda\x31\xf2"
      "\x62\xac\x66\x81\x9b\xf1\x47\x64\x1d\xed\x16\x08\xd5\x1e\x5c\x43\xd0\x56"
      "\x17\x68\xdf\xd3\x5e\x41\x14\x98\xdf\xcf\x61\x0b\x48\x89\x7a\x58\xc1\x5a"
      "\xd7\x91\x1f\x1c\xa1\x6c\xde\xb0\xb2\x71\x8a\x24\x44\x4d\x9e\xc6\x64\x4b"
      "\x8c\x40\xbf\x33\x86\x2f\xba\xa4\x71\x81\xd3\xd1\xfd\x14\xa0\x16\x09\x6f"
      "\xa3\x36\x70\x52\xf5\x32\x05\x23\xdb\x2d\x45\x74\x86\x1e\xf2\xeb\xd4\xa1"
      "\xf3\x30\x16\x70\x94\x74\xd9\xb3\x3f\xc4\xc4\x42\x1a\xea\x9b\xf9\x9a\x6e"
      "\x93\xf4\xed\x07\xec\x17\x6c\xd3\x3f\xb6\x62\x42\x9c\x84\x64\x17\x11\xff"
      "\xa7\x7a\x17\xcd\x91\x6d\xe7\x84\x35\x95\x2e\xbb\x06\xef\xf3\x5c\x05\xb8"
      "\xbd\x35\x54\x1d\x14\x4a\xca\x69\x32\x58\x00\x28\x82\xb0\xe5\xe5\xbc\xc5"
      "\x6e\x6f\x11\x96\x4a\x2d\x83\xa5\xc8\x09\x25\xa0\x4e\xaa\x22\x1d\xdd\x6d"
      "\x04\xbb\x67\x2b\xbf\xb5\x46\x53\xcc\x87",
      4096);
  sprintf((char*)0x20001eb2, "%020llu", (long long)-1);
  *(uint16_t*)0x20001ec6 = -1;
  sprintf((char*)0x20001ec8, "%023llo", (long long)-1);
  memcpy(
      (void*)0x200007c0,
      "\x78\x9c\xec\xdd\x5d\x6b\x1b\xd9\x1d\xc7\xf1\xdf\xc8\xb2\xad\xb8\x10\x4a"
      "\x5b\x96\x10\xf2\x70\x36\xe9\x82\x43\x53\x45\x92\x37\x0e\x22\x85\x76\x3a"
      "\x1a\xc9\xb3\x95\x34\x62\x66\xdc\xda\x50\x58\xd2\x8d\xbd\x84\xc8\xd9\x36"
      "\x49\xa1\xf1\xcd\xe2\x9b\x3e\xc0\xf6\x0d\xf4\x6e\x6f\x7a\xd1\x17\x51\xe8"
      "\x75\xdf\x45\x2f\x0b\x4b\x7b\x57\xe8\x8d\xca\x3c\xf9\x49\x8f\x4e\x14\x7b"
      "\xb7\xfb\xfd\x88\x78\x8e\x66\xfe\x33\xe7\x7f\x66\x9c\x39\x8c\xa5\x39\x23"
      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xcb\x69\x54\x2a\x55\x4b"
      "\x6d\xaf\xbb\xb9\x65\xc6\x73\x1a\x81\xdf\x99\xb0\x3c\xdd\xda\xa2\xee\xa4"
      "\x85\x3b\x53\xeb\x95\xac\xf8\x9f\x4a\x25\x5d\x49\x67\x5d\xf9\xce\xd1\xe2"
      "\x77\xe2\x1f\xb7\x74\x2d\x7d\x77\x4d\xa5\x78\x52\xd2\xfe\x37\xde\xf9\xe6"
      "\xc3\x6f\x17\x0b\xf9\xfa\x13\x12\x7a\x1d\x3a\xeb\x06\x5f\xbc\xda\x7f\xfa"
      "\xa8\xdf\xdf\x79\x3e\xe7\x44\xbe\x04\x54\x98\x21\xa8\xe5\x76\xbd\xd0\xf7"
      "\x3a\x76\xcb\x35\x5e\xe8\x9b\xfa\xfa\x7a\xe5\xde\x46\x33\x34\x4d\x6f\x49"
      "\xe1\x76\x18\xb9\x1d\xe3\x04\x6e\x21\xf2\x03\xb3\xea\xdc\x31\xd5\x7a\x7d"
      "\xcd\xb8\xe5\x6d\x7f\xb3\xdb\x6a\xd8\x6d\x37\x9f\xf9\xe0\xfb\xb5\x4a\x65"
      "\xdd\x7c\xb0\x9c\x1d\xfe\x7b\x1f\x94\x43\x67\xc3\x6b\xb7\xbd\x6e\x2b\x89"
      "\x89\x17\xc7\x31\x0f\xcc\x67\x3f\x4f\x43\x5c\xbb\x63\xcc\xee\x93\xfe\xce"
      "\xda\xb4\x24\xe3\xa0\xea\x2c\x41\xb5\x69\x41\xb5\x4a\xad\x56\xad\xd6\x6a"
      "\xd5\xf5\xfb\xf5\xfb\x0f\x2a\x95\xe2\xd0\x8c\xca\x29\x1a\x8a\x98\xfb\x2f"
      "\x2d\xbe\x62\xe6\x77\xf2\x06\xde\x50\x21\xee\xff\xff\x61\x49\x6d\x95\xd4"
      "\xd5\xa6\xb6\x64\x46\xbe\x1c\x35\x14\xc8\x57\x67\xcc\xf2\x4c\xde\xff\xbf"
      "\x77\xcf\x9d\x58\xef\xf1\xfe\x3f\xef\xe5\xaf\x1c\x2d\xbe\xaa\xa4\xff\xbf"
      "\x91\xbe\xbb\x31\xae\xff\x1f\x93\x8b\x91\x49\x56\x18\xb5\xc4\x1a\x33\xff"
      "\xf5\x5e\x2f\xf4\x4a\xfb\x7a\xaa\x47\xea\xab\xaf\x1d\x3d\x9f\xcf\x76\x6f"
      "\xce\x2f\xc3\xb7\xfb\x6a\x49\x45\xc9\x53\x28\x5f\x9e\x3a\xb2\xd5\x92\x2b"
      "\x93\xcd\x31\xaa\x6b\x5d\xeb\xaa\xe8\x43\x6d\xa8\xa9\x50\x46\x4d\x79\x6a"
      "\xcb\x55\xa8\x6d\x85\x8a\xe4\xaa\x93\x1c\x93\x40\xae\x6c\x45\xf2\x15\xc8"
      "\x68\x55\x8e\xee\xc8\xa8\xaa\xba\xea\x5a\x93\x91\xab\xb2\xb6\xe5\x6b\x53"
      "\x5d\xb5\xd4\x90\xad\xff\x0c\x06\x83\x5d\x3d\x49\xf6\xfb\xda\x84\x1c\x95"
      "\x07\x55\x67\x09\xaa\x4d\x08\x1a\xd7\xff\xff\xe2\xd3\xf4\xf7\x94\xfe\xff"
      "\xeb\x2e\x3f\x7f\xcd\x12\x03\x5c\xb8\x41\x76\xfd\x7f\x46\x37\xdf\x4e\x36"
      "\x00\x00\x00\x00\x00\xe0\x6d\xb0\x92\xbf\xbe\x5b\xc9\x67\xf7\xd7\x25\x0d"
      "\xd4\xf4\xda\x6e\xe5\xa2\xd3\x02\x00\x00\x00\x00\x00\x73\x94\x7c\xf2\x7f"
      "\x2d\x9e\x2c\xc6\xa5\xeb\xb2\xc6\x5c\xff\x0f\xce\x3f\x37\x00\x00\x00\x00"
      "\x00\x30\x1f\x56\x72\x8f\x9d\x25\x69\x25\xf9\x52\xbf\x75\x74\x27\xd4\x2c"
      "\x5f\x02\x58\x38\x87\x14\x01\x00\x00\x00\x00\xc0\x1b\x4a\x3e\xff\xbf\xb1"
      "\x24\x0d\x92\xb1\xd7\x6e\xca\x3a\xd3\xf5\x3f\x00\x00\x00\x00\x00\xf8\x0a"
      "\xf8\xfd\xb1\x31\xf6\x8b\xf9\x18\xbb\x83\xfc\x63\xfd\x82\xa4\xb0\xb7\x6c"
      "\xfd\xf5\x5f\xcb\x0a\x16\xad\x83\xde\xd6\x77\xad\x3d\x3b\x5e\x62\xef\x65"
      "\x31\x43\xdf\x00\x88\x9a\x57\xad\xcb\xd9\x40\xbd\xc9\x64\x49\x52\xf2\xce"
      "\x71\xaf\x59\xd7\xd3\xa0\x6c\x10\x4c\x2b\x1d\xd8\x57\xfa\x62\x77\xda\x58"
      "\xff\x56\x70\x2a\x81\xa5\x85\xfc\xcf\x17\xd3\x12\x58\x2f\x66\xef\xf4\x99"
      "\xde\x4d\x63\xde\xcd\xea\x7d\xbc\x5f\x50\xb2\x24\xad\x65\xa5\xe9\xb5\xdd"
      "\xb2\xe3\xb7\x1f\x56\x65\xdb\x97\x0b\x91\xbb\x15\xfd\xfa\xd9\x93\xdf\x48"
      "\xc1\x61\x3b\x77\x9f\xf4\x77\xca\x1f\x7d\xd2\x7f\x9c\xe4\x72\x10\xcf\x3a"
      "\xd8\x8b\xf3\xf8\xf4\x44\x3a\x85\x69\xb9\xbc\x54\xb6\x2f\xae\x8f\x6c\xf1"
      "\x25\x35\xf3\x2a\xff\xd0\xed\xac\x58\x49\xbd\x95\xbc\xfd\x0b\xb2\xf7\x0a"
      "\xc7\x2b\x9a\xad\xfd\xbf\xd5\xad\x34\xe6\xd6\x4a\x3a\x5d\xd9\xcf\x8f\x40"
      "\xd2\xfe\x52\xdc\xfe\x6a\x39\x39\x64\x47\xad\x4f\x46\x87\xb0\x8e\xb2\xa8"
      "\x9e\x6e\xf9\xa8\x03\x31\x26\x8b\x52\x92\xc5\xed\x34\xe6\xf6\xea\xed\x74"
      "\x92\xe7\x97\x65\xf1\xbd\x05\xa9\x56\x1e\x3e\x06\xc1\xf1\x2c\x6a\xc7\xb3"
      "\x98\xbe\x2f\xac\x7f\x0f\xed\x8b\x29\x59\xc4\xfb\x62\x2d\xce\xe2\x6f\xf1"
      "\x86\xc6\x64\xb1\x76\xb6\x2c\x86\x8e\x08\x00\x5c\x94\xdd\xa3\x5e\x28\x19"
      "\xc4\x7c\x78\x8c\xfd\xd3\xfd\xee\xeb\x9c\xe5\xa6\xf7\xee\x3f\x3a\x59\xcb"
      "\xcb\x3f\x0d\xd2\x1b\x0e\x17\xa4\x62\xf6\xd9\xc4\xc4\x5a\x4a\x8a\xcf\xe8"
      "\xab\x69\xcc\x92\x92\x13\x6b\xf1\xea\x88\x33\x7a\x25\xeb\x57\x4a\x1a\x73"
      "\x46\xaf\xbc\x41\xef\x16\xd7\xf5\x97\xa3\x67\x20\x65\x69\x0f\x65\xf1\xdf"
      "\xc1\x60\xf0\xb0\x9a\xd4\xfb\xc7\x53\xbd\xea\xe7\xf1\x0a\x9f\x8f\xad\x37"
      "\x6c\xd7\x16\xe2\x5d\x78\xef\xe5\xde\x2f\x93\x01\xf0\x63\x1f\xef\x7c\xbc"
      "\xf3\xac\x56\x5b\x5b\xaf\xbc\x5f\xa9\xdc\xaf\x69\x31\x69\x46\x36\xa1\xef"
      "\x01\x00\x8c\x30\xfd\x19\x3b\x53\x23\xac\xf7\x0f\xaf\xaa\x1f\xff\xf3\xbd"
      "\xb4\x74\xa2\xc7\xfb\xd6\xe1\x57\x0a\xca\xfa\x48\x9f\xa8\xaf\xc7\xba\x9b"
      "\x3f\x42\xe0\xe6\xe8\xad\xae\x1c\xfb\x1a\xc2\xdd\xe1\xab\xd6\x38\xf6\x92"
      "\x74\x3a\xb6\xaa\xbb\x63\xaf\xea\x92\xbe\x34\x8d\xfd\xd9\xf6\xd2\x0f\xd3"
      "\xa0\xe4\xe7\xa2\xf2\x55\x4e\xf6\xd4\x47\xdb\x5d\x7b\xab\xc7\x00\x00\x80"
      "\xf3\x76\xab\x9e\x15\xc6\xf4\xc3\xb3\xf4\xff\x77\xf3\xeb\xee\xd5\xab\x23"
      "\xaf\xbb\x4f\xf6\xe5\xa7\x9f\x10\x3c\x2e\xb6\x7a\xbe\x3b\x02\x00\x80\xaf"
      "\x11\x37\xf8\xc2\x5a\x89\x7e\x67\x05\x81\xd7\xfb\xb0\x5a\xaf\x57\xed\x68"
      "\xc3\x35\x81\xef\xfc\xc4\x04\x5e\xa3\xe5\x1a\xaf\x1b\xb9\x81\xb3\x61\x77"
      "\x5b\xae\xe9\x05\x7e\xe4\x3b\x7e\xdb\xf4\x02\x2d\x7b\x0d\x37\x34\xe1\x66"
      "\xaf\xe7\x07\x91\x69\xfa\x81\xe9\xf9\xa1\xb7\x65\x9a\x5e\xdb\x35\xd9\xa3"
      "\xdf\x43\xb7\x63\x77\x23\xcf\x09\x7b\x6d\xd7\x0e\x5d\xe3\xf8\xdd\xc8\x76"
      "\x22\xd3\xf0\x42\xc7\xf4\x36\x7f\xdc\xf6\xc2\x0d\x37\x48\x56\x0e\x7b\xae"
      "\xe3\x35\x3d\xc7\x8e\x3c\xbf\x6b\x42\x7f\x33\x70\xdc\xb2\x31\xa1\xeb\x1e"
      "\x0b\xf4\x1a\x6e\x37\xf2\x9a\x5e\x5c\xec\x9a\x5e\xe0\x75\xec\x60\xdb\xfc"
      "\xd4\x6f\x6f\x76\x5c\xd3\x70\x43\x27\xf0\x7a\x91\x9f\x6e\x30\xaf\xcb\xeb"
      "\x36\xfd\xa0\x93\x6c\xb6\xac\xc1\x99\x1f\x74\x08\x00\xc0\xff\xa3\x17\xaf"
      "\xf6\x9f\x3e\xea\xf7\x77\x9e\x4f\x28\x1c\x68\x7a\x4c\x56\x58\x1a\xb5\xc1"
      "\x8b\x6e\x23\x00\x00\x38\x89\x5e\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00"
      "\x00\x00\x00\x00\x00\x00\x00\x80\x2f\xbf\x59\xee\xff\x3b\x53\x61\x71\xd4"
      "\xcd\x82\xd2\xe1\x9c\x5f\x5d\x9e\x69\x3b\x96\xe6\x9d\xd8\x59\x0a\x85\xd7"
      "\x5f\xfd\xef\x13\x62\x2e\x1d\xce\xc9\x77\xff\xf1\x98\x83\x0b\x68\xa9\xd2"
      "\x42\x71\xfe\x5b\xbe\x24\xcd\x7e\xdb\xe8\x1c\x0a\x3f\xd8\x4d\xf7\xe8\xd8"
      "\x98\x78\xe1\xc8\x45\xcb\x87\xc7\xa2\x38\xff\xff\x0e\x71\xe1\xd9\x9f\xc7"
      "\x2c\x1a\x0c\x06\x83\xc9\xab\x2f\x9f\xdc\x87\x4b\x93\x1a\x78\xb2\x50\x94"
      "\xf4\x7c\xe9\x0d\x0e\xc1\xc5\x9c\x8f\x00\x9c\x9f\xff\x05\x00\x00\xff\xff"
      "\x85\xcd\x43\x5f",
      1588);
  syz_mount_image(/*fs=*/0x20000780, /*dir=*/0x20000000,
                  /*flags=MS_REC|MS_SILENT*/ 0xc000, /*opts=*/0x20000e00,
                  /*chdir=*/1, /*size=*/0x634, /*img=*/0x200007c0);
  memcpy((void*)0x20000040, ".\000", 2);
  res = syscall(__NR_openat, /*fd=*/0xffffff9c, /*file=*/0x20000040ul,
                /*flags=*/0, /*mode=*/0);
  if (res != -1)
    r[0] = res;
  memcpy((void*)0x20000080,
         "\x0c\x00\x00\x00\x02\x00\x01\x00\x20\x00\x00\x00\x8b", 13);
  syscall(__NR_open_by_handle_at, /*mountdirfd=*/r[0], /*handle=*/0x20000080ul,
          /*flags=*/0ul);
  return 0;
}