blob: bd59cc96126bfa30d29f2bf18109acf2b0619489 [file] [log] [blame]
// BUG: workqueue lockup
// https://syzkaller.appspot.com/bug?id=3983f8a8d83851a54a0b9f9e75cb3464e9c70aef
// status:fixed
// autogenerated by syzkaller (http://github.com/google/syzkaller)
#define _GNU_SOURCE
#include <arpa/inet.h>
#include <errno.h>
#include <errno.h>
#include <fcntl.h>
#include <fcntl.h>
#include <fcntl.h>
#include <linux/capability.h>
#include <linux/if.h>
#include <linux/if_ether.h>
#include <linux/if_tun.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <net/if_arp.h>
#include <sched.h>
#include <signal.h>
#include <stdarg.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/prctl.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/time.h>
#include <sys/uio.h>
#include <sys/wait.h>
#include <unistd.h>
__attribute__((noreturn)) static void doexit(int status)
{
volatile unsigned i;
syscall(__NR_exit_group, status);
for (i = 0;; i++) {
}
}
#include <errno.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
const int kFailStatus = 67;
const int kRetryStatus = 69;
static void fail(const char* msg, ...)
{
int e = errno;
va_list args;
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
fprintf(stderr, " (errno %d)\n", e);
doexit((e == ENOMEM || e == EAGAIN) ? kRetryStatus : kFailStatus);
}
static void use_temporary_dir()
{
char tmpdir_template[] = "./syzkaller.XXXXXX";
char* tmpdir = mkdtemp(tmpdir_template);
if (!tmpdir)
fail("failed to mkdtemp");
if (chmod(tmpdir, 0777))
fail("failed to chmod");
if (chdir(tmpdir))
fail("failed to chdir");
}
static void vsnprintf_check(char* str, size_t size, const char* format,
va_list args)
{
int rv;
rv = vsnprintf(str, size, format, args);
if (rv < 0)
fail("tun: snprintf failed");
if ((size_t)rv >= size)
fail("tun: string '%s...' doesn't fit into buffer", str);
}
static void snprintf_check(char* str, size_t size, const char* format,
...)
{
va_list args;
va_start(args, format);
vsnprintf_check(str, size, format, args);
va_end(args);
}
#define COMMAND_MAX_LEN 128
#define PATH_PREFIX \
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin "
#define PATH_PREFIX_LEN (sizeof(PATH_PREFIX) - 1)
static void execute_command(const char* format, ...)
{
va_list args;
char command[PATH_PREFIX_LEN + COMMAND_MAX_LEN];
int rv;
va_start(args, format);
memcpy(command, PATH_PREFIX, PATH_PREFIX_LEN);
vsnprintf_check(command + PATH_PREFIX_LEN, COMMAND_MAX_LEN, format,
args);
rv = system(command);
if (rv != 0)
fail("tun: command \"%s\" failed with code %d", &command[0], rv);
va_end(args);
}
static int tunfd = -1;
static int tun_frags_enabled;
#define SYZ_TUN_MAX_PACKET_SIZE 1000
#define MAX_PIDS 32
#define ADDR_MAX_LEN 32
#define LOCAL_MAC "aa:aa:aa:aa:aa:%02hx"
#define REMOTE_MAC "bb:bb:bb:bb:bb:%02hx"
#define LOCAL_IPV4 "172.20.%d.170"
#define REMOTE_IPV4 "172.20.%d.187"
#define LOCAL_IPV6 "fe80::%02hxaa"
#define REMOTE_IPV6 "fe80::%02hxbb"
#define IFF_NAPI 0x0010
#define IFF_NAPI_FRAGS 0x0020
static void initialize_tun(uint64_t pid)
{
if (pid >= MAX_PIDS)
fail("tun: no more than %d executors", MAX_PIDS);
int id = pid;
tunfd = open("/dev/net/tun", O_RDWR | O_NONBLOCK);
if (tunfd == -1)
fail("tun: can't open /dev/net/tun");
char iface[IFNAMSIZ];
snprintf_check(iface, sizeof(iface), "syz%d", id);
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, iface, IFNAMSIZ);
ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_NAPI | IFF_NAPI_FRAGS;
if (ioctl(tunfd, TUNSETIFF, (void*)&ifr) < 0) {
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
if (ioctl(tunfd, TUNSETIFF, (void*)&ifr) < 0)
fail("tun: ioctl(TUNSETIFF) failed");
}
if (ioctl(tunfd, TUNGETIFF, (void*)&ifr) < 0)
fail("tun: ioctl(TUNGETIFF) failed");
tun_frags_enabled = (ifr.ifr_flags & IFF_NAPI_FRAGS) != 0;
char local_mac[ADDR_MAX_LEN];
snprintf_check(local_mac, sizeof(local_mac), LOCAL_MAC, id);
char remote_mac[ADDR_MAX_LEN];
snprintf_check(remote_mac, sizeof(remote_mac), REMOTE_MAC, id);
char local_ipv4[ADDR_MAX_LEN];
snprintf_check(local_ipv4, sizeof(local_ipv4), LOCAL_IPV4, id);
char remote_ipv4[ADDR_MAX_LEN];
snprintf_check(remote_ipv4, sizeof(remote_ipv4), REMOTE_IPV4, id);
char local_ipv6[ADDR_MAX_LEN];
snprintf_check(local_ipv6, sizeof(local_ipv6), LOCAL_IPV6, id);
char remote_ipv6[ADDR_MAX_LEN];
snprintf_check(remote_ipv6, sizeof(remote_ipv6), REMOTE_IPV6, id);
execute_command("sysctl -w net.ipv6.conf.%s.accept_dad=0", iface);
execute_command("sysctl -w net.ipv6.conf.%s.router_solicitations=0",
iface);
execute_command("ip link set dev %s address %s", iface, local_mac);
execute_command("ip addr add %s/24 dev %s", local_ipv4, iface);
execute_command("ip -6 addr add %s/120 dev %s", local_ipv6, iface);
execute_command("ip neigh add %s lladdr %s dev %s nud permanent",
remote_ipv4, remote_mac, iface);
execute_command("ip -6 neigh add %s lladdr %s dev %s nud permanent",
remote_ipv6, remote_mac, iface);
execute_command("ip link set dev %s up", iface);
}
static void setup_tun(uint64_t pid, bool enable_tun)
{
if (enable_tun)
initialize_tun(pid);
}
static uintptr_t syz_open_dev(uintptr_t a0, uintptr_t a1, uintptr_t a2)
{
if (a0 == 0xc || a0 == 0xb) {
char buf[128];
sprintf(buf, "/dev/%s/%d:%d", a0 == 0xc ? "char" : "block",
(uint8_t)a1, (uint8_t)a2);
return open(buf, O_RDWR, 0);
} else {
char buf[1024];
char* hash;
strncpy(buf, (char*)a0, sizeof(buf));
buf[sizeof(buf) - 1] = 0;
while ((hash = strchr(buf, '#'))) {
*hash = '0' + (char)(a1 % 10);
a1 /= 10;
}
return open(buf, a2, 0);
}
}
static void loop();
static void sandbox_common()
{
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
setsid();
struct rlimit rlim;
rlim.rlim_cur = rlim.rlim_max = 128 << 20;
setrlimit(RLIMIT_AS, &rlim);
rlim.rlim_cur = rlim.rlim_max = 8 << 20;
setrlimit(RLIMIT_MEMLOCK, &rlim);
rlim.rlim_cur = rlim.rlim_max = 1 << 20;
setrlimit(RLIMIT_FSIZE, &rlim);
rlim.rlim_cur = rlim.rlim_max = 1 << 20;
setrlimit(RLIMIT_STACK, &rlim);
rlim.rlim_cur = rlim.rlim_max = 0;
setrlimit(RLIMIT_CORE, &rlim);
unshare(CLONE_NEWNS);
unshare(CLONE_NEWIPC);
unshare(CLONE_IO);
}
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) {
close(fd);
return false;
}
close(fd);
return true;
}
static int real_uid;
static int real_gid;
__attribute__((aligned(64 << 10))) static char sandbox_stack[1 << 20];
static int namespace_sandbox_proc(void* arg)
{
sandbox_common();
write_file("/proc/self/setgroups", "deny");
if (!write_file("/proc/self/uid_map", "0 %d 1\n", real_uid))
fail("write of /proc/self/uid_map failed");
if (!write_file("/proc/self/gid_map", "0 %d 1\n", real_gid))
fail("write of /proc/self/gid_map failed");
if (mkdir("./syz-tmp", 0777))
fail("mkdir(syz-tmp) failed");
if (mount("", "./syz-tmp", "tmpfs", 0, NULL))
fail("mount(tmpfs) failed");
if (mkdir("./syz-tmp/newroot", 0777))
fail("mkdir failed");
if (mkdir("./syz-tmp/newroot/dev", 0700))
fail("mkdir failed");
if (mount("/dev", "./syz-tmp/newroot/dev", NULL,
MS_BIND | MS_REC | MS_PRIVATE, NULL))
fail("mount(dev) failed");
if (mkdir("./syz-tmp/newroot/proc", 0700))
fail("mkdir failed");
if (mount(NULL, "./syz-tmp/newroot/proc", "proc", 0, NULL))
fail("mount(proc) failed");
if (mkdir("./syz-tmp/pivot", 0777))
fail("mkdir failed");
if (syscall(SYS_pivot_root, "./syz-tmp", "./syz-tmp/pivot")) {
if (chdir("./syz-tmp"))
fail("chdir failed");
} else {
if (chdir("/"))
fail("chdir failed");
if (umount2("./pivot", MNT_DETACH))
fail("umount failed");
}
if (chroot("./newroot"))
fail("chroot failed");
if (chdir("/"))
fail("chdir failed");
struct __user_cap_header_struct cap_hdr = {};
struct __user_cap_data_struct cap_data[2] = {};
cap_hdr.version = _LINUX_CAPABILITY_VERSION_3;
cap_hdr.pid = getpid();
if (syscall(SYS_capget, &cap_hdr, &cap_data))
fail("capget failed");
cap_data[0].effective &= ~(1 << CAP_SYS_PTRACE);
cap_data[0].permitted &= ~(1 << CAP_SYS_PTRACE);
cap_data[0].inheritable &= ~(1 << CAP_SYS_PTRACE);
if (syscall(SYS_capset, &cap_hdr, &cap_data))
fail("capset failed");
loop();
doexit(1);
}
static int do_sandbox_namespace(int executor_pid, bool enable_tun)
{
setup_tun(executor_pid, enable_tun);
real_uid = getuid();
real_gid = getgid();
mprotect(sandbox_stack, 4096, PROT_NONE);
return clone(
namespace_sandbox_proc,
&sandbox_stack[sizeof(sandbox_stack) - 64],
CLONE_NEWUSER | CLONE_NEWPID | CLONE_NEWUTS | CLONE_NEWNET, NULL);
}
long r[43];
void loop()
{
memset(r, -1, sizeof(r));
r[0] = syscall(__NR_mmap, 0x20000000ul, 0xfff000ul, 0x3ul, 0x32ul,
0xfffffffffffffffful, 0x0ul);
r[1] = syscall(__NR_socket, 0x2ul, 0x2ul, 0x0ul);
*(uint32_t*)0x20501000 = (uint32_t)0x14;
r[3] = syscall(__NR_getpeername, r[1], 0x20dcefecul, 0x20501000ul);
memcpy((void*)0x2051fff3,
"\x2f\x64\x65\x76\x2f\x6e\x65\x74\x2f\x74\x75\x6e\x00", 13);
r[5] = syz_open_dev(0x2051fff3ul, 0x0ul, 0xaul);
r[6] = syscall(__NR_fcntl, r[5], 0x4000000000000000ul, r[5]);
memcpy((void*)0x20927fd8, "\x67\x72\x65\x30\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00",
16);
memcpy((void*)0x20927fe8, "\x1f\xd6\xa5\x26\x1f\x49\x6e\x99\x3f\x68"
"\xac\xa8\xa0\xc9\x8f\x72",
16);
r[9] = syscall(__NR_ioctl, r[6], 0x400454caul, 0x20927fd8ul);
memcpy((void*)0x20de8fe0, "\x67\x72\x65\x30\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00",
16);
*(uint16_t*)0x20de8ff0 = (uint16_t)0x1003;
r[12] = syscall(__NR_ioctl, r[1], 0x8914ul, 0x20de8fe0ul);
*(uint32_t*)0x20b03ffc = (uint32_t)0xfffffffffffffffc;
r[14] = syscall(__NR_ioctl, r[5], 0x400454d4ul, 0x20b03ffcul);
r[15] = syscall(__NR_ioctl, r[6], 0xc0086420ul, 0x20db1000ul);
*(uint64_t*)0x20882f60 = (uint64_t)0x20b6dfa5;
*(uint64_t*)0x20882f68 = (uint64_t)0x5b;
*(uint64_t*)0x20882f70 = (uint64_t)0x20bfff15;
*(uint64_t*)0x20882f78 = (uint64_t)0xeb;
*(uint64_t*)0x20882f80 = (uint64_t)0x20f72000;
*(uint64_t*)0x20882f88 = (uint64_t)0x0;
*(uint64_t*)0x20882f90 = (uint64_t)0x2075c000;
*(uint64_t*)0x20882f98 = (uint64_t)0x0;
*(uint64_t*)0x20882fa0 = (uint64_t)0x2041f000;
*(uint64_t*)0x20882fa8 = (uint64_t)0x0;
*(uint64_t*)0x20882fb0 = (uint64_t)0x20a9b000;
*(uint64_t*)0x20882fb8 = (uint64_t)0x1;
*(uint64_t*)0x20882fc0 = (uint64_t)0x2000a000;
*(uint64_t*)0x20882fc8 = (uint64_t)0x0;
*(uint64_t*)0x20882fd0 = (uint64_t)0x20992000;
*(uint64_t*)0x20882fd8 = (uint64_t)0x9;
*(uint64_t*)0x20882fe0 = (uint64_t)0x2015d000;
*(uint64_t*)0x20882fe8 = (uint64_t)0x1000;
*(uint64_t*)0x20882ff0 = (uint64_t)0x207ab000;
*(uint64_t*)0x20882ff8 = (uint64_t)0xda;
memcpy((void*)0x20b6dfa5,
"\xc5\xe2\x8a\x67\x9e\xc5\x93\xbb\x86\x56\xc0\x17\x02\xe4\xaf"
"\x14\x3f\xb7\xcd\x89\x75\xd0\xdf\xef\x14\xc8\x19\xde\x12\x0d"
"\x69\x16\x44\x49\x0d\xba\x2d\xff\x34\x5e\x57\xfe\x0a\x55\x57"
"\xd7\x09\x66\xa3\x33\xf1\xf0\x90\x9b\xee\xcc\xe1\xb7\xb5\x76"
"\xaf\xac\x75\xbf\xdc\xf0\xc2\x96\x71\x92\x3a\x58\x4f\xfa\x1e"
"\x88\x08\x81\x92\xb8\x41\xad\x79\xa4\x1e\xc1\xde\x59\x51\x84"
"\x73",
91);
memcpy((void*)0x20bfff15,
"\xb4\x3c\x82\xb1\x9d\xf2\x36\x53\xc9\x1d\x3d\xf1\x45\xd9\xe3"
"\xf6\x52\xf9\xfb\xd1\x4b\x86\x03\x0c\xb7\xa9\xeb\x16\x8d\xc4"
"\x17\x2b\xd0\xc5\x24\xe3\xbb\x5e\xd4\xd8\x91\x19\x02\xec\x17"
"\x77\xaf\x51\xa3\x42\xef\xde\x8c\xba\xbc\xfa\xde\xe0\xc3\xa2"
"\x7e\x1c\x3b\x46\x2c\x05\x81\x27\x82\x00\x2c\x6b\x8d\x9f\xba"
"\xe8\x26\x87\x48\x67\xc4\xb8\xde\x0f\x96\x1f\x6c\x8e\x0b\x8f"
"\x2b\xf1\xd1\x96\x8b\x75\x62\xb0\xda\x88\xd5\x3a\xb5\x57\xe3"
"\x86\x8f\xfe\x21\xd9\xd3\x59\x07\x2b\xa0\x11\xe5\x04\x47\xbd"
"\x0e\x52\xea\xa2\xb1\xa9\x60\x1e\xba\x1c\x4f\x36\x1e\x4b\x2f"
"\x9a\x4c\xda\x1d\x6e\xa9\xa4\xd1\x7c\x46\xdc\x56\x75\x74\x8f"
"\xeb\xcf\xc7\x28\x25\x3f\x6b\x5e\xbc\xbd\xf0\x53\x17\xa5\x6f"
"\xd1\xa2\xc5\x04\xa4\x75\xc7\xc1\xe1\xae\xe5\xba\x15\x60\x9d"
"\xb2\x7f\xe2\x86\x54\x99\x7b\x6f\x84\x9c\x41\xbd\xd1\x6f\x3b"
"\x84\x6f\x63\x84\x77\x64\x79\xc9\x7f\x75\x98\x89\x32\xe3\xd8"
"\x9d\x3a\x5e\xaf\x6e\x50\x3b\x08\xdd\x93\x73\x9d\xb5\x83\xb8"
"\x35\x46\xe1\x9f\xdf\x8f\xe1\xa5\xf6\x8a",
235);
memcpy((void*)0x20a9b000, "\xf7", 1);
memcpy((void*)0x20992000, "\x30\x02\xe8\x21\x39\xed\xe6\x19\x85", 9);
memcpy(
(void*)0x2015d000,
"\xd0\x38\xc4\x87\x1c\x88\x27\x8d\xc3\xc9\x2d\x2d\xce\x26\x1d\x09"
"\xbc\x0f\x06\xcf\x9e\xd0\xa9\x11\x00\x1d\x11\x47\xfd\xae\x14\x67"
"\x04\x3a\x47\xf1\x27\x01\xf1\xa7\x14\xc3\x16\x94\x78\xf7\xdc\xea"
"\x35\xaa\xe3\x9c\x39\xbc\x07\x58\x1d\x20\x1d\x54\xdc\xfc\x14\x82"
"\x5e\xda\xdc\xb5\x1d\x06\x74\x7b\x23\x58\x4c\x5c\x74\x28\x7d\xc7"
"\x6c\xfc\x29\xbc\x0e\x96\x76\xfe\xa5\xed\x96\x26\xe2\xc4\x32\x2e"
"\xee\x54\xec\x13\x96\xc9\xfa\xfe\x89\x0c\xed\x45\x9c\x8d\xf5\xda"
"\x7b\xbb\xa1\x17\x81\x1e\x17\x9b\xab\xa5\xad\xa9\x79\x54\xed\x15"
"\xc5\xfe\x28\x74\x8c\x9c\x35\x43\xde\x34\x76\x03\x72\x0b\x7d\x4d"
"\x60\x31\xf9\x44\x43\x56\x4b\x4e\x89\x8d\x68\x32\xa1\x21\xef\x85"
"\x00\x25\xb6\x50\x78\x97\xad\x9c\x40\x70\x67\xab\x95\xbb\x59\x23"
"\xca\xac\xcd\xee\xf6\x12\x2a\x80\x7d\x3e\xc0\xe0\x1c\x5e\xe1\x4e"
"\x3f\xf9\x54\xa0\x11\x4e\x6f\x17\x2b\x9e\x20\xf4\x4a\xa2\x7e\x77"
"\x7d\x16\x95\x9b\xf2\x04\x11\x8f\x70\x75\x96\x99\xbd\x6d\xfc\x10"
"\xe1\x8b\x41\x24\xea\x6f\x4c\x85\xcb\x34\x58\x78\xa9\x86\xc7\xc5"
"\x86\x3d\xfd\x3c\x03\xd3\xfa\xd3\xc2\x55\x60\x43\xe9\xdf\xa6\xc3"
"\xde\x42\xb4\x87\xb6\x5b\xa3\x46\x14\x18\x0e\x08\xe5\x55\xc1\x2c"
"\x1b\xa7\xf0\xea\xe7\x43\x68\x42\x64\x0f\xd0\xb7\x38\xcc\x3e\xfa"
"\x3b\x0b\x75\xc5\xe8\x1a\xe9\xac\x3c\xec\x5c\x28\x05\x6c\xa6\x9c"
"\x1a\x98\x4b\xeb\xfc\xa6\x52\x55\xa8\x18\x16\x02\x38\x98\xc4\x76"
"\xc4\xee\x00\xde\xe0\x40\xba\xc4\x8d\xcc\x85\xed\x73\x08\x75\xcd"
"\xeb\x89\xc0\xf8\x74\x43\x48\x40\xc7\x49\x1c\x71\xd0\xb4\x70\xf6"
"\x71\xab\x40\xb1\x2e\x5f\x1b\x99\xdd\x0b\x0a\x51\x10\xc3\xd9\x61"
"\x76\x57\x40\x6c\x9e\xb0\xc9\x83\x54\x08\x14\x56\x01\xf1\xc8\x78"
"\xbd\x1c\x49\xea\x30\x16\x6b\x90\xdb\x90\x43\xf4\x1e\x85\x66\x48"
"\x60\x26\xa6\x72\x22\x3a\xa8\xb1\x8c\x21\x6c\x76\x80\xfb\x3b\x71"
"\xa0\x7f\x17\xf0\x4d\xd2\x25\xd2\xb9\x07\x1d\x13\x32\x40\xbf\xeb"
"\x53\x90\x11\x4d\x3c\xc3\x13\x1f\xa5\x4f\x97\x9d\x4f\x3e\x9e\xe7"
"\x3f\x09\x8e\x8a\x00\x2f\x0d\xce\x67\x62\x98\xab\x70\x2f\x5f\xb8"
"\x2b\x29\xa4\xee\x15\xb3\x41\x42\x7d\xb8\x14\xce\xd4\x69\xec\xf8"
"\x4f\x82\x6e\x24\x7c\x2f\xc2\xbd\xab\x6f\x9e\x14\xe8\xa3\x35\x8f"
"\xc2\x42\xe8\x3a\x46\x41\x46\x3a\x66\x88\xb3\x32\xaf\x5b\x9f\x49"
"\xec\xe4\x57\x69\xbb\x88\xd0\x05\xfb\x49\xdb\xc6\xa4\xe9\xe1\xbc"
"\xb9\x39\x83\xc2\x1c\x4f\xd8\x4f\xfb\x86\xe8\xf0\xf7\x7d\x8f\x13"
"\xc4\xb5\x79\x8a\x11\x7d\xa1\x43\x32\xd4\x46\xce\x1e\x12\xa9\x8a"
"\x1f\xa4\xb4\xf8\x8e\x0b\x44\x76\xee\xd7\x59\x8c\xe1\xba\x74\xdc"
"\xb1\xd8\x69\xd1\xf3\x8d\xdd\xd1\x5b\x43\x75\xb9\xe4\x13\x6e\x51"
"\x7f\xf5\xf1\xe9\xff\x19\x2e\xa0\xdd\x12\xd8\xa0\x10\x81\xf6\x45"
"\x06\xaf\x10\xdc\x81\x9b\xd1\x0b\x0a\xf5\x76\xeb\x98\xed\xbd\x2c"
"\x06\x77\x7b\xdf\x82\xd7\x71\x1c\xb7\xef\x53\x08\xff\x24\x2b\xde"
"\x9b\xbd\x49\x67\x6d\x8f\x58\xde\x46\x6b\x9d\x8c\x4d\xde\xdb\xfd"
"\x23\xa1\xb9\x82\xa6\x38\x6e\x88\xb1\xf8\xe5\x1f\xf1\x33\x08\xc5"
"\x22\x3c\xdb\xc4\x78\x97\xb5\xcc\x0a\xd9\x7d\xe0\x9f\xfe\xc2\xa8"
"\x6d\xca\x3c\x26\x87\xc3\xd0\xca\xbf\x4f\x2e\x00\xd8\x65\x6e\xae"
"\x3f\x40\xa4\xa7\x16\x36\xc1\x9d\x2c\x93\x95\x34\x2a\x44\x19\x1a"
"\xa2\xe0\x20\x10\xa8\x18\xcb\xb9\x74\x14\x0b\x12\xff\x5d\x44\x25"
"\xb6\x53\x9d\x30\x8a\x4a\xf6\x1f\x77\xf3\xbb\x86\xd9\x51\xb7\x4d"
"\x29\x48\xc7\xb2\x7b\xc7\x7e\x4c\x4b\x13\xa1\x40\x36\xd8\x28\x36"
"\xb4\x78\x93\x60\xd2\xf4\xdd\x87\xab\xce\x34\x49\xed\x08\x7f\x69"
"\xf5\xba\xd2\x4e\x7b\xe5\x08\x4e\x43\xbc\x29\xf7\x24\x86\x37\x21"
"\xb5\x0e\xd9\x94\x11\x8b\x66\x03\xee\x1b\x7b\x32\x93\x75\xf5\x0c"
"\x29\x59\x51\x6c\x8e\x23\x0d\x12\xb9\xc9\x6d\x03\x3c\x1a\x22\x8a"
"\x15\x61\xc9\x9f\x68\xdb\x91\x0f\xab\x47\x50\x03\x13\xa9\x7f\xfa"
"\x19\xaf\x15\x6d\xa4\xed\x60\xa0\x26\xbb\x87\x5f\x99\x8b\xd6\x4c"
"\x94\x34\x7c\xa7\x45\xa3\x5f\x43\xb8\xeb\x1b\xbd\xf6\xd2\xad\x11"
"\xed\xf7\x99\xf7\x20\xe9\xde\x36\x1a\xda\xad\xae\xb7\xd6\xe8\xf9"
"\x38\x7b\x3d\x64\xf9\x6b\x84\xad\x08\x13\x17\x58\x75\xa6\xc1\x46"
"\x76\xe7\xa9\x45\x0e\xbf\xe4\x01\xf6\x5d\x6d\xd5\x25\x11\x54\xa0"
"\xeb\x23\x7f\x99\xc3\x61\xfc\xfb\x55\x37\xe5\x58\x27\x66\x00\xf3"
"\x4f\xe3\x35\x4f\x07\xc0\xd8\x7d\x15\x26\x4b\x4d\x94\x0f\xf5\x34"
"\x53\xae\x7c\x6a\x85\xa3\x5d\xae\xd6\xca\xa1\x3e\xc4\xb1\xc6\xe5"
"\x05\x7f\xac\x42\x58\xe0\xb9\x16\xa5\x40\xe9\x96\x26\xf3\xbd\xd7"
"\x36\xec\xcb\x51\x26\x13\xa9\xa6\x49\xb8\x09\x2a\x97\x66\xa6\xa4"
"\x4b\x5d\xc6\xc0\x6b\x32\xfc\x83\x41\xe3\x6a\x3b\x82\x14\xc2\x57"
"\xcc\x41\x38\x14\x84\xa0\x9a\x38\x54\x68\x27\xd4\x80\xf5\xc4\x7c"
"\xc7\xc6\xc6\xcf\x24\xe6\x14\x83\xd6\x43\x6b\x83\x88\x8b\xf0\xbf"
"\x72\x84\x44\xd2\x7e\x89\xb4\x70\xb0\xdc\x67\x99\x27\x84\x3e\x63"
"\x4b\x5a\xfc\xef\x48\x53\xce\xe4\xbc\x02\xe9\x4f\x9b\x7f\x6d\x44"
"\x8f\x97\x7e\xcd\x9c\x50\xe1\xb8\x82\x57\xde\x56\xa7\x71\xa9\xe5"
"\xcd\xfd\x9b\x10\xe0\xae\x15\xf8\x98\x5e\x79\x00\x5e\xb2\xf2\x6c"
"\xde\x71\x19\xd0\xf5\x75\xf2\x5c\xe9\x01\x82\x2b\x48\x7b\x47\x90"
"\x86\x17\xf7\x98\xf6\x1d\xf3\x5b\xc9\xa0\xdc\x12\x3b\x86\xe5\x71"
"\xc7\x67\x81\xab\x75\xc1\x2d\x11\x0b\x61\xa8\xcb\xc0\x61\x61\x07"
"\x9d\xed\x74\xcb\x6f\x3e\xe2\x73\x85\x62\xa0\xf8\x13\xe9\x83\x73"
"\x1f\xdf\xb8\x9c\xd2\xec\x90\x40\x44\x6c\x17\x52\xe9\x94\x63\xd3"
"\x95\xdd\x0d\x7f\xb3\xf1\x01\xd9\x0e\x2d\xd8\xf6\xda\x1e\xac\x07"
"\xa2\x5f\xc0\xb6\xeb\xd9\xcc\xe2\x73\x8c\x12\xe3\x3b\x52\x3c\xfb"
"\xac\xcf\x8e\xfe\x42\xf6\xbf\x14\x9d\x29\xd3\xa1\x63\xef\x90\x62"
"\xa3\x4f\xe7\x19\xd1\xb1\xbe\x00\x81\x42\xcd\x37\x74\x01\xf0\xe0"
"\x78\xf0\x6f\x72\x89\x95\x9c\x5a\x9f\x2f\xd7\xfa\x5d\x9f\x2b\xc9"
"\xe1\x26\x21\x3e\x58\x20\xff\x07\x5c\xbe\xc3\x09\x3a\x44\xbc\x30"
"\x22\x09\x67\xbf\xd8\x55\x6b\x5a\x88\x82\x68\xff\x39\xef\xa4\x04"
"\xbc\x6b\x6e\xdc\x06\xe6\x83\x40\x16\x6b\x77\x96\xc8\xa2\xa6\x93"
"\xa0\x93\x94\xec\xeb\x49\x43\x29\x85\xbc\xee\x67\xf7\x6c\xa9\xf4"
"\xb7\xe8\x8b\x87\x3a\x3e\x73\x45\xd7\x77\x89\xc3\xa0\x52\xcd\x97"
"\x8c\x56\x49\xf9\x95\x1a\x9d\x2c\xcc\x23\x97\x14\x2f\xcf\xa8\x5e"
"\x5d\x61\x5e\x6e\x04\xbd\x35\xc1\xc6\xcc\xa8\x66\x09\xde\x1c\xe7"
"\x26\xb0\xbf\x95\xb6\xfe\xc3\x36\x18\x13\xf9\xa6\xb1\x80\x9d\xfd"
"\x9e\x60\xac\x08\x24\x5d\x21\xe1\x76\x44\xd3\x6f\x87\x30\x93\x0f"
"\xcb\x18\xd3\x0f\xce\x83\xd4\xe6\xda\x78\x65\xe5\xe5\xe3\xeb\x76"
"\x69\x67\x8c\xdc\xa6\x01\x4e\x8d\xbb\xd5\x66\xb3\xa2\x92\xe3\x9c"
"\x22\x34\x4d\x5d\x8a\x33\x8c\xb7\xfc\xcc\xcb\xb0\xdd\xc0\xe0\xf7"
"\x08\x12\x84\x52\x22\x13\x34\xba\xc4\x29\xeb\xce\xc8\x87\x2f\x9a"
"\xfe\x3c\x57\xe0\xa0\xc9\x0f\xe7\xbd\x20\x3b\xc9\xba\x23\x4b\x75"
"\x76\xe9\x33\x88\x6a\xc7\xa3\xc8\x28\xb5\x82\x48\x48\x24\x36\x07"
"\x49\x4c\x95\xf6\xd9\xb6\xb2\xb4\x5d\xef\x18\xf3\x49\xc8\xa2\xdc"
"\x04\xf7\x8a\x32\xd3\x85\x91\xf2\x91\x85\x88\xff\x61\x5d\x93\x7a"
"\xac\x16\x76\x28\xff\x30\x9e\x14\x2d\xa7\x0c\x58\x19\x2f\x78\x10"
"\xdf\x9e\x73\xed\x62\x36\x03\x42\x25\x29\xc1\x2c\xb1\x00\xd4\xaa"
"\x84\x68\xad\xc7\xbc\xc0\xfc\x28\x80\x00\x01\x9d\x89\x86\x79\xdc"
"\x7f\x6b\xe4\xba\x00\x94\xf0\x8c\xe1\x8e\xe6\x86\xcd\x9d\x11\xf4"
"\x51\x7d\xa9\xf6\xba\x36\xc2\xb4\x28\x42\xb3\x0b\xd8\x63\xaa\x9a"
"\xd8\xc5\x6b\xce\x9a\x30\x53\xf1\x94\xf3\xf8\x18\x0a\xf3\x4b\x6f"
"\x24\x23\x31\x82\x54\x18\x41\x0c\x04\x31\x4f\x30\xf2\xf9\x9d\x8e"
"\x6b\x6a\x83\x3d\x1f\x6b\x6e\x74\x13\x80\xad\x21\x2a\xf0\xe3\xe8"
"\x58\x9b\x4f\xf4\x5b\xf2\x41\xdd\xe4\x5f\x94\x6f\xee\xf5\x75\x22"
"\xa7\x49\xe6\x6f\x60\xaf\x3b\x56\x3d\xb9\xcf\x0c\x57\x8f\xc8\xb9"
"\x74\x05\x77\x6c\x8a\xbc\xf9\xe6\xeb\x34\xd6\xc4\x65\x94\xfe\xc1"
"\x0d\x3b\x05\x42\xd2\x7d\x90\x75\xb9\x7e\xf8\x13\x2c\x25\x50\x66"
"\x0f\xff\xab\x7a\x70\x16\x6e\xfe\x5b\xa0\x3c\x26\x54\xae\xf9\xf6"
"\x01\x80\xe7\xcc\xa2\xcd\xda\x1a\x48\x66\xeb\xfb\x2b\x1b\x2b\xe9"
"\x62\xea\xb5\xa3\xc6\x4c\x3a\x29\x2b\xc8\xae\x95\x31\xcb\x97\x56"
"\xe7\x02\xe9\x67\xe2\x69\xf6\xf7\x21\x74\x41\x02\x87\xac\x9c\x38"
"\xb9\x12\x77\x3d\x24\xd5\x5e\x9f\x1f\x69\x7b\x62\x1d\x0e\x65\x35"
"\xda\x6c\xcc\x62\x02\xcc\x13\x11\xa0\x40\x8a\x47\xab\x56\x2a\x24"
"\xe0\x6e\x9d\xb5\xe4\x21\x4a\xa0\x6b\xf8\xca\x24\x1c\x41\x63\x77"
"\xf9\x6c\x82\x7f\x79\x7b\xc1\x7d\x6b\x4e\x37\x76\x9f\x7a\x67\xf1"
"\xcd\xef\xde\x6d\x4f\x9c\xef\x8f\xbc\xb8\x89\x43\x26\xf9\x66\xf2"
"\x1b\x72\xbc\x01\x17\xb9\x3e\x1e\x73\xec\x4b\xed\x50\x95\x94\xcd"
"\xa3\x40\x85\x44\x23\x05\x8a\xdb\x73\xfd\xf2\x32\x07\xae\xf7\x08"
"\xda\x93\x00\x37\x68\xd7\x58\x57\x77\x7c\xc8\x18\xd3\x98\x8d\x3d"
"\x22\x00\x57\x6e\x87\x62\x94\xf3\x30\x02\xe7\xa4\x8d\xd4\xe4\x9a"
"\xd0\xe3\x22\x89\x33\xcf\x38\x18\x54\x6e\x22\x35\xc2\xbc\x8d\x02"
"\x78\xf0\x42\x7b\x8a\xfd\xdb\x08\x7a\xd5\xcd\xfe\xdb\xff\xed\x26"
"\x1a\xd2\x73\x7c\x2a\xc0\x7d\xbf\xb2\x94\x9b\xdf\xa2\x81\x7c\x25"
"\x72\xcd\xd0\xbc\x41\x96\xb3\xa9\x88\xb2\x25\xa9\x94\xc9\x23\xef"
"\xc7\xbb\x07\xd0\xd7\x91\xf7\xe4\x43\x2e\x10\xc3\x57\xe7\xbd\xc4"
"\x0f\xd4\x8f\xb6\x4f\x77\xb3\xb5\x93\xad\x4b\xd1\xdf\x17\x91\x94"
"\x51\xef\xc7\x5c\xa4\x14\xd9\xf5\xfe\x91\x7b\x50\x28\x14\x68\xb9"
"\x8a\x34\x5f\x74\x9b\x6e\x21\xf3\xc3\xec\x25\x1f\xc2\x68\xa4\xa4"
"\x4a\x3e\x64\x9a\x50\x58\x8f\x23\xc9\x0b\x38\x44\xe9\x4c\xa8\x64"
"\x71\x31\x4c\x6d\x2c\x12\xb3\xd1\x31\xdb\x0a\x45\x6b\xf7\xcb\xa1"
"\x0d\x14\xf6\x07\x7d\x87\xea\x72\x55\xee\x40\x12\x48\x53\x49\xac"
"\xc4\x8e\x62\x5b\x36\x2c\x30\x1e\x6c\x84\x42\x80\x3e\x42\x57\x6b"
"\xe9\x57\x21\xb1\xf3\xe0\x8f\x80\x14\x44\xb7\xea\xa1\xb9\x74\x13"
"\x08\x91\x9b\xbc\x31\xb5\xce\x6c\xc6\x7f\x45\x64\x1c\xc8\xa5\x74"
"\x6c\x16\x2d\xe7\x7a\x26\x47\xaf\x04\x34\x29\xa3\x32\xdc\x58\x7b"
"\x70\x88\x5a\xbd\xf8\x64\x00\xd9\x57\x79\x1a\x51\x9e\x4c\x75\x0d"
"\xa9\x07\xba\x57\x03\x77\xef\x75\x82\x17\x88\xb4\x42\x9e\xc8\x36"
"\x17\x7a\xd9\xdd\xc0\xf5\x83\x60\x5b\x08\x79\xfa\x99\x6c\x56\x66"
"\xc7\xe4\xbf\xdc\xab\xdd\xee\x70\xfb\x72\xed\xd7\xf2\x27\x6e\x12"
"\x4a\x4b\x54\xc7\x94\x6b\xcc\x82\xf1\x02\xc5\x8d\xd9\x40\x10\xe8"
"\x8f\xf6\x0b\xf0\x27\xaf\x0a\xc7\x2a\x36\xd3\x4f\x9a\x77\xb1\x7b"
"\x8a\x16\xaf\x63\xc2\x18\x6f\xdc\x44\xd7\x9d\xfe\xb9\xcc\x09\x64"
"\x0e\xf6\x44\xf0\x65\x8b\xcd\xf1\x6e\x63\xb9\xa2\x60\xa8\xd0\x06"
"\x99\xc8\x5b\x52\x18\x9e\xfa\xc5\x2a\xd5\x55\xe1\xe4\x27\xd6\x75"
"\xf5\x8f\x77\x31\xf1\x2c\xe4\xda\x71\xbb\x00\x51\x44\x13\xcf\xb3"
"\xa3\xf5\xb8\xd5\xb0\xbf\x57\xea\xc4\x05\x31\x8c\xf3\xe3\x43\xa9"
"\xe4\x59\xfe\xee\x3a\x06\x2c\xfc\x37\x1d\xd7\x35\x60\x96\xe0\x2e"
"\x8c\xc3\xb7\xbd\x53\xb8\xb0\x15\x3a\x03\x83\x71\xde\xdf\xa9\x30"
"\xae\xae\xf6\x44\xc5\x2d\x23\x51\x93\xae\x86\xc9\x2d\xda\x7a\x11"
"\x7e\x61\x94\x46\x86\x51\x80\xaf\xea\x90\xa6\xd5\xf8\x06\xee\x4e"
"\x7f\xd5\xf4\x9e\x88\x45\xc6\x6f\xac\x51\xc7\xf1\xbb\x47\xed\x86"
"\xe2\x09\xcc\x11\x09\xc5\xc7\xb3\xa8\xcf\x58\x46\xe5\x95\x53\x51"
"\xe7\xf3\x08\xd4\x38\xb9\xe2\x6c\x28\x8f\xef\xb9\xcc\x05\x3e\x42"
"\xfc\x87\x74\x0a\xf4\xf2\x07\xab\x2e\x0b\x5a\xae\xae\xa9\x90\xe3"
"\xa9\xd4\x7b\xf0\x97\xfe\x14\xf6\x4d\xa6\xf5\xca\x8f\x2d\x3a\xf9"
"\xa6\x4c\x28\xe2\xe2\x36\xb8\x62\x6d\xee\xa4\xf5\x86\xea\x2f\x49"
"\xa5\x4b\x83\xbc\x9e\xed\xc3\x44\xfe\xb9\x1a\x98\x26\x66\x7d\x33"
"\xe8\xe7\x64\x92\x52\xbb\xa3\x3b\xc9\x11\xdb\x61\x23\x7f\x12\x82"
"\x5e\xad\xa0\xe3\x33\xfa\x31\xc4\x4a\x67\x0c\x60\xba\x46\xcf\x82"
"\x55\x50\x71\xce\xed\x41\x94\x48\xc6\x3c\x62\x95\xa2\x4d\xcf\xeb"
"\xd8\x0d\x44\x86\x12\x96\x5e\xad\x59\xc5\xb4\xf8\x63\x61\x4c\x49"
"\x43\xc6\x4b\xb8\xc8\xa5\xd5\x6d\x8d\x96\x65\x94\x1a\x67\x02\x96"
"\x6f\xab\xc5\x90\x66\xa8\xa4\x9a\x19\xd4\xc9\x88\x74\xb1\xa7\x53"
"\x7d\x73\x0f\x4e\x65\xee\xbc\xc0\xa9\x83\xef\xb7\x4c\xf2\x2b\x31"
"\x1e\x53\x1f\x5c\xd1\x2d\xae\xaf\xa6\xb6\x54\xab\x86\x46\x99\x34"
"\x65\x0e\x22\x91\xb3\xe6\x20\xe7\x3d\xb9\xcd\x49\x32\xd2\x7f\xc4"
"\x4f\xe2\xfb\xe5\x9e\x16\x75\x49\xba\x22\xd5\x90\x22\xa1\x6b\x60"
"\x80\xcc\x42\x20\xb0\x3b\x16\xf8\x4a\xb6\x96\x32\xe8\x87\xe8\xfb"
"\x9a\xd8\x11\x49\x99\xf3\x37\x1d\xa1\xe8\xe1\xa1\x99\x2f\x42\x18"
"\xe0\x4a\x4e\x3e\x00\x68\xd7\x4f\xf0\x6a\x10\x2e\xfb\x23\x71\x27"
"\x99\x1e\x39\x68\xeb\x83\x73\x1b\xef\xe6\xf6\xfc\x68\x22\xbc\x99"
"\x75\x45\x90\xad\xa6\x65\x6a\xdb\x76\x92\x0b\x12\x93\x35\xa2\xa6"
"\x10\xd4\x34\xa3\x09\x2a\xe6\xbd\x97\x97\x92\xd7\xd1\xde\x66\xa0"
"\xd2\x00\x08\x7b\x21\x9f\xc7\x1b\xbe\x18\x0b\xb9\xe4\x9b\x73\x27"
"\x3a\xa3\x3f\x67\x0a\x41\x31\x25\x53\x51\xc6\x1d\xff\xec\xb5\x2a"
"\xfc\x38\x8b\x61\xd8\xb6\x5b\x8c\xcc\xc4\x62\xa5\xcd\x10\xac\x96"
"\x66\x15\x2d\x1d\xac\xdc\xb1\x90\xbb\xb4\x13\x54\xbd\x10\x60\x19"
"\x37\x2d\xd4\xd9\xf2\xdf\x18\x4f\xaf\x1f\x53\x8e\x38\x74\x49\xdb"
"\x3f\x4f\xb6\x73\x68\xd2\x6c\xff\xa3\x60\xe6\x00\x0c\xcc\xe2\x8d"
"\xad\x1e\x0f\x88\xa9\xd6\x84\xe9\x71\xb7\xd3\x82\x55\x7d\x16\xb6"
"\x49\xc2\x64\x74\xda\x33\xdf\x2b\x23\x63\x26\x4f\x5f\x1c\xf8\xc5"
"\xfa\x7a\xa5\x37\xfb\xcc\xf2\xd8\x85\xfc\x97\x39\xd3\x5d\xbc\x8f"
"\xc3\xdc\x3f\x13\xbe\x98\xc0\x91\xa3\x3d\x0a\x11\x5c\x02\x86\x22"
"\xba\x07\xb8\xab\xa5\xf5\x00\x3a\x4f\xeb\xaf\xc9\x73\x65\x4a\x4f"
"\xb9\x7f\xbb\x7d\x27\xdd\x37\x4d\x16\x22\xeb\xf7\xc9\xc9\xb6\x74"
"\xbe\x52\x95\x65\x01\x4a\x09\x72\x21\x25\x59\xbf\x81\x43\x5f\xf1"
"\xc6\xd6\x8f\x14\x6b\x24\xb9\x6b\xfd\x77\x34\x3e\x09\x76\x34\xef"
"\x88\x2e\x64\xc0\xb9\x6b\x32\x5e\xac\x96\xbb\xee\x03\x56\x71\x3c"
"\x6e\x69\xe3\x18\xf2\x6c\xd4\x17\x2c\x3d\x84\xc6\x59\x80\xbc\x84"
"\xaf\xdd\xe5\x3e\x68\xd0\xdd\x8e\x8c\xf0\xdd\x78\x6d\x25\x30\x4e"
"\x93\xda\xd4\x40\x34\x04\x0b\xef\xaa\xae\xd2\xd7\xbf\x22\xde\x6f"
"\xae\xaf\xad\x33\x5a\x11\xec\x5f\x31\xad\x00\x74\xc7\x8f\xcf\x5f"
"\xfe\x77\x28\x22\x60\xed\xad\xa8\x33\xc2\x8e\xf2\xd3\x07\x0a\x53"
"\xe3\x8f\xf7\x10\x53\x65\x3f\x1f\x7e\x5f\xaa\x9a\x3e\xec\x5a\x05"
"\x64\xba\xea\x73\xc7\xb5\x23\x16\x09\xc9\xb7\x79\xf4\xb6\xa7\x32"
"\xc3\xa4\xe2\x09\x2f\x0c\x0e\x35\x11\x7e\xc2\x0a\x7f\x1e\x4e\x41"
"\x3b\x4d\x01\x42\x83\xdb\x9a\xce\x50\x7e\x17\x8e\xc9\x24\x00\x6c"
"\x06\xbb\x91\x52\xb6\x6e\x7c\xa6\x67\x85\xf9\xc8\x9d\x2e\x08\xd1"
"\xd2\x3f\x00\xb8\xce\x59\x7a\x4c\x9e\x3a\xf4\xfb\x9a\x1f\xa6\xff"
"\x56\x0f\x95\x07\xb8\x93\x05\x4d\x28\x09\xd2\x25\x79\x5e\x98\xf5"
"\xce\x80\x98\x1f\x53\x49\x90\x1a\x0e\x18\x74\x23\x7a\x1b\xb9\xc8"
"\xc3\xc9\xce\x21\x6b\xe3\x9d\xe1\xd1\x05\xd9\x37\xe9\xf5\xfb\xd4"
"\xc7\xdd\xaf\x67\x92\xaf\xfa\xaf\x29\x75\xd1\xe0\x05\x1b\x77\xc5"
"\xff\xe9\x68\x42\xfa\x8c\x0b\xf7\x24\xca\xc0\x66\x10\x88\x3a\x83"
"\xd2\x83\x14\x03\xd6\x2f\xb5\xed\x80\x82\x26\xdd\x8f\x6e\xb7\xf2"
"\x08\xb1\x89\x93\x54\x08\x65\x1f\xcd\xc2\x70\x6c\x4d\x41\x7c\x56"
"\x5d\xc0\x26\x7f\x32\xa0\xed\x7f\x76\x6d\x91\x77\xa7\xb0\x3e\x10"
"\x98\xe2\x18\xd5\xa9\x0c\x53\xfb\x59\xbb\xdc\xce\xfb\x30\x4a\x78"
"\x8d\xe8\x17\x99\xb7\xcd\x2d\xdc\x45\x27\xaa\x68\x97\x84\x29\x45"
"\xa4\x8e\x24\xce\x87\xcb\xc8\x23\x3b\x3e\xd4\x21\x28\x76\xad\x1a"
"\x27\x18\x32\x01\x3a\x3a\x22\xd6\xb6\x11\x37\x7b\x78\xa4\x8d\x2c"
"\x06\x6c\x36\x0c\x12\x8e\xd1\xe2\x2f\x14\x83\x9c\x14\x67\xdd\xe1"
"\xd5\x02\x0c\xec\x4a\x60\x32\x61\x87\xd7\x9c\xc1\xf6\x34\x48\x4a"
"\x79\xc6\xaf\xda\xf8\xdf\x68\x66\x93\xb3\x24\xe4\x9f\x75\xbb\x67"
"\x81\x34\xd8\x3d\x2f\x68\xfe\x37\x5a\x7b\xda\xb6\xd9\xfd\x48\x3f"
"\xfe\xa7\x19\xf3\x97\xe6\xa8\x29\x6c\xf1\xc8\x2d\x6f\xe4\xfb\xe6"
"\x4e\x0c\x83\xfd\xda\x24\x93\xa9\xae\x0e\x09\xde\xf1\x5c\xec\x46"
"\x13\xdd\x08\x41\xf5\xd7\x32\x01\xd1\xe2\x9b\xc9\xa1\x90\xd1\x02"
"\x8a\x27\x3d\xa9\x54\x4b\x0f\xc1\x45\xf7\x55\x39\x54\xe2\xba\xf5"
"\x4e\x6d\x15\xaa\x34\x85\x88\x7f\xab\xc1\xae\xa4\x3d\xc1\xaa\x3b"
"\xa1\x3f\xfc\x26\xdb\xbb\x1d\xaf\x35\x2f\xdc\x1c\x69\x96\xab\xf4"
"\x8b\x8a\x2f\xb9\xf9\xd7\x69\x04\xd8\x30\x4b\x9a\x43\xda\xbd\x71"
"\x72\xc3\x2f\xb0\x70\x8c\x56\x7c\x41\xb8\xb9\x3a\x35\x03\xb5\x3a"
"\xa9\xf3\x25\x28\xc9\x3b\x12\x0f\xa4\xd0\x2d\x13\xba\x07\xa1\x04"
"\xe7\x27\xf6\x84\xf9\x62\x78\x51\x72\x8d\xf9\xe6\x44\x30\x20\xd3"
"\xa6\xf2\xa8\xd1\x04\xea\x2b\xda\x72\x01\x16\xad\xbf\x09\xc1\x97"
"\xae\x88\xa7\x17\x3b\x5c\xe2\xf5\x61\xbf\x05\x2e\xa2\xe4\xfb\x5d"
"\xf7\x0d\x57\x9a\xd1\x18\xc8\xae\xc7\x94\x89\xa4\xa0\xa9\xf2\x20"
"\x07\xdb\xad\x6b\x10\x1d\x7d\x7c\x90\x01\xec\x42\xbf\xf3\xd7\x8c"
"\x90\x83\x36\x66\xfe\x37\xc0\x63\x0f\x88\x4c\x64\x51\xc6\x94\x47"
"\xc2\xa2\xe9\x0f\xc8\xa5\x87\x9b\x28\x21\xa5\xf8\xeb\xa9\xc9\x9e"
"\xf6\x79\x45\x2c\xa2\x6e\x87\x7d\x97\x04\x16\x19\xa3\x33\x03\xac"
"\xfa\xe9\x1a\xe0\xa9\xbb\xfd\xb1\xf3\x23\x6a\xbc\xe4\x16\x16\xbe"
"\x8a\x31\x15\xb2\x09\xe9\x5a\xa4\x27\x70\x19\x88\xfd\x40\x9e\x27"
"\x93\x15\x1f\x8c\x1c\x8f\xa6\x83\x80\xe8\x70\x64\xee\xa2\xfc\xd8"
"\xbe\x1b\x79\xf4\x17\xd1\xf1\x77\x47\x3e\xbf\xf2\x68\x5c\xb3\x8c"
"\x35\x4f\x25\xe3\x03\xae\xd2\x26\xb9\xa0\xbc\x48\xc3\xe4\xc1\x00"
"\x4b\x36\x46\xb5\xba\xe0\x08\x46\xb8\x07\x55\x56\x7b\x01\x8b\x79"
"\x75\x23\xa9\x82\x03\x89\xf1\x78\x1d\x4d\x54\xc5\xb5\xfd\xa2\x81"
"\x3a\x40\xe4\x9b\x94\x0e\x6d\x28\x81\x1b\xf0\xa3\x2f\x30\xd8\x7d"
"\x18\x58\x5b\xb8\xd8\xc4\xeb\x3c\x84\x75\xb0\x33\x2e\x32\xcc\xa0"
"\xee\x4f\x6a\xf0\x10\x05\x5a\x9d\x1c\x33\xf4\x09\x6e\x7e\xb3\xf3"
"\x57\xbb\xf5\x7f\x00\xba\xd8\xac\x5c\x99\xdf\xa6\x1c\x77\xfc\xc9"
"\x49\x38\x1b\xfb\x20\xa1\x7b\xaf\xb8\xd2\x2c\x52\x6f\x1e\x3b\x59"
"\x1e\x1e\x8c\x89\x3a\xbf\x98\x3e\x1c\x59\x0c\x31\x54\xde\xba\x8a"
"\x02\x1f\xb0\x56\x77\x63\x19\xd7\x37\x6d\xd0\xe7\x73\x09\x6b\x65"
"\x74\xa8\x1c\xed\x34\x2b\x14\x06\x8b\xb9\xf0\xe4\xe8\x7a\x0b\x38"
"\xd5\xe7\x71\x71\xda\x91\xc9\xc3\xda\xfd\x42\xce\x6e\x99\xc3\xf0"
"\xb7\x29\x7a\x7f\x66\xc5\x45\x3e\x8e\xce\x80\x8e\xbd\x30\x60\x0a"
"\x19\x30\xf5\x2c\x6f\x7a\x9d\x2c\xc6\x76\xc0\x7f\x24\xc2\xf8\xec"
"\xc0\x96\x1d\x60\x13\x3b\x4b\xe2\x7c\xc4\x31\x0f\xbd\x46\x8b\x17"
"\xee\x43\xf0\x18\x6b\x84\xf5\x39\x36\xa4\xcd\x0f\xda\xa9\x09\x7e"
"\x0d\x96\x59\xa8\x5c\x16\x08\x4c\xf3\x22\xf5\x98\xf0\xb0\x9c\xb2"
"\x33\x4e\x42\xbd\xca\xac\xd7\x3e\x17\x81\xcd\x2b\x2c\xbe\xca"
"\x10",
4096);
memcpy((void*)0x207ab000,
"\x4d\x8a\xb7\x54\xc2\xe5\x47\xb2\x68\x47\x9f\x56\x7d\x65\x9e"
"\x5a\x35\x8b\xc2\x5a\xb9\x17\xf6\x56\x87\xff\x2d\xa8\x78\xe9"
"\x39\xe6\xa3\xd0\xb3\x1f\xd6\x55\x44\x85\xe9\x26\x26\xea\x2e"
"\x02\x90\x3d\x60\x43\x96\xfd\x32\x1a\xee\xf5\xd8\x6d\x6e\xdf"
"\xeb\x76\x45\xab\x2e\xb4\x8f\xcd\xf8\x4f\x5d\xa0\x19\x73\x3f"
"\x7d\x86\x74\xee\x56\x6a\xbf\xb0\xdd\xa7\x33\x22\x80\xd9\xe8"
"\x6e\x8d\x79\xe9\x8c\x87\x76\x1d\xbd\x67\x71\x0c\x61\x56\x25"
"\x59\xe4\x4c\x44\x47\x56\xc5\x4d\xcf\x3c\x0f\x4a\x6c\xc6\x38"
"\xf6\xe3\xa1\xb2\xf8\xa4\xa9\xb9\xf0\xb5\x8c\x64\x31\x53\x14"
"\x17\x94\xdd\x11\x57\x1d\x79\x21\xd8\x5f\x05\x87\x07\xa1\x67"
"\xb0\xee\xa9\x11\xba\xc0\x7d\xfe\xad\xcd\xbc\x86\x2b\x83\xdf"
"\x2b\xe5\xb2\x69\xf6\xbb\xfd\x0e\xc4\x4c\x98\x2f\x73\x0c\xd3"
"\x18\x73\x21\x38\xb0\x50\x67\xe5\xc7\x9c\x05\x4a\xed\xf6\x2e"
"\x2e\xb2\xb9\x7f\x72\xfb\x4e\x88\x6f\xf6\xfd\x1c\x98\xd3\x9f"
"\x5a\x6a\xc9\x28\x82\xd6\x51\x8d",
218);
r[42] = syscall(__NR_writev, r[5], 0x20882f60ul, 0xaul);
}
int main()
{
use_temporary_dir();
int pid = do_sandbox_namespace(0, true);
int status = 0;
while (waitpid(pid, &status, __WALL) != pid) {
}
return 0;
}