changeset 10:4d1f82230449 tip

preprocessed source from newer mercurial ver.
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Tue, 13 Aug 2013 13:12:57 +0200
parents ea1ba68cf0ed
children
files libavcodec/sscc_h264_ompss.c
diffstat 1 files changed, 3785 insertions(+), 8169 deletions(-) [+]
line diff
     1.1 --- a/libavcodec/sscc_h264_ompss.c	Wed Jun 05 14:43:26 2013 +0200
     1.2 +++ b/libavcodec/sscc_h264_ompss.c	Tue Aug 13 13:12:57 2013 +0200
     1.3 @@ -1,8547 +1,4163 @@
     1.4 -const char *__nanos_family __attribute__((weak))  = "master";
     1.5 -int __nanos_version __attribute__((weak))  = 5015;
     1.6 -int __mcc_master __attribute__((weak))  = 5015;
     1.7 -int __mcc_openmp __attribute__((weak))  = 5;
     1.8 -int __mcc_trunk __attribute__((weak))  = 399;
     1.9 -int __mcc_worksharing __attribute__((weak))  = 1000;
    1.10 -typedef unsigned char __u_char;
    1.11 -typedef unsigned short int __u_short;
    1.12 -typedef unsigned int __u_int;
    1.13 -typedef unsigned long int __u_long;
    1.14 -typedef signed char __int8_t;
    1.15 -typedef unsigned char __uint8_t;
    1.16 -typedef signed short int __int16_t;
    1.17 -typedef unsigned short int __uint16_t;
    1.18 -typedef signed int __int32_t;
    1.19 -typedef unsigned int __uint32_t;
    1.20 -typedef signed long int __int64_t;
    1.21 -typedef unsigned long int __uint64_t;
    1.22 -typedef long int __quad_t;
    1.23 -typedef unsigned long int __u_quad_t;
    1.24 -typedef unsigned long int __dev_t;
    1.25 -typedef unsigned int __uid_t;
    1.26 -typedef unsigned int __gid_t;
    1.27 -typedef unsigned long int __ino_t;
    1.28 -typedef unsigned long int __ino64_t;
    1.29 -typedef unsigned int __mode_t;
    1.30 -typedef unsigned long int __nlink_t;
    1.31 -typedef long int __off_t;
    1.32 -typedef long int __off64_t;
    1.33 -typedef int __pid_t;
    1.34 -typedef struct 
    1.35 +typedef unsigned int uint32_t;
    1.36 +static __inline __attribute__((always_inline)) uint32_t pack16to32(int a, int b)
    1.37  {
    1.38 -        int __val[2];
    1.39 -} __fsid_t;
    1.40 -typedef long int __clock_t;
    1.41 -typedef unsigned long int __rlim_t;
    1.42 -typedef unsigned long int __rlim64_t;
    1.43 -typedef unsigned int __id_t;
    1.44 -typedef long int __time_t;
    1.45 -typedef unsigned int __useconds_t;
    1.46 -typedef long int __suseconds_t;
    1.47 -typedef int __daddr_t;
    1.48 -typedef long int __swblk_t;
    1.49 -typedef int __key_t;
    1.50 -typedef int __clockid_t;
    1.51 -typedef void *__timer_t;
    1.52 -typedef long int __blksize_t;
    1.53 -typedef long int __blkcnt_t;
    1.54 -typedef long int __blkcnt64_t;
    1.55 -typedef unsigned long int __fsblkcnt_t;
    1.56 -typedef unsigned long int __fsblkcnt64_t;
    1.57 -typedef unsigned long int __fsfilcnt_t;
    1.58 -typedef unsigned long int __fsfilcnt64_t;
    1.59 -typedef long int __ssize_t;
    1.60 -typedef __off64_t __loff_t;
    1.61 -typedef __quad_t *__qaddr_t;
    1.62 -typedef char *__caddr_t;
    1.63 -typedef long int __intptr_t;
    1.64 -typedef unsigned int __socklen_t;
    1.65 -typedef __ssize_t ssize_t;
    1.66 -typedef long unsigned int size_t;
    1.67 -typedef __gid_t gid_t;
    1.68 -typedef __uid_t uid_t;
    1.69 -typedef __off_t off_t;
    1.70 -typedef __useconds_t useconds_t;
    1.71 -typedef __pid_t pid_t;
    1.72 -typedef __intptr_t intptr_t;
    1.73 -typedef __socklen_t socklen_t;
    1.74 -extern int access(__const char *__name, int __type) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
    1.75 -extern int faccessat(int __fd, __const char *__file, int __type, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__));
    1.76 -extern __off_t lseek(int __fd, __off_t __offset, int __whence) __attribute__((__nothrow__, __leaf__));
    1.77 -extern int close(int __fd);
    1.78 -extern ssize_t read(int __fd, void *__buf, size_t __nbytes) __attribute__((__warn_unused_result__));
    1.79 -extern ssize_t write(int __fd, __const void *__buf, size_t __n) __attribute__((__warn_unused_result__));
    1.80 -extern ssize_t pread(int __fd, void *__buf, size_t __nbytes, __off_t __offset) __attribute__((__warn_unused_result__));
    1.81 -extern ssize_t pwrite(int __fd, __const void *__buf, size_t __n, __off_t __offset) __attribute__((__warn_unused_result__));
    1.82 -extern int pipe(int __pipedes[2]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
    1.83 -extern unsigned int alarm(unsigned int __seconds) __attribute__((__nothrow__, __leaf__));
    1.84 -extern unsigned int sleep(unsigned int __seconds);
    1.85 -extern __useconds_t ualarm(__useconds_t __value, __useconds_t __interval) __attribute__((__nothrow__, __leaf__));
    1.86 -extern int usleep(__useconds_t __useconds);
    1.87 -extern int pause(void);
    1.88 -extern int chown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
    1.89 -extern int fchown(int __fd, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
    1.90 -extern int lchown(__const char *__file, __uid_t __owner, __gid_t __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
    1.91 -extern int fchownat(int __fd, __const char *__file, __uid_t __owner, __gid_t __group, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__));
    1.92 -extern int chdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
    1.93 -extern int fchdir(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
    1.94 -extern char *getcwd(char *__buf, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
    1.95 -extern char *getwd(char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__));
    1.96 -extern int dup(int __fd) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
    1.97 -extern int dup2(int __fd, int __fd2) __attribute__((__nothrow__, __leaf__));
    1.98 -extern char **__environ;
    1.99 -extern int execve(__const char *__path, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
   1.100 -extern int fexecve(int __fd, char *__const __argv[], char *__const __envp[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
   1.101 -extern int execv(__const char *__path, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
   1.102 -extern int execle(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
   1.103 -extern int execl(__const char *__path, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
   1.104 -extern int execvp(__const char *__file, char *__const __argv[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
   1.105 -extern int execlp(__const char *__file, __const char *__arg, ...) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
   1.106 -extern int nice(int __inc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.107 -extern void _exit(int __status) __attribute__((__noreturn__));
   1.108 -enum 
   1.109 +  return (a & 65535) + (b << 16);
   1.110 +}
   1.111 +typedef unsigned short int uint16_t;
   1.112 +static __inline __attribute__((always_inline)) uint16_t pack8to16(int a, int b)
   1.113  {
   1.114 -    _PC_LINK_MAX, 
   1.115 -    _PC_MAX_CANON, 
   1.116 -    _PC_MAX_INPUT, 
   1.117 -    _PC_NAME_MAX, 
   1.118 -    _PC_PATH_MAX, 
   1.119 -    _PC_PIPE_BUF, 
   1.120 -    _PC_CHOWN_RESTRICTED, 
   1.121 -    _PC_NO_TRUNC, 
   1.122 -    _PC_VDISABLE, 
   1.123 -    _PC_SYNC_IO, 
   1.124 -    _PC_ASYNC_IO, 
   1.125 -    _PC_PRIO_IO, 
   1.126 -    _PC_SOCK_MAXBUF, 
   1.127 -    _PC_FILESIZEBITS, 
   1.128 -    _PC_REC_INCR_XFER_SIZE, 
   1.129 -    _PC_REC_MAX_XFER_SIZE, 
   1.130 -    _PC_REC_MIN_XFER_SIZE, 
   1.131 -    _PC_REC_XFER_ALIGN, 
   1.132 -    _PC_ALLOC_SIZE_MIN, 
   1.133 -    _PC_SYMLINK_MAX, 
   1.134 -    _PC_2_SYMLINKS
   1.135 +  return (a & 255) + (b << 8);
   1.136 +}
   1.137 +struct CABACContext;
   1.138 +typedef struct CABACContext CABACContext;
   1.139 +typedef unsigned char uint8_t;
   1.140 +struct  CABACContext
   1.141 +{
   1.142 +  int low;
   1.143 +  int range;
   1.144 +  int outstanding_count;
   1.145 +  const uint8_t *bytestream_start;
   1.146 +  const uint8_t *bytestream;
   1.147 +  const uint8_t *bytestream_end;
   1.148 +  uint8_t cabac_state[460];
   1.149  };
   1.150 -enum 
   1.151 +static void refill(CABACContext *c)
   1.152  {
   1.153 -    _SC_ARG_MAX, 
   1.154 -    _SC_CHILD_MAX, 
   1.155 -    _SC_CLK_TCK, 
   1.156 -    _SC_NGROUPS_MAX, 
   1.157 -    _SC_OPEN_MAX, 
   1.158 -    _SC_STREAM_MAX, 
   1.159 -    _SC_TZNAME_MAX, 
   1.160 -    _SC_JOB_CONTROL, 
   1.161 -    _SC_SAVED_IDS, 
   1.162 -    _SC_REALTIME_SIGNALS, 
   1.163 -    _SC_PRIORITY_SCHEDULING, 
   1.164 -    _SC_TIMERS, 
   1.165 -    _SC_ASYNCHRONOUS_IO, 
   1.166 -    _SC_PRIORITIZED_IO, 
   1.167 -    _SC_SYNCHRONIZED_IO, 
   1.168 -    _SC_FSYNC, 
   1.169 -    _SC_MAPPED_FILES, 
   1.170 -    _SC_MEMLOCK, 
   1.171 -    _SC_MEMLOCK_RANGE, 
   1.172 -    _SC_MEMORY_PROTECTION, 
   1.173 -    _SC_MESSAGE_PASSING, 
   1.174 -    _SC_SEMAPHORES, 
   1.175 -    _SC_SHARED_MEMORY_OBJECTS, 
   1.176 -    _SC_AIO_LISTIO_MAX, 
   1.177 -    _SC_AIO_MAX, 
   1.178 -    _SC_AIO_PRIO_DELTA_MAX, 
   1.179 -    _SC_DELAYTIMER_MAX, 
   1.180 -    _SC_MQ_OPEN_MAX, 
   1.181 -    _SC_MQ_PRIO_MAX, 
   1.182 -    _SC_VERSION, 
   1.183 -    _SC_PAGESIZE, 
   1.184 -    _SC_RTSIG_MAX, 
   1.185 -    _SC_SEM_NSEMS_MAX, 
   1.186 -    _SC_SEM_VALUE_MAX, 
   1.187 -    _SC_SIGQUEUE_MAX, 
   1.188 -    _SC_TIMER_MAX, 
   1.189 -    _SC_BC_BASE_MAX, 
   1.190 -    _SC_BC_DIM_MAX, 
   1.191 -    _SC_BC_SCALE_MAX, 
   1.192 -    _SC_BC_STRING_MAX, 
   1.193 -    _SC_COLL_WEIGHTS_MAX, 
   1.194 -    _SC_EQUIV_CLASS_MAX, 
   1.195 -    _SC_EXPR_NEST_MAX, 
   1.196 -    _SC_LINE_MAX, 
   1.197 -    _SC_RE_DUP_MAX, 
   1.198 -    _SC_CHARCLASS_NAME_MAX, 
   1.199 -    _SC_2_VERSION, 
   1.200 -    _SC_2_C_BIND, 
   1.201 -    _SC_2_C_DEV, 
   1.202 -    _SC_2_FORT_DEV, 
   1.203 -    _SC_2_FORT_RUN, 
   1.204 -    _SC_2_SW_DEV, 
   1.205 -    _SC_2_LOCALEDEF, 
   1.206 -    _SC_PII, 
   1.207 -    _SC_PII_XTI, 
   1.208 -    _SC_PII_SOCKET, 
   1.209 -    _SC_PII_INTERNET, 
   1.210 -    _SC_PII_OSI, 
   1.211 -    _SC_POLL, 
   1.212 -    _SC_SELECT, 
   1.213 -    _SC_UIO_MAXIOV, 
   1.214 -    _SC_IOV_MAX = _SC_UIO_MAXIOV, 
   1.215 -    _SC_PII_INTERNET_STREAM, 
   1.216 -    _SC_PII_INTERNET_DGRAM, 
   1.217 -    _SC_PII_OSI_COTS, 
   1.218 -    _SC_PII_OSI_CLTS, 
   1.219 -    _SC_PII_OSI_M, 
   1.220 -    _SC_T_IOV_MAX, 
   1.221 -    _SC_THREADS, 
   1.222 -    _SC_THREAD_SAFE_FUNCTIONS, 
   1.223 -    _SC_GETGR_R_SIZE_MAX, 
   1.224 -    _SC_GETPW_R_SIZE_MAX, 
   1.225 -    _SC_LOGIN_NAME_MAX, 
   1.226 -    _SC_TTY_NAME_MAX, 
   1.227 -    _SC_THREAD_DESTRUCTOR_ITERATIONS, 
   1.228 -    _SC_THREAD_KEYS_MAX, 
   1.229 -    _SC_THREAD_STACK_MIN, 
   1.230 -    _SC_THREAD_THREADS_MAX, 
   1.231 -    _SC_THREAD_ATTR_STACKADDR, 
   1.232 -    _SC_THREAD_ATTR_STACKSIZE, 
   1.233 -    _SC_THREAD_PRIORITY_SCHEDULING, 
   1.234 -    _SC_THREAD_PRIO_INHERIT, 
   1.235 -    _SC_THREAD_PRIO_PROTECT, 
   1.236 -    _SC_THREAD_PROCESS_SHARED, 
   1.237 -    _SC_NPROCESSORS_CONF, 
   1.238 -    _SC_NPROCESSORS_ONLN, 
   1.239 -    _SC_PHYS_PAGES, 
   1.240 -    _SC_AVPHYS_PAGES, 
   1.241 -    _SC_ATEXIT_MAX, 
   1.242 -    _SC_PASS_MAX, 
   1.243 -    _SC_XOPEN_VERSION, 
   1.244 -    _SC_XOPEN_XCU_VERSION, 
   1.245 -    _SC_XOPEN_UNIX, 
   1.246 -    _SC_XOPEN_CRYPT, 
   1.247 -    _SC_XOPEN_ENH_I18N, 
   1.248 -    _SC_XOPEN_SHM, 
   1.249 -    _SC_2_CHAR_TERM, 
   1.250 -    _SC_2_C_VERSION, 
   1.251 -    _SC_2_UPE, 
   1.252 -    _SC_XOPEN_XPG2, 
   1.253 -    _SC_XOPEN_XPG3, 
   1.254 -    _SC_XOPEN_XPG4, 
   1.255 -    _SC_CHAR_BIT, 
   1.256 -    _SC_CHAR_MAX, 
   1.257 -    _SC_CHAR_MIN, 
   1.258 -    _SC_INT_MAX, 
   1.259 -    _SC_INT_MIN, 
   1.260 -    _SC_LONG_BIT, 
   1.261 -    _SC_WORD_BIT, 
   1.262 -    _SC_MB_LEN_MAX, 
   1.263 -    _SC_NZERO, 
   1.264 -    _SC_SSIZE_MAX, 
   1.265 -    _SC_SCHAR_MAX, 
   1.266 -    _SC_SCHAR_MIN, 
   1.267 -    _SC_SHRT_MAX, 
   1.268 -    _SC_SHRT_MIN, 
   1.269 -    _SC_UCHAR_MAX, 
   1.270 -    _SC_UINT_MAX, 
   1.271 -    _SC_ULONG_MAX, 
   1.272 -    _SC_USHRT_MAX, 
   1.273 -    _SC_NL_ARGMAX, 
   1.274 -    _SC_NL_LANGMAX, 
   1.275 -    _SC_NL_MSGMAX, 
   1.276 -    _SC_NL_NMAX, 
   1.277 -    _SC_NL_SETMAX, 
   1.278 -    _SC_NL_TEXTMAX, 
   1.279 -    _SC_XBS5_ILP32_OFF32, 
   1.280 -    _SC_XBS5_ILP32_OFFBIG, 
   1.281 -    _SC_XBS5_LP64_OFF64, 
   1.282 -    _SC_XBS5_LPBIG_OFFBIG, 
   1.283 -    _SC_XOPEN_LEGACY, 
   1.284 -    _SC_XOPEN_REALTIME, 
   1.285 -    _SC_XOPEN_REALTIME_THREADS, 
   1.286 -    _SC_ADVISORY_INFO, 
   1.287 -    _SC_BARRIERS, 
   1.288 -    _SC_BASE, 
   1.289 -    _SC_C_LANG_SUPPORT, 
   1.290 -    _SC_C_LANG_SUPPORT_R, 
   1.291 -    _SC_CLOCK_SELECTION, 
   1.292 -    _SC_CPUTIME, 
   1.293 -    _SC_THREAD_CPUTIME, 
   1.294 -    _SC_DEVICE_IO, 
   1.295 -    _SC_DEVICE_SPECIFIC, 
   1.296 -    _SC_DEVICE_SPECIFIC_R, 
   1.297 -    _SC_FD_MGMT, 
   1.298 -    _SC_FIFO, 
   1.299 -    _SC_PIPE, 
   1.300 -    _SC_FILE_ATTRIBUTES, 
   1.301 -    _SC_FILE_LOCKING, 
   1.302 -    _SC_FILE_SYSTEM, 
   1.303 -    _SC_MONOTONIC_CLOCK, 
   1.304 -    _SC_MULTI_PROCESS, 
   1.305 -    _SC_SINGLE_PROCESS, 
   1.306 -    _SC_NETWORKING, 
   1.307 -    _SC_READER_WRITER_LOCKS, 
   1.308 -    _SC_SPIN_LOCKS, 
   1.309 -    _SC_REGEXP, 
   1.310 -    _SC_REGEX_VERSION, 
   1.311 -    _SC_SHELL, 
   1.312 -    _SC_SIGNALS, 
   1.313 -    _SC_SPAWN, 
   1.314 -    _SC_SPORADIC_SERVER, 
   1.315 -    _SC_THREAD_SPORADIC_SERVER, 
   1.316 -    _SC_SYSTEM_DATABASE, 
   1.317 -    _SC_SYSTEM_DATABASE_R, 
   1.318 -    _SC_TIMEOUTS, 
   1.319 -    _SC_TYPED_MEMORY_OBJECTS, 
   1.320 -    _SC_USER_GROUPS, 
   1.321 -    _SC_USER_GROUPS_R, 
   1.322 -    _SC_2_PBS, 
   1.323 -    _SC_2_PBS_ACCOUNTING, 
   1.324 -    _SC_2_PBS_LOCATE, 
   1.325 -    _SC_2_PBS_MESSAGE, 
   1.326 -    _SC_2_PBS_TRACK, 
   1.327 -    _SC_SYMLOOP_MAX, 
   1.328 -    _SC_STREAMS, 
   1.329 -    _SC_2_PBS_CHECKPOINT, 
   1.330 -    _SC_V6_ILP32_OFF32, 
   1.331 -    _SC_V6_ILP32_OFFBIG, 
   1.332 -    _SC_V6_LP64_OFF64, 
   1.333 -    _SC_V6_LPBIG_OFFBIG, 
   1.334 -    _SC_HOST_NAME_MAX, 
   1.335 -    _SC_TRACE, 
   1.336 -    _SC_TRACE_EVENT_FILTER, 
   1.337 -    _SC_TRACE_INHERIT, 
   1.338 -    _SC_TRACE_LOG, 
   1.339 -    _SC_LEVEL1_ICACHE_SIZE, 
   1.340 -    _SC_LEVEL1_ICACHE_ASSOC, 
   1.341 -    _SC_LEVEL1_ICACHE_LINESIZE, 
   1.342 -    _SC_LEVEL1_DCACHE_SIZE, 
   1.343 -    _SC_LEVEL1_DCACHE_ASSOC, 
   1.344 -    _SC_LEVEL1_DCACHE_LINESIZE, 
   1.345 -    _SC_LEVEL2_CACHE_SIZE, 
   1.346 -    _SC_LEVEL2_CACHE_ASSOC, 
   1.347 -    _SC_LEVEL2_CACHE_LINESIZE, 
   1.348 -    _SC_LEVEL3_CACHE_SIZE, 
   1.349 -    _SC_LEVEL3_CACHE_ASSOC, 
   1.350 -    _SC_LEVEL3_CACHE_LINESIZE, 
   1.351 -    _SC_LEVEL4_CACHE_SIZE, 
   1.352 -    _SC_LEVEL4_CACHE_ASSOC, 
   1.353 -    _SC_LEVEL4_CACHE_LINESIZE, 
   1.354 -    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, 
   1.355 -    _SC_RAW_SOCKETS, 
   1.356 -    _SC_V7_ILP32_OFF32, 
   1.357 -    _SC_V7_ILP32_OFFBIG, 
   1.358 -    _SC_V7_LP64_OFF64, 
   1.359 -    _SC_V7_LPBIG_OFFBIG, 
   1.360 -    _SC_SS_REPL_MAX, 
   1.361 -    _SC_TRACE_EVENT_NAME_MAX, 
   1.362 -    _SC_TRACE_NAME_MAX, 
   1.363 -    _SC_TRACE_SYS_MAX, 
   1.364 -    _SC_TRACE_USER_EVENT_MAX, 
   1.365 -    _SC_XOPEN_STREAMS, 
   1.366 -    _SC_THREAD_ROBUST_PRIO_INHERIT, 
   1.367 -    _SC_THREAD_ROBUST_PRIO_PROTECT
   1.368 -};
   1.369 -enum 
   1.370 +  (*c).low += ((*c).bytestream[0] << 9) + ((*c).bytestream[1] << 1);
   1.371 +  (*c).low -= (1 << 16) - 1;
   1.372 +  (*c).bytestream += 16 / 8;
   1.373 +}
   1.374 +extern const uint8_t ff_h264_norm_shift[512];
   1.375 +static void refill2(CABACContext *c)
   1.376  {
   1.377 -    _CS_PATH, 
   1.378 -    _CS_V6_WIDTH_RESTRICTED_ENVS, 
   1.379 -    _CS_GNU_LIBC_VERSION, 
   1.380 -    _CS_GNU_LIBPTHREAD_VERSION, 
   1.381 -    _CS_V5_WIDTH_RESTRICTED_ENVS, 
   1.382 -    _CS_V7_WIDTH_RESTRICTED_ENVS, 
   1.383 -    _CS_LFS_CFLAGS = 1000, 
   1.384 -    _CS_LFS_LDFLAGS, 
   1.385 -    _CS_LFS_LIBS, 
   1.386 -    _CS_LFS_LINTFLAGS, 
   1.387 -    _CS_LFS64_CFLAGS, 
   1.388 -    _CS_LFS64_LDFLAGS, 
   1.389 -    _CS_LFS64_LIBS, 
   1.390 -    _CS_LFS64_LINTFLAGS, 
   1.391 -    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, 
   1.392 -    _CS_XBS5_ILP32_OFF32_LDFLAGS, 
   1.393 -    _CS_XBS5_ILP32_OFF32_LIBS, 
   1.394 -    _CS_XBS5_ILP32_OFF32_LINTFLAGS, 
   1.395 -    _CS_XBS5_ILP32_OFFBIG_CFLAGS, 
   1.396 -    _CS_XBS5_ILP32_OFFBIG_LDFLAGS, 
   1.397 -    _CS_XBS5_ILP32_OFFBIG_LIBS, 
   1.398 -    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, 
   1.399 -    _CS_XBS5_LP64_OFF64_CFLAGS, 
   1.400 -    _CS_XBS5_LP64_OFF64_LDFLAGS, 
   1.401 -    _CS_XBS5_LP64_OFF64_LIBS, 
   1.402 -    _CS_XBS5_LP64_OFF64_LINTFLAGS, 
   1.403 -    _CS_XBS5_LPBIG_OFFBIG_CFLAGS, 
   1.404 -    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, 
   1.405 -    _CS_XBS5_LPBIG_OFFBIG_LIBS, 
   1.406 -    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, 
   1.407 -    _CS_POSIX_V6_ILP32_OFF32_CFLAGS, 
   1.408 -    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, 
   1.409 -    _CS_POSIX_V6_ILP32_OFF32_LIBS, 
   1.410 -    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, 
   1.411 -    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, 
   1.412 -    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, 
   1.413 -    _CS_POSIX_V6_ILP32_OFFBIG_LIBS, 
   1.414 -    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, 
   1.415 -    _CS_POSIX_V6_LP64_OFF64_CFLAGS, 
   1.416 -    _CS_POSIX_V6_LP64_OFF64_LDFLAGS, 
   1.417 -    _CS_POSIX_V6_LP64_OFF64_LIBS, 
   1.418 -    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, 
   1.419 -    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, 
   1.420 -    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, 
   1.421 -    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, 
   1.422 -    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, 
   1.423 -    _CS_POSIX_V7_ILP32_OFF32_CFLAGS, 
   1.424 -    _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, 
   1.425 -    _CS_POSIX_V7_ILP32_OFF32_LIBS, 
   1.426 -    _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, 
   1.427 -    _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, 
   1.428 -    _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, 
   1.429 -    _CS_POSIX_V7_ILP32_OFFBIG_LIBS, 
   1.430 -    _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, 
   1.431 -    _CS_POSIX_V7_LP64_OFF64_CFLAGS, 
   1.432 -    _CS_POSIX_V7_LP64_OFF64_LDFLAGS, 
   1.433 -    _CS_POSIX_V7_LP64_OFF64_LIBS, 
   1.434 -    _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, 
   1.435 -    _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, 
   1.436 -    _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, 
   1.437 -    _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, 
   1.438 -    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, 
   1.439 -    _CS_V6_ENV, 
   1.440 -    _CS_V7_ENV
   1.441 -};
   1.442 -extern long int pathconf(__const char *__path, int __name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.443 -extern long int fpathconf(int __fd, int __name) __attribute__((__nothrow__, __leaf__));
   1.444 -extern long int sysconf(int __name) __attribute__((__nothrow__, __leaf__));
   1.445 -extern size_t confstr(int __name, char *__buf, size_t __len) __attribute__((__nothrow__, __leaf__));
   1.446 -extern __pid_t getpid(void) __attribute__((__nothrow__, __leaf__));
   1.447 -extern __pid_t getppid(void) __attribute__((__nothrow__, __leaf__));
   1.448 -extern __pid_t getpgrp(void) __attribute__((__nothrow__, __leaf__));
   1.449 -extern __pid_t __getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
   1.450 -extern __pid_t getpgid(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
   1.451 -extern int setpgid(__pid_t __pid, __pid_t __pgid) __attribute__((__nothrow__, __leaf__));
   1.452 -extern int setpgrp(void) __attribute__((__nothrow__, __leaf__));
   1.453 -extern __pid_t setsid(void) __attribute__((__nothrow__, __leaf__));
   1.454 -extern __pid_t getsid(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
   1.455 -extern __uid_t getuid(void) __attribute__((__nothrow__, __leaf__));
   1.456 -extern __uid_t geteuid(void) __attribute__((__nothrow__, __leaf__));
   1.457 -extern __gid_t getgid(void) __attribute__((__nothrow__, __leaf__));
   1.458 -extern __gid_t getegid(void) __attribute__((__nothrow__, __leaf__));
   1.459 -extern int getgroups(int __size, __gid_t __list[]) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.460 -extern int setuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__));
   1.461 -extern int setreuid(__uid_t __ruid, __uid_t __euid) __attribute__((__nothrow__, __leaf__));
   1.462 -extern int seteuid(__uid_t __uid) __attribute__((__nothrow__, __leaf__));
   1.463 -extern int setgid(__gid_t __gid) __attribute__((__nothrow__, __leaf__));
   1.464 -extern int setregid(__gid_t __rgid, __gid_t __egid) __attribute__((__nothrow__, __leaf__));
   1.465 -extern int setegid(__gid_t __gid) __attribute__((__nothrow__, __leaf__));
   1.466 -extern __pid_t fork(void) __attribute__((__nothrow__));
   1.467 -extern __pid_t vfork(void) __attribute__((__nothrow__, __leaf__));
   1.468 -extern char *ttyname(int __fd) __attribute__((__nothrow__, __leaf__));
   1.469 -extern int ttyname_r(int __fd, char *__buf, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warn_unused_result__));
   1.470 -extern int isatty(int __fd) __attribute__((__nothrow__, __leaf__));
   1.471 -extern int ttyslot(void) __attribute__((__nothrow__, __leaf__));
   1.472 -extern int link(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
   1.473 -extern int linkat(int __fromfd, __const char *__from, int __tofd, __const char *__to, int __flags) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4))) __attribute__((__warn_unused_result__));
   1.474 -extern int symlink(__const char *__from, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
   1.475 -extern ssize_t readlink(__const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
   1.476 -extern int symlinkat(__const char *__from, int __tofd, __const char *__to) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3))) __attribute__((__warn_unused_result__));
   1.477 -extern ssize_t readlinkat(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__));
   1.478 -extern int unlink(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.479 -extern int unlinkat(int __fd, __const char *__name, int __flag) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
   1.480 -extern int rmdir(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.481 -extern __pid_t tcgetpgrp(int __fd) __attribute__((__nothrow__, __leaf__));
   1.482 -extern int tcsetpgrp(int __fd, __pid_t __pgrp_id) __attribute__((__nothrow__, __leaf__));
   1.483 -extern char *getlogin(void);
   1.484 -extern int getlogin_r(char *__name, size_t __name_len) __attribute__((__nonnull__(1)));
   1.485 -extern int setlogin(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.486 -extern char *optarg;
   1.487 -extern int optind;
   1.488 -extern int opterr;
   1.489 -extern int optopt;
   1.490 -extern int getopt(int ___argc, char *const *___argv, const char *__shortopts) __attribute__((__nothrow__, __leaf__));
   1.491 -extern int gethostname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.492 -extern int sethostname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.493 -extern int sethostid(long int __id) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.494 -extern int getdomainname(char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.495 -extern int setdomainname(__const char *__name, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.496 -extern int vhangup(void) __attribute__((__nothrow__, __leaf__));
   1.497 -extern int revoke(__const char *__file) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.498 -extern int profil(unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.499 -extern int acct(__const char *__name) __attribute__((__nothrow__, __leaf__));
   1.500 -extern char *getusershell(void) __attribute__((__nothrow__, __leaf__));
   1.501 -extern void endusershell(void) __attribute__((__nothrow__, __leaf__));
   1.502 -extern void setusershell(void) __attribute__((__nothrow__, __leaf__));
   1.503 -extern int daemon(int __nochdir, int __noclose) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.504 -extern int chroot(__const char *__path) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.505 -extern char *getpass(__const char *__prompt) __attribute__((__nonnull__(1)));
   1.506 -extern int fsync(int __fd);
   1.507 -extern long int gethostid(void);
   1.508 -extern void sync(void) __attribute__((__nothrow__, __leaf__));
   1.509 -extern int getpagesize(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
   1.510 -extern int getdtablesize(void) __attribute__((__nothrow__, __leaf__));
   1.511 -extern int truncate(__const char *__file, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.512 -extern int ftruncate(int __fd, __off_t __length) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.513 -extern int brk(void *__addr) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.514 -extern void *sbrk(intptr_t __delta) __attribute__((__nothrow__, __leaf__));
   1.515 -extern long int syscall(long int __sysno, ...) __attribute__((__nothrow__, __leaf__));
   1.516 -extern int lockf(int __fd, int __cmd, __off_t __len) __attribute__((__warn_unused_result__));
   1.517 -extern int fdatasync(int __fildes);
   1.518 -extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__));
   1.519 -extern ssize_t __read_chk(int __fd, void *__buf, size_t __nbytes, size_t __buflen) __attribute__((__warn_unused_result__));
   1.520 -extern ssize_t __read_alias(int __fd, void *__buf, size_t __nbytes) __asm__ ("""read") __attribute__((__warn_unused_result__));
   1.521 -extern ssize_t __read_chk_warn(int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("""__read_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("read called with bigger length than size of ""the destination buffer")));
   1.522 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) ssize_t read(int __fd, void *__buf, size_t __nbytes)
   1.523 +  int x;
   1.524 +  int i;
   1.525 +  x = (*c).low ^ ((*c).low - 1);
   1.526 +  i = 7 - ff_h264_norm_shift[x >> (16 - 1)];
   1.527 +  x =  -((1 << 16) - 1);
   1.528 +  x += ((*c).bytestream[0] << 9) + ((*c).bytestream[1] << 1);
   1.529 +  (*c).low += x << i;
   1.530 +  (*c).bytestream += 16 / 8;
   1.531 +}
   1.532 +static __inline void renorm_cabac_decoder(CABACContext *c)
   1.533  {
   1.534 -    if (__builtin_object_size(__buf, 0) != (size_t) - 1)
   1.535 +  while ((*c).range < 256)
   1.536      {
   1.537 -        if (!__builtin_constant_p(__nbytes))
   1.538 -            return __read_chk(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0));
   1.539 -        if (__nbytes > __builtin_object_size(__buf, 0))
   1.540 -            return __read_chk_warn(__fd, __buf, __nbytes, __builtin_object_size(__buf, 0));
   1.541 +      {
   1.542 +        (*c).range += (*c).range;
   1.543 +        (*c).low += (*c).low;
   1.544 +        if (!((*c).low & ((1 << 16) - 1)))
   1.545 +          {
   1.546 +            refill(c);
   1.547 +          }
   1.548 +      }
   1.549      }
   1.550 -    return __read_alias(__fd, __buf, __nbytes);
   1.551  }
   1.552 -extern ssize_t __readlink_chk(__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
   1.553 -extern ssize_t __readlink_alias(__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("""readlink") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__));
   1.554 -extern ssize_t __readlink_chk_warn(__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("""__readlink_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("readlink called with bigger length ""than size of destination buffer")));
   1.555 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(1, 2))) __attribute__((__warn_unused_result__)) ssize_t __attribute__((__nothrow__, __leaf__)) readlink(__const char *__restrict __path, char *__restrict __buf, size_t __len)
   1.556 +static __inline void renorm_cabac_decoder_once(CABACContext *c)
   1.557  {
   1.558 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.559 +  int shift = (uint32_t)((*c).range - 256) >> 31;
   1.560 +  (*c).range <<= shift;
   1.561 +  (*c).low <<= shift;
   1.562 +  if (!((*c).low & ((1 << 16) - 1)))
   1.563      {
   1.564 -        if (!__builtin_constant_p(__len))
   1.565 -            return __readlink_chk(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
   1.566 -        if (__len > __builtin_object_size(__buf, 2 > 1))
   1.567 -            return __readlink_chk_warn(__path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
   1.568 +      refill(c);
   1.569      }
   1.570 -    return __readlink_alias(__path, __buf, __len);
   1.571  }
   1.572 -extern ssize_t __readlinkat_chk(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__));
   1.573 -extern ssize_t __readlinkat_alias(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("""readlinkat") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__));
   1.574 -extern ssize_t __readlinkat_chk_warn(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("""__readlinkat_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("readlinkat called with bigger ""length than size of destination ""buffer")));
   1.575 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(2, 3))) __attribute__((__warn_unused_result__)) ssize_t __attribute__((__nothrow__, __leaf__)) readlinkat(int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len)
   1.576 +extern uint8_t ff_h264_lps_range[512];
   1.577 +extern uint8_t ff_h264_mlps_state[256];
   1.578 +static __inline __attribute__((always_inline)) int get_cabac_inline(CABACContext *c, uint8_t *const state)
   1.579  {
   1.580 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.581 +  __attribute__((unused)) int lps_mask;
   1.582 +  int bit;
   1.583 +  int s = *state;
   1.584 +  int RangeLPS = ff_h264_lps_range[2 * ((*c).range & 192) + s];
   1.585 +  (*c).range -= RangeLPS;
   1.586 +  lps_mask = (((*c).range << (16 + 1)) - (*c).low) >> 31;
   1.587 +  (*c).low -= (*c).range << (16 + 1) & lps_mask;
   1.588 +  (*c).range += (RangeLPS - (*c).range) & lps_mask;
   1.589 +  s ^= lps_mask;
   1.590 +  *state = (ff_h264_mlps_state + 128)[s];
   1.591 +  bit = s & 1;
   1.592 +  lps_mask = ff_h264_norm_shift[(*c).range];
   1.593 +  (*c).range <<= lps_mask;
   1.594 +  (*c).low <<= lps_mask;
   1.595 +  if (!((*c).low & ((1 << 16) - 1)))
   1.596      {
   1.597 -        if (!__builtin_constant_p(__len))
   1.598 -            return __readlinkat_chk(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
   1.599 -        if (__len > __builtin_object_size(__buf, 2 > 1))
   1.600 -            return __readlinkat_chk_warn(__fd, __path, __buf, __len, __builtin_object_size(__buf, 2 > 1));
   1.601 +      refill2(c);
   1.602      }
   1.603 -    return __readlinkat_alias(__fd, __path, __buf, __len);
   1.604 +  return bit;
   1.605  }
   1.606 -extern char *__getcwd_chk(char *__buf, size_t __size, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.607 -extern char *__getcwd_alias(char *__buf, size_t __size) __asm__ ("""getcwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.608 -extern char *__getcwd_chk_warn(char *__buf, size_t __size, size_t __buflen) __asm__ ("""__getcwd_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getcwd caller with bigger length than size of ""destination buffer")));
   1.609 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getcwd(char *__buf, size_t __size)
   1.610 +static __attribute__((noinline)) __attribute__((unused)) int get_cabac_noinline(CABACContext *c, uint8_t *const state)
   1.611  {
   1.612 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.613 +  return get_cabac_inline(c, state);
   1.614 +}
   1.615 +static __attribute__((unused)) int get_cabac(CABACContext *c, uint8_t *const state)
   1.616 +{
   1.617 +  return get_cabac_inline(c, state);
   1.618 +}
   1.619 +static __attribute__((unused)) int get_cabac_bypass(CABACContext *c)
   1.620 +{
   1.621 +  int range;
   1.622 +  (*c).low += (*c).low;
   1.623 +  if (!((*c).low & ((1 << 16) - 1)))
   1.624      {
   1.625 -        if (!__builtin_constant_p(__size))
   1.626 -            return __getcwd_chk(__buf, __size, __builtin_object_size(__buf, 2 > 1));
   1.627 -        if (__size > __builtin_object_size(__buf, 2 > 1))
   1.628 -            return __getcwd_chk_warn(__buf, __size, __builtin_object_size(__buf, 2 > 1));
   1.629 +      refill(c);
   1.630      }
   1.631 -    return __getcwd_alias(__buf, __size);
   1.632 +  range = (*c).range << (16 + 1);
   1.633 +  if ((*c).low < range)
   1.634 +    {
   1.635 +      {
   1.636 +        return 0;
   1.637 +      }
   1.638 +    }
   1.639 +  else
   1.640 +    {
   1.641 +      {
   1.642 +        (*c).low -= range;
   1.643 +        return 1;
   1.644 +      }
   1.645 +    }
   1.646  }
   1.647 -extern char *__getwd_chk(char *__buf, size_t buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.648 -extern char *__getwd_warn(char *__buf) __asm__ ("""getwd") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("please use getcwd instead, as getwd ""doesn't specify buffer size")));
   1.649 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) getwd(char *__buf)
   1.650 +static __inline __attribute__((always_inline)) int get_cabac_bypass_sign(CABACContext *c, int val)
   1.651  {
   1.652 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.653 -        return __getwd_chk(__buf, __builtin_object_size(__buf, 2 > 1));
   1.654 -    return __getwd_warn(__buf);
   1.655 +  int range;
   1.656 +  int mask;
   1.657 +  (*c).low += (*c).low;
   1.658 +  if (!((*c).low & ((1 << 16) - 1)))
   1.659 +    {
   1.660 +      refill(c);
   1.661 +    }
   1.662 +  range = (*c).range << (16 + 1);
   1.663 +  (*c).low -= range;
   1.664 +  mask = (*c).low >> 31;
   1.665 +  range &= mask;
   1.666 +  (*c).low += range;
   1.667 +  return (val ^ mask) - mask;
   1.668  }
   1.669 -extern size_t __confstr_chk(int __name, char *__buf, size_t __len, size_t __buflen) __attribute__((__nothrow__, __leaf__));
   1.670 -extern size_t __confstr_alias(int __name, char *__buf, size_t __len) __asm__ ("""confstr") __attribute__((__nothrow__, __leaf__));
   1.671 -extern size_t __confstr_chk_warn(int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("""__confstr_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("confstr called with bigger length than size of destination ""buffer")));
   1.672 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) confstr(int __name, char *__buf, size_t __len)
   1.673 +static __attribute__((unused)) int get_cabac_terminate(CABACContext *c)
   1.674  {
   1.675 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.676 +  (*c).range -= 2;
   1.677 +  if ((*c).low < (*c).range << (16 + 1))
   1.678      {
   1.679 -        if (!__builtin_constant_p(__len))
   1.680 -            return __confstr_chk(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1));
   1.681 -        if (__builtin_object_size(__buf, 2 > 1) < __len)
   1.682 -            return __confstr_chk_warn(__name, __buf, __len, __builtin_object_size(__buf, 2 > 1));
   1.683 +      {
   1.684 +        renorm_cabac_decoder_once(c);
   1.685 +        return 0;
   1.686 +      }
   1.687      }
   1.688 -    return __confstr_alias(__name, __buf, __len);
   1.689 +  else
   1.690 +    {
   1.691 +      {
   1.692 +        return (*c).bytestream - (*c).bytestream_start;
   1.693 +      }
   1.694 +    }
   1.695  }
   1.696 -extern int __getgroups_chk(int __size, __gid_t __list[], size_t __listlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.697 -extern int __getgroups_alias(int __size, __gid_t __list[]) __asm__ ("""getgroups") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.698 -extern int __getgroups_chk_warn(int __size, __gid_t __list[], size_t __listlen) __asm__ ("""__getgroups_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getgroups called with bigger group count than what ""can fit into destination buffer")));
   1.699 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getgroups(int __size, __gid_t __list[])
   1.700 +static __inline __attribute__((always_inline)) __attribute__((const)) uint16_t bswap_16(uint16_t x)
   1.701  {
   1.702 -    if (__builtin_object_size(__list, 2 > 1) != (size_t) - 1)
   1.703 +  __asm__ ("rorw $8, %0" : "+r"(x) : );
   1.704 +  return x;
   1.705 +}
   1.706 +static __inline __attribute__((always_inline)) __attribute__((const)) uint32_t bswap_32(uint32_t x)
   1.707 +{
   1.708 +  __asm__ ("bswap   %0" : "+r"(x) : );
   1.709 +  return x;
   1.710 +}
   1.711 +typedef unsigned long int uint64_t;
   1.712 +static __inline __attribute__((const)) uint64_t bswap_64(uint64_t x)
   1.713 +{
   1.714 +  __asm__ ("bswap  %0" : "=r"(x) : "0"(x));
   1.715 +  return x;
   1.716 +}
   1.717 +extern const uint8_t ff_log2_tab[256];
   1.718 +static __inline __attribute__((const)) int av_log2_c(unsigned int v)
   1.719 +{
   1.720 +  int n = 0;
   1.721 +  if (v & 4294901760U)
   1.722      {
   1.723 -        if (!__builtin_constant_p(__size) || __size < 0)
   1.724 -            return __getgroups_chk(__size, __list, __builtin_object_size(__list, 2 > 1));
   1.725 -        if (__size * sizeof(__gid_t) > __builtin_object_size(__list, 2 > 1))
   1.726 -            return __getgroups_chk_warn(__size, __list, __builtin_object_size(__list, 2 > 1));
   1.727 +      {
   1.728 +        v >>= 16;
   1.729 +        n += 16;
   1.730 +      }
   1.731      }
   1.732 -    return __getgroups_alias(__size, __list);
   1.733 +  if (v & 65280)
   1.734 +    {
   1.735 +      {
   1.736 +        v >>= 8;
   1.737 +        n += 8;
   1.738 +      }
   1.739 +    }
   1.740 +  n += ff_log2_tab[v];
   1.741 +  return n;
   1.742  }
   1.743 -extern int __ttyname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
   1.744 -extern int __ttyname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ttyname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
   1.745 -extern int __ttyname_r_chk_warn(int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__ttyname_r_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warning__("ttyname_r called with bigger buflen than ""size of destination buffer")));
   1.746 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ttyname_r(int __fd, char *__buf, size_t __buflen)
   1.747 +static __inline __attribute__((const)) int av_log2_16bit_c(unsigned int v)
   1.748  {
   1.749 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.750 +  int n = 0;
   1.751 +  if (v & 65280)
   1.752      {
   1.753 -        if (!__builtin_constant_p(__buflen))
   1.754 -            return __ttyname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.755 -        if (__buflen > __builtin_object_size(__buf, 2 > 1))
   1.756 -            return __ttyname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.757 +      {
   1.758 +        v >>= 8;
   1.759 +        n += 8;
   1.760 +      }
   1.761      }
   1.762 -    return __ttyname_r_alias(__fd, __buf, __buflen);
   1.763 +  n += ff_log2_tab[v];
   1.764 +  return n;
   1.765  }
   1.766 -extern int __getlogin_r_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nonnull__(1)));
   1.767 -extern int __getlogin_r_alias(char *__buf, size_t __buflen) __asm__ ("""getlogin_r") __attribute__((__nonnull__(1)));
   1.768 -extern int __getlogin_r_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__getlogin_r_chk") __attribute__((__nonnull__(1))) __attribute__((__warning__("getlogin_r called with bigger buflen than ""size of destination buffer")));
   1.769 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int getlogin_r(char *__buf, size_t __buflen)
   1.770 +static __inline __attribute__((const)) int av_clip(int a, int amin, int amax)
   1.771  {
   1.772 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.773 +  if (a < amin)
   1.774      {
   1.775 -        if (!__builtin_constant_p(__buflen))
   1.776 -            return __getlogin_r_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.777 -        if (__buflen > __builtin_object_size(__buf, 2 > 1))
   1.778 -            return __getlogin_r_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.779 +      return amin;
   1.780      }
   1.781 -    return __getlogin_r_alias(__buf, __buflen);
   1.782 +  else
   1.783 +    {
   1.784 +      if (a > amax)
   1.785 +        {
   1.786 +          return amax;
   1.787 +        }
   1.788 +      else
   1.789 +        {
   1.790 +          return a;
   1.791 +        }
   1.792 +    }
   1.793  }
   1.794 -extern int __gethostname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.795 -extern int __gethostname_alias(char *__buf, size_t __buflen) __asm__ ("""gethostname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
   1.796 -extern int __gethostname_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__gethostname_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warning__("gethostname called with bigger buflen than ""size of destination buffer")));
   1.797 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) gethostname(char *__buf, size_t __buflen)
   1.798 +static __inline __attribute__((const)) uint8_t av_clip_uint8(int a)
   1.799  {
   1.800 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.801 +  if (a & ~255)
   1.802      {
   1.803 -        if (!__builtin_constant_p(__buflen))
   1.804 -            return __gethostname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.805 -        if (__buflen > __builtin_object_size(__buf, 2 > 1))
   1.806 -            return __gethostname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.807 +      return  -a >> 31;
   1.808      }
   1.809 -    return __gethostname_alias(__buf, __buflen);
   1.810 +  else
   1.811 +    {
   1.812 +      return a;
   1.813 +    }
   1.814  }
   1.815 -extern int __getdomainname_chk(char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.816 -extern int __getdomainname_alias(char *__buf, size_t __buflen) __asm__ ("""getdomainname") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
   1.817 -extern int __getdomainname_chk_warn(char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__getdomainname_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__)) __attribute__((__warning__("getdomainname called with bigger ""buflen than size of destination ""buffer")));
   1.818 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) getdomainname(char *__buf, size_t __buflen)
   1.819 +static __inline __attribute__((const)) uint16_t av_clip_uint16(int a)
   1.820  {
   1.821 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
   1.822 +  if (a & ~65535)
   1.823      {
   1.824 -        if (!__builtin_constant_p(__buflen))
   1.825 -            return __getdomainname_chk(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.826 -        if (__buflen > __builtin_object_size(__buf, 2 > 1))
   1.827 -            return __getdomainname_chk_warn(__buf, __buflen, __builtin_object_size(__buf, 2 > 1));
   1.828 +      return  -a >> 31;
   1.829      }
   1.830 -    return __getdomainname_alias(__buf, __buflen);
   1.831 +  else
   1.832 +    {
   1.833 +      return a;
   1.834 +    }
   1.835  }
   1.836 -struct _IO_FILE;
   1.837 -typedef struct _IO_FILE FILE;
   1.838 -typedef struct _IO_FILE __FILE;
   1.839 -typedef struct 
   1.840 +typedef short int int16_t;
   1.841 +static __inline __attribute__((const)) int16_t av_clip_int16(int a)
   1.842  {
   1.843 -        int __count;
   1.844 -        union 
   1.845 -        {
   1.846 -                unsigned int __wch;
   1.847 -                char __wchb[4];
   1.848 -        } __value;
   1.849 -} __mbstate_t;
   1.850 -typedef struct 
   1.851 -{
   1.852 -        __off_t __pos;
   1.853 -        __mbstate_t __state;
   1.854 -} _G_fpos_t;
   1.855 -typedef struct 
   1.856 -{
   1.857 -        __off64_t __pos;
   1.858 -        __mbstate_t __state;
   1.859 -} _G_fpos64_t;
   1.860 -typedef int _G_int16_t __attribute__((__mode__(__HI__)));
   1.861 -typedef int _G_int32_t __attribute__((__mode__(__SI__)));
   1.862 -typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__)));
   1.863 -typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__)));
   1.864 -typedef __builtin_va_list __gnuc_va_list;
   1.865 -struct _IO_jump_t;
   1.866 -struct _IO_FILE;
   1.867 -typedef void _IO_lock_t;
   1.868 -struct _IO_marker
   1.869 -{
   1.870 -        struct _IO_marker *_next;
   1.871 -        struct _IO_FILE *_sbuf;
   1.872 -        int _pos;
   1.873 -};
   1.874 -enum __codecvt_result
   1.875 -{
   1.876 -    __codecvt_ok, 
   1.877 -    __codecvt_partial, 
   1.878 -    __codecvt_error, 
   1.879 -    __codecvt_noconv
   1.880 -};
   1.881 -struct _IO_FILE
   1.882 -{
   1.883 -        int _flags;
   1.884 -        char *_IO_read_ptr;
   1.885 -        char *_IO_read_end;
   1.886 -        char *_IO_read_base;
   1.887 -        char *_IO_write_base;
   1.888 -        char *_IO_write_ptr;
   1.889 -        char *_IO_write_end;
   1.890 -        char *_IO_buf_base;
   1.891 -        char *_IO_buf_end;
   1.892 -        char *_IO_save_base;
   1.893 -        char *_IO_backup_base;
   1.894 -        char *_IO_save_end;
   1.895 -        struct _IO_marker *_markers;
   1.896 -        struct _IO_FILE *_chain;
   1.897 -        int _fileno;
   1.898 -        int _flags2;
   1.899 -        __off_t _old_offset;
   1.900 -        unsigned short _cur_column;
   1.901 -        signed char _vtable_offset;
   1.902 -        char _shortbuf[1];
   1.903 -        _IO_lock_t *_lock;
   1.904 -        __off64_t _offset;
   1.905 -        void *__pad1;
   1.906 -        void *__pad2;
   1.907 -        void *__pad3;
   1.908 -        void *__pad4;
   1.909 -        size_t __pad5;
   1.910 -        int _mode;
   1.911 -        char _unused2[15 * sizeof(int) - 4 * sizeof(void *) - sizeof(size_t)];
   1.912 -};
   1.913 -typedef struct _IO_FILE _IO_FILE;
   1.914 -struct _IO_FILE_plus;
   1.915 -extern struct _IO_FILE_plus _IO_2_1_stdin_;
   1.916 -extern struct _IO_FILE_plus _IO_2_1_stdout_;
   1.917 -extern struct _IO_FILE_plus _IO_2_1_stderr_;
   1.918 -typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __nbytes);
   1.919 -typedef __ssize_t __io_write_fn(void *__cookie, __const char *__buf, size_t __n);
   1.920 -typedef int __io_seek_fn(void *__cookie, __off64_t *__pos, int __w);
   1.921 -typedef int __io_close_fn(void *__cookie);
   1.922 -extern int __underflow(_IO_FILE *);
   1.923 -extern int __uflow(_IO_FILE *);
   1.924 -extern int __overflow(_IO_FILE *, int);
   1.925 -extern int _IO_getc(_IO_FILE *__fp);
   1.926 -extern int _IO_putc(int __c, _IO_FILE *__fp);
   1.927 -extern int _IO_feof(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__));
   1.928 -extern int _IO_ferror(_IO_FILE *__fp) __attribute__((__nothrow__, __leaf__));
   1.929 -extern int _IO_peekc_locked(_IO_FILE *__fp);
   1.930 -extern void _IO_flockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
   1.931 -extern void _IO_funlockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
   1.932 -extern int _IO_ftrylockfile(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
   1.933 -extern int _IO_vfscanf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list, int *__restrict );
   1.934 -extern int _IO_vfprintf(_IO_FILE *__restrict , const char *__restrict , __gnuc_va_list);
   1.935 -extern __ssize_t _IO_padn(_IO_FILE *, int, __ssize_t);
   1.936 -extern size_t _IO_sgetn(_IO_FILE *, void *, size_t);
   1.937 -extern __off64_t _IO_seekoff(_IO_FILE *, __off64_t, int, int);
   1.938 -extern __off64_t _IO_seekpos(_IO_FILE *, __off64_t, int);
   1.939 -extern void _IO_free_backup_area(_IO_FILE *) __attribute__((__nothrow__, __leaf__));
   1.940 -typedef __gnuc_va_list va_list;
   1.941 -typedef _G_fpos_t fpos_t;
   1.942 -extern struct _IO_FILE *stdin;
   1.943 -extern struct _IO_FILE *stdout;
   1.944 -extern struct _IO_FILE *stderr;
   1.945 -extern int remove(__const char *__filename) __attribute__((__nothrow__, __leaf__));
   1.946 -extern int rename(__const char *__old, __const char *__new) __attribute__((__nothrow__, __leaf__));
   1.947 -extern int renameat(int __oldfd, __const char *__old, int __newfd, __const char *__new) __attribute__((__nothrow__, __leaf__));
   1.948 -extern FILE *tmpfile(void) __attribute__((__warn_unused_result__));
   1.949 -extern char *tmpnam(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.950 -extern char *tmpnam_r(char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.951 -extern char *tempnam(__const char *__dir, __const char *__pfx) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
   1.952 -extern int fclose(FILE *__stream);
   1.953 -extern int fflush(FILE *__stream);
   1.954 -extern int fflush_unlocked(FILE *__stream);
   1.955 -extern FILE *fopen(__const char *__restrict __filename, __const char *__restrict __modes) __attribute__((__warn_unused_result__));
   1.956 -extern FILE *freopen(__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
   1.957 -extern FILE *fdopen(int __fd, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.958 -extern FILE *fmemopen(void *__s, size_t __len, __const char *__modes) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.959 -extern FILE *open_memstream(char **__bufloc, size_t *__sizeloc) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
   1.960 -extern void setbuf(FILE *__restrict __stream, char *__restrict __buf) __attribute__((__nothrow__, __leaf__));
   1.961 -extern int setvbuf(FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __attribute__((__nothrow__, __leaf__));
   1.962 -extern void setbuffer(FILE *__restrict __stream, char *__restrict __buf, size_t __size) __attribute__((__nothrow__, __leaf__));
   1.963 -extern void setlinebuf(FILE *__stream) __attribute__((__nothrow__, __leaf__));
   1.964 -extern int fprintf(FILE *__restrict __stream, __const char *__restrict __format, ...);
   1.965 -extern int printf(__const char *__restrict __format, ...);
   1.966 -extern int sprintf(char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__));
   1.967 -extern int vfprintf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg);
   1.968 -extern int vprintf(__const char *__restrict __format, __gnuc_va_list __arg);
   1.969 -extern int vsprintf(char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__));
   1.970 -extern int snprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 4)));
   1.971 -extern int vsnprintf(char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__)) __attribute__((__format__(__printf__, 3, 0)));
   1.972 -extern int vdprintf(int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__((__format__(__printf__, 2, 0)));
   1.973 -extern int dprintf(int __fd, __const char *__restrict __fmt, ...) __attribute__((__format__(__printf__, 2, 3)));
   1.974 -extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __attribute__((__warn_unused_result__));
   1.975 -extern int scanf(__const char *__restrict __format, ...) __attribute__((__warn_unused_result__));
   1.976 -extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__));
   1.977 -extern int fscanf(FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("""__isoc99_fscanf") __attribute__((__warn_unused_result__));
   1.978 -extern int scanf(__const char *__restrict __format, ...) __asm__ ("""__isoc99_scanf") __attribute__((__warn_unused_result__));
   1.979 -extern int sscanf(__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("""__isoc99_sscanf") __attribute__((__nothrow__, __leaf__));
   1.980 -extern int vfscanf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 2, 0))) __attribute__((__warn_unused_result__));
   1.981 -extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__));
   1.982 -extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0)));
   1.983 -extern int vfscanf(FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vfscanf") __attribute__((__format__(__scanf__, 2, 0))) __attribute__((__warn_unused_result__));
   1.984 -extern int vscanf(__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vscanf") __attribute__((__format__(__scanf__, 1, 0))) __attribute__((__warn_unused_result__));
   1.985 -extern int vsscanf(__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("""__isoc99_vsscanf") __attribute__((__nothrow__, __leaf__)) __attribute__((__format__(__scanf__, 2, 0)));
   1.986 -extern int fgetc(FILE *__stream);
   1.987 -extern int getc(FILE *__stream);
   1.988 -extern int getchar(void);
   1.989 -extern int getc_unlocked(FILE *__stream);
   1.990 -extern int getchar_unlocked(void);
   1.991 -extern int fgetc_unlocked(FILE *__stream);
   1.992 -extern int fputc(int __c, FILE *__stream);
   1.993 -extern int putc(int __c, FILE *__stream);
   1.994 -extern int putchar(int __c);
   1.995 -extern int fputc_unlocked(int __c, FILE *__stream);
   1.996 -extern int putc_unlocked(int __c, FILE *__stream);
   1.997 -extern int putchar_unlocked(int __c);
   1.998 -extern int getw(FILE *__stream);
   1.999 -extern int putw(int __w, FILE *__stream);
  1.1000 -extern char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1001 -extern char *gets(char *__s) __attribute__((__warn_unused_result__));
  1.1002 -extern __ssize_t __getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1003 -extern __ssize_t getdelim(char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1004 -extern __ssize_t getline(char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1005 -extern int fputs(__const char *__restrict __s, FILE *__restrict __stream);
  1.1006 -extern int puts(__const char *__s);
  1.1007 -extern int ungetc(int __c, FILE *__stream);
  1.1008 -extern size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1009 -extern size_t fwrite(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s);
  1.1010 -extern size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1011 -extern size_t fwrite_unlocked(__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream);
  1.1012 -extern int fseek(FILE *__stream, long int __off, int __whence);
  1.1013 -extern long int ftell(FILE *__stream) __attribute__((__warn_unused_result__));
  1.1014 -extern void rewind(FILE *__stream);
  1.1015 -extern int fseeko(FILE *__stream, __off_t __off, int __whence);
  1.1016 -extern __off_t ftello(FILE *__stream) __attribute__((__warn_unused_result__));
  1.1017 -extern int fgetpos(FILE *__restrict __stream, fpos_t *__restrict __pos);
  1.1018 -extern int fsetpos(FILE *__stream, __const fpos_t *__pos);
  1.1019 -extern void clearerr(FILE *__stream) __attribute__((__nothrow__, __leaf__));
  1.1020 -extern int feof(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1021 -extern int ferror(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1022 -extern void clearerr_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__));
  1.1023 -extern int feof_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1024 -extern int ferror_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1025 -extern void perror(__const char *__s);
  1.1026 -extern int sys_nerr;
  1.1027 -extern __const char *__const sys_errlist[];
  1.1028 -extern int fileno(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1029 -extern int fileno_unlocked(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1030 -extern FILE *popen(__const char *__command, __const char *__modes) __attribute__((__warn_unused_result__));
  1.1031 -extern int pclose(FILE *__stream);
  1.1032 -extern char *ctermid(char *__s) __attribute__((__nothrow__, __leaf__));
  1.1033 -extern void flockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__));
  1.1034 -extern int ftrylockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1035 -extern void funlockfile(FILE *__stream) __attribute__((__nothrow__, __leaf__));
  1.1036 -extern __inline __attribute__((__gnu_inline__)) int getchar(void)
  1.1037 -{
  1.1038 -    return _IO_getc(stdin);
  1.1039 +  if ((a + 32768) & ~65535)
  1.1040 +    {
  1.1041 +      return a >> 31 ^ 32767;
  1.1042 +    }
  1.1043 +  else
  1.1044 +    {
  1.1045 +      return a;
  1.1046 +    }
  1.1047  }
  1.1048 -extern __inline __attribute__((__gnu_inline__)) int fgetc_unlocked(FILE *__fp)
  1.1049 -{
  1.1050 -    return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
  1.1051 -}
  1.1052 -extern __inline __attribute__((__gnu_inline__)) int getc_unlocked(FILE *__fp)
  1.1053 -{
  1.1054 -    return (__builtin_expect(((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow(__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
  1.1055 -}
  1.1056 -extern __inline __attribute__((__gnu_inline__)) int getchar_unlocked(void)
  1.1057 -{
  1.1058 -    return (__builtin_expect(((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow(stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
  1.1059 -}
  1.1060 -extern __inline __attribute__((__gnu_inline__)) int putchar(int __c)
  1.1061 -{
  1.1062 -    return _IO_putc(__c, stdout);
  1.1063 -}
  1.1064 -extern __inline __attribute__((__gnu_inline__)) int fputc_unlocked(int __c, FILE *__stream)
  1.1065 -{
  1.1066 -    return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
  1.1067 -}
  1.1068 -extern __inline __attribute__((__gnu_inline__)) int putc_unlocked(int __c, FILE *__stream)
  1.1069 -{
  1.1070 -    return (__builtin_expect(((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow(__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
  1.1071 -}
  1.1072 -extern __inline __attribute__((__gnu_inline__)) int putchar_unlocked(int __c)
  1.1073 -{
  1.1074 -    return (__builtin_expect(((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow(stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
  1.1075 -}
  1.1076 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) feof_unlocked(FILE *__stream)
  1.1077 -{
  1.1078 -    return (((__stream)->_flags & 0x10) != 0);
  1.1079 -}
  1.1080 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) ferror_unlocked(FILE *__stream)
  1.1081 -{
  1.1082 -    return (((__stream)->_flags & 0x20) != 0);
  1.1083 -}
  1.1084 -extern int __sprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__));
  1.1085 -extern int __vsprintf_chk(char *__restrict __s, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__((__nothrow__, __leaf__));
  1.1086 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) sprintf(char *__restrict __s, __const char *__restrict __fmt, ...)
  1.1087 -{
  1.1088 -    return __builtin___sprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack());
  1.1089 -}
  1.1090 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) vsprintf(char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
  1.1091 -{
  1.1092 -    return __builtin___vsprintf_chk(__s, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap);
  1.1093 -}
  1.1094 -extern int __snprintf_chk(char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, ...) __attribute__((__nothrow__, __leaf__));
  1.1095 -extern int __vsnprintf_chk(char *__restrict __s, size_t __n, int __flag, size_t __slen, __const char *__restrict __format, __gnuc_va_list __ap) __attribute__((__nothrow__, __leaf__));
  1.1096 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) snprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
  1.1097 -{
  1.1098 -    return __builtin___snprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __builtin_va_arg_pack());
  1.1099 -}
  1.1100 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) vsnprintf(char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
  1.1101 -{
  1.1102 -    return __builtin___vsnprintf_chk(__s, __n, 2 - 1, __builtin_object_size(__s, 2 > 1), __fmt, __ap);
  1.1103 -}
  1.1104 -extern int __fprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, ...);
  1.1105 -extern int __printf_chk(int __flag, __const char *__restrict __format, ...);
  1.1106 -extern int __vfprintf_chk(FILE *__restrict __stream, int __flag, __const char *__restrict __format, __gnuc_va_list __ap);
  1.1107 -extern int __vprintf_chk(int __flag, __const char *__restrict __format, __gnuc_va_list __ap);
  1.1108 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int fprintf(FILE *__restrict __stream, __const char *__restrict __fmt, ...)
  1.1109 -{
  1.1110 -    return __fprintf_chk(__stream, 2 - 1, __fmt, __builtin_va_arg_pack());
  1.1111 -}
  1.1112 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int printf(__const char *__restrict __fmt, ...)
  1.1113 -{
  1.1114 -    return __printf_chk(2 - 1, __fmt, __builtin_va_arg_pack());
  1.1115 -}
  1.1116 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vprintf(__const char *__restrict __fmt, __gnuc_va_list __ap)
  1.1117 -{
  1.1118 -    return __vfprintf_chk(stdout, 2 - 1, __fmt, __ap);
  1.1119 -}
  1.1120 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int vfprintf(FILE *__restrict __stream, __const char *__restrict __fmt, __gnuc_va_list __ap)
  1.1121 -{
  1.1122 -    return __vfprintf_chk(__stream, 2 - 1, __fmt, __ap);
  1.1123 -}
  1.1124 -extern char *__gets_chk(char *__str, size_t) __attribute__((__warn_unused_result__));
  1.1125 -extern char *__gets_warn(char *__str) __asm__ ("""gets") __attribute__((__warn_unused_result__)) __attribute__((__warning__("please use fgets or getline instead, gets can't ""specify buffer size")));
  1.1126 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *gets(char *__str)
  1.1127 -{
  1.1128 -    if (__builtin_object_size(__str, 2 > 1) != (size_t) - 1)
  1.1129 -        return __gets_chk(__str, __builtin_object_size(__str, 2 > 1));
  1.1130 -    return __gets_warn(__str);
  1.1131 -}
  1.1132 -extern char *__fgets_chk(char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1133 -extern char *__fgets_alias(char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("""fgets") __attribute__((__warn_unused_result__));
  1.1134 -extern char *__fgets_chk_warn(char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("""__fgets_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("fgets called with bigger size than length ""of destination buffer")));
  1.1135 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *fgets(char *__restrict __s, int __n, FILE *__restrict __stream)
  1.1136 -{
  1.1137 -    if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1)
  1.1138 -    {
  1.1139 -        if (!__builtin_constant_p(__n) || __n <= 0)
  1.1140 -            return __fgets_chk(__s, __builtin_object_size(__s, 2 > 1), __n, __stream);
  1.1141 -        if ((size_t) __n > __builtin_object_size(__s, 2 > 1))
  1.1142 -            return __fgets_chk_warn(__s, __builtin_object_size(__s, 2 > 1), __n, __stream);
  1.1143 -    }
  1.1144 -    return __fgets_alias(__s, __n, __stream);
  1.1145 -}
  1.1146 -extern size_t __fread_chk(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1147 -extern size_t __fread_alias(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""fread") __attribute__((__warn_unused_result__));
  1.1148 -extern size_t __fread_chk_warn(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""__fread_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("fread called with bigger size * nmemb than length ""of destination buffer")));
  1.1149 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream)
  1.1150 -{
  1.1151 -    if (__builtin_object_size(__ptr, 0) != (size_t) - 1)
  1.1152 -    {
  1.1153 -        if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2)))
  1.1154 -            return __fread_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
  1.1155 -        if (__size * __n > __builtin_object_size(__ptr, 0))
  1.1156 -            return __fread_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
  1.1157 -    }
  1.1158 -    return __fread_alias(__ptr, __size, __n, __stream);
  1.1159 -}
  1.1160 -extern size_t __fread_unlocked_chk(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __attribute__((__warn_unused_result__));
  1.1161 -extern size_t __fread_unlocked_alias(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""fread_unlocked") __attribute__((__warn_unused_result__));
  1.1162 -extern size_t __fread_unlocked_chk_warn(void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("""__fread_unlocked_chk") __attribute__((__warn_unused_result__)) __attribute__((__warning__("fread_unlocked called with bigger size * nmemb than ""length of destination buffer")));
  1.1163 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) size_t fread_unlocked(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream)
  1.1164 -{
  1.1165 -    if (__builtin_object_size(__ptr, 0) != (size_t) - 1)
  1.1166 -    {
  1.1167 -        if (!__builtin_constant_p(__size) || !__builtin_constant_p(__n) || (__size | __n) >= (((size_t) 1) << (8 * sizeof(size_t) / 2)))
  1.1168 -            return __fread_unlocked_chk(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
  1.1169 -        if (__size * __n > __builtin_object_size(__ptr, 0))
  1.1170 -            return __fread_unlocked_chk_warn(__ptr, __builtin_object_size(__ptr, 0), __size, __n, __stream);
  1.1171 -    }
  1.1172 -    if (__builtin_constant_p(__size) && __builtin_constant_p(__n) && (__size | __n) < (((size_t) 1) << (8 * sizeof(size_t) / 2)) && __size * __n <= 8)
  1.1173 -    {
  1.1174 -        size_t __cnt = __size * __n;
  1.1175 -        char *__cptr = (char *) __ptr;
  1.1176 -        if (__cnt == 0)
  1.1177 -            return 0;
  1.1178 -        for (;
  1.1179 -            __cnt > 0;
  1.1180 -            --__cnt)
  1.1181 -        {
  1.1182 -            int __c = (__builtin_expect(((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow(__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
  1.1183 -            if (__c == (- 1))
  1.1184 -                break;
  1.1185 -            *__cptr++ = __c;
  1.1186 -        }
  1.1187 -        return (__cptr - (char *) __ptr) / __size;
  1.1188 -    }
  1.1189 -    return __fread_unlocked_alias(__ptr, __size, __n, __stream);
  1.1190 -}
  1.1191 -typedef signed char int8_t;
  1.1192 -typedef short int int16_t;
  1.1193  typedef int int32_t;
  1.1194  typedef long int int64_t;
  1.1195 -typedef unsigned char uint8_t;
  1.1196 -typedef unsigned short int uint16_t;
  1.1197 -typedef unsigned int uint32_t;
  1.1198 -typedef unsigned long int uint64_t;
  1.1199 -typedef signed char int_least8_t;
  1.1200 -typedef short int int_least16_t;
  1.1201 -typedef int int_least32_t;
  1.1202 -typedef long int int_least64_t;
  1.1203 -typedef unsigned char uint_least8_t;
  1.1204 -typedef unsigned short int uint_least16_t;
  1.1205 -typedef unsigned int uint_least32_t;
  1.1206 -typedef unsigned long int uint_least64_t;
  1.1207 -typedef signed char int_fast8_t;
  1.1208 -typedef long int int_fast16_t;
  1.1209 -typedef long int int_fast32_t;
  1.1210 -typedef long int int_fast64_t;
  1.1211 -typedef unsigned char uint_fast8_t;
  1.1212 -typedef unsigned long int uint_fast16_t;
  1.1213 -typedef unsigned long int uint_fast32_t;
  1.1214 -typedef unsigned long int uint_fast64_t;
  1.1215 -typedef unsigned long int uintptr_t;
  1.1216 -typedef long int intmax_t;
  1.1217 -typedef unsigned long int uintmax_t;
  1.1218 -typedef long int ptrdiff_t;
  1.1219 -typedef int wchar_t;
  1.1220 -typedef struct 
  1.1221 +static __inline __attribute__((const)) int32_t av_clipl_int32(int64_t a)
  1.1222  {
  1.1223 -        void **address;
  1.1224 -        ptrdiff_t offset;
  1.1225 -        struct 
  1.1226 -        {
  1.1227 -                _Bool input : 1;
  1.1228 -                _Bool output : 1;
  1.1229 -                _Bool can_rename : 1;
  1.1230 -                _Bool commutative : 1;
  1.1231 -        } flags;
  1.1232 -        size_t size;
  1.1233 -} nanos_dependence_internal_t;
  1.1234 -typedef enum 
  1.1235 -{
  1.1236 -    NANOS_PRIVATE, 
  1.1237 -    NANOS_SHARED
  1.1238 -} nanos_sharing_t;
  1.1239 -typedef struct 
  1.1240 -{
  1.1241 -        void *original;
  1.1242 -        void *privates;
  1.1243 -        void (*bop)(void *, void *);
  1.1244 -        void (*vop)(int n, void *, void *);
  1.1245 -        void (*cleanup)(void *);
  1.1246 -} nanos_reduction_t;
  1.1247 -typedef struct 
  1.1248 -{
  1.1249 -        uint64_t address;
  1.1250 -        nanos_sharing_t sharing;
  1.1251 -        struct 
  1.1252 -        {
  1.1253 -                _Bool input : 1;
  1.1254 -                _Bool output : 1;
  1.1255 -        } flags;
  1.1256 -        size_t size;
  1.1257 -} nanos_copy_data_internal_t;
  1.1258 -typedef nanos_dependence_internal_t nanos_dependence_t;
  1.1259 -typedef nanos_copy_data_internal_t nanos_copy_data_t;
  1.1260 -typedef void *nanos_thread_t;
  1.1261 -typedef void *nanos_wd_t;
  1.1262 -typedef struct 
  1.1263 -{
  1.1264 -        int nsect;
  1.1265 -        nanos_wd_t lwd[];
  1.1266 -} nanos_compound_wd_data_t;
  1.1267 -typedef struct 
  1.1268 -{
  1.1269 -        int n;
  1.1270 -} nanos_repeat_n_info_t;
  1.1271 -typedef struct 
  1.1272 -{
  1.1273 -        int lower;
  1.1274 -        int upper;
  1.1275 -        int step;
  1.1276 -        _Bool last;
  1.1277 -        int chunk;
  1.1278 -        int stride;
  1.1279 -        int thid;
  1.1280 -        void *args;
  1.1281 -} nanos_loop_info_t;
  1.1282 -typedef void *nanos_ws_t;
  1.1283 -typedef void *nanos_ws_info_t;
  1.1284 -typedef void *nanos_ws_data_t;
  1.1285 -typedef void *nanos_ws_item_t;
  1.1286 -typedef struct 
  1.1287 -{
  1.1288 -        int lower_bound;
  1.1289 -        int upper_bound;
  1.1290 -        int loop_step;
  1.1291 -        int chunk_size;
  1.1292 -} nanos_ws_info_loop_t;
  1.1293 -typedef struct 
  1.1294 -{
  1.1295 -        int lower;
  1.1296 -        int upper;
  1.1297 -        _Bool execute : 1;
  1.1298 -        _Bool last : 1;
  1.1299 -} nanos_ws_item_loop_t;
  1.1300 -typedef struct nanos_ws_desc
  1.1301 -{
  1.1302 -        volatile nanos_ws_t ws;
  1.1303 -        nanos_ws_data_t data;
  1.1304 -        struct nanos_ws_desc *next;
  1.1305 -        nanos_thread_t *threads;
  1.1306 -        int nths;
  1.1307 -} nanos_ws_desc_t;
  1.1308 -typedef struct 
  1.1309 -{
  1.1310 -        _Bool mandatory_creation : 1;
  1.1311 -        _Bool tied : 1;
  1.1312 -        _Bool reserved0 : 1;
  1.1313 -        _Bool reserved1 : 1;
  1.1314 -        _Bool reserved2 : 1;
  1.1315 -        _Bool reserved3 : 1;
  1.1316 -        _Bool reserved4 : 1;
  1.1317 -        _Bool reserved5 : 1;
  1.1318 -} nanos_wd_props_t;
  1.1319 -typedef struct 
  1.1320 -{
  1.1321 -        nanos_thread_t tie_to;
  1.1322 -        unsigned int priority;
  1.1323 -} nanos_wd_dyn_props_t;
  1.1324 -typedef struct 
  1.1325 -{
  1.1326 -        void *(*factory)(void *arg);
  1.1327 -        void *arg;
  1.1328 -} nanos_device_t;
  1.1329 -typedef enum 
  1.1330 -{
  1.1331 -    NANOS_STATE_START, 
  1.1332 -    NANOS_STATE_END, 
  1.1333 -    NANOS_SUBSTATE_START, 
  1.1334 -    NANOS_SUBSTATE_END, 
  1.1335 -    NANOS_BURST_START, 
  1.1336 -    NANOS_BURST_END, 
  1.1337 -    NANOS_PTP_START, 
  1.1338 -    NANOS_PTP_END, 
  1.1339 -    NANOS_POINT, 
  1.1340 -    EVENT_TYPES
  1.1341 -} nanos_event_type_t;
  1.1342 -typedef enum 
  1.1343 -{
  1.1344 -    NANOS_NOT_CREATED, 
  1.1345 -    NANOS_NOT_RUNNING, 
  1.1346 -    NANOS_STARTUP, 
  1.1347 -    NANOS_SHUTDOWN, 
  1.1348 -    NANOS_ERROR, 
  1.1349 -    NANOS_IDLE, 
  1.1350 -    NANOS_RUNTIME, 
  1.1351 -    NANOS_RUNNING, 
  1.1352 -    NANOS_SYNCHRONIZATION, 
  1.1353 -    NANOS_SCHEDULING, 
  1.1354 -    NANOS_CREATION, 
  1.1355 -    NANOS_MEM_TRANSFER_IN, 
  1.1356 -    NANOS_MEM_TRANSFER_OUT, 
  1.1357 -    NANOS_MEM_TRANSFER_LOCAL, 
  1.1358 -    NANOS_MEM_TRANSFER_DEVICE_IN, 
  1.1359 -    NANOS_MEM_TRANSFER_DEVICE_OUT, 
  1.1360 -    NANOS_MEM_TRANSFER_DEVICE_LOCAL, 
  1.1361 -    NANOS_CACHE, 
  1.1362 -    NANOS_YIELD, 
  1.1363 -    NANOS_ACQUIRING_LOCK, 
  1.1364 -    NANOS_CONTEXT_SWITCH, 
  1.1365 -    NANOS_DEBUG, 
  1.1366 -    NANOS_EVENT_STATE_TYPES
  1.1367 -} nanos_event_state_value_t;
  1.1368 -typedef enum 
  1.1369 -{
  1.1370 -    NANOS_WD_DOMAIN, 
  1.1371 -    NANOS_WD_DEPENDENCY, 
  1.1372 -    NANOS_WAIT, 
  1.1373 -    NANOS_WD_REMOTE, 
  1.1374 -    NANOS_XFER_PUT, 
  1.1375 -    NANOS_XFER_GET
  1.1376 -} nanos_event_domain_t;
  1.1377 -typedef long long nanos_event_id_t;
  1.1378 -typedef unsigned int nanos_event_key_t;
  1.1379 -typedef unsigned long long nanos_event_value_t;
  1.1380 -typedef struct 
  1.1381 -{
  1.1382 -        nanos_event_key_t key;
  1.1383 -        nanos_event_value_t value;
  1.1384 -} nanos_event_burst_t;
  1.1385 -typedef struct 
  1.1386 -{
  1.1387 -        nanos_event_state_value_t value;
  1.1388 -} nanos_event_state_t;
  1.1389 -typedef struct 
  1.1390 -{
  1.1391 -        unsigned int nkvs;
  1.1392 -        nanos_event_key_t *keys;
  1.1393 -        nanos_event_value_t *values;
  1.1394 -} nanos_event_point_t;
  1.1395 -typedef struct 
  1.1396 -{
  1.1397 -        nanos_event_domain_t domain;
  1.1398 -        nanos_event_id_t id;
  1.1399 -        unsigned int nkvs;
  1.1400 -        nanos_event_key_t *keys;
  1.1401 -        nanos_event_value_t *values;
  1.1402 -} nanos_event_ptp_t;
  1.1403 -typedef struct 
  1.1404 -{
  1.1405 -        nanos_event_type_t type;
  1.1406 -        union 
  1.1407 -        {
  1.1408 -                nanos_event_burst_t burst;
  1.1409 -                nanos_event_state_t state;
  1.1410 -                nanos_event_point_t point;
  1.1411 -                nanos_event_ptp_t ptp;
  1.1412 -        } info;
  1.1413 -} nanos_event_t;
  1.1414 -typedef enum 
  1.1415 -{
  1.1416 -    NANOS_LOCK_FREE = 0, 
  1.1417 -    NANOS_LOCK_BUSY = 1
  1.1418 -} nanos_lock_state_t;
  1.1419 -typedef struct nanos_lock_t
  1.1420 -{
  1.1421 -        volatile nanos_lock_state_t _state;
  1.1422 -} nanos_lock_t;
  1.1423 -typedef void (*nanos_translate_args_t)(void *, nanos_wd_t);
  1.1424 -typedef void (nanos_init_func_t)(void *);
  1.1425 -typedef struct 
  1.1426 -{
  1.1427 -        nanos_init_func_t *func;
  1.1428 -        void *data;
  1.1429 -} nanos_init_desc_t;
  1.1430 -typedef void *nanos_wg_t;
  1.1431 -typedef void *nanos_team_t;
  1.1432 -typedef void *nanos_sched_t;
  1.1433 -typedef void *nanos_slicer_t;
  1.1434 -typedef void *nanos_dd_t;
  1.1435 -typedef void *nanos_sync_cond_t;
  1.1436 -typedef unsigned int nanos_copy_id_t;
  1.1437 -typedef struct nanos_const_wd_definition_tag
  1.1438 -{
  1.1439 -        nanos_wd_props_t props;
  1.1440 -        size_t data_alignment;
  1.1441 -        size_t num_copies;
  1.1442 -        size_t num_devices;
  1.1443 -} nanos_const_wd_definition_t;
  1.1444 -typedef struct 
  1.1445 -{
  1.1446 -        int nthreads;
  1.1447 -        void *arch;
  1.1448 -} nanos_constraint_t;
  1.1449 -typedef enum 
  1.1450 -{
  1.1451 -    NANOS_OK = 0, 
  1.1452 -    NANOS_UNKNOWN_ERR, 
  1.1453 -    NANOS_UNIMPLEMENTED
  1.1454 -} nanos_err_t;
  1.1455 -typedef struct 
  1.1456 -{
  1.1457 -        void (*outline)(void *);
  1.1458 -} nanos_smp_args_t;
  1.1459 -extern nanos_wd_t nanos_current_wd_(void);
  1.1460 -extern nanos_wd_t nanos_current_wd(void);
  1.1461 -extern int nanos_get_wd_id_(nanos_wd_t wd);
  1.1462 -extern int nanos_get_wd_id(nanos_wd_t wd);
  1.1463 -extern nanos_slicer_t nanos_find_slicer_(const char *slicer);
  1.1464 -extern nanos_slicer_t nanos_find_slicer(const char *slicer);
  1.1465 -extern nanos_ws_t nanos_find_worksharing_(const char *label);
  1.1466 -extern nanos_ws_t nanos_find_worksharing(const char *label);
  1.1467 -extern nanos_err_t nanos_create_wd_compact_(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, nanos_wg_t wg, nanos_copy_data_t **copies);
  1.1468 -extern nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, nanos_wg_t wg, nanos_copy_data_t **copies);
  1.1469 -extern nanos_err_t nanos_set_translate_function_(nanos_wd_t wd, nanos_translate_args_t translate_args);
  1.1470 -extern nanos_err_t nanos_set_translate_function(nanos_wd_t wd, nanos_translate_args_t translate_args);
  1.1471 -extern nanos_err_t nanos_create_sliced_wd_(nanos_wd_t *uwd, size_t num_devices, nanos_device_t *devices, size_t outline_data_size, int outline_data_align, void **outline_data, nanos_wg_t uwg, nanos_slicer_t slicer, nanos_wd_props_t *props, nanos_wd_dyn_props_t *dyn_props, size_t num_copies, nanos_copy_data_t **copies);
  1.1472 -extern nanos_err_t nanos_create_sliced_wd(nanos_wd_t *uwd, size_t num_devices, nanos_device_t *devices, size_t outline_data_size, int outline_data_align, void **outline_data, nanos_wg_t uwg, nanos_slicer_t slicer, nanos_wd_props_t *props, nanos_wd_dyn_props_t *dyn_props, size_t num_copies, nanos_copy_data_t **copies);
  1.1473 -extern nanos_err_t nanos_submit_(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team);
  1.1474 -extern nanos_err_t nanos_submit(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team);
  1.1475 -extern nanos_err_t nanos_create_wd_and_run_compact_(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_deps, nanos_dependence_t *deps, nanos_copy_data_t *copies, nanos_translate_args_t translate_args);
  1.1476 -extern nanos_err_t nanos_create_wd_and_run_compact(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_deps, nanos_dependence_t *deps, nanos_copy_data_t *copies, nanos_translate_args_t translate_args);
  1.1477 -extern nanos_err_t nanos_create_for_(void);
  1.1478 -extern nanos_err_t nanos_create_for(void);
  1.1479 -extern nanos_err_t nanos_set_internal_wd_data_(nanos_wd_t wd, void *data);
  1.1480 -extern nanos_err_t nanos_set_internal_wd_data(nanos_wd_t wd, void *data);
  1.1481 -extern nanos_err_t nanos_get_internal_wd_data_(nanos_wd_t wd, void **data);
  1.1482 -extern nanos_err_t nanos_get_internal_wd_data(nanos_wd_t wd, void **data);
  1.1483 -extern nanos_err_t nanos_yield_(void);
  1.1484 -extern nanos_err_t nanos_yield(void);
  1.1485 -extern nanos_err_t nanos_slicer_get_specific_data_(nanos_slicer_t slicer, void **data);
  1.1486 -extern nanos_err_t nanos_slicer_get_specific_data(nanos_slicer_t slicer, void **data);
  1.1487 -extern nanos_err_t nanos_create_team_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, nanos_constraint_t *constraints, _Bool reuse, nanos_thread_t *info);
  1.1488 -extern nanos_err_t nanos_create_team(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, nanos_constraint_t *constraints, _Bool reuse, nanos_thread_t *info);
  1.1489 -extern nanos_err_t nanos_create_team_mapped_(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping);
  1.1490 -extern nanos_err_t nanos_create_team_mapped(nanos_team_t *team, nanos_sched_t sg, unsigned int *nthreads, unsigned int *mapping);
  1.1491 -extern nanos_err_t nanos_leave_team_();
  1.1492 -extern nanos_err_t nanos_leave_team();
  1.1493 -extern nanos_err_t nanos_end_team_(nanos_team_t team);
  1.1494 -extern nanos_err_t nanos_end_team(nanos_team_t team);
  1.1495 -extern nanos_err_t nanos_team_barrier_(void);
  1.1496 -extern nanos_err_t nanos_team_barrier(void);
  1.1497 -extern nanos_err_t nanos_single_guard_(_Bool *);
  1.1498 -extern nanos_err_t nanos_single_guard(_Bool *);
  1.1499 -extern nanos_err_t nanos_enter_sync_init_(_Bool *b);
  1.1500 -extern nanos_err_t nanos_enter_sync_init(_Bool *b);
  1.1501 -extern nanos_err_t nanos_wait_sync_init_(void);
  1.1502 -extern nanos_err_t nanos_wait_sync_init(void);
  1.1503 -extern nanos_err_t nanos_release_sync_init_(void);
  1.1504 -extern nanos_err_t nanos_release_sync_init(void);
  1.1505 -extern nanos_err_t nanos_team_get_num_starring_threads_(int *n);
  1.1506 -extern nanos_err_t nanos_team_get_num_starring_threads(int *n);
  1.1507 -extern nanos_err_t nanos_team_get_starring_threads_(int *n, nanos_thread_t *list_of_threads);
  1.1508 -extern nanos_err_t nanos_team_get_starring_threads(int *n, nanos_thread_t *list_of_threads);
  1.1509 -extern nanos_err_t nanos_team_get_num_supporting_threads_(int *n);
  1.1510 -extern nanos_err_t nanos_team_get_num_supporting_threads(int *n);
  1.1511 -extern nanos_err_t nanos_team_get_supporting_threads_(int *n, nanos_thread_t *list_of_threads);
  1.1512 -extern nanos_err_t nanos_team_get_supporting_threads(int *n, nanos_thread_t *list_of_threads);
  1.1513 -extern nanos_err_t nanos_register_reduction_(nanos_reduction_t *red);
  1.1514 -extern nanos_err_t nanos_register_reduction(nanos_reduction_t *red);
  1.1515 -extern nanos_err_t nanos_reduction_get_private_data_(void **copy, void *sink);
  1.1516 -extern nanos_err_t nanos_reduction_get_private_data(void **copy, void *sink);
  1.1517 -extern nanos_err_t nanos_worksharing_create_(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b);
  1.1518 -extern nanos_err_t nanos_worksharing_create(nanos_ws_desc_t **wsd, nanos_ws_t ws, nanos_ws_info_t *info, _Bool *b);
  1.1519 -extern nanos_err_t nanos_worksharing_next_item_(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi);
  1.1520 -extern nanos_err_t nanos_worksharing_next_item(nanos_ws_desc_t *wsd, nanos_ws_item_t *wsi);
  1.1521 -extern nanos_err_t nanos_wg_wait_completion_(nanos_wg_t wg, _Bool avoid_flush);
  1.1522 -extern nanos_err_t nanos_wg_wait_completion(nanos_wg_t wg, _Bool avoid_flush);
  1.1523 -extern nanos_err_t nanos_create_int_sync_cond_(nanos_sync_cond_t *sync_cond, volatile int *p, int condition);
  1.1524 -extern nanos_err_t nanos_create_int_sync_cond(nanos_sync_cond_t *sync_cond, volatile int *p, int condition);
  1.1525 -extern nanos_err_t nanos_create_bool_sync_cond_(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition);
  1.1526 -extern nanos_err_t nanos_create_bool_sync_cond(nanos_sync_cond_t *sync_cond, volatile _Bool *p, _Bool condition);
  1.1527 -extern nanos_err_t nanos_sync_cond_wait_(nanos_sync_cond_t *sync_cond);
  1.1528 -extern nanos_err_t nanos_sync_cond_wait(nanos_sync_cond_t *sync_cond);
  1.1529 -extern nanos_err_t nanos_sync_cond_signal_(nanos_sync_cond_t *sync_cond);
  1.1530 -extern nanos_err_t nanos_sync_cond_signal(nanos_sync_cond_t *sync_cond);
  1.1531 -extern nanos_err_t nanos_destroy_sync_cond_(nanos_sync_cond_t *sync_cond);
  1.1532 -extern nanos_err_t nanos_destroy_sync_cond(nanos_sync_cond_t *sync_cond);
  1.1533 -extern nanos_err_t nanos_wait_on_(size_t num_deps, nanos_dependence_t *deps);
  1.1534 -extern nanos_err_t nanos_wait_on(size_t num_deps, nanos_dependence_t *deps);
  1.1535 -extern nanos_err_t nanos_init_lock_(nanos_lock_t **lock);
  1.1536 -extern nanos_err_t nanos_init_lock(nanos_lock_t **lock);
  1.1537 -extern nanos_err_t nanos_set_lock_(nanos_lock_t *lock);
  1.1538 -extern nanos_err_t nanos_set_lock(nanos_lock_t *lock);
  1.1539 -extern nanos_err_t nanos_unset_lock_(nanos_lock_t *lock);
  1.1540 -extern nanos_err_t nanos_unset_lock(nanos_lock_t *lock);
  1.1541 -extern nanos_err_t nanos_try_lock_(nanos_lock_t *lock, _Bool *result);
  1.1542 -extern nanos_err_t nanos_try_lock(nanos_lock_t *lock, _Bool *result);
  1.1543 -extern nanos_err_t nanos_destroy_lock_(nanos_lock_t *lock);
  1.1544 -extern nanos_err_t nanos_destroy_lock(nanos_lock_t *lock);
  1.1545 -extern nanos_err_t nanos_get_addr_(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd);
  1.1546 -extern nanos_err_t nanos_get_addr(nanos_copy_id_t copy_id, void **addr, nanos_wd_t cwd);
  1.1547 -extern nanos_err_t nanos_copy_value_(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd);
  1.1548 -extern nanos_err_t nanos_copy_value(void *dst, nanos_copy_id_t copy_id, nanos_wd_t cwd);
  1.1549 -extern nanos_err_t nanos_get_num_running_tasks_(int *num);
  1.1550 -extern nanos_err_t nanos_get_num_running_tasks(int *num);
  1.1551 -extern nanos_err_t nanos_start_scheduler_();
  1.1552 -extern nanos_err_t nanos_start_scheduler();
  1.1553 -extern nanos_err_t nanos_stop_scheduler_();
  1.1554 -extern nanos_err_t nanos_stop_scheduler();
  1.1555 -extern nanos_err_t nanos_scheduler_enabled_(_Bool *res);
  1.1556 -extern nanos_err_t nanos_scheduler_enabled(_Bool *res);
  1.1557 -extern nanos_err_t nanos_wait_until_threads_paused_();
  1.1558 -extern nanos_err_t nanos_wait_until_threads_paused();
  1.1559 -extern nanos_err_t nanos_wait_until_threads_unpaused_();
  1.1560 -extern nanos_err_t nanos_wait_until_threads_unpaused();
  1.1561 -extern nanos_err_t nanos_delay_start_();
  1.1562 -extern nanos_err_t nanos_delay_start();
  1.1563 -extern nanos_err_t nanos_start_();
  1.1564 -extern nanos_err_t nanos_start();
  1.1565 -extern nanos_err_t nanos_finish_();
  1.1566 -extern nanos_err_t nanos_finish();
  1.1567 -extern nanos_err_t nanos_malloc_(void **p, size_t size, const char *file, int line);
  1.1568 -extern nanos_err_t nanos_malloc(void **p, size_t size, const char *file, int line);
  1.1569 -extern nanos_err_t nanos_free_(void *p);
  1.1570 -extern nanos_err_t nanos_free(void *p);
  1.1571 -extern void nanos_handle_error_(nanos_err_t err);
  1.1572 -extern void nanos_handle_error(nanos_err_t err);
  1.1573 -extern void *nanos_smp_factory_(void *args);
  1.1574 -extern void *nanos_smp_factory(void *args);
  1.1575 -extern nanos_err_t nanos_instrument_register_key_(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered);
  1.1576 -extern nanos_err_t nanos_instrument_register_key(nanos_event_key_t *event_key, const char *key, const char *description, _Bool abort_when_registered);
  1.1577 -extern nanos_err_t nanos_instrument_register_value_(nanos_event_value_t *event_value, const char *key, const char *value, const char *description, _Bool abort_when_registered);
  1.1578 -extern nanos_err_t nanos_instrument_register_value(nanos_event_value_t *event_value, const char *key, const char *value, const char *description, _Bool abort_when_registered);
  1.1579 -extern nanos_err_t nanos_instrument_register_value_with_val_(nanos_event_value_t val, const char *key, const char *value, const char *description, _Bool abort_when_registered);
  1.1580 -extern nanos_err_t nanos_instrument_register_value_with_val(nanos_event_value_t val, const char *key, const char *value, const char *description, _Bool abort_when_registered);
  1.1581 -extern nanos_err_t nanos_instrument_get_key_(const char *key, nanos_event_key_t *event_key);
  1.1582 -extern nanos_err_t nanos_instrument_get_key(const char *key, nanos_event_key_t *event_key);
  1.1583 -extern nanos_err_t nanos_instrument_get_value_(const char *key, const char *value, nanos_event_value_t *event_value);
  1.1584 -extern nanos_err_t nanos_instrument_get_value(const char *key, const char *value, nanos_event_value_t *event_value);
  1.1585 -extern nanos_err_t nanos_instrument_events_(unsigned int num_events, nanos_event_t events[]);
  1.1586 -extern nanos_err_t nanos_instrument_events(unsigned int num_events, nanos_event_t events[]);
  1.1587 -extern nanos_err_t nanos_instrument_enter_state_(nanos_event_state_value_t state);
  1.1588 -extern nanos_err_t nanos_instrument_enter_state(nanos_event_state_value_t state);
  1.1589 -extern nanos_err_t nanos_instrument_leave_state_(void);
  1.1590 -extern nanos_err_t nanos_instrument_leave_state(void);
  1.1591 -extern nanos_err_t nanos_instrument_enter_burst_(nanos_event_key_t key, nanos_event_value_t value);
  1.1592 -extern nanos_err_t nanos_instrument_enter_burst(nanos_event_key_t key, nanos_event_value_t value);
  1.1593 -extern nanos_err_t nanos_instrument_leave_burst_(nanos_event_key_t key);
  1.1594 -extern nanos_err_t nanos_instrument_leave_burst(nanos_event_key_t key);
  1.1595 -extern nanos_err_t nanos_instrument_point_event_(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
  1.1596 -extern nanos_err_t nanos_instrument_point_event(unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
  1.1597 -extern nanos_err_t nanos_instrument_ptp_start_(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
  1.1598 -extern nanos_err_t nanos_instrument_ptp_start(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
  1.1599 -extern nanos_err_t nanos_instrument_ptp_end_(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
  1.1600 -extern nanos_err_t nanos_instrument_ptp_end(nanos_event_domain_t domain, nanos_event_id_t id, unsigned int nkvs, nanos_event_key_t *keys, nanos_event_value_t *values);
  1.1601 -extern nanos_err_t nanos_instrument_disable_state_events_(nanos_event_state_value_t state);
  1.1602 -extern nanos_err_t nanos_instrument_disable_state_events(nanos_event_state_value_t state);
  1.1603 -extern nanos_err_t nanos_instrument_enable_state_events_(void);
  1.1604 -extern nanos_err_t nanos_instrument_enable_state_events(void);
  1.1605 -extern nanos_err_t nanos_instrument_close_user_fun_event_();
  1.1606 -extern nanos_err_t nanos_instrument_close_user_fun_event();
  1.1607 -extern nanos_err_t nanos_instrument_enable_(void);
  1.1608 -extern nanos_err_t nanos_instrument_enable(void);
  1.1609 -extern nanos_err_t nanos_instrument_disable_(void);
  1.1610 -extern nanos_err_t nanos_instrument_disable(void);
  1.1611 -void nanos_reduction_int_vop(int, void *, void *);
  1.1612 -void nanos_reduction_bop_add_char(void *arg1, void *arg2);
  1.1613 -void nanos_reduction_vop_add_char(int i, void *arg1, void *arg2);
  1.1614 -void nanos_reduction_bop_add_uchar(void *arg1, void *arg2);
  1.1615 -void nanos_reduction_vop_add_uchar(int i, void *arg1, void *arg2);
  1.1616 -void nanos_reduction_bop_add_schar(void *arg1, void *arg2);
  1.1617 -void nanos_reduction_vop_add_schar(int i, void *arg1, void *arg2);
  1.1618 -void nanos_reduction_bop_add_short(void *arg1, void *arg2);
  1.1619 -void nanos_reduction_vop_add_short(int i, void *arg1, void *arg2);
  1.1620 -void nanos_reduction_bop_add_ushort(void *arg1, void *arg2);
  1.1621 -void nanos_reduction_vop_add_ushort(int i, void *arg1, void *arg2);
  1.1622 -void nanos_reduction_bop_add_int(void *arg1, void *arg2);
  1.1623 -void nanos_reduction_vop_add_int(int i, void *arg1, void *arg2);
  1.1624 -void nanos_reduction_bop_add_uint(void *arg1, void *arg2);
  1.1625 -void nanos_reduction_vop_add_uint(int i, void *arg1, void *arg2);
  1.1626 -void nanos_reduction_bop_add_long(void *arg1, void *arg2);
  1.1627 -void nanos_reduction_vop_add_long(int i, void *arg1, void *arg2);
  1.1628 -void nanos_reduction_bop_add_ulong(void *arg1, void *arg2);
  1.1629 -void nanos_reduction_vop_add_ulong(int i, void *arg1, void *arg2);
  1.1630 -void nanos_reduction_bop_add_longlong(void *arg1, void *arg2);
  1.1631 -void nanos_reduction_vop_add_longlong(int i, void *arg1, void *arg2);
  1.1632 -void nanos_reduction_bop_add_ulonglong(void *arg1, void *arg2);
  1.1633 -void nanos_reduction_vop_add_ulonglong(int i, void *arg1, void *arg2);
  1.1634 -void nanos_reduction_bop_add__Bool(void *arg1, void *arg2);
  1.1635 -void nanos_reduction_vop_add__Bool(int i, void *arg1, void *arg2);
  1.1636 -void nanos_reduction_bop_add_float(void *arg1, void *arg2);
  1.1637 -void nanos_reduction_vop_add_float(int i, void *arg1, void *arg2);
  1.1638 -void nanos_reduction_bop_add_double(void *arg1, void *arg2);
  1.1639 -void nanos_reduction_vop_add_double(int i, void *arg1, void *arg2);
  1.1640 -void nanos_reduction_bop_add_longdouble(void *arg1, void *arg2);
  1.1641 -void nanos_reduction_vop_add_longdouble(int i, void *arg1, void *arg2);
  1.1642 -void nanos_reduction_bop_sub_char(void *arg1, void *arg2);
  1.1643 -void nanos_reduction_vop_sub_char(int i, void *arg1, void *arg2);
  1.1644 -void nanos_reduction_bop_sub_uchar(void *arg1, void *arg2);
  1.1645 -void nanos_reduction_vop_sub_uchar(int i, void *arg1, void *arg2);
  1.1646 -void nanos_reduction_bop_sub_schar(void *arg1, void *arg2);
  1.1647 -void nanos_reduction_vop_sub_schar(int i, void *arg1, void *arg2);
  1.1648 -void nanos_reduction_bop_sub_short(void *arg1, void *arg2);
  1.1649 -void nanos_reduction_vop_sub_short(int i, void *arg1, void *arg2);
  1.1650 -void nanos_reduction_bop_sub_ushort(void *arg1, void *arg2);
  1.1651 -void nanos_reduction_vop_sub_ushort(int i, void *arg1, void *arg2);
  1.1652 -void nanos_reduction_bop_sub_int(void *arg1, void *arg2);
  1.1653 -void nanos_reduction_vop_sub_int(int i, void *arg1, void *arg2);
  1.1654 -void nanos_reduction_bop_sub_uint(void *arg1, void *arg2);
  1.1655 -void nanos_reduction_vop_sub_uint(int i, void *arg1, void *arg2);
  1.1656 -void nanos_reduction_bop_sub_long(void *arg1, void *arg2);
  1.1657 -void nanos_reduction_vop_sub_long(int i, void *arg1, void *arg2);
  1.1658 -void nanos_reduction_bop_sub_ulong(void *arg1, void *arg2);
  1.1659 -void nanos_reduction_vop_sub_ulong(int i, void *arg1, void *arg2);
  1.1660 -void nanos_reduction_bop_sub_longlong(void *arg1, void *arg2);
  1.1661 -void nanos_reduction_vop_sub_longlong(int i, void *arg1, void *arg2);
  1.1662 -void nanos_reduction_bop_sub_ulonglong(void *arg1, void *arg2);
  1.1663 -void nanos_reduction_vop_sub_ulonglong(int i, void *arg1, void *arg2);
  1.1664 -void nanos_reduction_bop_sub__Bool(void *arg1, void *arg2);
  1.1665 -void nanos_reduction_vop_sub__Bool(int i, void *arg1, void *arg2);
  1.1666 -void nanos_reduction_bop_sub_float(void *arg1, void *arg2);
  1.1667 -void nanos_reduction_vop_sub_float(int i, void *arg1, void *arg2);
  1.1668 -void nanos_reduction_bop_sub_double(void *arg1, void *arg2);
  1.1669 -void nanos_reduction_vop_sub_double(int i, void *arg1, void *arg2);
  1.1670 -void nanos_reduction_bop_sub_longdouble(void *arg1, void *arg2);
  1.1671 -void nanos_reduction_vop_sub_longdouble(int i, void *arg1, void *arg2);
  1.1672 -void nanos_reduction_bop_prod_char(void *arg1, void *arg2);
  1.1673 -void nanos_reduction_vop_prod_char(int i, void *arg1, void *arg2);
  1.1674 -void nanos_reduction_bop_prod_uchar(void *arg1, void *arg2);
  1.1675 -void nanos_reduction_vop_prod_uchar(int i, void *arg1, void *arg2);
  1.1676 -void nanos_reduction_bop_prod_schar(void *arg1, void *arg2);
  1.1677 -void nanos_reduction_vop_prod_schar(int i, void *arg1, void *arg2);
  1.1678 -void nanos_reduction_bop_prod_short(void *arg1, void *arg2);
  1.1679 -void nanos_reduction_vop_prod_short(int i, void *arg1, void *arg2);
  1.1680 -void nanos_reduction_bop_prod_ushort(void *arg1, void *arg2);
  1.1681 -void nanos_reduction_vop_prod_ushort(int i, void *arg1, void *arg2);
  1.1682 -void nanos_reduction_bop_prod_int(void *arg1, void *arg2);
  1.1683 -void nanos_reduction_vop_prod_int(int i, void *arg1, void *arg2);
  1.1684 -void nanos_reduction_bop_prod_uint(void *arg1, void *arg2);
  1.1685 -void nanos_reduction_vop_prod_uint(int i, void *arg1, void *arg2);
  1.1686 -void nanos_reduction_bop_prod_long(void *arg1, void *arg2);
  1.1687 -void nanos_reduction_vop_prod_long(int i, void *arg1, void *arg2);
  1.1688 -void nanos_reduction_bop_prod_ulong(void *arg1, void *arg2);
  1.1689 -void nanos_reduction_vop_prod_ulong(int i, void *arg1, void *arg2);
  1.1690 -void nanos_reduction_bop_prod_longlong(void *arg1, void *arg2);
  1.1691 -void nanos_reduction_vop_prod_longlong(int i, void *arg1, void *arg2);
  1.1692 -void nanos_reduction_bop_prod_ulonglong(void *arg1, void *arg2);
  1.1693 -void nanos_reduction_vop_prod_ulonglong(int i, void *arg1, void *arg2);
  1.1694 -void nanos_reduction_bop_prod__Bool(void *arg1, void *arg2);
  1.1695 -void nanos_reduction_vop_prod__Bool(int i, void *arg1, void *arg2);
  1.1696 -void nanos_reduction_bop_prod_float(void *arg1, void *arg2);
  1.1697 -void nanos_reduction_vop_prod_float(int i, void *arg1, void *arg2);
  1.1698 -void nanos_reduction_bop_prod_double(void *arg1, void *arg2);
  1.1699 -void nanos_reduction_vop_prod_double(int i, void *arg1, void *arg2);
  1.1700 -void nanos_reduction_bop_prod_longdouble(void *arg1, void *arg2);
  1.1701 -void nanos_reduction_vop_prod_longdouble(int i, void *arg1, void *arg2);
  1.1702 -void nanos_reduction_bop_and_char(void *arg1, void *arg2);
  1.1703 -void nanos_reduction_vop_and_char(int i, void *arg1, void *arg2);
  1.1704 -void nanos_reduction_bop_and_uchar(void *arg1, void *arg2);
  1.1705 -void nanos_reduction_vop_and_uchar(int i, void *arg1, void *arg2);
  1.1706 -void nanos_reduction_bop_and_schar(void *arg1, void *arg2);
  1.1707 -void nanos_reduction_vop_and_schar(int i, void *arg1, void *arg2);
  1.1708 -void nanos_reduction_bop_and_short(void *arg1, void *arg2);
  1.1709 -void nanos_reduction_vop_and_short(int i, void *arg1, void *arg2);
  1.1710 -void nanos_reduction_bop_and_ushort(void *arg1, void *arg2);
  1.1711 -void nanos_reduction_vop_and_ushort(int i, void *arg1, void *arg2);
  1.1712 -void nanos_reduction_bop_and_int(void *arg1, void *arg2);
  1.1713 -void nanos_reduction_vop_and_int(int i, void *arg1, void *arg2);
  1.1714 -void nanos_reduction_bop_and_uint(void *arg1, void *arg2);
  1.1715 -void nanos_reduction_vop_and_uint(int i, void *arg1, void *arg2);
  1.1716 -void nanos_reduction_bop_and_long(void *arg1, void *arg2);
  1.1717 -void nanos_reduction_vop_and_long(int i, void *arg1, void *arg2);
  1.1718 -void nanos_reduction_bop_and_ulong(void *arg1, void *arg2);
  1.1719 -void nanos_reduction_vop_and_ulong(int i, void *arg1, void *arg2);
  1.1720 -void nanos_reduction_bop_and_longlong(void *arg1, void *arg2);
  1.1721 -void nanos_reduction_vop_and_longlong(int i, void *arg1, void *arg2);
  1.1722 -void nanos_reduction_bop_and_ulonglong(void *arg1, void *arg2);
  1.1723 -void nanos_reduction_vop_and_ulonglong(int i, void *arg1, void *arg2);
  1.1724 -void nanos_reduction_bop_and__Bool(void *arg1, void *arg2);
  1.1725 -void nanos_reduction_vop_and__Bool(int i, void *arg1, void *arg2);
  1.1726 -void nanos_reduction_bop_or_char(void *arg1, void *arg2);
  1.1727 -void nanos_reduction_vop_or_char(int i, void *arg1, void *arg2);
  1.1728 -void nanos_reduction_bop_or_uchar(void *arg1, void *arg2);
  1.1729 -void nanos_reduction_vop_or_uchar(int i, void *arg1, void *arg2);
  1.1730 -void nanos_reduction_bop_or_schar(void *arg1, void *arg2);
  1.1731 -void nanos_reduction_vop_or_schar(int i, void *arg1, void *arg2);
  1.1732 -void nanos_reduction_bop_or_short(void *arg1, void *arg2);
  1.1733 -void nanos_reduction_vop_or_short(int i, void *arg1, void *arg2);
  1.1734 -void nanos_reduction_bop_or_ushort(void *arg1, void *arg2);
  1.1735 -void nanos_reduction_vop_or_ushort(int i, void *arg1, void *arg2);
  1.1736 -void nanos_reduction_bop_or_int(void *arg1, void *arg2);
  1.1737 -void nanos_reduction_vop_or_int(int i, void *arg1, void *arg2);
  1.1738 -void nanos_reduction_bop_or_uint(void *arg1, void *arg2);
  1.1739 -void nanos_reduction_vop_or_uint(int i, void *arg1, void *arg2);
  1.1740 -void nanos_reduction_bop_or_long(void *arg1, void *arg2);
  1.1741 -void nanos_reduction_vop_or_long(int i, void *arg1, void *arg2);
  1.1742 -void nanos_reduction_bop_or_ulong(void *arg1, void *arg2);
  1.1743 -void nanos_reduction_vop_or_ulong(int i, void *arg1, void *arg2);
  1.1744 -void nanos_reduction_bop_or_longlong(void *arg1, void *arg2);
  1.1745 -void nanos_reduction_vop_or_longlong(int i, void *arg1, void *arg2);
  1.1746 -void nanos_reduction_bop_or_ulonglong(void *arg1, void *arg2);
  1.1747 -void nanos_reduction_vop_or_ulonglong(int i, void *arg1, void *arg2);
  1.1748 -void nanos_reduction_bop_or__Bool(void *arg1, void *arg2);
  1.1749 -void nanos_reduction_vop_or__Bool(int i, void *arg1, void *arg2);
  1.1750 -void nanos_reduction_bop_xor_char(void *arg1, void *arg2);
  1.1751 -void nanos_reduction_vop_xor_char(int i, void *arg1, void *arg2);
  1.1752 -void nanos_reduction_bop_xor_uchar(void *arg1, void *arg2);
  1.1753 -void nanos_reduction_vop_xor_uchar(int i, void *arg1, void *arg2);
  1.1754 -void nanos_reduction_bop_xor_schar(void *arg1, void *arg2);
  1.1755 -void nanos_reduction_vop_xor_schar(int i, void *arg1, void *arg2);
  1.1756 -void nanos_reduction_bop_xor_short(void *arg1, void *arg2);
  1.1757 -void nanos_reduction_vop_xor_short(int i, void *arg1, void *arg2);
  1.1758 -void nanos_reduction_bop_xor_ushort(void *arg1, void *arg2);
  1.1759 -void nanos_reduction_vop_xor_ushort(int i, void *arg1, void *arg2);
  1.1760 -void nanos_reduction_bop_xor_int(void *arg1, void *arg2);
  1.1761 -void nanos_reduction_vop_xor_int(int i, void *arg1, void *arg2);
  1.1762 -void nanos_reduction_bop_xor_uint(void *arg1, void *arg2);
  1.1763 -void nanos_reduction_vop_xor_uint(int i, void *arg1, void *arg2);
  1.1764 -void nanos_reduction_bop_xor_long(void *arg1, void *arg2);
  1.1765 -void nanos_reduction_vop_xor_long(int i, void *arg1, void *arg2);
  1.1766 -void nanos_reduction_bop_xor_ulong(void *arg1, void *arg2);
  1.1767 -void nanos_reduction_vop_xor_ulong(int i, void *arg1, void *arg2);
  1.1768 -void nanos_reduction_bop_xor_longlong(void *arg1, void *arg2);
  1.1769 -void nanos_reduction_vop_xor_longlong(int i, void *arg1, void *arg2);
  1.1770 -void nanos_reduction_bop_xor_ulonglong(void *arg1, void *arg2);
  1.1771 -void nanos_reduction_vop_xor_ulonglong(int i, void *arg1, void *arg2);
  1.1772 -void nanos_reduction_bop_xor__Bool(void *arg1, void *arg2);
  1.1773 -void nanos_reduction_vop_xor__Bool(int i, void *arg1, void *arg2);
  1.1774 -void nanos_reduction_bop_land_char(void *arg1, void *arg2);
  1.1775 -void nanos_reduction_vop_land_char(int i, void *arg1, void *arg2);
  1.1776 -void nanos_reduction_bop_land_uchar(void *arg1, void *arg2);
  1.1777 -void nanos_reduction_vop_land_uchar(int i, void *arg1, void *arg2);
  1.1778 -void nanos_reduction_bop_land_schar(void *arg1, void *arg2);
  1.1779 -void nanos_reduction_vop_land_schar(int i, void *arg1, void *arg2);
  1.1780 -void nanos_reduction_bop_land_short(void *arg1, void *arg2);
  1.1781 -void nanos_reduction_vop_land_short(int i, void *arg1, void *arg2);
  1.1782 -void nanos_reduction_bop_land_ushort(void *arg1, void *arg2);
  1.1783 -void nanos_reduction_vop_land_ushort(int i, void *arg1, void *arg2);
  1.1784 -void nanos_reduction_bop_land_int(void *arg1, void *arg2);
  1.1785 -void nanos_reduction_vop_land_int(int i, void *arg1, void *arg2);
  1.1786 -void nanos_reduction_bop_land_uint(void *arg1, void *arg2);
  1.1787 -void nanos_reduction_vop_land_uint(int i, void *arg1, void *arg2);
  1.1788 -void nanos_reduction_bop_land_long(void *arg1, void *arg2);
  1.1789 -void nanos_reduction_vop_land_long(int i, void *arg1, void *arg2);
  1.1790 -void nanos_reduction_bop_land_ulong(void *arg1, void *arg2);
  1.1791 -void nanos_reduction_vop_land_ulong(int i, void *arg1, void *arg2);
  1.1792 -void nanos_reduction_bop_land_longlong(void *arg1, void *arg2);
  1.1793 -void nanos_reduction_vop_land_longlong(int i, void *arg1, void *arg2);
  1.1794 -void nanos_reduction_bop_land_ulonglong(void *arg1, void *arg2);
  1.1795 -void nanos_reduction_vop_land_ulonglong(int i, void *arg1, void *arg2);
  1.1796 -void nanos_reduction_bop_land__Bool(void *arg1, void *arg2);
  1.1797 -void nanos_reduction_vop_land__Bool(int i, void *arg1, void *arg2);
  1.1798 -void nanos_reduction_bop_land_float(void *arg1, void *arg2);
  1.1799 -void nanos_reduction_vop_land_float(int i, void *arg1, void *arg2);
  1.1800 -void nanos_reduction_bop_land_double(void *arg1, void *arg2);
  1.1801 -void nanos_reduction_vop_land_double(int i, void *arg1, void *arg2);
  1.1802 -void nanos_reduction_bop_land_longdouble(void *arg1, void *arg2);
  1.1803 -void nanos_reduction_vop_land_longdouble(int i, void *arg1, void *arg2);
  1.1804 -void nanos_reduction_bop_lor_char(void *arg1, void *arg2);
  1.1805 -void nanos_reduction_vop_lor_char(int i, void *arg1, void *arg2);
  1.1806 -void nanos_reduction_bop_lor_uchar(void *arg1, void *arg2);
  1.1807 -void nanos_reduction_vop_lor_uchar(int i, void *arg1, void *arg2);
  1.1808 -void nanos_reduction_bop_lor_schar(void *arg1, void *arg2);
  1.1809 -void nanos_reduction_vop_lor_schar(int i, void *arg1, void *arg2);
  1.1810 -void nanos_reduction_bop_lor_short(void *arg1, void *arg2);
  1.1811 -void nanos_reduction_vop_lor_short(int i, void *arg1, void *arg2);
  1.1812 -void nanos_reduction_bop_lor_ushort(void *arg1, void *arg2);
  1.1813 -void nanos_reduction_vop_lor_ushort(int i, void *arg1, void *arg2);
  1.1814 -void nanos_reduction_bop_lor_int(void *arg1, void *arg2);
  1.1815 -void nanos_reduction_vop_lor_int(int i, void *arg1, void *arg2);
  1.1816 -void nanos_reduction_bop_lor_uint(void *arg1, void *arg2);
  1.1817 -void nanos_reduction_vop_lor_uint(int i, void *arg1, void *arg2);
  1.1818 -void nanos_reduction_bop_lor_long(void *arg1, void *arg2);
  1.1819 -void nanos_reduction_vop_lor_long(int i, void *arg1, void *arg2);
  1.1820 -void nanos_reduction_bop_lor_ulong(void *arg1, void *arg2);
  1.1821 -void nanos_reduction_vop_lor_ulong(int i, void *arg1, void *arg2);
  1.1822 -void nanos_reduction_bop_lor_longlong(void *arg1, void *arg2);
  1.1823 -void nanos_reduction_vop_lor_longlong(int i, void *arg1, void *arg2);
  1.1824 -void nanos_reduction_bop_lor_ulonglong(void *arg1, void *arg2);
  1.1825 -void nanos_reduction_vop_lor_ulonglong(int i, void *arg1, void *arg2);
  1.1826 -void nanos_reduction_bop_lor__Bool(void *arg1, void *arg2);
  1.1827 -void nanos_reduction_vop_lor__Bool(int i, void *arg1, void *arg2);
  1.1828 -void nanos_reduction_bop_lor_float(void *arg1, void *arg2);
  1.1829 -void nanos_reduction_vop_lor_float(int i, void *arg1, void *arg2);
  1.1830 -void nanos_reduction_bop_lor_double(void *arg1, void *arg2);
  1.1831 -void nanos_reduction_vop_lor_double(int i, void *arg1, void *arg2);
  1.1832 -void nanos_reduction_bop_lor_longdouble(void *arg1, void *arg2);
  1.1833 -void nanos_reduction_vop_lor_longdouble(int i, void *arg1, void *arg2);
  1.1834 -void nanos_reduction_bop_max_char(void *arg1, void *arg2);
  1.1835 -void nanos_reduction_vop_max_char(int i, void *arg1, void *arg2);
  1.1836 -void nanos_reduction_bop_max_uchar(void *arg1, void *arg2);
  1.1837 -void nanos_reduction_vop_max_uchar(int i, void *arg1, void *arg2);
  1.1838 -void nanos_reduction_bop_max_schar(void *arg1, void *arg2);
  1.1839 -void nanos_reduction_vop_max_schar(int i, void *arg1, void *arg2);
  1.1840 -void nanos_reduction_bop_max_short(void *arg1, void *arg2);
  1.1841 -void nanos_reduction_vop_max_short(int i, void *arg1, void *arg2);
  1.1842 -void nanos_reduction_bop_max_ushort(void *arg1, void *arg2);
  1.1843 -void nanos_reduction_vop_max_ushort(int i, void *arg1, void *arg2);
  1.1844 -void nanos_reduction_bop_max_int(void *arg1, void *arg2);
  1.1845 -void nanos_reduction_vop_max_int(int i, void *arg1, void *arg2);
  1.1846 -void nanos_reduction_bop_max_uint(void *arg1, void *arg2);
  1.1847 -void nanos_reduction_vop_max_uint(int i, void *arg1, void *arg2);
  1.1848 -void nanos_reduction_bop_max_long(void *arg1, void *arg2);
  1.1849 -void nanos_reduction_vop_max_long(int i, void *arg1, void *arg2);
  1.1850 -void nanos_reduction_bop_max_ulong(void *arg1, void *arg2);
  1.1851 -void nanos_reduction_vop_max_ulong(int i, void *arg1, void *arg2);
  1.1852 -void nanos_reduction_bop_max_longlong(void *arg1, void *arg2);
  1.1853 -void nanos_reduction_vop_max_longlong(int i, void *arg1, void *arg2);
  1.1854 -void nanos_reduction_bop_max_ulonglong(void *arg1, void *arg2);
  1.1855 -void nanos_reduction_vop_max_ulonglong(int i, void *arg1, void *arg2);
  1.1856 -void nanos_reduction_bop_max__Bool(void *arg1, void *arg2);
  1.1857 -void nanos_reduction_vop_max__Bool(int i, void *arg1, void *arg2);
  1.1858 -void nanos_reduction_bop_max_float(void *arg1, void *arg2);
  1.1859 -void nanos_reduction_vop_max_float(int i, void *arg1, void *arg2);
  1.1860 -void nanos_reduction_bop_max_double(void *arg1, void *arg2);
  1.1861 -void nanos_reduction_vop_max_double(int i, void *arg1, void *arg2);
  1.1862 -void nanos_reduction_bop_max_longdouble(void *arg1, void *arg2);
  1.1863 -void nanos_reduction_vop_max_longdouble(int i, void *arg1, void *arg2);
  1.1864 -void nanos_reduction_bop_min_char(void *arg1, void *arg2);
  1.1865 -void nanos_reduction_vop_min_char(int i, void *arg1, void *arg2);
  1.1866 -void nanos_reduction_bop_min_uchar(void *arg1, void *arg2);
  1.1867 -void nanos_reduction_vop_min_uchar(int i, void *arg1, void *arg2);
  1.1868 -void nanos_reduction_bop_min_schar(void *arg1, void *arg2);
  1.1869 -void nanos_reduction_vop_min_schar(int i, void *arg1, void *arg2);
  1.1870 -void nanos_reduction_bop_min_short(void *arg1, void *arg2);
  1.1871 -void nanos_reduction_vop_min_short(int i, void *arg1, void *arg2);
  1.1872 -void nanos_reduction_bop_min_ushort(void *arg1, void *arg2);
  1.1873 -void nanos_reduction_vop_min_ushort(int i, void *arg1, void *arg2);
  1.1874 -void nanos_reduction_bop_min_int(void *arg1, void *arg2);
  1.1875 -void nanos_reduction_vop_min_int(int i, void *arg1, void *arg2);
  1.1876 -void nanos_reduction_bop_min_uint(void *arg1, void *arg2);
  1.1877 -void nanos_reduction_vop_min_uint(int i, void *arg1, void *arg2);
  1.1878 -void nanos_reduction_bop_min_long(void *arg1, void *arg2);
  1.1879 -void nanos_reduction_vop_min_long(int i, void *arg1, void *arg2);
  1.1880 -void nanos_reduction_bop_min_ulong(void *arg1, void *arg2);
  1.1881 -void nanos_reduction_vop_min_ulong(int i, void *arg1, void *arg2);
  1.1882 -void nanos_reduction_bop_min_longlong(void *arg1, void *arg2);
  1.1883 -void nanos_reduction_vop_min_longlong(int i, void *arg1, void *arg2);
  1.1884 -void nanos_reduction_bop_min_ulonglong(void *arg1, void *arg2);
  1.1885 -void nanos_reduction_vop_min_ulonglong(int i, void *arg1, void *arg2);
  1.1886 -void nanos_reduction_bop_min__Bool(void *arg1, void *arg2);
  1.1887 -void nanos_reduction_vop_min__Bool(int i, void *arg1, void *arg2);
  1.1888 -void nanos_reduction_bop_min_float(void *arg1, void *arg2);
  1.1889 -void nanos_reduction_vop_min_float(int i, void *arg1, void *arg2);
  1.1890 -void nanos_reduction_bop_min_double(void *arg1, void *arg2);
  1.1891 -void nanos_reduction_vop_min_double(int i, void *arg1, void *arg2);
  1.1892 -void nanos_reduction_bop_min_longdouble(void *arg1, void *arg2);
  1.1893 -void nanos_reduction_vop_min_longdouble(int i, void *arg1, void *arg2);
  1.1894 -void nanos_reduction_default_cleanup_char(void *r);
  1.1895 -void nanos_reduction_default_cleanup_uchar(void *r);
  1.1896 -void nanos_reduction_default_cleanup_schar(void *r);
  1.1897 -void nanos_reduction_default_cleanup_short(void *r);
  1.1898 -void nanos_reduction_default_cleanup_ushort(void *r);
  1.1899 -void nanos_reduction_default_cleanup_int(void *r);
  1.1900 -void nanos_reduction_default_cleanup_uint(void *r);
  1.1901 -void nanos_reduction_default_cleanup_long(void *r);
  1.1902 -void nanos_reduction_default_cleanup_ulong(void *r);
  1.1903 -void nanos_reduction_default_cleanup_longlong(void *r);
  1.1904 -void nanos_reduction_default_cleanup_ulonglong(void *r);
  1.1905 -void nanos_reduction_default_cleanup__Bool(void *r);
  1.1906 -void nanos_reduction_default_cleanup_float(void *r);
  1.1907 -void nanos_reduction_default_cleanup_double(void *r);
  1.1908 -void nanos_reduction_default_cleanup_longdouble(void *r);
  1.1909 -typedef void *omp_lock_t;
  1.1910 -typedef void *omp_nest_lock_t;
  1.1911 -typedef enum omp_sched_t
  1.1912 -{
  1.1913 -    omp_sched_static = 1, 
  1.1914 -    omp_sched_dynamic = 2, 
  1.1915 -    omp_sched_guided = 3, 
  1.1916 -    omp_sched_auto = 4
  1.1917 -} omp_sched_t;
  1.1918 -extern void omp_set_num_threads(int num_threads);
  1.1919 -extern int omp_get_num_threads(void);
  1.1920 -extern int omp_get_max_threads(void);
  1.1921 -extern int omp_get_thread_num(void);
  1.1922 -extern int omp_get_num_procs(void);
  1.1923 -extern int omp_in_parallel(void);
  1.1924 -extern void omp_set_dynamic(int dynamic_threads);
  1.1925 -extern int omp_get_dynamic(void);
  1.1926 -extern void omp_set_nested(int nested);
  1.1927 -extern int omp_get_nested(void);
  1.1928 -extern int omp_get_thread_limit(void);
  1.1929 -extern void omp_set_max_active_levels(int max_active_levels);
  1.1930 -extern int omp_get_max_active_levels(void);
  1.1931 -extern void omp_set_schedule(omp_sched_t kind, int modifier);
  1.1932 -extern void omp_get_schedule(omp_sched_t *kind, int *modifier);
  1.1933 -extern int omp_get_level(void);
  1.1934 -extern int omp_get_ancestor_thread_num(int level);
  1.1935 -extern int omp_get_team_size(int level);
  1.1936 -extern int omp_get_active_level(void);
  1.1937 -extern void omp_init_lock(omp_lock_t *lock);
  1.1938 -extern void omp_destroy_lock(omp_lock_t *lock);
  1.1939 -extern void omp_set_lock(omp_lock_t *lock);
  1.1940 -extern void omp_unset_lock(omp_lock_t *lock);
  1.1941 -extern int omp_test_lock(omp_lock_t *lock);
  1.1942 -extern void omp_init_nest_lock(omp_nest_lock_t *lock);
  1.1943 -extern void omp_destroy_nest_lock(omp_nest_lock_t *lock);
  1.1944 -extern void omp_set_nest_lock(omp_nest_lock_t *lock);
  1.1945 -extern void omp_unset_nest_lock(omp_nest_lock_t *lock);
  1.1946 -extern int omp_test_nest_lock(omp_nest_lock_t *lock);
  1.1947 -extern double omp_get_wtime(void);
  1.1948 -extern double omp_get_wtick(void);
  1.1949 -extern int omp_in_final(void);
  1.1950 -nanos_err_t nanos_omp_single(_Bool *);
  1.1951 -nanos_err_t nanos_omp_barrier(void);
  1.1952 -void nanos_omp_set_interface(void *);
  1.1953 -nanos_err_t nanos_omp_set_implicit(nanos_wd_t uwd);
  1.1954 -int nanos_omp_get_max_threads(void);
  1.1955 -nanos_ws_t nanos_omp_find_worksharing(omp_sched_t kind);
  1.1956 -nanos_err_t nanos_omp_get_schedule(omp_sched_t *kind, int *modifier);
  1.1957 -typedef __time_t time_t;
  1.1958 -struct timespec
  1.1959 -{
  1.1960 -        __time_t tv_sec;
  1.1961 -        long int tv_nsec;
  1.1962 -};
  1.1963 -struct sched_param
  1.1964 -{
  1.1965 -        int __sched_priority;
  1.1966 -};
  1.1967 -struct __sched_param
  1.1968 -{
  1.1969 -        int __sched_priority;
  1.1970 -};
  1.1971 -typedef unsigned long int __cpu_mask;
  1.1972 -typedef struct 
  1.1973 -{
  1.1974 -        __cpu_mask __bits[1024 / (8 * sizeof(__cpu_mask))];
  1.1975 -} cpu_set_t;
  1.1976 -extern int __sched_cpucount(size_t __setsize, const cpu_set_t *__setp) __attribute__((__nothrow__, __leaf__));
  1.1977 -extern cpu_set_t *__sched_cpualloc(size_t __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.1978 -extern void __sched_cpufree(cpu_set_t *__set) __attribute__((__nothrow__, __leaf__));
  1.1979 -extern int sched_setparam(__pid_t __pid, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__));
  1.1980 -extern int sched_getparam(__pid_t __pid, struct sched_param *__param) __attribute__((__nothrow__, __leaf__));
  1.1981 -extern int sched_setscheduler(__pid_t __pid, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__));
  1.1982 -extern int sched_getscheduler(__pid_t __pid) __attribute__((__nothrow__, __leaf__));
  1.1983 -extern int sched_yield(void) __attribute__((__nothrow__, __leaf__));
  1.1984 -extern int sched_get_priority_max(int __algorithm) __attribute__((__nothrow__, __leaf__));
  1.1985 -extern int sched_get_priority_min(int __algorithm) __attribute__((__nothrow__, __leaf__));
  1.1986 -extern int sched_rr_get_interval(__pid_t __pid, struct timespec *__t) __attribute__((__nothrow__, __leaf__));
  1.1987 -typedef __clock_t clock_t;
  1.1988 -typedef __clockid_t clockid_t;
  1.1989 -typedef __timer_t timer_t;
  1.1990 -struct tm
  1.1991 -{
  1.1992 -        int tm_sec;
  1.1993 -        int tm_min;
  1.1994 -        int tm_hour;
  1.1995 -        int tm_mday;
  1.1996 -        int tm_mon;
  1.1997 -        int tm_year;
  1.1998 -        int tm_wday;
  1.1999 -        int tm_yday;
  1.2000 -        int tm_isdst;
  1.2001 -        long int tm_gmtoff;
  1.2002 -        __const char *tm_zone;
  1.2003 -};
  1.2004 -struct itimerspec
  1.2005 -{
  1.2006 -        struct timespec it_interval;
  1.2007 -        struct timespec it_value;
  1.2008 -};
  1.2009 -struct sigevent;
  1.2010 -extern clock_t clock(void) __attribute__((__nothrow__, __leaf__));
  1.2011 -extern time_t time(time_t *__timer) __attribute__((__nothrow__, __leaf__));
  1.2012 -extern double difftime(time_t __time1, time_t __time0) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2013 -extern time_t mktime(struct tm *__tp) __attribute__((__nothrow__, __leaf__));
  1.2014 -extern size_t strftime(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__));
  1.2015 -typedef struct __locale_struct
  1.2016 -{
  1.2017 -        struct __locale_data *__locales[13];
  1.2018 -        const unsigned short int *__ctype_b;
  1.2019 -        const int *__ctype_tolower;
  1.2020 -        const int *__ctype_toupper;
  1.2021 -        const char *__names[13];
  1.2022 -} *__locale_t;
  1.2023 -typedef __locale_t locale_t;
  1.2024 -extern size_t strftime_l(char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) __attribute__((__nothrow__, __leaf__));
  1.2025 -extern struct tm *gmtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__));
  1.2026 -extern struct tm *localtime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__));
  1.2027 -extern struct tm *gmtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__));
  1.2028 -extern struct tm *localtime_r(__const time_t *__restrict __timer, struct tm *__restrict __tp) __attribute__((__nothrow__, __leaf__));
  1.2029 -extern char *asctime(__const struct tm *__tp) __attribute__((__nothrow__, __leaf__));
  1.2030 -extern char *ctime(__const time_t *__timer) __attribute__((__nothrow__, __leaf__));
  1.2031 -extern char *asctime_r(__const struct tm *__restrict __tp, char *__restrict __buf) __attribute__((__nothrow__, __leaf__));
  1.2032 -extern char *ctime_r(__const time_t *__restrict __timer, char *__restrict __buf) __attribute__((__nothrow__, __leaf__));
  1.2033 -extern char *__tzname[2];
  1.2034 -extern int __daylight;
  1.2035 -extern long int __timezone;
  1.2036 -extern char *tzname[2];
  1.2037 -extern void tzset(void) __attribute__((__nothrow__, __leaf__));
  1.2038 -extern int daylight;
  1.2039 -extern long int timezone;
  1.2040 -extern int stime(__const time_t *__when) __attribute__((__nothrow__, __leaf__));
  1.2041 -extern time_t timegm(struct tm *__tp) __attribute__((__nothrow__, __leaf__));
  1.2042 -extern time_t timelocal(struct tm *__tp) __attribute__((__nothrow__, __leaf__));
  1.2043 -extern int dysize(int __year) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2044 -extern int nanosleep(__const struct timespec *__requested_time, struct timespec *__remaining);
  1.2045 -extern int clock_getres(clockid_t __clock_id, struct timespec *__res) __attribute__((__nothrow__, __leaf__));
  1.2046 -extern int clock_gettime(clockid_t __clock_id, struct timespec *__tp) __attribute__((__nothrow__, __leaf__));
  1.2047 -extern int clock_settime(clockid_t __clock_id, __const struct timespec *__tp) __attribute__((__nothrow__, __leaf__));
  1.2048 -extern int clock_nanosleep(clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem);
  1.2049 -extern int clock_getcpuclockid(pid_t __pid, clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__));
  1.2050 -extern int timer_create(clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __attribute__((__nothrow__, __leaf__));
  1.2051 -extern int timer_delete(timer_t __timerid) __attribute__((__nothrow__, __leaf__));
  1.2052 -extern int timer_settime(timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __attribute__((__nothrow__, __leaf__));
  1.2053 -extern int timer_gettime(timer_t __timerid, struct itimerspec *__value) __attribute__((__nothrow__, __leaf__));
  1.2054 -extern int timer_getoverrun(timer_t __timerid) __attribute__((__nothrow__, __leaf__));
  1.2055 -typedef unsigned long int pthread_t;
  1.2056 -typedef union 
  1.2057 -{
  1.2058 -        char __size[56];
  1.2059 -        long int __align;
  1.2060 -} pthread_attr_t;
  1.2061 -typedef struct __pthread_internal_list
  1.2062 -{
  1.2063 -        struct __pthread_internal_list *__prev;
  1.2064 -        struct __pthread_internal_list *__next;
  1.2065 -} __pthread_list_t;
  1.2066 -typedef union 
  1.2067 -{
  1.2068 -        struct __pthread_mutex_s
  1.2069 -        {
  1.2070 -                int __lock;
  1.2071 -                unsigned int __count;
  1.2072 -                int __owner;
  1.2073 -                unsigned int __nusers;
  1.2074 -                int __kind;
  1.2075 -                int __spins;
  1.2076 -                __pthread_list_t __list;
  1.2077 -        } __data;
  1.2078 -        char __size[40];
  1.2079 -        long int __align;
  1.2080 -} pthread_mutex_t;
  1.2081 -typedef union 
  1.2082 -{
  1.2083 -        char __size[4];
  1.2084 -        int __align;
  1.2085 -} pthread_mutexattr_t;
  1.2086 -typedef union 
  1.2087 -{
  1.2088 -        struct 
  1.2089 -        {
  1.2090 -                int __lock;
  1.2091 -                unsigned int __futex;
  1.2092 -                __extension__
  1.2093 -                unsigned long long int __total_seq;
  1.2094 -                __extension__
  1.2095 -                unsigned long long int __wakeup_seq;
  1.2096 -                __extension__
  1.2097 -                unsigned long long int __woken_seq;
  1.2098 -                void *__mutex;
  1.2099 -                unsigned int __nwaiters;
  1.2100 -                unsigned int __broadcast_seq;
  1.2101 -        } __data;
  1.2102 -        char __size[48];
  1.2103 -        __extension__
  1.2104 -        long long int __align;
  1.2105 -} pthread_cond_t;
  1.2106 -typedef union 
  1.2107 -{
  1.2108 -        char __size[4];
  1.2109 -        int __align;
  1.2110 -} pthread_condattr_t;
  1.2111 -typedef unsigned int pthread_key_t;
  1.2112 -typedef int pthread_once_t;
  1.2113 -typedef union 
  1.2114 -{
  1.2115 -        struct 
  1.2116 -        {
  1.2117 -                int __lock;
  1.2118 -                unsigned int __nr_readers;
  1.2119 -                unsigned int __readers_wakeup;
  1.2120 -                unsigned int __writer_wakeup;
  1.2121 -                unsigned int __nr_readers_queued;
  1.2122 -                unsigned int __nr_writers_queued;
  1.2123 -                int __writer;
  1.2124 -                int __shared;
  1.2125 -                unsigned long int __pad1;
  1.2126 -                unsigned long int __pad2;
  1.2127 -                unsigned int __flags;
  1.2128 -        } __data;
  1.2129 -        char __size[56];
  1.2130 -        long int __align;
  1.2131 -} pthread_rwlock_t;
  1.2132 -typedef union 
  1.2133 -{
  1.2134 -        char __size[8];
  1.2135 -        long int __align;
  1.2136 -} pthread_rwlockattr_t;
  1.2137 -typedef volatile int pthread_spinlock_t;
  1.2138 -typedef union 
  1.2139 -{
  1.2140 -        char __size[32];
  1.2141 -        long int __align;
  1.2142 -} pthread_barrier_t;
  1.2143 -typedef union 
  1.2144 -{
  1.2145 -        char __size[4];
  1.2146 -        int __align;
  1.2147 -} pthread_barrierattr_t;
  1.2148 -typedef long int __jmp_buf[8];
  1.2149 -enum 
  1.2150 -{
  1.2151 -    PTHREAD_CREATE_JOINABLE, 
  1.2152 -    PTHREAD_CREATE_DETACHED
  1.2153 -};
  1.2154 -enum 
  1.2155 -{
  1.2156 -    PTHREAD_MUTEX_TIMED_NP, 
  1.2157 -    PTHREAD_MUTEX_RECURSIVE_NP, 
  1.2158 -    PTHREAD_MUTEX_ERRORCHECK_NP, 
  1.2159 -    PTHREAD_MUTEX_ADAPTIVE_NP, 
  1.2160 -    PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, 
  1.2161 -    PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, 
  1.2162 -    PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, 
  1.2163 -    PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
  1.2164 -};
  1.2165 -enum 
  1.2166 -{
  1.2167 -    PTHREAD_MUTEX_STALLED, 
  1.2168 -    PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, 
  1.2169 -    PTHREAD_MUTEX_ROBUST, 
  1.2170 -    PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
  1.2171 -};
  1.2172 -enum 
  1.2173 -{
  1.2174 -    PTHREAD_RWLOCK_PREFER_READER_NP, 
  1.2175 -    PTHREAD_RWLOCK_PREFER_WRITER_NP, 
  1.2176 -    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 
  1.2177 -    PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
  1.2178 -};
  1.2179 -enum 
  1.2180 -{
  1.2181 -    PTHREAD_INHERIT_SCHED, 
  1.2182 -    PTHREAD_EXPLICIT_SCHED
  1.2183 -};
  1.2184 -enum 
  1.2185 -{
  1.2186 -    PTHREAD_SCOPE_SYSTEM, 
  1.2187 -    PTHREAD_SCOPE_PROCESS
  1.2188 -};
  1.2189 -enum 
  1.2190 -{
  1.2191 -    PTHREAD_PROCESS_PRIVATE, 
  1.2192 -    PTHREAD_PROCESS_SHARED
  1.2193 -};
  1.2194 -struct _pthread_cleanup_buffer
  1.2195 -{
  1.2196 -        void (*__routine)(void *);
  1.2197 -        void *__arg;
  1.2198 -        int __canceltype;
  1.2199 -        struct _pthread_cleanup_buffer *__prev;
  1.2200 -};
  1.2201 -enum 
  1.2202 -{
  1.2203 -    PTHREAD_CANCEL_ENABLE, 
  1.2204 -    PTHREAD_CANCEL_DISABLE
  1.2205 -};
  1.2206 -enum 
  1.2207 -{
  1.2208 -    PTHREAD_CANCEL_DEFERRED, 
  1.2209 -    PTHREAD_CANCEL_ASYNCHRONOUS
  1.2210 -};
  1.2211 -extern int pthread_create(pthread_t *__restrict __newthread, __const pthread_attr_t *__restrict __attr, void *(*__start_routine)(void *), void *__restrict __arg) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 3)));
  1.2212 -extern void pthread_exit(void *__retval) __attribute__((__noreturn__));
  1.2213 -extern int pthread_join(pthread_t __th, void **__thread_return);
  1.2214 -extern int pthread_detach(pthread_t __th) __attribute__((__nothrow__, __leaf__));
  1.2215 -extern pthread_t pthread_self(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2216 -extern int pthread_equal(pthread_t __thread1, pthread_t __thread2) __attribute__((__nothrow__, __leaf__));
  1.2217 -extern int pthread_attr_init(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2218 -extern int pthread_attr_destroy(pthread_attr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2219 -extern int pthread_attr_getdetachstate(__const pthread_attr_t *__attr, int *__detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2220 -extern int pthread_attr_setdetachstate(pthread_attr_t *__attr, int __detachstate) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2221 -extern int pthread_attr_getguardsize(__const pthread_attr_t *__attr, size_t *__guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2222 -extern int pthread_attr_setguardsize(pthread_attr_t *__attr, size_t __guardsize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2223 -extern int pthread_attr_getschedparam(__const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2224 -extern int pthread_attr_setschedparam(pthread_attr_t *__restrict __attr, __const struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2225 -extern int pthread_attr_getschedpolicy(__const pthread_attr_t *__restrict __attr, int *__restrict __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2226 -extern int pthread_attr_setschedpolicy(pthread_attr_t *__attr, int __policy) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2227 -extern int pthread_attr_getinheritsched(__const pthread_attr_t *__restrict __attr, int *__restrict __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2228 -extern int pthread_attr_setinheritsched(pthread_attr_t *__attr, int __inherit) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2229 -extern int pthread_attr_getscope(__const pthread_attr_t *__restrict __attr, int *__restrict __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2230 -extern int pthread_attr_setscope(pthread_attr_t *__attr, int __scope) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2231 -extern int pthread_attr_getstackaddr(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2))) __attribute__((__deprecated__));
  1.2232 -extern int pthread_attr_setstackaddr(pthread_attr_t *__attr, void *__stackaddr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__deprecated__));
  1.2233 -extern int pthread_attr_getstacksize(__const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2234 -extern int pthread_attr_setstacksize(pthread_attr_t *__attr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2235 -extern int pthread_attr_getstack(__const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2, 3)));
  1.2236 -extern int pthread_attr_setstack(pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2237 -extern int pthread_setschedparam(pthread_t __target_thread, int __policy, __const struct sched_param *__param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3)));
  1.2238 -extern int pthread_getschedparam(pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3)));
  1.2239 -extern int pthread_setschedprio(pthread_t __target_thread, int __prio) __attribute__((__nothrow__, __leaf__));
  1.2240 -extern int pthread_once(pthread_once_t *__once_control, void (*__init_routine)(void)) __attribute__((__nonnull__(1, 2)));
  1.2241 -extern int pthread_setcancelstate(int __state, int *__oldstate);
  1.2242 -extern int pthread_setcanceltype(int __type, int *__oldtype);
  1.2243 -extern int pthread_cancel(pthread_t __th);
  1.2244 -extern void pthread_testcancel(void);
  1.2245 -typedef struct 
  1.2246 -{
  1.2247 -        struct 
  1.2248 -        {
  1.2249 -                __jmp_buf __cancel_jmp_buf;
  1.2250 -                int __mask_was_saved;
  1.2251 -        } __cancel_jmp_buf[1];
  1.2252 -        void *__pad[4];
  1.2253 -} __pthread_unwind_buf_t __attribute__((__aligned__));
  1.2254 -struct __pthread_cleanup_frame
  1.2255 -{
  1.2256 -        void (*__cancel_routine)(void *);
  1.2257 -        void *__cancel_arg;
  1.2258 -        int __do_it;
  1.2259 -        int __cancel_type;
  1.2260 -};
  1.2261 -extern void __pthread_register_cancel(__pthread_unwind_buf_t *__buf);
  1.2262 -extern void __pthread_unregister_cancel(__pthread_unwind_buf_t *__buf);
  1.2263 -extern void __pthread_unwind_next(__pthread_unwind_buf_t *__buf) __attribute__((__noreturn__)) __attribute__((__weak__));
  1.2264 -struct __jmp_buf_tag;
  1.2265 -extern int __sigsetjmp(struct __jmp_buf_tag *__env, int __savemask) __attribute__((__nothrow__, __leaf__));
  1.2266 -extern int pthread_mutex_init(pthread_mutex_t *__mutex, __const pthread_mutexattr_t *__mutexattr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2267 -extern int pthread_mutex_destroy(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2268 -extern int pthread_mutex_trylock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2269 -extern int pthread_mutex_lock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2270 -extern int pthread_mutex_timedlock(pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2)));
  1.2271 -extern int pthread_mutex_unlock(pthread_mutex_t *__mutex) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2272 -extern int pthread_mutex_getprioceiling(__const pthread_mutex_t *__restrict __mutex, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2273 -extern int pthread_mutex_setprioceiling(pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 3)));
  1.2274 -extern int pthread_mutex_consistent(pthread_mutex_t *__mutex) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2275 -extern int pthread_mutexattr_init(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2276 -extern int pthread_mutexattr_destroy(pthread_mutexattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2277 -extern int pthread_mutexattr_getpshared(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2278 -extern int pthread_mutexattr_setpshared(pthread_mutexattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2279 -extern int pthread_mutexattr_gettype(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2280 -extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2281 -extern int pthread_mutexattr_getprotocol(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2282 -extern int pthread_mutexattr_setprotocol(pthread_mutexattr_t *__attr, int __protocol) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2283 -extern int pthread_mutexattr_getprioceiling(__const pthread_mutexattr_t *__restrict __attr, int *__restrict __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2284 -extern int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *__attr, int __prioceiling) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2285 -extern int pthread_mutexattr_getrobust(__const pthread_mutexattr_t *__attr, int *__robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2286 -extern int pthread_mutexattr_setrobust(pthread_mutexattr_t *__attr, int __robustness) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2287 -extern int pthread_rwlock_init(pthread_rwlock_t *__restrict __rwlock, __const pthread_rwlockattr_t *__restrict __attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2288 -extern int pthread_rwlock_destroy(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2289 -extern int pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2290 -extern int pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2291 -extern int pthread_rwlock_timedrdlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2)));
  1.2292 -extern int pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2293 -extern int pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2294 -extern int pthread_rwlock_timedwrlock(pthread_rwlock_t *__restrict __rwlock, __const struct timespec *__restrict __abstime) __attribute__((__nothrow__)) __attribute__((__nonnull__(1, 2)));
  1.2295 -extern int pthread_rwlock_unlock(pthread_rwlock_t *__rwlock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2296 -extern int pthread_rwlockattr_init(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2297 -extern int pthread_rwlockattr_destroy(pthread_rwlockattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2298 -extern int pthread_rwlockattr_getpshared(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2299 -extern int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2300 -extern int pthread_rwlockattr_getkind_np(__const pthread_rwlockattr_t *__restrict __attr, int *__restrict __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2301 -extern int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *__attr, int __pref) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2302 -extern int pthread_cond_init(pthread_cond_t *__restrict __cond, __const pthread_condattr_t *__restrict __cond_attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2303 -extern int pthread_cond_destroy(pthread_cond_t *__cond) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2304 -extern int pthread_cond_signal(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2305 -extern int pthread_cond_broadcast(pthread_cond_t *__cond) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2306 -extern int pthread_cond_wait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__((__nonnull__(1, 2)));
  1.2307 -extern int pthread_cond_timedwait(pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __const struct timespec *__restrict __abstime) __attribute__((__nonnull__(1, 2, 3)));
  1.2308 -extern int pthread_condattr_init(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2309 -extern int pthread_condattr_destroy(pthread_condattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2310 -extern int pthread_condattr_getpshared(__const pthread_condattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2311 -extern int pthread_condattr_setpshared(pthread_condattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2312 -extern int pthread_condattr_getclock(__const pthread_condattr_t *__restrict __attr, __clockid_t *__restrict __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2313 -extern int pthread_condattr_setclock(pthread_condattr_t *__attr, __clockid_t __clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2314 -extern int pthread_spin_init(pthread_spinlock_t *__lock, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2315 -extern int pthread_spin_destroy(pthread_spinlock_t *__lock) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2316 -extern int pthread_spin_lock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2317 -extern int pthread_spin_trylock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2318 -extern int pthread_spin_unlock(pthread_spinlock_t *__lock) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2319 -extern int pthread_barrier_init(pthread_barrier_t *__restrict __barrier, __const pthread_barrierattr_t *__restrict __attr, unsigned int __count) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2320 -extern int pthread_barrier_destroy(pthread_barrier_t *__barrier) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2321 -extern int pthread_barrier_wait(pthread_barrier_t *__barrier) __attribute__((__nothrow__)) __attribute__((__nonnull__(1)));
  1.2322 -extern int pthread_barrierattr_init(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2323 -extern int pthread_barrierattr_destroy(pthread_barrierattr_t *__attr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2324 -extern int pthread_barrierattr_getpshared(__const pthread_barrierattr_t *__restrict __attr, int *__restrict __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.2325 -extern int pthread_barrierattr_setpshared(pthread_barrierattr_t *__attr, int __pshared) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2326 -extern int pthread_key_create(pthread_key_t *__key, void (*__destr_function)(void *)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.2327 -extern int pthread_key_delete(pthread_key_t __key) __attribute__((__nothrow__, __leaf__));
  1.2328 -extern void *pthread_getspecific(pthread_key_t __key) __attribute__((__nothrow__, __leaf__));
  1.2329 -extern int pthread_setspecific(pthread_key_t __key, __const void *__pointer) __attribute__((__nothrow__, __leaf__));
  1.2330 -extern int pthread_getcpuclockid(pthread_t __thread_id, __clockid_t *__clock_id) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.2331 -extern int pthread_atfork(void (*__prepare)(void), void (*__parent)(void), void (*__child)(void)) __attribute__((__nothrow__, __leaf__));
  1.2332 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) pthread_equal(pthread_t __thread1, pthread_t __thread2)
  1.2333 -{
  1.2334 -    return __thread1 == __thread2;
  1.2335 -}
  1.2336 -extern int *__errno_location(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2337 -void *av_malloc(unsigned int size) __attribute__((__malloc__));
  1.2338 -void *av_realloc(void *ptr, unsigned int size);
  1.2339 -void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size);
  1.2340 -void av_fast_malloc(void *ptr, unsigned int *size, unsigned int min_size);
  1.2341 -void av_free(void *ptr);
  1.2342 -void *av_mallocz(unsigned int size) __attribute__((__malloc__));
  1.2343 -char *av_strdup(const char *s) __attribute__((__malloc__));
  1.2344 -void av_freep(void *ptr);
  1.2345 -static __attribute__((always_inline)) inline uint32_t pack16to32(int a, int b)
  1.2346 -{
  1.2347 -    return (a & 0xFFFF) + (b << 16);
  1.2348 -}
  1.2349 -static __attribute__((always_inline)) inline uint16_t pack8to16(int a, int b)
  1.2350 -{
  1.2351 -    return (a & 0xFF) + (b << 8);
  1.2352 -}
  1.2353 -typedef short DCTELEM;
  1.2354 -enum AVColorPrimaries
  1.2355 -{
  1.2356 -    AVCOL_PRI_BT709 = 1, 
  1.2357 -    AVCOL_PRI_UNSPECIFIED = 2, 
  1.2358 -    AVCOL_PRI_BT470M = 4, 
  1.2359 -    AVCOL_PRI_BT470BG = 5, 
  1.2360 -    AVCOL_PRI_SMPTE170M = 6, 
  1.2361 -    AVCOL_PRI_SMPTE240M = 7, 
  1.2362 -    AVCOL_PRI_FILM = 8, 
  1.2363 -    AVCOL_PRI_NB
  1.2364 -};
  1.2365 -enum AVColorTransferCharacteristic
  1.2366 -{
  1.2367 -    AVCOL_TRC_BT709 = 1, 
  1.2368 -    AVCOL_TRC_UNSPECIFIED = 2, 
  1.2369 -    AVCOL_TRC_GAMMA22 = 4, 
  1.2370 -    AVCOL_TRC_GAMMA28 = 5, 
  1.2371 -    AVCOL_TRC_NB
  1.2372 -};
  1.2373 -enum AVColorSpace
  1.2374 -{
  1.2375 -    AVCOL_SPC_RGB = 0, 
  1.2376 -    AVCOL_SPC_BT709 = 1, 
  1.2377 -    AVCOL_SPC_UNSPECIFIED = 2, 
  1.2378 -    AVCOL_SPC_FCC = 4, 
  1.2379 -    AVCOL_SPC_BT470BG = 5, 
  1.2380 -    AVCOL_SPC_SMPTE170M = 6, 
  1.2381 -    AVCOL_SPC_SMPTE240M = 7, 
  1.2382 -    AVCOL_SPC_NB
  1.2383 -};
  1.2384 -enum AVColorRange
  1.2385 -{
  1.2386 -    AVCOL_RANGE_UNSPECIFIED = 0, 
  1.2387 -    AVCOL_RANGE_MPEG = 1, 
  1.2388 -    AVCOL_RANGE_JPEG = 2, 
  1.2389 -    AVCOL_RANGE_NB
  1.2390 -};
  1.2391 -typedef enum MMCOOpcode
  1.2392 -{
  1.2393 -    MMCO_END = 0, 
  1.2394 -    MMCO_SHORT2UNUSED, 
  1.2395 -    MMCO_LONG2UNUSED, 
  1.2396 -    MMCO_SHORT2LONG, 
  1.2397 -    MMCO_SET_MAX_LONG, 
  1.2398 -    MMCO_RESET, 
  1.2399 -    MMCO_LONG
  1.2400 -} MMCOOpcode;
  1.2401 -enum 
  1.2402 -{
  1.2403 -    NAL_SLICE = 1, 
  1.2404 -    NAL_DPA, 
  1.2405 -    NAL_DPB, 
  1.2406 -    NAL_DPC, 
  1.2407 -    NAL_IDR_SLICE, 
  1.2408 -    NAL_SEI, 
  1.2409 -    NAL_SPS, 
  1.2410 -    NAL_PPS, 
  1.2411 -    NAL_AUD, 
  1.2412 -    NAL_END_SEQUENCE, 
  1.2413 -    NAL_END_STREAM, 
  1.2414 -    NAL_FILLER_DATA, 
  1.2415 -    NAL_SPS_EXT, 
  1.2416 -    NAL_AUXILIARY_SLICE = 19
  1.2417 -};
  1.2418 -typedef enum 
  1.2419 -{
  1.2420 -    SEI_BUFFERING_PERIOD = 0, 
  1.2421 -    SEI_TYPE_PIC_TIMING = 1, 
  1.2422 -    SEI_TYPE_USER_DATA_UNREGISTERED = 5, 
  1.2423 -    SEI_TYPE_RECOVERY_POINT = 6
  1.2424 -} SEI_Type;
  1.2425 -typedef enum 
  1.2426 -{
  1.2427 -    SEI_PIC_STRUCT_FRAME = 0, 
  1.2428 -    SEI_PIC_STRUCT_TOP_FIELD = 1, 
  1.2429 -    SEI_PIC_STRUCT_BOTTOM_FIELD = 2, 
  1.2430 -    SEI_PIC_STRUCT_TOP_BOTTOM = 3, 
  1.2431 -    SEI_PIC_STRUCT_BOTTOM_TOP = 4, 
  1.2432 -    SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, 
  1.2433 -    SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, 
  1.2434 -    SEI_PIC_STRUCT_FRAME_DOUBLING = 7, 
  1.2435 -    SEI_PIC_STRUCT_FRAME_TRIPLING = 8
  1.2436 -} SEI_PicStructType;
  1.2437 -typedef struct SPS
  1.2438 -{
  1.2439 -        int profile_idc;
  1.2440 -        int level_idc;
  1.2441 -        int chroma_format_idc;
  1.2442 -        int transform_bypass;
  1.2443 -        int log2_max_frame_num;
  1.2444 -        int poc_type;
  1.2445 -        int log2_max_poc_lsb;
  1.2446 -        int delta_pic_order_always_zero_flag;
  1.2447 -        int offset_for_non_ref_pic;
  1.2448 -        int offset_for_top_to_bottom_field;
  1.2449 -        int poc_cycle_length;
  1.2450 -        int ref_frame_count;
  1.2451 -        int gaps_in_frame_num_allowed_flag;
  1.2452 -        int mb_width;
  1.2453 -        int mb_height;
  1.2454 -        int frame_mbs_only_flag;
  1.2455 -        int mb_aff;
  1.2456 -        int direct_8x8_inference_flag;
  1.2457 -        int crop;
  1.2458 -        unsigned int crop_left;
  1.2459 -        unsigned int crop_right;
  1.2460 -        unsigned int crop_top;
  1.2461 -        unsigned int crop_bottom;
  1.2462 -        int vui_parameters_present_flag;
  1.2463 -        int num, den;
  1.2464 -        int video_signal_type_present_flag;
  1.2465 -        int full_range;
  1.2466 -        int colour_description_present_flag;
  1.2467 -        enum AVColorPrimaries color_primaries;
  1.2468 -        enum AVColorTransferCharacteristic color_trc;
  1.2469 -        enum AVColorSpace colorspace;
  1.2470 -        int timing_info_present_flag;
  1.2471 -        uint32_t num_units_in_tick;
  1.2472 -        uint32_t time_scale;
  1.2473 -        int fixed_frame_rate_flag;
  1.2474 -        short offset_for_ref_frame[256];
  1.2475 -        int bitstream_restriction_flag;
  1.2476 -        int num_reorder_frames;
  1.2477 -        int scaling_matrix_present;
  1.2478 -        uint8_t scaling_matrix4[6][16];
  1.2479 -        uint8_t scaling_matrix8[2][64];
  1.2480 -        int nal_hrd_parameters_present_flag;
  1.2481 -        int vcl_hrd_parameters_present_flag;
  1.2482 -        int pic_struct_present_flag;
  1.2483 -        int time_offset_length;
  1.2484 -        int cpb_cnt;
  1.2485 -        int initial_cpb_removal_delay_length;
  1.2486 -        int cpb_removal_delay_length;
  1.2487 -        int dpb_output_delay_length;
  1.2488 -        int bit_depth_luma;
  1.2489 -        int bit_depth_chroma;
  1.2490 -        int residual_color_transform_flag;
  1.2491 -} SPS;
  1.2492 -typedef struct PPS
  1.2493 -{
  1.2494 -        unsigned int sps_id;
  1.2495 -        int cabac;
  1.2496 -        int pic_order_present;
  1.2497 -        int slice_group_count;
  1.2498 -        int mb_slice_group_map_type;
  1.2499 -        unsigned int ref_count[2];
  1.2500 -        int weighted_pred;
  1.2501 -        int weighted_bipred_idc;
  1.2502 -        int init_qp;
  1.2503 -        int init_qs;
  1.2504 -        int chroma_qp_index_offset[2];
  1.2505 -        int deblocking_filter_parameters_present;
  1.2506 -        int constrained_intra_pred;
  1.2507 -        int redundant_pic_cnt_present;
  1.2508 -        int transform_8x8_mode;
  1.2509 -        uint8_t scaling_matrix4[6][16];
  1.2510 -        uint8_t scaling_matrix8[2][64];
  1.2511 -        uint8_t chroma_qp_table[2][64];
  1.2512 -        int chroma_qp_diff;
  1.2513 -} PPS;
  1.2514 -typedef struct TopBorder
  1.2515 -{
  1.2516 -        uint8_t unfiltered_y[16];
  1.2517 -        uint8_t unfiltered_cb[8];
  1.2518 -        uint8_t unfiltered_cr[8];
  1.2519 -        uint8_t top_borders_y[16 * 4];
  1.2520 -        uint8_t top_borders_cb[8 * 2];
  1.2521 -        uint8_t top_borders_cr[8 * 2];
  1.2522 -} TopBorder;
  1.2523 -typedef struct LeftBorder
  1.2524 -{
  1.2525 -        uint8_t unfiltered_y[17];
  1.2526 -        uint8_t unfiltered_cb[9];
  1.2527 -        uint8_t unfiltered_cr[9];
  1.2528 -} LeftBorder;
  1.2529 -typedef struct H264Mb
  1.2530 -{
  1.2531 -        int16_t mb_x, mb_y;
  1.2532 -        int32_t mb_type;
  1.2533 -        uint16_t cbp;
  1.2534 -        int8_t qscale_mb_xy;
  1.2535 -        int8_t qscale_left_mb_xy;
  1.2536 -        int8_t qscale_top_mb_xy;
  1.2537 -        uint16_t __attribute__((aligned(8))) sub_mb_type[4];
  1.2538 -        uint8_t __attribute__((aligned(8))) non_zero_count[24];
  1.2539 -        int16_t __attribute__((aligned(16))) mb[16 * 24];
  1.2540 -        union 
  1.2541 -        {
  1.2542 -                struct 
  1.2543 -                {
  1.2544 -                        int8_t __attribute__((aligned(8))) ref_index[2][4];
  1.2545 -                        int16_t __attribute__((aligned(16))) mvd[2][16][2];
  1.2546 -                };
  1.2547 -                struct 
  1.2548 -                {
  1.2549 -                        int8_t __attribute__((aligned(8))) intra4x4_pred_mode[16];
  1.2550 -                        int8_t chroma_pred_mode;
  1.2551 -                        int8_t intra16x16_pred_mode;
  1.2552 -                };
  1.2553 -        };
  1.2554 -        uint8_t __attribute__((aligned(8))) top_border[16 + 2 * 8];
  1.2555 -        uint8_t __attribute__((aligned(8))) top_border_next[8];
  1.2556 -        uint8_t __attribute__((aligned(8))) left_border[17 + 2 * 9];
  1.2557 -        int8_t intra4x4_pred_mode_left[4];
  1.2558 -} H264Mb;
  1.2559 -typedef struct RawFrame
  1.2560 -{
  1.2561 -        uint8_t *data;
  1.2562 -        int size;
  1.2563 -        unsigned int data_size;
  1.2564 -        int64_t pos;
  1.2565 -        int state;
  1.2566 -} RawFrame;
  1.2567 -typedef struct PictureInfo
  1.2568 -{
  1.2569 -        int ref_poc[2][16];
  1.2570 -        int ref_count[2];
  1.2571 -        int poc;
  1.2572 -        int frame_num;
  1.2573 -        int pic_id;
  1.2574 -        int long_ref;
  1.2575 -        int cpn;
  1.2576 -        int slice_type_nos;
  1.2577 -        int reference;
  1.2578 -} PictureInfo;
  1.2579 -typedef struct DecodedPicture
  1.2580 -{
  1.2581 -        int16_t (*motion_val[2])[2];
  1.2582 -        int16_t (*motion_val_base[2])[2];
  1.2583 -        int8_t *ref_index[2];
  1.2584 -        uint32_t *mb_type;
  1.2585 -        uint32_t *mb_type_base;
  1.2586 -        int8_t *intra4x4_pred_mode;
  1.2587 -        int8_t *non_zero_count;
  1.2588 -        uint8_t *data[3];
  1.2589 -        int linesize[3];
  1.2590 -        uint8_t *base[3];
  1.2591 -        int cpn;
  1.2592 -        int poc;
  1.2593 -        int reference;
  1.2594 -        int key_frame;
  1.2595 -        int mmco_reset;
  1.2596 -} DecodedPicture;
  1.2597 -extern void __assert_fail(__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
  1.2598 -extern void __assert_perror_fail(int __errnum, __const char *__file, unsigned int __line, __const char *__function) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
  1.2599 -extern void __assert(const char *__assertion, const char *__file, int __line) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
  1.2600 -typedef int64_t x86_reg;
  1.2601 -typedef struct CABACContext
  1.2602 -{
  1.2603 -        int low;
  1.2604 -        int range;
  1.2605 -        int outstanding_count;
  1.2606 -        const uint8_t *bytestream_start;
  1.2607 -        const uint8_t *bytestream;
  1.2608 -        const uint8_t *bytestream_end;
  1.2609 -        uint8_t cabac_state[460];
  1.2610 -} CABACContext;
  1.2611 -extern uint8_t ff_h264_mlps_state[4 * 64];
  1.2612 -extern uint8_t ff_h264_lps_range[4 * 2 * 64];
  1.2613 -extern uint8_t ff_h264_mps_state[2 * 64];
  1.2614 -extern uint8_t ff_h264_lps_state[2 * 64];
  1.2615 -extern const uint8_t ff_h264_norm_shift[512];
  1.2616 -void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size);
  1.2617 -void ff_init_cabac_states(void);
  1.2618 -static void refill(CABACContext *c)
  1.2619 -{
  1.2620 -    c->low += (c->bytestream[0] << 9) + (c->bytestream[1] << 1);
  1.2621 -    c->low -= ((1 << 16) - 1);
  1.2622 -    c->bytestream += 16 / 8;
  1.2623 -}
  1.2624 -static void refill2(CABACContext *c)
  1.2625 -{
  1.2626 -    int i, x;
  1.2627 -    x = c->low ^ (c->low - 1);
  1.2628 -    i = 7 - ff_h264_norm_shift[x >> (16 - 1)];
  1.2629 -    x = - ((1 << 16) - 1);
  1.2630 -    x += (c->bytestream[0] << 9) + (c->bytestream[1] << 1);
  1.2631 -    c->low += x << i;
  1.2632 -    c->bytestream += 16 / 8;
  1.2633 -}
  1.2634 -static inline void renorm_cabac_decoder(CABACContext *c)
  1.2635 -{
  1.2636 -    while (c->range < 0x100)
  1.2637 +  if ((a + 2147483648U) & ~4294967295LU)
  1.2638      {
  1.2639 -        c->range += c->range;
  1.2640 -        c->low += c->low;
  1.2641 -        if (!(c->low & ((1 << 16) - 1)))
  1.2642 -            refill(c);
  1.2643 +      return a >> 63 ^ 2147483647;
  1.2644 +    }
  1.2645 +  else
  1.2646 +    {
  1.2647 +      return a;
  1.2648      }
  1.2649  }
  1.2650 -static inline void renorm_cabac_decoder_once(CABACContext *c)
  1.2651 +static __inline __attribute__((const)) float av_clipf(float a, float amin, float amax)
  1.2652  {
  1.2653 -    int shift = (uint32_t) (c->range - 0x100) >> 31;
  1.2654 -    c->range <<= shift;
  1.2655 -    c->low <<= shift;
  1.2656 -    if (!(c->low & ((1 << 16) - 1)))
  1.2657 -        refill(c);
  1.2658 -}
  1.2659 -static __attribute__((always_inline)) inline int get_cabac_inline(CABACContext *c, uint8_t *const state)
  1.2660 -{
  1.2661 -    int s = *state;
  1.2662 -    int RangeLPS = ff_h264_lps_range[2 * (c->range & 0xC0) + s];
  1.2663 -    int bit, lps_mask __attribute__((unused));
  1.2664 -    c->range -= RangeLPS;
  1.2665 -    lps_mask = ((c->range << (16 + 1)) - c->low) >> 31;
  1.2666 -    c->low -= (c->range << (16 + 1)) & lps_mask;
  1.2667 -    c->range += (RangeLPS - c->range) & lps_mask;
  1.2668 -    s ^= lps_mask;
  1.2669 -    *state = (ff_h264_mlps_state + 128)[s];
  1.2670 -    bit = s & 1;
  1.2671 -    lps_mask = ff_h264_norm_shift[c->range];
  1.2672 -    c->range <<= lps_mask;
  1.2673 -    c->low <<= lps_mask;
  1.2674 -    if (!(c->low & ((1 << 16) - 1)))
  1.2675 -        refill2(c);
  1.2676 -    return bit;
  1.2677 -}
  1.2678 -static int __attribute__((noinline)) __attribute__((unused)) get_cabac_noinline(CABACContext *c, uint8_t *const state)
  1.2679 -{
  1.2680 -    return get_cabac_inline(c, state);
  1.2681 -}
  1.2682 -static int __attribute__((unused)) get_cabac(CABACContext *c, uint8_t *const state)
  1.2683 -{
  1.2684 -    return get_cabac_inline(c, state);
  1.2685 -}
  1.2686 -static int __attribute__((unused)) get_cabac_bypass(CABACContext *c)
  1.2687 -{
  1.2688 -    int range;
  1.2689 -    c->low += c->low;
  1.2690 -    if (!(c->low & ((1 << 16) - 1)))
  1.2691 -        refill(c);
  1.2692 -    range = c->range << (16 + 1);
  1.2693 -    if (c->low < range)
  1.2694 +  if (a < amin)
  1.2695      {
  1.2696 -        return 0;
  1.2697 +      return amin;
  1.2698      }
  1.2699 -    else
  1.2700 +  else
  1.2701      {
  1.2702 -        c->low -= range;
  1.2703 -        return 1;
  1.2704 +      if (a > amax)
  1.2705 +        {
  1.2706 +          return amax;
  1.2707 +        }
  1.2708 +      else
  1.2709 +        {
  1.2710 +          return a;
  1.2711 +        }
  1.2712      }
  1.2713  }
  1.2714 -static __attribute__((always_inline)) inline int get_cabac_bypass_sign(CABACContext *c, int val)
  1.2715 +static __inline __attribute__((const)) int av_ceil_log2(int x)
  1.2716  {
  1.2717 -    int range, mask;
  1.2718 -    c->low += c->low;
  1.2719 -    if (!(c->low & ((1 << 16) - 1)))
  1.2720 -        refill(c);
  1.2721 -    range = c->range << (16 + 1);
  1.2722 -    c->low -= range;
  1.2723 -    mask = c->low >> 31;
  1.2724 -    range &= mask;
  1.2725 -    c->low += range;
  1.2726 -    return (val ^ mask) - mask;
  1.2727 +  return av_log2_c((x - 1) << 1);
  1.2728  }
  1.2729 -static int __attribute__((unused)) get_cabac_terminate(CABACContext *c)
  1.2730 +static __inline __attribute__((always_inline)) void AV_COPY64(void *d, const void *s)
  1.2731  {
  1.2732 -    c->range -= 2;
  1.2733 -    if (c->low < c->range << (16 + 1))
  1.2734 +  __asm__ ("movq   %1, %%mm0  \n\t""movq   %%mm0, %0  \n\t" : "=m"(*((uint64_t *)d)) : "m"(*((const uint64_t *)s)) : "mm0");
  1.2735 +}
  1.2736 +static __inline __attribute__((always_inline)) void AV_SWAP64(void *a, void *b)
  1.2737 +{
  1.2738 +  __asm__ ("movq   %1, %%mm0  \n\t""movq   %0, %%mm1  \n\t""movq   %%mm0, %0  \n\t""movq   %%mm1, %1  \n\t" : "+m"(*((uint64_t *)a)), "+m"(*((uint64_t *)b)) :  : "mm0", "mm1");
  1.2739 +}
  1.2740 +static __inline __attribute__((always_inline)) void AV_ZERO64(void *d)
  1.2741 +{
  1.2742 +  __asm__ ("pxor %%mm0, %%mm0  \n\t""movq %%mm0, %0     \n\t" : "=m"(*((uint64_t *)d)) :  : "mm0");
  1.2743 +}
  1.2744 +static __inline __attribute__((always_inline)) void AV_COPY128(void *d, const void *s)
  1.2745 +{
  1.2746 +  struct v;
  1.2747 +  struct  v
  1.2748 +  {
  1.2749 +    uint64_t v[2];
  1.2750 +  };
  1.2751 +  __asm__ ("movaps   %1, %%xmm0  \n\t""movaps   %%xmm0, %0  \n\t" : "=m"(*((struct v *)d)) : "m"(*((const struct v *)s)) : "xmm0");
  1.2752 +}
  1.2753 +static __inline __attribute__((always_inline)) void AV_ZERO128(void *d)
  1.2754 +{
  1.2755 +  struct v;
  1.2756 +  struct  v
  1.2757 +  {
  1.2758 +    uint64_t v[2];
  1.2759 +  };
  1.2760 +  __asm__ ("pxor %%xmm0, %%xmm0  \n\t""movdqa   %%xmm0, %0  \n\t" : "=m"(*((struct v *)d)) :  : "xmm0");
  1.2761 +}
  1.2762 +static __inline uint32_t rnd_avg32(uint32_t a, uint32_t b)
  1.2763 +{
  1.2764 +  return (a | b) - (((a ^ b) & ~(1 * 16843009LU)) >> 1);
  1.2765 +}
  1.2766 +static __inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b)
  1.2767 +{
  1.2768 +  return (a & b) + (((a ^ b) & ~(1 * 16843009LU)) >> 1);
  1.2769 +}
  1.2770 +static __inline void emms(void)
  1.2771 +{
  1.2772 +  __asm__ volatile("emms;" :  :  : "memory");
  1.2773 +}
  1.2774 +static __inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.2775 +{
  1.2776 +  int i;
  1.2777 +  for (i = 0; i < h; i++)
  1.2778      {
  1.2779 -        renorm_cabac_decoder_once(c);
  1.2780 -        return 0;
  1.2781 -    }
  1.2782 -    else
  1.2783 -    {
  1.2784 -        return c->bytestream - c->bytestream_start;
  1.2785 -    }
  1.2786 -}
  1.2787 -static __attribute__((always_inline)) inline __attribute__((const)) uint16_t bswap_16(uint16_t x)
  1.2788 -{
  1.2789 -    __asm__ ("rorw $8, %0": "+r" (x): );
  1.2790 -    return x;
  1.2791 -}
  1.2792 -static __attribute__((always_inline)) inline __attribute__((const)) uint32_t bswap_32(uint32_t x)
  1.2793 -{
  1.2794 -    __asm__ ("bswap   %0": "+r" (x): );
  1.2795 -    return x;
  1.2796 -}
  1.2797 -static inline uint64_t __attribute__((const)) bswap_64(uint64_t x)
  1.2798 -{
  1.2799 -    __asm__ ("bswap  %0": "=r" (x): "0" (x));
  1.2800 -    return x;
  1.2801 -}
  1.2802 -enum 
  1.2803 -{
  1.2804 -    _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), 
  1.2805 -    _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), 
  1.2806 -    _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), 
  1.2807 -    _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), 
  1.2808 -    _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), 
  1.2809 -    _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), 
  1.2810 -    _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), 
  1.2811 -    _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), 
  1.2812 -    _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), 
  1.2813 -    _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), 
  1.2814 -    _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), 
  1.2815 -    _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
  1.2816 -};
  1.2817 -extern __const unsigned short int **__ctype_b_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const));
  1.2818 -extern __const __int32_t **__ctype_tolower_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const));
  1.2819 -extern __const __int32_t **__ctype_toupper_loc(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__const));
  1.2820 -extern int isalnum(int) __attribute__((__nothrow__, __leaf__));
  1.2821 -extern int isalpha(int) __attribute__((__nothrow__, __leaf__));
  1.2822 -extern int iscntrl(int) __attribute__((__nothrow__, __leaf__));
  1.2823 -extern int isdigit(int) __attribute__((__nothrow__, __leaf__));
  1.2824 -extern int islower(int) __attribute__((__nothrow__, __leaf__));
  1.2825 -extern int isgraph(int) __attribute__((__nothrow__, __leaf__));
  1.2826 -extern int isprint(int) __attribute__((__nothrow__, __leaf__));
  1.2827 -extern int ispunct(int) __attribute__((__nothrow__, __leaf__));
  1.2828 -extern int isspace(int) __attribute__((__nothrow__, __leaf__));
  1.2829 -extern int isupper(int) __attribute__((__nothrow__, __leaf__));
  1.2830 -extern int isxdigit(int) __attribute__((__nothrow__, __leaf__));
  1.2831 -extern int tolower(int __c) __attribute__((__nothrow__, __leaf__));
  1.2832 -extern int toupper(int __c) __attribute__((__nothrow__, __leaf__));
  1.2833 -extern int isblank(int) __attribute__((__nothrow__, __leaf__));
  1.2834 -extern int isascii(int __c) __attribute__((__nothrow__, __leaf__));
  1.2835 -extern int toascii(int __c) __attribute__((__nothrow__, __leaf__));
  1.2836 -extern int _toupper(int) __attribute__((__nothrow__, __leaf__));
  1.2837 -extern int _tolower(int) __attribute__((__nothrow__, __leaf__));
  1.2838 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) tolower(int __c)
  1.2839 -{
  1.2840 -    return __c >= - 128 && __c < 256 ? (*__ctype_tolower_loc())[__c] : __c;
  1.2841 -}
  1.2842 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) toupper(int __c)
  1.2843 -{
  1.2844 -    return __c >= - 128 && __c < 256 ? (*__ctype_toupper_loc())[__c] : __c;
  1.2845 -}
  1.2846 -extern int isalnum_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2847 -extern int isalpha_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2848 -extern int iscntrl_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2849 -extern int isdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2850 -extern int islower_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2851 -extern int isgraph_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2852 -extern int isprint_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2853 -extern int ispunct_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2854 -extern int isspace_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2855 -extern int isupper_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2856 -extern int isxdigit_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2857 -extern int isblank_l(int, __locale_t) __attribute__((__nothrow__, __leaf__));
  1.2858 -extern int __tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
  1.2859 -extern int tolower_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
  1.2860 -extern int __toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
  1.2861 -extern int toupper_l(int __c, __locale_t __l) __attribute__((__nothrow__, __leaf__));
  1.2862 -typedef int __gwchar_t;
  1.2863 -typedef struct 
  1.2864 -{
  1.2865 -        long int quot;
  1.2866 -        long int rem;
  1.2867 -} imaxdiv_t;
  1.2868 -extern intmax_t imaxabs(intmax_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2869 -extern imaxdiv_t imaxdiv(intmax_t __numer, intmax_t __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2870 -extern intmax_t strtoimax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
  1.2871 -extern uintmax_t strtoumax(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
  1.2872 -extern intmax_t wcstoimax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
  1.2873 -extern uintmax_t wcstoumax(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__));
  1.2874 -extern long int __strtol_internal(__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.2875 -extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) strtoimax(__const char *__restrict nptr, char **__restrict endptr, int base)
  1.2876 -{
  1.2877 -    return __strtol_internal(nptr, endptr, base, 0);
  1.2878 -}
  1.2879 -extern unsigned long int __strtoul_internal(__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.2880 -extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) strtoumax(__const char *__restrict nptr, char **__restrict endptr, int base)
  1.2881 -{
  1.2882 -    return __strtoul_internal(nptr, endptr, base, 0);
  1.2883 -}
  1.2884 -extern long int __wcstol_internal(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.2885 -extern __inline __attribute__((__gnu_inline__)) intmax_t __attribute__((__nothrow__, __leaf__)) wcstoimax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
  1.2886 -{
  1.2887 -    return __wcstol_internal(nptr, endptr, base, 0);
  1.2888 -}
  1.2889 -extern unsigned long int __wcstoul_internal(__const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base, int __group) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.2890 -extern __inline __attribute__((__gnu_inline__)) uintmax_t __attribute__((__nothrow__, __leaf__)) wcstoumax(__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)
  1.2891 -{
  1.2892 -    return __wcstoul_internal(nptr, endptr, base, 0);
  1.2893 -}
  1.2894 -typedef float float_t;
  1.2895 -typedef double double_t;
  1.2896 -extern double acos(double __x) __attribute__((__nothrow__, __leaf__));
  1.2897 -extern double __acos(double __x) __attribute__((__nothrow__, __leaf__));
  1.2898 -extern double asin(double __x) __attribute__((__nothrow__, __leaf__));
  1.2899 -extern double __asin(double __x) __attribute__((__nothrow__, __leaf__));
  1.2900 -extern double atan(double __x) __attribute__((__nothrow__, __leaf__));
  1.2901 -extern double __atan(double __x) __attribute__((__nothrow__, __leaf__));
  1.2902 -extern double atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__));
  1.2903 -extern double __atan2(double __y, double __x) __attribute__((__nothrow__, __leaf__));
  1.2904 -extern double cos(double __x) __attribute__((__nothrow__, __leaf__));
  1.2905 -extern double __cos(double __x) __attribute__((__nothrow__, __leaf__));
  1.2906 -extern double sin(double __x) __attribute__((__nothrow__, __leaf__));
  1.2907 -extern double __sin(double __x) __attribute__((__nothrow__, __leaf__));
  1.2908 -extern double tan(double __x) __attribute__((__nothrow__, __leaf__));
  1.2909 -extern double __tan(double __x) __attribute__((__nothrow__, __leaf__));
  1.2910 -extern double cosh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2911 -extern double __cosh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2912 -extern double sinh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2913 -extern double __sinh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2914 -extern double tanh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2915 -extern double __tanh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2916 -extern double acosh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2917 -extern double __acosh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2918 -extern double asinh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2919 -extern double __asinh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2920 -extern double atanh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2921 -extern double __atanh(double __x) __attribute__((__nothrow__, __leaf__));
  1.2922 -extern double exp(double __x) __attribute__((__nothrow__, __leaf__));
  1.2923 -extern double __exp(double __x) __attribute__((__nothrow__, __leaf__));
  1.2924 -extern double frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
  1.2925 -extern double __frexp(double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
  1.2926 -extern double ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
  1.2927 -extern double __ldexp(double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
  1.2928 -extern double log(double __x) __attribute__((__nothrow__, __leaf__));
  1.2929 -extern double __log(double __x) __attribute__((__nothrow__, __leaf__));
  1.2930 -extern double log10(double __x) __attribute__((__nothrow__, __leaf__));
  1.2931 -extern double __log10(double __x) __attribute__((__nothrow__, __leaf__));
  1.2932 -extern double modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__));
  1.2933 -extern double __modf(double __x, double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.2934 -extern double expm1(double __x) __attribute__((__nothrow__, __leaf__));
  1.2935 -extern double __expm1(double __x) __attribute__((__nothrow__, __leaf__));
  1.2936 -extern double log1p(double __x) __attribute__((__nothrow__, __leaf__));
  1.2937 -extern double __log1p(double __x) __attribute__((__nothrow__, __leaf__));
  1.2938 -extern double logb(double __x) __attribute__((__nothrow__, __leaf__));
  1.2939 -extern double __logb(double __x) __attribute__((__nothrow__, __leaf__));
  1.2940 -extern double exp2(double __x) __attribute__((__nothrow__, __leaf__));
  1.2941 -extern double __exp2(double __x) __attribute__((__nothrow__, __leaf__));
  1.2942 -extern double log2(double __x) __attribute__((__nothrow__, __leaf__));
  1.2943 -extern double __log2(double __x) __attribute__((__nothrow__, __leaf__));
  1.2944 -extern double pow(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2945 -extern double __pow(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2946 -extern double sqrt(double __x) __attribute__((__nothrow__, __leaf__));
  1.2947 -extern double __sqrt(double __x) __attribute__((__nothrow__, __leaf__));
  1.2948 -extern double hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2949 -extern double __hypot(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2950 -extern double cbrt(double __x) __attribute__((__nothrow__, __leaf__));
  1.2951 -extern double __cbrt(double __x) __attribute__((__nothrow__, __leaf__));
  1.2952 -extern double ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2953 -extern double __ceil(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2954 -extern double fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2955 -extern double __fabs(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2956 -extern double floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2957 -extern double __floor(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2958 -extern double fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2959 -extern double __fmod(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2960 -extern int __isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2961 -extern int __finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2962 -extern int isinf(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2963 -extern int finite(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2964 -extern double drem(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2965 -extern double __drem(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.2966 -extern double significand(double __x) __attribute__((__nothrow__, __leaf__));
  1.2967 -extern double __significand(double __x) __attribute__((__nothrow__, __leaf__));
  1.2968 -extern double copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2969 -extern double __copysign(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2970 -extern double nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2971 -extern double __nan(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2972 -extern int __isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2973 -extern int isnan(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.2974 -extern double j0(double) __attribute__((__nothrow__, __leaf__));
  1.2975 -extern double __j0(double) __attribute__((__nothrow__, __leaf__));
  1.2976 -extern double j1(double) __attribute__((__nothrow__, __leaf__));
  1.2977 -extern double __j1(double) __attribute__((__nothrow__, __leaf__));
  1.2978 -extern double jn(int, double) __attribute__((__nothrow__, __leaf__));
  1.2979 -extern double __jn(int, double) __attribute__((__nothrow__, __leaf__));
  1.2980 -extern double y0(double) __attribute__((__nothrow__, __leaf__));
  1.2981 -extern double __y0(double) __attribute__((__nothrow__, __leaf__));
  1.2982 -extern double y1(double) __attribute__((__nothrow__, __leaf__));
  1.2983 -extern double __y1(double) __attribute__((__nothrow__, __leaf__));
  1.2984 -extern double yn(int, double) __attribute__((__nothrow__, __leaf__));
  1.2985 -extern double __yn(int, double) __attribute__((__nothrow__, __leaf__));
  1.2986 -extern double erf(double) __attribute__((__nothrow__, __leaf__));
  1.2987 -extern double __erf(double) __attribute__((__nothrow__, __leaf__));
  1.2988 -extern double erfc(double) __attribute__((__nothrow__, __leaf__));
  1.2989 -extern double __erfc(double) __attribute__((__nothrow__, __leaf__));
  1.2990 -extern double lgamma(double) __attribute__((__nothrow__, __leaf__));
  1.2991 -extern double __lgamma(double) __attribute__((__nothrow__, __leaf__));
  1.2992 -extern double tgamma(double) __attribute__((__nothrow__, __leaf__));
  1.2993 -extern double __tgamma(double) __attribute__((__nothrow__, __leaf__));
  1.2994 -extern double gamma(double) __attribute__((__nothrow__, __leaf__));
  1.2995 -extern double __gamma(double) __attribute__((__nothrow__, __leaf__));
  1.2996 -extern double lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
  1.2997 -extern double __lgamma_r(double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
  1.2998 -extern double rint(double __x) __attribute__((__nothrow__, __leaf__));
  1.2999 -extern double __rint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3000 -extern double nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3001 -extern double __nextafter(double __x, double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3002 -extern double nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3003 -extern double __nexttoward(double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3004 -extern double remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3005 -extern double __remainder(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3006 -extern double scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__));
  1.3007 -extern double __scalbn(double __x, int __n) __attribute__((__nothrow__, __leaf__));
  1.3008 -extern int ilogb(double __x) __attribute__((__nothrow__, __leaf__));
  1.3009 -extern int __ilogb(double __x) __attribute__((__nothrow__, __leaf__));
  1.3010 -extern double scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__));
  1.3011 -extern double __scalbln(double __x, long int __n) __attribute__((__nothrow__, __leaf__));
  1.3012 -extern double nearbyint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3013 -extern double __nearbyint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3014 -extern double round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3015 -extern double __round(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3016 -extern double trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3017 -extern double __trunc(double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3018 -extern double remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
  1.3019 -extern double __remquo(double __x, double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
  1.3020 -extern long int lrint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3021 -extern long int __lrint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3022 -extern long long int llrint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3023 -extern long long int __llrint(double __x) __attribute__((__nothrow__, __leaf__));
  1.3024 -extern long int lround(double __x) __attribute__((__nothrow__, __leaf__));
  1.3025 -extern long int __lround(double __x) __attribute__((__nothrow__, __leaf__));
  1.3026 -extern long long int llround(double __x) __attribute__((__nothrow__, __leaf__));
  1.3027 -extern long long int __llround(double __x) __attribute__((__nothrow__, __leaf__));
  1.3028 -extern double fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3029 -extern double __fdim(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3030 -extern double fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3031 -extern double __fmax(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3032 -extern double fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3033 -extern double __fmin(double __x, double __y) __attribute__((__nothrow__, __leaf__));
  1.3034 -extern int __fpclassify(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3035 -extern int __signbit(double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3036 -extern double fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__));
  1.3037 -extern double __fma(double __x, double __y, double __z) __attribute__((__nothrow__, __leaf__));
  1.3038 -extern double scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__));
  1.3039 -extern double __scalb(double __x, double __n) __attribute__((__nothrow__, __leaf__));
  1.3040 -extern float acosf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3041 -extern float __acosf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3042 -extern float asinf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3043 -extern float __asinf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3044 -extern float atanf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3045 -extern float __atanf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3046 -extern float atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__));
  1.3047 -extern float __atan2f(float __y, float __x) __attribute__((__nothrow__, __leaf__));
  1.3048 -extern float cosf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3049 -extern float __cosf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3050 -extern float sinf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3051 -extern float __sinf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3052 -extern float tanf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3053 -extern float __tanf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3054 -extern float coshf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3055 -extern float __coshf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3056 -extern float sinhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3057 -extern float __sinhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3058 -extern float tanhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3059 -extern float __tanhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3060 -extern float acoshf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3061 -extern float __acoshf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3062 -extern float asinhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3063 -extern float __asinhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3064 -extern float atanhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3065 -extern float __atanhf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3066 -extern float expf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3067 -extern float __expf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3068 -extern float frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
  1.3069 -extern float __frexpf(float __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
  1.3070 -extern float ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__));
  1.3071 -extern float __ldexpf(float __x, int __exponent) __attribute__((__nothrow__, __leaf__));
  1.3072 -extern float logf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3073 -extern float __logf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3074 -extern float log10f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3075 -extern float __log10f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3076 -extern float modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__));
  1.3077 -extern float __modff(float __x, float *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3078 -extern float expm1f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3079 -extern float __expm1f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3080 -extern float log1pf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3081 -extern float __log1pf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3082 -extern float logbf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3083 -extern float __logbf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3084 -extern float exp2f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3085 -extern float __exp2f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3086 -extern float log2f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3087 -extern float __log2f(float __x) __attribute__((__nothrow__, __leaf__));
  1.3088 -extern float powf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3089 -extern float __powf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3090 -extern float sqrtf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3091 -extern float __sqrtf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3092 -extern float hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3093 -extern float __hypotf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3094 -extern float cbrtf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3095 -extern float __cbrtf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3096 -extern float ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3097 -extern float __ceilf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3098 -extern float fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3099 -extern float __fabsf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3100 -extern float floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3101 -extern float __floorf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3102 -extern float fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3103 -extern float __fmodf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3104 -extern int __isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3105 -extern int __finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3106 -extern int isinff(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3107 -extern int finitef(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3108 -extern float dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3109 -extern float __dremf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3110 -extern float significandf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3111 -extern float __significandf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3112 -extern float copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3113 -extern float __copysignf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3114 -extern float nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3115 -extern float __nanf(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3116 -extern int __isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3117 -extern int isnanf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3118 -extern float j0f(float) __attribute__((__nothrow__, __leaf__));
  1.3119 -extern float __j0f(float) __attribute__((__nothrow__, __leaf__));
  1.3120 -extern float j1f(float) __attribute__((__nothrow__, __leaf__));
  1.3121 -extern float __j1f(float) __attribute__((__nothrow__, __leaf__));
  1.3122 -extern float jnf(int, float) __attribute__((__nothrow__, __leaf__));
  1.3123 -extern float __jnf(int, float) __attribute__((__nothrow__, __leaf__));
  1.3124 -extern float y0f(float) __attribute__((__nothrow__, __leaf__));
  1.3125 -extern float __y0f(float) __attribute__((__nothrow__, __leaf__));
  1.3126 -extern float y1f(float) __attribute__((__nothrow__, __leaf__));
  1.3127 -extern float __y1f(float) __attribute__((__nothrow__, __leaf__));
  1.3128 -extern float ynf(int, float) __attribute__((__nothrow__, __leaf__));
  1.3129 -extern float __ynf(int, float) __attribute__((__nothrow__, __leaf__));
  1.3130 -extern float erff(float) __attribute__((__nothrow__, __leaf__));
  1.3131 -extern float __erff(float) __attribute__((__nothrow__, __leaf__));
  1.3132 -extern float erfcf(float) __attribute__((__nothrow__, __leaf__));
  1.3133 -extern float __erfcf(float) __attribute__((__nothrow__, __leaf__));
  1.3134 -extern float lgammaf(float) __attribute__((__nothrow__, __leaf__));
  1.3135 -extern float __lgammaf(float) __attribute__((__nothrow__, __leaf__));
  1.3136 -extern float tgammaf(float) __attribute__((__nothrow__, __leaf__));
  1.3137 -extern float __tgammaf(float) __attribute__((__nothrow__, __leaf__));
  1.3138 -extern float gammaf(float) __attribute__((__nothrow__, __leaf__));
  1.3139 -extern float __gammaf(float) __attribute__((__nothrow__, __leaf__));
  1.3140 -extern float lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__));
  1.3141 -extern float __lgammaf_r(float, int *__signgamp) __attribute__((__nothrow__, __leaf__));
  1.3142 -extern float rintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3143 -extern float __rintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3144 -extern float nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3145 -extern float __nextafterf(float __x, float __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3146 -extern float nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3147 -extern float __nexttowardf(float __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3148 -extern float remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3149 -extern float __remainderf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3150 -extern float scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__));
  1.3151 -extern float __scalbnf(float __x, int __n) __attribute__((__nothrow__, __leaf__));
  1.3152 -extern int ilogbf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3153 -extern int __ilogbf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3154 -extern float scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__));
  1.3155 -extern float __scalblnf(float __x, long int __n) __attribute__((__nothrow__, __leaf__));
  1.3156 -extern float nearbyintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3157 -extern float __nearbyintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3158 -extern float roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3159 -extern float __roundf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3160 -extern float truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3161 -extern float __truncf(float __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3162 -extern float remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__));
  1.3163 -extern float __remquof(float __x, float __y, int *__quo) __attribute__((__nothrow__, __leaf__));
  1.3164 -extern long int lrintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3165 -extern long int __lrintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3166 -extern long long int llrintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3167 -extern long long int __llrintf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3168 -extern long int lroundf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3169 -extern long int __lroundf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3170 -extern long long int llroundf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3171 -extern long long int __llroundf(float __x) __attribute__((__nothrow__, __leaf__));
  1.3172 -extern float fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3173 -extern float __fdimf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3174 -extern float fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3175 -extern float __fmaxf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3176 -extern float fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3177 -extern float __fminf(float __x, float __y) __attribute__((__nothrow__, __leaf__));
  1.3178 -extern int __fpclassifyf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3179 -extern int __signbitf(float __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3180 -extern float fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__));
  1.3181 -extern float __fmaf(float __x, float __y, float __z) __attribute__((__nothrow__, __leaf__));
  1.3182 -extern float scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__));
  1.3183 -extern float __scalbf(float __x, float __n) __attribute__((__nothrow__, __leaf__));
  1.3184 -extern long double acosl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3185 -extern long double __acosl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3186 -extern long double asinl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3187 -extern long double __asinl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3188 -extern long double atanl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3189 -extern long double __atanl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3190 -extern long double atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__));
  1.3191 -extern long double __atan2l(long double __y, long double __x) __attribute__((__nothrow__, __leaf__));
  1.3192 -extern long double cosl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3193 -extern long double __cosl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3194 -extern long double sinl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3195 -extern long double __sinl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3196 -extern long double tanl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3197 -extern long double __tanl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3198 -extern long double coshl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3199 -extern long double __coshl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3200 -extern long double sinhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3201 -extern long double __sinhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3202 -extern long double tanhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3203 -extern long double __tanhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3204 -extern long double acoshl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3205 -extern long double __acoshl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3206 -extern long double asinhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3207 -extern long double __asinhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3208 -extern long double atanhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3209 -extern long double __atanhl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3210 -extern long double expl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3211 -extern long double __expl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3212 -extern long double frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
  1.3213 -extern long double __frexpl(long double __x, int *__exponent) __attribute__((__nothrow__, __leaf__));
  1.3214 -extern long double ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
  1.3215 -extern long double __ldexpl(long double __x, int __exponent) __attribute__((__nothrow__, __leaf__));
  1.3216 -extern long double logl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3217 -extern long double __logl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3218 -extern long double log10l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3219 -extern long double __log10l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3220 -extern long double modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__));
  1.3221 -extern long double __modfl(long double __x, long double *__iptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3222 -extern long double expm1l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3223 -extern long double __expm1l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3224 -extern long double log1pl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3225 -extern long double __log1pl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3226 -extern long double logbl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3227 -extern long double __logbl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3228 -extern long double exp2l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3229 -extern long double __exp2l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3230 -extern long double log2l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3231 -extern long double __log2l(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3232 -extern long double powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3233 -extern long double __powl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3234 -extern long double sqrtl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3235 -extern long double __sqrtl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3236 -extern long double hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3237 -extern long double __hypotl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3238 -extern long double cbrtl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3239 -extern long double __cbrtl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3240 -extern long double ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3241 -extern long double __ceill(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3242 -extern long double fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3243 -extern long double __fabsl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3244 -extern long double floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3245 -extern long double __floorl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3246 -extern long double fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3247 -extern long double __fmodl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3248 -extern int __isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3249 -extern int __finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3250 -extern int isinfl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3251 -extern int finitel(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3252 -extern long double dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3253 -extern long double __dreml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3254 -extern long double significandl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3255 -extern long double __significandl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3256 -extern long double copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3257 -extern long double __copysignl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3258 -extern long double nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3259 -extern long double __nanl(__const char *__tagb) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3260 -extern int __isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3261 -extern int isnanl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3262 -extern long double j0l(long double) __attribute__((__nothrow__, __leaf__));
  1.3263 -extern long double __j0l(long double) __attribute__((__nothrow__, __leaf__));
  1.3264 -extern long double j1l(long double) __attribute__((__nothrow__, __leaf__));
  1.3265 -extern long double __j1l(long double) __attribute__((__nothrow__, __leaf__));
  1.3266 -extern long double jnl(int, long double) __attribute__((__nothrow__, __leaf__));
  1.3267 -extern long double __jnl(int, long double) __attribute__((__nothrow__, __leaf__));
  1.3268 -extern long double y0l(long double) __attribute__((__nothrow__, __leaf__));
  1.3269 -extern long double __y0l(long double) __attribute__((__nothrow__, __leaf__));
  1.3270 -extern long double y1l(long double) __attribute__((__nothrow__, __leaf__));
  1.3271 -extern long double __y1l(long double) __attribute__((__nothrow__, __leaf__));
  1.3272 -extern long double ynl(int, long double) __attribute__((__nothrow__, __leaf__));
  1.3273 -extern long double __ynl(int, long double) __attribute__((__nothrow__, __leaf__));
  1.3274 -extern long double erfl(long double) __attribute__((__nothrow__, __leaf__));
  1.3275 -extern long double __erfl(long double) __attribute__((__nothrow__, __leaf__));
  1.3276 -extern long double erfcl(long double) __attribute__((__nothrow__, __leaf__));
  1.3277 -extern long double __erfcl(long double) __attribute__((__nothrow__, __leaf__));
  1.3278 -extern long double lgammal(long double) __attribute__((__nothrow__, __leaf__));
  1.3279 -extern long double __lgammal(long double) __attribute__((__nothrow__, __leaf__));
  1.3280 -extern long double tgammal(long double) __attribute__((__nothrow__, __leaf__));
  1.3281 -extern long double __tgammal(long double) __attribute__((__nothrow__, __leaf__));
  1.3282 -extern long double gammal(long double) __attribute__((__nothrow__, __leaf__));
  1.3283 -extern long double __gammal(long double) __attribute__((__nothrow__, __leaf__));
  1.3284 -extern long double lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
  1.3285 -extern long double __lgammal_r(long double, int *__signgamp) __attribute__((__nothrow__, __leaf__));
  1.3286 -extern long double rintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3287 -extern long double __rintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3288 -extern long double nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3289 -extern long double __nextafterl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3290 -extern long double nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3291 -extern long double __nexttowardl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3292 -extern long double remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3293 -extern long double __remainderl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3294 -extern long double scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__));
  1.3295 -extern long double __scalbnl(long double __x, int __n) __attribute__((__nothrow__, __leaf__));
  1.3296 -extern int ilogbl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3297 -extern int __ilogbl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3298 -extern long double scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__));
  1.3299 -extern long double __scalblnl(long double __x, long int __n) __attribute__((__nothrow__, __leaf__));
  1.3300 -extern long double nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3301 -extern long double __nearbyintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3302 -extern long double roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3303 -extern long double __roundl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3304 -extern long double truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3305 -extern long double __truncl(long double __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3306 -extern long double remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
  1.3307 -extern long double __remquol(long double __x, long double __y, int *__quo) __attribute__((__nothrow__, __leaf__));
  1.3308 -extern long int lrintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3309 -extern long int __lrintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3310 -extern long long int llrintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3311 -extern long long int __llrintl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3312 -extern long int lroundl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3313 -extern long int __lroundl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3314 -extern long long int llroundl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3315 -extern long long int __llroundl(long double __x) __attribute__((__nothrow__, __leaf__));
  1.3316 -extern long double fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3317 -extern long double __fdiml(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3318 -extern long double fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3319 -extern long double __fmaxl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3320 -extern long double fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3321 -extern long double __fminl(long double __x, long double __y) __attribute__((__nothrow__, __leaf__));
  1.3322 -extern int __fpclassifyl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3323 -extern int __signbitl(long double __value) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3324 -extern long double fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__));
  1.3325 -extern long double __fmal(long double __x, long double __y, long double __z) __attribute__((__nothrow__, __leaf__));
  1.3326 -extern long double scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__));
  1.3327 -extern long double __scalbl(long double __x, long double __n) __attribute__((__nothrow__, __leaf__));
  1.3328 -extern int signgam;
  1.3329 -enum 
  1.3330 -{
  1.3331 -    FP_NAN, 
  1.3332 -    FP_INFINITE, 
  1.3333 -    FP_ZERO, 
  1.3334 -    FP_SUBNORMAL, 
  1.3335 -    FP_NORMAL
  1.3336 -};
  1.3337 -typedef enum 
  1.3338 -{
  1.3339 -    _IEEE_ = - 1, 
  1.3340 -    _SVID_, 
  1.3341 -    _XOPEN_, 
  1.3342 -    _POSIX_, 
  1.3343 -    _ISOC_
  1.3344 -} _LIB_VERSION_TYPE;
  1.3345 -extern _LIB_VERSION_TYPE _LIB_VERSION;
  1.3346 -struct exception
  1.3347 -{
  1.3348 -        int type;
  1.3349 -        char *name;
  1.3350 -        double arg1;
  1.3351 -        double arg2;
  1.3352 -        double retval;
  1.3353 -};
  1.3354 -extern int matherr(struct exception *__exc);
  1.3355 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitf(float __x)
  1.3356 -{
  1.3357 -    int __m;
  1.3358 -    __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x));
  1.3359 -    return __m & 0x8;
  1.3360 -}
  1.3361 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbit(double __x)
  1.3362 -{
  1.3363 -    int __m;
  1.3364 -    __asm ("pmovmskb %1, %0": "=r" (__m): "x" (__x));
  1.3365 -    return __m & 0x80;
  1.3366 -}
  1.3367 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) __signbitl(long double __x)
  1.3368 -{
  1.3369 -    __extension__
  1.3370 -    union 
  1.3371 -    {
  1.3372 -            long double __l;
  1.3373 -            int __i[3];
  1.3374 -    } __u = {__l:__x};
  1.3375 -    return (__u.__i[2] & 0x8000) != 0;
  1.3376 -}
  1.3377 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrintf(float __x)
  1.3378 -{
  1.3379 -    long int __res;
  1.3380 -    __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x));
  1.3381 -    return __res;
  1.3382 -}
  1.3383 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long int __attribute__((__nothrow__, __leaf__)) lrint(double __x)
  1.3384 -{
  1.3385 -    long int __res;
  1.3386 -    __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x));
  1.3387 -    return __res;
  1.3388 -}
  1.3389 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrintf(float __x)
  1.3390 -{
  1.3391 -    long long int __res;
  1.3392 -    __asm ("cvtss2si %1, %0": "=r" (__res): "xm" (__x));
  1.3393 -    return __res;
  1.3394 -}
  1.3395 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) long long int __attribute__((__nothrow__, __leaf__)) llrint(double __x)
  1.3396 -{
  1.3397 -    long long int __res;
  1.3398 -    __asm ("cvtsd2si %1, %0": "=r" (__res): "xm" (__x));
  1.3399 -    return __res;
  1.3400 -}
  1.3401 -union wait
  1.3402 -{
  1.3403 -        int w_status;
  1.3404 -        struct 
  1.3405 -        {
  1.3406 -                unsigned int __w_termsig : 7;
  1.3407 -                unsigned int __w_coredump : 1;
  1.3408 -                unsigned int __w_retcode : 8;
  1.3409 -                unsigned int : 16;
  1.3410 -        } __wait_terminated;
  1.3411 -        struct 
  1.3412 -        {
  1.3413 -                unsigned int __w_stopval : 8;
  1.3414 -                unsigned int __w_stopsig : 8;
  1.3415 -                unsigned int : 16;
  1.3416 -        } __wait_stopped;
  1.3417 -};
  1.3418 -typedef union 
  1.3419 -{
  1.3420 -        union wait *__uptr;
  1.3421 -        int *__iptr;
  1.3422 -} __WAIT_STATUS __attribute__((__transparent_union__));
  1.3423 -typedef struct 
  1.3424 -{
  1.3425 -        int quot;
  1.3426 -        int rem;
  1.3427 -} div_t;
  1.3428 -typedef struct 
  1.3429 -{
  1.3430 -        long int quot;
  1.3431 -        long int rem;
  1.3432 -} ldiv_t;
  1.3433 -__extension__
  1.3434 -typedef struct 
  1.3435 -{
  1.3436 -        long long int quot;
  1.3437 -        long long int rem;
  1.3438 -} lldiv_t;
  1.3439 -extern size_t __ctype_get_mb_cur_max(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3440 -extern double atof(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3441 -extern int atoi(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3442 -extern long int atol(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3443 -__extension__
  1.3444 -extern long long int atoll(__const char *__nptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3445 -extern double strtod(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3446 -extern float strtof(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3447 -extern long double strtold(__const char *__restrict __nptr, char **__restrict __endptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3448 -extern long int strtol(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3449 -extern unsigned long int strtoul(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3450 -__extension__
  1.3451 -extern long long int strtoq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3452 -__extension__
  1.3453 -extern unsigned long long int strtouq(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3454 -__extension__
  1.3455 -extern long long int strtoll(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3456 -__extension__
  1.3457 -extern unsigned long long int strtoull(__const char *__restrict __nptr, char **__restrict __endptr, int __base) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3458 -extern __inline __attribute__((__gnu_inline__)) double __attribute__((__nothrow__, __leaf__)) atof(__const char *__nptr)
  1.3459 -{
  1.3460 -    return strtod(__nptr, (char **) ((void *) 0));
  1.3461 -}
  1.3462 -extern __inline __attribute__((__gnu_inline__)) int __attribute__((__nothrow__, __leaf__)) atoi(__const char *__nptr)
  1.3463 -{
  1.3464 -    return (int) strtol(__nptr, (char **) ((void *) 0), 10);
  1.3465 -}
  1.3466 -extern __inline __attribute__((__gnu_inline__)) long int __attribute__((__nothrow__, __leaf__)) atol(__const char *__nptr)
  1.3467 -{
  1.3468 -    return strtol(__nptr, (char **) ((void *) 0), 10);
  1.3469 -}
  1.3470 -__extension__
  1.3471 -extern __inline __attribute__((__gnu_inline__)) long long int __attribute__((__nothrow__, __leaf__)) atoll(__const char *__nptr)
  1.3472 -{
  1.3473 -    return strtoll(__nptr, (char **) ((void *) 0), 10);
  1.3474 -}
  1.3475 -extern char *l64a(long int __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3476 -extern long int a64l(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3477 -typedef __u_char u_char;
  1.3478 -typedef __u_short u_short;
  1.3479 -typedef __u_int u_int;
  1.3480 -typedef __u_long u_long;
  1.3481 -typedef __quad_t quad_t;
  1.3482 -typedef __u_quad_t u_quad_t;
  1.3483 -typedef __fsid_t fsid_t;
  1.3484 -typedef __loff_t loff_t;
  1.3485 -typedef __ino_t ino_t;
  1.3486 -typedef __dev_t dev_t;
  1.3487 -typedef __mode_t mode_t;
  1.3488 -typedef __nlink_t nlink_t;
  1.3489 -typedef __id_t id_t;
  1.3490 -typedef __daddr_t daddr_t;
  1.3491 -typedef __caddr_t caddr_t;
  1.3492 -typedef __key_t key_t;
  1.3493 -typedef unsigned long int ulong;
  1.3494 -typedef unsigned short int ushort;
  1.3495 -typedef unsigned int uint;
  1.3496 -typedef unsigned int u_int8_t __attribute__((__mode__(__QI__)));
  1.3497 -typedef unsigned int u_int16_t __attribute__((__mode__(__HI__)));
  1.3498 -typedef unsigned int u_int32_t __attribute__((__mode__(__SI__)));
  1.3499 -typedef unsigned int u_int64_t __attribute__((__mode__(__DI__)));
  1.3500 -typedef int register_t __attribute__((__mode__(__word__)));
  1.3501 -typedef int __sig_atomic_t;
  1.3502 -typedef struct 
  1.3503 -{
  1.3504 -        unsigned long int __val[(1024 / (8 * sizeof(unsigned long int)))];
  1.3505 -} __sigset_t;
  1.3506 -typedef __sigset_t sigset_t;
  1.3507 -struct timeval
  1.3508 -{
  1.3509 -        __time_t tv_sec;
  1.3510 -        __suseconds_t tv_usec;
  1.3511 -};
  1.3512 -typedef __suseconds_t suseconds_t;
  1.3513 -typedef long int __fd_mask;
  1.3514 -typedef struct 
  1.3515 -{
  1.3516 -        __fd_mask __fds_bits[1024 / (8 * (int) sizeof(__fd_mask))];
  1.3517 -} fd_set;
  1.3518 -typedef __fd_mask fd_mask;
  1.3519 -extern int select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout);
  1.3520 -extern int pselect(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask);
  1.3521 -extern unsigned long int __fdelt_chk(unsigned long int __d);
  1.3522 -extern unsigned long int __fdelt_warn(unsigned long int __d) __attribute__((__warning__("bit outside of fd_set selected")));
  1.3523 -__extension__
  1.3524 -extern unsigned int gnu_dev_major(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3525 -__extension__
  1.3526 -extern unsigned int gnu_dev_minor(unsigned long long int __dev) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3527 -__extension__
  1.3528 -extern unsigned long long int gnu_dev_makedev(unsigned int __major, unsigned int __minor) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3529 -__extension__
  1.3530 -extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_major(unsigned long long int __dev)
  1.3531 -{
  1.3532 -    return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
  1.3533 -}
  1.3534 -__extension__
  1.3535 -extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned int __attribute__((__nothrow__, __leaf__)) gnu_dev_minor(unsigned long long int __dev)
  1.3536 -{
  1.3537 -    return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
  1.3538 -}
  1.3539 -__extension__
  1.3540 -extern __inline __attribute__((__gnu_inline__)) __attribute__((__const__)) unsigned long long int __attribute__((__nothrow__, __leaf__)) gnu_dev_makedev(unsigned int __major, unsigned int __minor)
  1.3541 -{
  1.3542 -    return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32));
  1.3543 -}
  1.3544 -typedef __blksize_t blksize_t;
  1.3545 -typedef __blkcnt_t blkcnt_t;
  1.3546 -typedef __fsblkcnt_t fsblkcnt_t;
  1.3547 -typedef __fsfilcnt_t fsfilcnt_t;
  1.3548 -extern long int random(void) __attribute__((__nothrow__, __leaf__));
  1.3549 -extern void srandom(unsigned int __seed) __attribute__((__nothrow__, __leaf__));
  1.3550 -extern char *initstate(unsigned int __seed, char *__statebuf, size_t __statelen) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3551 -extern char *setstate(char *__statebuf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3552 -struct random_data
  1.3553 -{
  1.3554 -        int32_t *fptr;
  1.3555 -        int32_t *rptr;
  1.3556 -        int32_t *state;
  1.3557 -        int rand_type;
  1.3558 -        int rand_deg;
  1.3559 -        int rand_sep;
  1.3560 -        int32_t *end_ptr;
  1.3561 -};
  1.3562 -extern int random_r(struct random_data *__restrict __buf, int32_t *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3563 -extern int srandom_r(unsigned int __seed, struct random_data *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3564 -extern int initstate_r(unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4)));
  1.3565 -extern int setstate_r(char *__restrict __statebuf, struct random_data *__restrict __buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3566 -extern int rand(void) __attribute__((__nothrow__, __leaf__));
  1.3567 -extern void srand(unsigned int __seed) __attribute__((__nothrow__, __leaf__));
  1.3568 -extern int rand_r(unsigned int *__seed) __attribute__((__nothrow__, __leaf__));
  1.3569 -extern double drand48(void) __attribute__((__nothrow__, __leaf__));
  1.3570 -extern double erand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3571 -extern long int lrand48(void) __attribute__((__nothrow__, __leaf__));
  1.3572 -extern long int nrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3573 -extern long int mrand48(void) __attribute__((__nothrow__, __leaf__));
  1.3574 -extern long int jrand48(unsigned short int __xsubi[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3575 -extern void srand48(long int __seedval) __attribute__((__nothrow__, __leaf__));
  1.3576 -extern unsigned short int *seed48(unsigned short int __seed16v[3]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3577 -extern void lcong48(unsigned short int __param[7]) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3578 -struct drand48_data
  1.3579 -{
  1.3580 -        unsigned short int __x[3];
  1.3581 -        unsigned short int __old_x[3];
  1.3582 -        unsigned short int __c;
  1.3583 -        unsigned short int __init;
  1.3584 -        unsigned long long int __a;
  1.3585 -};
  1.3586 -extern int drand48_r(struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3587 -extern int erand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3588 -extern int lrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3589 -extern int nrand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3590 -extern int mrand48_r(struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3591 -extern int jrand48_r(unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3592 -extern int srand48_r(long int __seedval, struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3593 -extern int seed48_r(unsigned short int __seed16v[3], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3594 -extern int lcong48_r(unsigned short int __param[7], struct drand48_data *__buffer) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3595 -extern void *malloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
  1.3596 -extern void *calloc(size_t __nmemb, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
  1.3597 -extern void *realloc(void *__ptr, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3598 -extern void free(void *__ptr) __attribute__((__nothrow__, __leaf__));
  1.3599 -extern void cfree(void *__ptr) __attribute__((__nothrow__, __leaf__));
  1.3600 -extern void *alloca(size_t __size) __attribute__((__nothrow__, __leaf__));
  1.3601 -extern void *valloc(size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__warn_unused_result__));
  1.3602 -extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3603 -extern void abort(void) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
  1.3604 -extern int atexit(void (*__func)(void)) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3605 -extern int on_exit(void (*__func)(int __status, void *__arg), void *__arg) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3606 -extern void exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
  1.3607 -extern void _Exit(int __status) __attribute__((__nothrow__, __leaf__)) __attribute__((__noreturn__));
  1.3608 -extern char *getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3609 -extern char *__secure_getenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3610 -extern int putenv(char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3611 -extern int setenv(__const char *__name, __const char *__value, int __replace) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3612 -extern int unsetenv(__const char *__name) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3613 -extern int clearenv(void) __attribute__((__nothrow__, __leaf__));
  1.3614 -extern char *mktemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3615 -extern int mkstemp(char *__template) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3616 -extern int mkstemps(char *__template, int __suffixlen) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3617 -extern char *mkdtemp(char *__template) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3618 -extern int system(__const char *__command) __attribute__((__warn_unused_result__));
  1.3619 -extern char *realpath(__const char *__restrict __name, char *__restrict __resolved) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3620 -typedef int (*__compar_fn_t)(__const void *, __const void *);
  1.3621 -extern void *bsearch(__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__((__nonnull__(1, 2, 5))) __attribute__((__warn_unused_result__));
  1.3622 -extern void qsort(void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__((__nonnull__(1, 4)));
  1.3623 -extern int abs(int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
  1.3624 -extern long int labs(long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
  1.3625 -__extension__
  1.3626 -extern long long int llabs(long long int __x) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
  1.3627 -extern div_t div(int __numer, int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
  1.3628 -extern ldiv_t ldiv(long int __numer, long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
  1.3629 -__extension__
  1.3630 -extern lldiv_t lldiv(long long int __numer, long long int __denom) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__)) __attribute__((__warn_unused_result__));
  1.3631 -extern char *ecvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__));
  1.3632 -extern char *fcvt(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__));
  1.3633 -extern char *gcvt(double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__));
  1.3634 -extern char *qecvt(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__));
  1.3635 -extern char *qfcvt(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4))) __attribute__((__warn_unused_result__));
  1.3636 -extern char *qgcvt(long double __value, int __ndigit, char *__buf) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3))) __attribute__((__warn_unused_result__));
  1.3637 -extern int ecvt_r(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5)));
  1.3638 -extern int fcvt_r(double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5)));
  1.3639 -extern int qecvt_r(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5)));
  1.3640 -extern int qfcvt_r(long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(3, 4, 5)));
  1.3641 -extern int mblen(__const char *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3642 -extern int mbtowc(wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3643 -extern int wctomb(char *__s, wchar_t __wchar) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3644 -extern size_t mbstowcs(wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) __attribute__((__nothrow__, __leaf__));
  1.3645 -extern size_t wcstombs(char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) __attribute__((__nothrow__, __leaf__));
  1.3646 -extern int rpmatch(__const char *__response) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1))) __attribute__((__warn_unused_result__));
  1.3647 -extern int getsubopt(char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2, 3))) __attribute__((__warn_unused_result__));
  1.3648 -extern int getloadavg(double __loadavg[], int __nelem) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3649 -extern char *__realpath_chk(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3650 -extern char *__realpath_alias(__const char *__restrict __name, char *__restrict __resolved) __asm__ ("""realpath") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3651 -extern char *__realpath_chk_warn(__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("""__realpath_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__)) __attribute__((__warning__("second argument of realpath must be either NULL or at ""least PATH_MAX bytes long buffer")));
  1.3652 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) char *__attribute__((__nothrow__, __leaf__)) realpath(__const char *__restrict __name, char *__restrict __resolved)
  1.3653 -{
  1.3654 -    if (__builtin_object_size(__resolved, 2 > 1) != (size_t) - 1)
  1.3655 -    {
  1.3656 -        if (__builtin_object_size(__resolved, 2 > 1) < 4096)
  1.3657 -            return __realpath_chk_warn(__name, __resolved, __builtin_object_size(__resolved, 2 > 1));
  1.3658 -        return __realpath_chk(__name, __resolved, __builtin_object_size(__resolved, 2 > 1));
  1.3659 -    }
  1.3660 -    return __realpath_alias(__name, __resolved);
  1.3661 -}
  1.3662 -extern int __ptsname_r_chk(int __fd, char *__buf, size_t __buflen, size_t __nreal) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3663 -extern int __ptsname_r_alias(int __fd, char *__buf, size_t __buflen) __asm__ ("""ptsname_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3664 -extern int __ptsname_r_chk_warn(int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("""__ptsname_r_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2))) __attribute__((__warning__("ptsname_r called with buflen bigger than ""size of buf")));
  1.3665 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) int __attribute__((__nothrow__, __leaf__)) ptsname_r(int __fd, char *__buf, size_t __buflen)
  1.3666 -{
  1.3667 -    if (__builtin_object_size(__buf, 2 > 1) != (size_t) - 1)
  1.3668 -    {
  1.3669 -        if (!__builtin_constant_p(__buflen))
  1.3670 -            return __ptsname_r_chk(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
  1.3671 -        if (__buflen > __builtin_object_size(__buf, 2 > 1))
  1.3672 -            return __ptsname_r_chk_warn(__fd, __buf, __buflen, __builtin_object_size(__buf, 2 > 1));
  1.3673 -    }
  1.3674 -    return __ptsname_r_alias(__fd, __buf, __buflen);
  1.3675 -}
  1.3676 -extern int __wctomb_chk(char *__s, wchar_t __wchar, size_t __buflen) __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3677 -extern int __wctomb_alias(char *__s, wchar_t __wchar) __asm__ ("""wctomb") __attribute__((__nothrow__, __leaf__)) __attribute__((__warn_unused_result__));
  1.3678 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) __attribute__((__warn_unused_result__)) int __attribute__((__nothrow__, __leaf__)) wctomb(char *__s, wchar_t __wchar)
  1.3679 -{
  1.3680 -    if (__builtin_object_size(__s, 2 > 1) != (size_t) - 1 && 16 > __builtin_object_size(__s, 2 > 1))
  1.3681 -        return __wctomb_chk(__s, __wchar, __builtin_object_size(__s, 2 > 1));
  1.3682 -    return __wctomb_alias(__s, __wchar);
  1.3683 -}
  1.3684 -extern size_t __mbstowcs_chk(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__));
  1.3685 -extern size_t __mbstowcs_alias(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("""mbstowcs") __attribute__((__nothrow__, __leaf__));
  1.3686 -extern size_t __mbstowcs_chk_warn(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("""__mbstowcs_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("mbstowcs called with dst buffer smaller than len ""* sizeof (wchar_t)")));
  1.3687 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) mbstowcs(wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
  1.3688 -{
  1.3689 -    if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1)
  1.3690 -    {
  1.3691 -        if (!__builtin_constant_p(__len))
  1.3692 -            return __mbstowcs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t));
  1.3693 -        if (__len > __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t))
  1.3694 -            return __mbstowcs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1) / sizeof(wchar_t));
  1.3695 -    }
  1.3696 -    return __mbstowcs_alias(__dst, __src, __len);
  1.3697 -}
  1.3698 -extern size_t __wcstombs_chk(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __attribute__((__nothrow__, __leaf__));
  1.3699 -extern size_t __wcstombs_alias(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("""wcstombs") __attribute__((__nothrow__, __leaf__));
  1.3700 -extern size_t __wcstombs_chk_warn(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("""__wcstombs_chk") __attribute__((__nothrow__, __leaf__)) __attribute__((__warning__("wcstombs called with dst buffer smaller than len")));
  1.3701 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) size_t __attribute__((__nothrow__, __leaf__)) wcstombs(char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
  1.3702 -{
  1.3703 -    if (__builtin_object_size(__dst, 2 > 1) != (size_t) - 1)
  1.3704 -    {
  1.3705 -        if (!__builtin_constant_p(__len))
  1.3706 -            return __wcstombs_chk(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1));
  1.3707 -        if (__len > __builtin_object_size(__dst, 2 > 1))
  1.3708 -            return __wcstombs_chk_warn(__dst, __src, __len, __builtin_object_size(__dst, 2 > 1));
  1.3709 -    }
  1.3710 -    return __wcstombs_alias(__dst, __src, __len);
  1.3711 -}
  1.3712 -extern void *memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3713 -extern void *memmove(void *__dest, __const void *__src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3714 -extern void *memccpy(void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3715 -extern void *memset(void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3716 -extern int memcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3717 -extern void *memchr(__const void *__s, int __c, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3718 -extern char *strcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3719 -extern char *strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3720 -extern char *strcat(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3721 -extern char *strncat(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3722 -extern int strcmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3723 -extern int strncmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3724 -extern int strcoll(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3725 -extern size_t strxfrm(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3726 -extern int strcoll_l(__const char *__s1, __const char *__s2, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2, 3)));
  1.3727 -extern size_t strxfrm_l(char *__dest, __const char *__src, size_t __n, __locale_t __l) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 4)));
  1.3728 -extern char *strdup(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1)));
  1.3729 -extern char *strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__)) __attribute__((__nonnull__(1)));
  1.3730 -extern char *strchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3731 -extern char *strrchr(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3732 -extern size_t strcspn(__const char *__s, __const char *__reject) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3733 -extern size_t strspn(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3734 -extern char *strpbrk(__const char *__s, __const char *__accept) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3735 -extern char *strstr(__const char *__haystack, __const char *__needle) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3736 -extern char *strtok(char *__restrict __s, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3737 -extern char *__strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3)));
  1.3738 -extern char *strtok_r(char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2, 3)));
  1.3739 -extern size_t strlen(__const char *__s) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3740 -extern size_t strnlen(__const char *__string, size_t __maxlen) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3741 -extern char *strerror(int __errnum) __attribute__((__nothrow__, __leaf__));
  1.3742 -extern int strerror_r(int __errnum, char *__buf, size_t __buflen) __asm__ ("""__xpg_strerror_r") __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(2)));
  1.3743 -extern char *strerror_l(int __errnum, __locale_t __l) __attribute__((__nothrow__, __leaf__));
  1.3744 -extern void __bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3745 -extern void bcopy(__const void *__src, void *__dest, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3746 -extern void bzero(void *__s, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1)));
  1.3747 -extern int bcmp(__const void *__s1, __const void *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3748 -extern char *index(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3749 -extern char *rindex(__const char *__s, int __c) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1)));
  1.3750 -extern int ffs(int __i) __attribute__((__nothrow__, __leaf__)) __attribute__((__const__));
  1.3751 -extern int strcasecmp(__const char *__s1, __const char *__s2) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3752 -extern int strncasecmp(__const char *__s1, __const char *__s2, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__pure__)) __attribute__((__nonnull__(1, 2)));
  1.3753 -extern char *strsep(char **__restrict __stringp, __const char *__restrict __delim) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3754 -extern char *strsignal(int __sig) __attribute__((__nothrow__, __leaf__));
  1.3755 -extern char *__stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3756 -extern char *stpcpy(char *__restrict __dest, __const char *__restrict __src) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3757 -extern char *__stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3758 -extern char *stpncpy(char *__restrict __dest, __const char *__restrict __src, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__nonnull__(1, 2)));
  1.3759 -extern void *__rawmemchr(const void *__s, int __c);
  1.3760 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject);
  1.3761 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c1(__const char *__s, int __reject)
  1.3762 -{
  1.3763 -    register size_t __result = 0;
  1.3764 -    while (__s[__result] != '\0' && __s[__result] != __reject)
  1.3765 -        ++__result;
  1.3766 -    return __result;
  1.3767 -}
  1.3768 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2);
  1.3769 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c2(__const char *__s, int __reject1, int __reject2)
  1.3770 -{
  1.3771 -    register size_t __result = 0;
  1.3772 -    while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2)
  1.3773 -        ++__result;
  1.3774 -    return __result;
  1.3775 -}
  1.3776 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3);
  1.3777 -extern __inline __attribute__((__gnu_inline__)) size_t __strcspn_c3(__const char *__s, int __reject1, int __reject2, int __reject3)
  1.3778 -{
  1.3779 -    register size_t __result = 0;
  1.3780 -    while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3)
  1.3781 -        ++__result;
  1.3782 -    return __result;
  1.3783 -}
  1.3784 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept);
  1.3785 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c1(__const char *__s, int __accept)
  1.3786 -{
  1.3787 -    register size_t __result = 0;
  1.3788 -    while (__s[__result] == __accept)
  1.3789 -        ++__result;
  1.3790 -    return __result;
  1.3791 -}
  1.3792 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2);
  1.3793 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c2(__const char *__s, int __accept1, int __accept2)
  1.3794 -{
  1.3795 -    register size_t __result = 0;
  1.3796 -    while (__s[__result] == __accept1 || __s[__result] == __accept2)
  1.3797 -        ++__result;
  1.3798 -    return __result;
  1.3799 -}
  1.3800 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3);
  1.3801 -extern __inline __attribute__((__gnu_inline__)) size_t __strspn_c3(__const char *__s, int __accept1, int __accept2, int __accept3)
  1.3802 -{
  1.3803 -    register size_t __result = 0;
  1.3804 -    while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3)
  1.3805 -        ++__result;
  1.3806 -    return __result;
  1.3807 -}
  1.3808 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2);
  1.3809 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c2(__const char *__s, int __accept1, int __accept2)
  1.3810 -{
  1.3811 -    while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
  1.3812 -        ++__s;
  1.3813 -    return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s;
  1.3814 -}
  1.3815 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3);
  1.3816 -extern __inline __attribute__((__gnu_inline__)) char *__strpbrk_c3(__const char *__s, int __accept1, int __accept2, int __accept3)
  1.3817 -{
  1.3818 -    while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3)
  1.3819 -        ++__s;
  1.3820 -    return *__s == '\0' ? ((void *) 0) : (char *) (size_t) __s;
  1.3821 -}
  1.3822 -extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp);
  1.3823 -extern __inline __attribute__((__gnu_inline__)) char *__strtok_r_1c(char *__s, char __sep, char **__nextp)
  1.3824 -{
  1.3825 -    char *__result;
  1.3826 -    if (__s == ((void *) 0))
  1.3827 -        __s = *__nextp;
  1.3828 -    while (*__s == __sep)
  1.3829 -        ++__s;
  1.3830 -    __result = ((void *) 0);
  1.3831 -    if (*__s != '\0')
  1.3832 -    {
  1.3833 -        __result = __s++;
  1.3834 -        while (*__s != '\0')
  1.3835 -            if (*__s++ == __sep)
  1.3836 +      {
  1.3837 +        do
  1.3838 +          {
  1.3839              {
  1.3840 -                __s[- 1] = '\0';
  1.3841 -                break;
  1.3842 +              ((uint8_t *)dst)[0] = ((const uint8_t *)src)[1] << 8 | ((const uint8_t *)src)[0];
  1.3843 +              ((uint8_t *)dst)[1] = (((const uint8_t *)src)[1] << 8 | ((const uint8_t *)src)[0]) >> 8;
  1.3844              }
  1.3845 -    }
  1.3846 -    *__nextp = __s;
  1.3847 -    return __result;
  1.3848 -}
  1.3849 -extern char *__strsep_g(char **__stringp, __const char *__delim);
  1.3850 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject);
  1.3851 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_1c(char **__s, char __reject)
  1.3852 -{
  1.3853 -    register char *__retval = *__s;
  1.3854 -    if (__retval != ((void *) 0) && (*__s = (__extension__ (__builtin_constant_p(__reject) && !__builtin_constant_p(__retval) && (__reject) == '\0' ? (char *) __rawmemchr(__retval, __reject) : __builtin_strchr(__retval, __reject)))) != ((void *) 0))
  1.3855 -        *(*__s)++ = '\0';
  1.3856 -    return __retval;
  1.3857 -}
  1.3858 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2);
  1.3859 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_2c(char **__s, char __reject1, char __reject2)
  1.3860 -{
  1.3861 -    register char *__retval = *__s;
  1.3862 -    if (__retval != ((void *) 0))
  1.3863 -    {
  1.3864 -        register char *__cp = __retval;
  1.3865 -        while (1)
  1.3866 -        {
  1.3867 -            if (*__cp == '\0')
  1.3868 -            {
  1.3869 -                __cp = ((void *) 0);
  1.3870 -                break;
  1.3871 -            }
  1.3872 -            if (*__cp == __reject1 || *__cp == __reject2)
  1.3873 -            {
  1.3874 -                *__cp++ = '\0';
  1.3875 -                break;
  1.3876 -            }
  1.3877 -            ++__cp;
  1.3878 -        }
  1.3879 -        *__s = __cp;
  1.3880 -    }
  1.3881 -    return __retval;
  1.3882 -}
  1.3883 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3);
  1.3884 -extern __inline __attribute__((__gnu_inline__)) char *__strsep_3c(char **__s, char __reject1, char __reject2, char __reject3)
  1.3885 -{
  1.3886 -    register char *__retval = *__s;
  1.3887 -    if (__retval != ((void *) 0))
  1.3888 -    {
  1.3889 -        register char *__cp = __retval;
  1.3890 -        while (1)
  1.3891 -        {
  1.3892 -            if (*__cp == '\0')
  1.3893 -            {
  1.3894 -                __cp = ((void *) 0);
  1.3895 -                break;
  1.3896 -            }
  1.3897 -            if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
  1.3898 -            {
  1.3899 -                *__cp++ = '\0';
  1.3900 -                break;
  1.3901 -            }
  1.3902 -            ++__cp;
  1.3903 -        }
  1.3904 -        *__s = __cp;
  1.3905 -    }
  1.3906 -    return __retval;
  1.3907 -}
  1.3908 -extern char *__strdup(__const char *__string) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__));
  1.3909 -extern char *__strndup(__const char *__string, size_t __n) __attribute__((__nothrow__, __leaf__)) __attribute__((__malloc__));
  1.3910 -extern void __warn_memset_zero_len(void) __attribute__((__warning__("memset used with constant zero length parameter; this could be due to transposed parameters")));
  1.3911 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memcpy(void *__restrict __dest, __const void *__restrict __src, size_t __len)
  1.3912 -{
  1.3913 -    return __builtin___memcpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 0));
  1.3914 -}
  1.3915 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memmove(void *__dest, __const void *__src, size_t __len)
  1.3916 -{
  1.3917 -    return __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0));
  1.3918 -}
  1.3919 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void *__attribute__((__nothrow__, __leaf__)) memset(void *__dest, int __ch, size_t __len)
  1.3920 -{
  1.3921 -    if (__builtin_constant_p(__len) && __len == 0 && (!__builtin_constant_p(__ch) || __ch != 0))
  1.3922 -    {
  1.3923 -        __warn_memset_zero_len();
  1.3924 -        return __dest;
  1.3925 -    }
  1.3926 -    return __builtin___memset_chk(__dest, __ch, __len, __builtin_object_size(__dest, 0));
  1.3927 -}
  1.3928 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bcopy(__const void *__src, void *__dest, size_t __len)
  1.3929 -{
  1.3930 -    (void) __builtin___memmove_chk(__dest, __src, __len, __builtin_object_size(__dest, 0));
  1.3931 -}
  1.3932 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) void __attribute__((__nothrow__, __leaf__)) bzero(void *__dest, size_t __len)
  1.3933 -{
  1.3934 -    (void) __builtin___memset_chk(__dest, '\0', __len, __builtin_object_size(__dest, 0));
  1.3935 -}
  1.3936 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcpy(char *__restrict __dest, __const char *__restrict __src)
  1.3937 -{
  1.3938 -    return __builtin___strcpy_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1));
  1.3939 -}
  1.3940 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncpy(char *__restrict __dest, __const char *__restrict __src, size_t __len)
  1.3941 -{
  1.3942 -    return __builtin___strncpy_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1));
  1.3943 -}
  1.3944 -extern char *__stpncpy_chk(char *__dest, __const char *__src, size_t __n, size_t __destlen) __attribute__((__nothrow__, __leaf__));
  1.3945 -extern char *__stpncpy_alias(char *__dest, __const char *__src, size_t __n) __asm__ ("""stpncpy") __attribute__((__nothrow__, __leaf__));
  1.3946 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) stpncpy(char *__dest, __const char *__src, size_t __n)
  1.3947 -{
  1.3948 -    if (__builtin_object_size(__dest, 2 > 1) != (size_t) - 1 && (!__builtin_constant_p(__n) || __n <= __builtin_object_size(__dest, 2 > 1)))
  1.3949 -        return __stpncpy_chk(__dest, __src, __n, __builtin_object_size(__dest, 2 > 1));
  1.3950 -    return __stpncpy_alias(__dest, __src, __n);
  1.3951 -}
  1.3952 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strcat(char *__restrict __dest, __const char *__restrict __src)
  1.3953 -{
  1.3954 -    return __builtin___strcat_chk(__dest, __src, __builtin_object_size(__dest, 2 > 1));
  1.3955 -}
  1.3956 -extern __inline __attribute__((__always_inline__)) __attribute__((__gnu_inline__, __artificial__)) char *__attribute__((__nothrow__, __leaf__)) strncat(char *__restrict __dest, __const char *__restrict __src, size_t __len)
  1.3957 -{
  1.3958 -    return __builtin___strncat_chk(__dest, __src, __len, __builtin_object_size(__dest, 2 > 1));
  1.3959 -}
  1.3960 -extern const uint8_t ff_log2_tab[256];
  1.3961 -static inline __attribute__((const)) int av_log2_c(unsigned int v)
  1.3962 -{
  1.3963 -    int n = 0;
  1.3964 -    if (v & 0xffff0000)
  1.3965 -    {
  1.3966 -        v >>= 16;
  1.3967 -        n += 16;
  1.3968 -    }
  1.3969 -    if (v & 0xff00)
  1.3970 -    {
  1.3971 -        v >>= 8;
  1.3972 -        n += 8;
  1.3973 -    }
  1.3974 -    n += ff_log2_tab[v];
  1.3975 -    return n;
  1.3976 -}
  1.3977 -static inline __attribute__((const)) int av_log2_16bit_c(unsigned int v)
  1.3978 -{
  1.3979 -    int n = 0;
  1.3980 -    if (v & 0xff00)
  1.3981 -    {
  1.3982 -        v >>= 8;
  1.3983 -        n += 8;
  1.3984 -    }
  1.3985 -    n += ff_log2_tab[v];
  1.3986 -    return n;
  1.3987 -}
  1.3988 -static inline __attribute__((const)) int av_clip(int a, int amin, int amax)
  1.3989 -{
  1.3990 -    if (a < amin)
  1.3991 -        return amin;
  1.3992 -    else
  1.3993 -        if (a > amax)
  1.3994 -            return amax;
  1.3995 -        else
  1.3996 -            return a;
  1.3997 -}
  1.3998 -static inline __attribute__((const)) uint8_t av_clip_uint8(int a)
  1.3999 -{
  1.4000 -    if (a & (~0xFF))
  1.4001 -        return (- a) >> 31;
  1.4002 -    else
  1.4003 -        return a;
  1.4004 -}
  1.4005 -static inline __attribute__((const)) uint16_t av_clip_uint16(int a)
  1.4006 -{
  1.4007 -    if (a & (~0xFFFF))
  1.4008 -        return (- a) >> 31;
  1.4009 -    else
  1.4010 -        return a;
  1.4011 -}
  1.4012 -static inline __attribute__((const)) int16_t av_clip_int16(int a)
  1.4013 -{
  1.4014 -    if ((a + 0x8000) & ~0xFFFF)
  1.4015 -        return (a >> 31) ^ 0x7FFF;
  1.4016 -    else
  1.4017 -        return a;
  1.4018 -}
  1.4019 -static inline __attribute__((const)) int32_t av_clipl_int32(int64_t a)
  1.4020 -{
  1.4021 -    if ((a + 0x80000000u) & ~0xFFFFFFFFUL)
  1.4022 -        return (a >> 63) ^ 0x7FFFFFFF;
  1.4023 -    else
  1.4024 -        return a;
  1.4025 -}
  1.4026 -static inline __attribute__((const)) float av_clipf(float a, float amin, float amax)
  1.4027 -{
  1.4028 -    if (a < amin)
  1.4029 -        return amin;
  1.4030 -    else
  1.4031 -        if (a > amax)
  1.4032 -            return amax;
  1.4033 -        else
  1.4034 -            return a;
  1.4035 -}
  1.4036 -static inline __attribute__((const)) int av_ceil_log2(int x)
  1.4037 -{
  1.4038 -    return av_log2_c((x - 1) << 1);
  1.4039 -}
  1.4040 -typedef union 
  1.4041 -{
  1.4042 -        uint64_t u64;
  1.4043 -        uint32_t u32[2];
  1.4044 -        uint16_t u16[4];
  1.4045 -        uint8_t u8[8];
  1.4046 -        double f64;
  1.4047 -        float f32[2];
  1.4048 -} __attribute__((__may_alias__)) av_alias64;
  1.4049 -typedef union 
  1.4050 -{
  1.4051 -        uint32_t u32;
  1.4052 -        uint16_t u16[2];
  1.4053 -        uint8_t u8[4];
  1.4054 -        float f32;
  1.4055 -} __attribute__((__may_alias__)) av_alias32;
  1.4056 -typedef union 
  1.4057 -{
  1.4058 -        uint16_t u16;
  1.4059 -        uint8_t u8[2];
  1.4060 -} __attribute__((__may_alias__)) av_alias16;
  1.4061 -static __attribute__((always_inline)) inline void AV_COPY64(void *d, const void *s)
  1.4062 -{
  1.4063 -    __asm__ ("movq   %1, %%mm0  \n\t""movq   %%mm0, %0  \n\t": "=m" (*(uint64_t *) d): "m" (*(const uint64_t *) s): "mm0");
  1.4064 -}
  1.4065 -static __attribute__((always_inline)) inline void AV_SWAP64(void *a, void *b)
  1.4066 -{
  1.4067 -    __asm__ ("movq   %1, %%mm0  \n\t""movq   %0, %%mm1  \n\t""movq   %%mm0, %0  \n\t""movq   %%mm1, %1  \n\t": "+m" (*(uint64_t *) a), "+m" (*(uint64_t *) b): : "mm0", "mm1");
  1.4068 -}
  1.4069 -static __attribute__((always_inline)) inline void AV_ZERO64(void *d)
  1.4070 -{
  1.4071 -    __asm__ ("pxor %%mm0, %%mm0  \n\t""movq %%mm0, %0     \n\t": "=m" (*(uint64_t *) d): : "mm0");
  1.4072 -}
  1.4073 -static __attribute__((always_inline)) inline void AV_COPY128(void *d, const void *s)
  1.4074 -{
  1.4075 -    struct v
  1.4076 -    {
  1.4077 -            uint64_t v[2];
  1.4078 -    };
  1.4079 -    __asm__ ("movaps   %1, %%xmm0  \n\t""movaps   %%xmm0, %0  \n\t": "=m" (*(struct v *) d): "m" (*(const struct v *) s): "xmm0");
  1.4080 -}
  1.4081 -static __attribute__((always_inline)) inline void AV_ZERO128(void *d)
  1.4082 -{
  1.4083 -    struct v
  1.4084 -    {
  1.4085 -            uint64_t v[2];
  1.4086 -    };
  1.4087 -    __asm__ ("pxor %%xmm0, %%xmm0  \n\t""movdqa   %%xmm0, %0  \n\t": "=m" (*(struct v *) d): : "xmm0");
  1.4088 -}
  1.4089 -void ff_h264_idct8_add_c(uint8_t *dst, DCTELEM *block, int stride);
  1.4090 -void ff_h264_idct_add_c(uint8_t *dst, DCTELEM *block, int stride);
  1.4091 -void ff_h264_idct8_dc_add_c(uint8_t *dst, DCTELEM *block, int stride);
  1.4092 -void ff_h264_idct_dc_add_c(uint8_t *dst, DCTELEM *block, int stride);
  1.4093 -void ff_h264_lowres_idct_add_c(uint8_t *dst, int stride, DCTELEM *block);
  1.4094 -void ff_h264_lowres_idct_put_c(uint8_t *dst, int stride, DCTELEM *block);
  1.4095 -void ff_h264_idct_add16_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4096 -void ff_h264_idct_add16intra_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4097 -void ff_h264_idct8_add4_c(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4098 -void ff_h264_idct_add8_c(uint8_t **dest, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4099 -void h264_luma_dc_dequant_idct_c(DCTELEM *block, int qmul);
  1.4100 -void chroma_dc_dequant_idct_c(DCTELEM *block, int qmul);
  1.4101 -void ff_vector_fmul_window_c(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len);
  1.4102 -void ff_float_to_int16_c(int16_t *dst, const float *src, long len);
  1.4103 -void ff_float_to_int16_interleave_c(int16_t *dst, const float **src, long len, int channels);
  1.4104 -extern const uint8_t ff_alternate_horizontal_scan[64];
  1.4105 -extern const uint8_t ff_alternate_vertical_scan[64];
  1.4106 -extern const uint8_t ff_zigzag_direct[64];
  1.4107 -extern const uint8_t ff_zigzag248_direct[64];
  1.4108 -extern uint32_t ff_squareTbl[512];
  1.4109 -extern uint8_t ff_cropTbl[256 + 2 * 1024];
  1.4110 -void ff_vp3_idct_c(DCTELEM *block);
  1.4111 -void ff_vp3_idct_put_c(uint8_t *dest, int line_size, DCTELEM *block);
  1.4112 -void ff_vp3_idct_add_c(uint8_t *dest, int line_size, DCTELEM *block);
  1.4113 -void ff_vp3_idct_dc_add_c(uint8_t *dest, int line_size, const DCTELEM *block);
  1.4114 -void ff_vp3_v_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
  1.4115 -void ff_vp3_h_loop_filter_c(uint8_t *src, int stride, int *bounding_values);
  1.4116 -void ff_vp6_filter_diag4_c(uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights);
  1.4117 -void ff_bink_idct_c(DCTELEM *block);
  1.4118 -void ff_bink_idct_add_c(uint8_t *dest, int linesize, DCTELEM *block);
  1.4119 -void ff_bink_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
  1.4120 -void ff_put_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
  1.4121 -void ff_avg_cavs_qpel8_mc00_c(uint8_t *dst, uint8_t *src, int stride);
  1.4122 -void ff_put_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
  1.4123 -void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride);
  1.4124 -void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
  1.4125 -void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int rnd);
  1.4126 -void ff_ea_idct_put_c(uint8_t *dest, int linesize, DCTELEM *block);
  1.4127 -void ff_img_copy_plane(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
  1.4128 -void ff_shrink22(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
  1.4129 -void ff_shrink44(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
  1.4130 -void ff_shrink88(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
  1.4131 -void ff_gmc_c(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy, int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height);
  1.4132 -typedef void (*op_pixels_func)(uint8_t *block, const uint8_t *pixels, int line_size, int h);
  1.4133 -typedef void (*tpel_mc_func)(uint8_t *block, const uint8_t *pixels, int line_size, int w, int h);
  1.4134 -typedef void (*qpel_mc_func)(uint8_t *dst, uint8_t *src, int stride);
  1.4135 -typedef void (*h264_chroma_mc_func)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x, int y);
  1.4136 -typedef void (*op_fill_func)(uint8_t *block, uint8_t value, int line_size, int h);
  1.4137 -void ff_put_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4138 -void ff_put_no_rnd_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4139 -void ff_avg_qpel16_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4140 -void ff_put_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4141 -void ff_put_no_rnd_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4142 -void ff_avg_qpel16_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4143 -void ff_put_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4144 -void ff_put_no_rnd_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4145 -void ff_avg_qpel16_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4146 -void ff_put_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4147 -void ff_put_no_rnd_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4148 -void ff_avg_qpel16_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4149 -void ff_put_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4150 -void ff_put_no_rnd_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4151 -void ff_avg_qpel16_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4152 -void ff_put_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4153 -void ff_put_no_rnd_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4154 -void ff_avg_qpel16_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4155 -void ff_put_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4156 -void ff_put_no_rnd_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4157 -void ff_avg_qpel8_mc11_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4158 -void ff_put_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4159 -void ff_put_no_rnd_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4160 -void ff_avg_qpel8_mc31_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4161 -void ff_put_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4162 -void ff_put_no_rnd_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4163 -void ff_avg_qpel8_mc12_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4164 -void ff_put_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4165 -void ff_put_no_rnd_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4166 -void ff_avg_qpel8_mc32_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4167 -void ff_put_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4168 -void ff_put_no_rnd_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4169 -void ff_avg_qpel8_mc13_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4170 -void ff_put_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4171 -void ff_put_no_rnd_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4172 -void ff_avg_qpel8_mc33_old_c(uint8_t *dst, uint8_t *src, int stride);
  1.4173 -typedef int (*me_cmp_func)(void *s, uint8_t *blk1, uint8_t *blk2, int line_size, int h);
  1.4174 -typedef struct ScanTable
  1.4175 -{
  1.4176 -        const uint8_t *scantable;
  1.4177 -        uint8_t permutated[64];
  1.4178 -        uint8_t raster_end[64];
  1.4179 -} ScanTable;
  1.4180 -void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable);
  1.4181 -void ff_emulated_edge_mc(uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h);
  1.4182 -typedef struct DSPContext
  1.4183 -{
  1.4184 -        void (*get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size);
  1.4185 -        void (*diff_pixels)(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride);
  1.4186 -        void (*put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
  1.4187 -        void (*put_signed_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
  1.4188 -        void (*put_pixels_nonclamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
  1.4189 -        void (*add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
  1.4190 -        void (*add_pixels8)(uint8_t *pixels, DCTELEM *block, int line_size);
  1.4191 -        void (*add_pixels4)(uint8_t *pixels, DCTELEM *block, int line_size);
  1.4192 -        void (*clear_block)(DCTELEM *block);
  1.4193 -        void (*clear_blocks)(DCTELEM *blocks);
  1.4194 -        op_pixels_func put_pixels_tab[4][4];
  1.4195 -        op_pixels_func avg_pixels_tab[4][4];
  1.4196 -        op_pixels_func put_no_rnd_pixels_tab[4][4];
  1.4197 -        op_pixels_func avg_no_rnd_pixels_tab[4][4];
  1.4198 -        void (*put_no_rnd_pixels_l2[2])(uint8_t *block, const uint8_t *a, const uint8_t *b, int line_size, int h);
  1.4199 -        qpel_mc_func put_qpel_pixels_tab[2][16];
  1.4200 -        qpel_mc_func avg_qpel_pixels_tab[2][16];
  1.4201 -        qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16];
  1.4202 -        qpel_mc_func avg_no_rnd_qpel_pixels_tab[2][16];
  1.4203 -        qpel_mc_func put_mspel_pixels_tab[8];
  1.4204 -        h264_chroma_mc_func put_h264_chroma_pixels_tab[3];
  1.4205 -        h264_chroma_mc_func avg_h264_chroma_pixels_tab[3];
  1.4206 -        h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3];
  1.4207 -        h264_chroma_mc_func avg_no_rnd_vc1_chroma_pixels_tab[3];
  1.4208 -        qpel_mc_func put_h264_qpel_pixels_tab[4][16];
  1.4209 -        qpel_mc_func avg_h264_qpel_pixels_tab[4][16];
  1.4210 -        qpel_mc_func put_2tap_qpel_pixels_tab[4][16];
  1.4211 -        qpel_mc_func avg_2tap_qpel_pixels_tab[4][16];
  1.4212 -        void (*fdct)(DCTELEM *block);
  1.4213 -        void (*fdct248)(DCTELEM *block);
  1.4214 -        void (*idct)(DCTELEM *block);
  1.4215 -        void (*idct_put)(uint8_t *dest, int line_size, DCTELEM *block);
  1.4216 -        void (*idct_add)(uint8_t *dest, int line_size, DCTELEM *block);
  1.4217 -        void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w);
  1.4218 -        void (*prefetch)(void *mem, int stride, int h);
  1.4219 -} DSPContext;
  1.4220 -void dsputil_static_init(void);
  1.4221 -void dsputil_init(DSPContext *p);
  1.4222 -int ff_check_alignment(void);
  1.4223 -void ff_block_permute(DCTELEM *block, uint8_t *permutation, const uint8_t *scantable, int last);
  1.4224 -void ff_set_cmp(DSPContext *c, me_cmp_func *cmp, int type);
  1.4225 -static inline uint32_t rnd_avg32(uint32_t a, uint32_t b)
  1.4226 -{
  1.4227 -    return (a | b) - (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1);
  1.4228 -}
  1.4229 -static inline uint32_t no_rnd_avg32(uint32_t a, uint32_t b)
  1.4230 -{
  1.4231 -    return (a & b) + (((a ^ b) & ~((0x01) * 0x01010101UL)) >> 1);
  1.4232 -}
  1.4233 -int mm_support(void);
  1.4234 -extern int mm_flags;
  1.4235 -void dsputil_init_arm(DSPContext *c);
  1.4236 -void dsputil_init_mmx(DSPContext *c);
  1.4237 -void dsputil_init_ppc(DSPContext *c);
  1.4238 -void ff_dsputil_init_dwt(DSPContext *c);
  1.4239 -static inline void emms(void)
  1.4240 -{
  1.4241 -    __asm__ volatile("emms;": : : "memory");
  1.4242 -}
  1.4243 -static inline void copy_block2(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4244 -{
  1.4245 -    int i;
  1.4246 -    for (i = 0;
  1.4247 -        i < h;
  1.4248 -        i++)
  1.4249 -    {
  1.4250 -        do
  1.4251 -        {
  1.4252 -            ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
  1.4253 -            ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
  1.4254 -        }
  1.4255 +          }
  1.4256          while (0);
  1.4257          dst += dstStride;
  1.4258          src += srcStride;
  1.4259 +      }
  1.4260      }
  1.4261  }
  1.4262 -static inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4263 +static __inline void copy_block4(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4264  {
  1.4265 -    int i;
  1.4266 -    for (i = 0;
  1.4267 -        i < h;
  1.4268 -        i++)
  1.4269 +  int i;
  1.4270 +  for (i = 0; i < h; i++)
  1.4271      {
  1.4272 +      {
  1.4273          do
  1.4274 -        {
  1.4275 -            ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
  1.4276 -            ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
  1.4277 -            ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16;
  1.4278 -            ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24;
  1.4279 -        }
  1.4280 +          {
  1.4281 +            {
  1.4282 +              ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0];
  1.4283 +              ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8;
  1.4284 +              ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16;
  1.4285 +              ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24;
  1.4286 +            }
  1.4287 +          }
  1.4288          while (0);
  1.4289          dst += dstStride;
  1.4290          src += srcStride;
  1.4291 +      }
  1.4292      }
  1.4293  }
  1.4294 -static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4295 +static __inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4296  {
  1.4297 -    int i;
  1.4298 -    for (i = 0;
  1.4299 -        i < h;
  1.4300 -        i++)
  1.4301 +  int i;
  1.4302 +  for (i = 0; i < h; i++)
  1.4303      {
  1.4304 +      {
  1.4305          do
  1.4306 -        {
  1.4307 -            ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
  1.4308 -            ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
  1.4309 -            ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16;
  1.4310 -            ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24;
  1.4311 -        }
  1.4312 +          {
  1.4313 +            {
  1.4314 +              ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0];
  1.4315 +              ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8;
  1.4316 +              ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16;
  1.4317 +              ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24;
  1.4318 +            }
  1.4319 +          }
  1.4320          while (0);
  1.4321          do
  1.4322 -        {
  1.4323 -            ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0]));
  1.4324 -            ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8;
  1.4325 -            ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16;
  1.4326 -            ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24;
  1.4327 -        }
  1.4328 +          {
  1.4329 +            {
  1.4330 +              ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0];
  1.4331 +              ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8;
  1.4332 +              ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16;
  1.4333 +              ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24;
  1.4334 +            }
  1.4335 +          }
  1.4336          while (0);
  1.4337          dst += dstStride;
  1.4338          src += srcStride;
  1.4339 +      }
  1.4340      }
  1.4341  }
  1.4342 -static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4343 +static __inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4344  {
  1.4345 -    int i;
  1.4346 -    for (i = 0;
  1.4347 -        i < h;
  1.4348 -        i++)
  1.4349 +  int i;
  1.4350 +  for (i = 0; i < h; i++)
  1.4351      {
  1.4352 +      {
  1.4353          do
  1.4354 -        {
  1.4355 -            ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
  1.4356 -            ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
  1.4357 -            ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16;
  1.4358 -            ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24;
  1.4359 -        }
  1.4360 +          {
  1.4361 +            {
  1.4362 +              ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0];
  1.4363 +              ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8;
  1.4364 +              ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16;
  1.4365 +              ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24;
  1.4366 +            }
  1.4367 +          }
  1.4368          while (0);
  1.4369          do
  1.4370 -        {
  1.4371 -            ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0]));
  1.4372 -            ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8;
  1.4373 -            ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16;
  1.4374 -            ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24;
  1.4375 -        }
  1.4376 +          {
  1.4377 +            {
  1.4378 +              ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0];
  1.4379 +              ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8;
  1.4380 +              ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16;
  1.4381 +              ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24;
  1.4382 +            }
  1.4383 +          }
  1.4384          while (0);
  1.4385          dst[8] = src[8];
  1.4386          dst += dstStride;
  1.4387          src += srcStride;
  1.4388 +      }
  1.4389      }
  1.4390  }
  1.4391 -static inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4392 +static __inline void copy_block16(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4393  {
  1.4394 -    int i;
  1.4395 -    for (i = 0;
  1.4396 -        i < h;
  1.4397 -        i++)
  1.4398 +  int i;
  1.4399 +  for (i = 0; i < h; i++)
  1.4400      {
  1.4401 +      {
  1.4402          do
  1.4403 -        {
  1.4404 -            ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
  1.4405 -            ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
  1.4406 -            ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16;
  1.4407 -            ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24;
  1.4408 -        }
  1.4409 +          {
  1.4410 +            {
  1.4411 +              ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0];
  1.4412 +              ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8;
  1.4413 +              ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16;
  1.4414 +              ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24;
  1.4415 +            }
  1.4416 +          }
  1.4417          while (0);
  1.4418          do
  1.4419 -        {
  1.4420 -            ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0]));
  1.4421 -            ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8;
  1.4422 -            ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16;
  1.4423 -            ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24;
  1.4424 -        }
  1.4425 +          {
  1.4426 +            {
  1.4427 +              ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0];
  1.4428 +              ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8;
  1.4429 +              ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16;
  1.4430 +              ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24;
  1.4431 +            }
  1.4432 +          }
  1.4433          while (0);
  1.4434          do
  1.4435 -        {
  1.4436 -            ((uint8_t *) (dst + 8))[0] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0]));
  1.4437 -            ((uint8_t *) (dst + 8))[1] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 8;
  1.4438 -            ((uint8_t *) (dst + 8))[2] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 16;
  1.4439 -            ((uint8_t *) (dst + 8))[3] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 24;
  1.4440 -        }
  1.4441 +          {
  1.4442 +            {
  1.4443 +              ((uint8_t *)(dst + 8))[0] = ((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0];
  1.4444 +              ((uint8_t *)(dst + 8))[1] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 8;
  1.4445 +              ((uint8_t *)(dst + 8))[2] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 16;
  1.4446 +              ((uint8_t *)(dst + 8))[3] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 24;
  1.4447 +            }
  1.4448 +          }
  1.4449          while (0);
  1.4450          do
  1.4451 -        {
  1.4452 -            ((uint8_t *) (dst + 12))[0] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0]));
  1.4453 -            ((uint8_t *) (dst + 12))[1] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 8;
  1.4454 -            ((uint8_t *) (dst + 12))[2] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 16;
  1.4455 -            ((uint8_t *) (dst + 12))[3] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 24;
  1.4456 -        }
  1.4457 +          {
  1.4458 +            {
  1.4459 +              ((uint8_t *)(dst + 12))[0] = ((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0];
  1.4460 +              ((uint8_t *)(dst + 12))[1] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 8;
  1.4461 +              ((uint8_t *)(dst + 12))[2] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 16;
  1.4462 +              ((uint8_t *)(dst + 12))[3] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 24;
  1.4463 +            }
  1.4464 +          }
  1.4465          while (0);
  1.4466          dst += dstStride;
  1.4467          src += srcStride;
  1.4468 +      }
  1.4469      }
  1.4470  }
  1.4471 -static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4472 +static __inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
  1.4473  {
  1.4474 -    int i;
  1.4475 -    for (i = 0;
  1.4476 -        i < h;
  1.4477 -        i++)
  1.4478 +  int i;
  1.4479 +  for (i = 0; i < h; i++)
  1.4480      {
  1.4481 +      {
  1.4482          do
  1.4483 -        {
  1.4484 -            ((uint8_t *) (dst))[0] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0]));
  1.4485 -            ((uint8_t *) (dst))[1] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 8;
  1.4486 -            ((uint8_t *) (dst))[2] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 16;
  1.4487 -            ((uint8_t *) (dst))[3] = (((((const uint8_t *) (src))[3] << 24) | (((const uint8_t *) (src))[2] << 16) | (((const uint8_t *) (src))[1] << 8) | ((const uint8_t *) (src))[0])) >> 24;
  1.4488 -        }
  1.4489 +          {
  1.4490 +            {
  1.4491 +              ((uint8_t *)dst)[0] = ((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0];
  1.4492 +              ((uint8_t *)dst)[1] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 8;
  1.4493 +              ((uint8_t *)dst)[2] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 16;
  1.4494 +              ((uint8_t *)dst)[3] = (((((const uint8_t *)src)[3] << 24 | ((const uint8_t *)src)[2] << 16) | ((const uint8_t *)src)[1] << 8) | ((const uint8_t *)src)[0]) >> 24;
  1.4495 +            }
  1.4496 +          }
  1.4497          while (0);
  1.4498          do
  1.4499 -        {
  1.4500 -            ((uint8_t *) (dst + 4))[0] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0]));
  1.4501 -            ((uint8_t *) (dst + 4))[1] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 8;
  1.4502 -            ((uint8_t *) (dst + 4))[2] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 16;
  1.4503 -            ((uint8_t *) (dst + 4))[3] = (((((const uint8_t *) (src + 4))[3] << 24) | (((const uint8_t *) (src + 4))[2] << 16) | (((const uint8_t *) (src + 4))[1] << 8) | ((const uint8_t *) (src + 4))[0])) >> 24;
  1.4504 -        }
  1.4505 +          {
  1.4506 +            {
  1.4507 +              ((uint8_t *)(dst + 4))[0] = ((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0];
  1.4508 +              ((uint8_t *)(dst + 4))[1] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 8;
  1.4509 +              ((uint8_t *)(dst + 4))[2] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 16;
  1.4510 +              ((uint8_t *)(dst + 4))[3] = (((((const uint8_t *)(src + 4))[3] << 24 | ((const uint8_t *)(src + 4))[2] << 16) | ((const uint8_t *)(src + 4))[1] << 8) | ((const uint8_t *)(src + 4))[0]) >> 24;
  1.4511 +            }
  1.4512 +          }
  1.4513          while (0);
  1.4514          do
  1.4515 -        {
  1.4516 -            ((uint8_t *) (dst + 8))[0] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0]));
  1.4517 -            ((uint8_t *) (dst + 8))[1] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 8;
  1.4518 -            ((uint8_t *) (dst + 8))[2] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 16;
  1.4519 -            ((uint8_t *) (dst + 8))[3] = (((((const uint8_t *) (src + 8))[3] << 24) | (((const uint8_t *) (src + 8))[2] << 16) | (((const uint8_t *) (src + 8))[1] << 8) | ((const uint8_t *) (src + 8))[0])) >> 24;
  1.4520 -        }
  1.4521 +          {
  1.4522 +            {
  1.4523 +              ((uint8_t *)(dst + 8))[0] = ((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0];
  1.4524 +              ((uint8_t *)(dst + 8))[1] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 8;
  1.4525 +              ((uint8_t *)(dst + 8))[2] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 16;
  1.4526 +              ((uint8_t *)(dst + 8))[3] = (((((const uint8_t *)(src + 8))[3] << 24 | ((const uint8_t *)(src + 8))[2] << 16) | ((const uint8_t *)(src + 8))[1] << 8) | ((const uint8_t *)(src + 8))[0]) >> 24;
  1.4527 +            }
  1.4528 +          }
  1.4529          while (0);
  1.4530          do
  1.4531 -        {
  1.4532 -            ((uint8_t *) (dst + 12))[0] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0]));
  1.4533 -            ((uint8_t *) (dst + 12))[1] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 8;
  1.4534 -            ((uint8_t *) (dst + 12))[2] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 16;
  1.4535 -            ((uint8_t *) (dst + 12))[3] = (((((const uint8_t *) (src + 12))[3] << 24) | (((const uint8_t *) (src + 12))[2] << 16) | (((const uint8_t *) (src + 12))[1] << 8) | ((const uint8_t *) (src + 12))[0])) >> 24;
  1.4536 -        }
  1.4537 +          {
  1.4538 +            {
  1.4539 +              ((uint8_t *)(dst + 12))[0] = ((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0];
  1.4540 +              ((uint8_t *)(dst + 12))[1] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 8;
  1.4541 +              ((uint8_t *)(dst + 12))[2] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 16;
  1.4542 +              ((uint8_t *)(dst + 12))[3] = (((((const uint8_t *)(src + 12))[3] << 24 | ((const uint8_t *)(src + 12))[2] << 16) | ((const uint8_t *)(src + 12))[1] << 8) | ((const uint8_t *)(src + 12))[0]) >> 24;
  1.4543 +            }
  1.4544 +          }
  1.4545          while (0);
  1.4546          dst[16] = src[16];
  1.4547          dst += dstStride;
  1.4548          src += srcStride;
  1.4549 +      }
  1.4550      }
  1.4551  }
  1.4552 -typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset);
  1.4553 -typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offset);
  1.4554 -typedef struct H264DSPContext
  1.4555 +static __inline uint64_t read_time(void)
  1.4556  {
  1.4557 -        h264_weight_func weight_h264_pixels_tab[10];
  1.4558 -        h264_biweight_func biweight_h264_pixels_tab[10];
  1.4559 -        void (*h264_v_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
  1.4560 -        void (*h264_h_loop_filter_luma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
  1.4561 -        void (*h264_v_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta);
  1.4562 -        void (*h264_h_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta);
  1.4563 -        void (*h264_v_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
  1.4564 -        void (*h264_h_loop_filter_chroma)(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0);
  1.4565 -        void (*h264_v_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta);
  1.4566 -        void (*h264_h_loop_filter_chroma_intra)(uint8_t *pix, int stride, int alpha, int beta);
  1.4567 -        void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field);
  1.4568 -        void (*h264_idct_add)(uint8_t *dst, DCTELEM *block, int stride);
  1.4569 -        void (*h264_idct8_add)(uint8_t *dst, DCTELEM *block, int stride);
  1.4570 -        void (*h264_idct_dc_add)(uint8_t *dst, DCTELEM *block, int stride);
  1.4571 -        void (*h264_idct8_dc_add)(uint8_t *dst, DCTELEM *block, int stride);
  1.4572 -        void (*h264_dct)(DCTELEM block[4][4]);
  1.4573 -        void (*h264_idct_add16)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4574 -        void (*h264_idct8_add4)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4575 -        void (*h264_idct_add8)(uint8_t **dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4576 -        void (*h264_idct_add16intra)(uint8_t *dst, const int *blockoffset, DCTELEM *block, int stride, const uint8_t nnzc[6 * 8]);
  1.4577 -        qpel_mc_func (*qpel_put)[16];
  1.4578 -        qpel_mc_func (*qpel_avg)[16];
  1.4579 -} H264DSPContext;
  1.4580 -void ff_h264dsp_init(H264DSPContext *c);
  1.4581 -void ff_h264dsp_init_arm(H264DSPContext *c);
  1.4582 -void ff_h264dsp_init_ppc(H264DSPContext *c);
  1.4583 -void ff_h264dsp_init_x86(H264DSPContext *c);
  1.4584 -typedef struct H264PredContext
  1.4585 +  uint32_t a;
  1.4586 +  uint32_t d;
  1.4587 +  __asm__ volatile("rdtsc" : "=a"(a), "=d"(d) : );
  1.4588 +  return ((uint64_t)d << 32) + a;
  1.4589 +}
  1.4590 +typedef signed char int8_t;
  1.4591 +static __inline int32_t NEG_SSR32(int32_t a, int8_t s)
  1.4592  {
  1.4593 -        void (*pred4x4[9 + 3 + 3])(uint8_t *src, uint8_t *topright, int stride);
  1.4594 -        void (*pred8x8l[9 + 3])(uint8_t *src, int topleft, int topright, int stride);
  1.4595 -        void (*pred8x8[4 + 3 + 4])(uint8_t *src, int stride);
  1.4596 -        void (*pred16x16[4 + 3])(uint8_t *src, int stride);
  1.4597 -        void (*pred4x4_add[2])(uint8_t *pix, const DCTELEM *block, int stride);
  1.4598 -        void (*pred8x8l_add[2])(uint8_t *pix, const DCTELEM *block, int stride);
  1.4599 -        void (*pred8x8_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride);
  1.4600 -        void (*pred16x16_add[3])(uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride);
  1.4601 -} H264PredContext;
  1.4602 -void ff_h264_pred_init(H264PredContext *h);
  1.4603 -void ff_h264_pred_init_arm(H264PredContext *h);
  1.4604 -typedef struct 
  1.4605 +  __asm__ ("sarl %1, %0\n\t" : "+r"(a) : "ic"((uint8_t) -s));
  1.4606 +  return a;
  1.4607 +}
  1.4608 +static __inline uint32_t NEG_USR32(uint32_t a, int8_t s)
  1.4609  {
  1.4610 -        const char *class_name;
  1.4611 -        const char *(*item_name)(void *ctx);
  1.4612 -        const struct AVOption *option;
  1.4613 -        int version;
  1.4614 -} AVClass;
  1.4615 -void av_log(int level, const char *fmt, ...);
  1.4616 -void av_vlog(int level, const char *fmt, va_list);
  1.4617 -int av_log_get_level(void);
  1.4618 -void av_log_set_level(int);
  1.4619 -void av_log_set_callback(void (*)(int, const char *, va_list));
  1.4620 -void av_log_default_callback(int level, const char *fmt, va_list vl);
  1.4621 -static inline uint64_t read_time(void)
  1.4622 +  __asm__ ("shrl %1, %0\n\t" : "+r"(a) : "ic"((uint8_t) -s));
  1.4623 +  return a;
  1.4624 +}
  1.4625 +static __inline __attribute__((always_inline)) int MULH(int a, int b)
  1.4626  {
  1.4627 -    uint32_t a, d;
  1.4628 -    __asm__ volatile("rdtsc": "=a" (a), "=d" (d): );
  1.4629 -    return ((uint64_t) d << 32) + a;
  1.4630 +  return (int64_t)a * (int64_t)b >> 32;
  1.4631  }
  1.4632 -static inline int32_t NEG_SSR32(int32_t a, int8_t s)
  1.4633 +static __inline __attribute__((always_inline)) unsigned int UMULH(unsigned int a, unsigned int b)
  1.4634  {
  1.4635 -    __asm__ ("sarl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s)));
  1.4636 -    return a;
  1.4637 +  return (uint64_t)a * (uint64_t)b >> 32;
  1.4638  }
  1.4639 -static inline uint32_t NEG_USR32(uint32_t a, int8_t s)
  1.4640 +static __inline __attribute__((const)) int mid_pred(int a, int b, int c)
  1.4641  {
  1.4642 -    __asm__ ("shrl %1, %0\n\t": "+r" (a): "ic" ((uint8_t) (- s)));
  1.4643 -    return a;
  1.4644 +  if (a > b)
  1.4645 +    {
  1.4646 +      {
  1.4647 +        if (c > b)
  1.4648 +          {
  1.4649 +            {
  1.4650 +              if (c > a)
  1.4651 +                {
  1.4652 +                  b = a;
  1.4653 +                }
  1.4654 +              else
  1.4655 +                {
  1.4656 +                  b = c;
  1.4657 +                }
  1.4658 +            }
  1.4659 +          }
  1.4660 +      }
  1.4661 +    }
  1.4662 +  else
  1.4663 +    {
  1.4664 +      {
  1.4665 +        if (b > c)
  1.4666 +          {
  1.4667 +            {
  1.4668 +              if (c > a)
  1.4669 +                {
  1.4670 +                  b = c;
  1.4671 +                }
  1.4672 +              else
  1.4673 +                {
  1.4674 +                  b = a;
  1.4675 +                }
  1.4676 +            }
  1.4677 +          }
  1.4678 +      }
  1.4679 +    }
  1.4680 +  return b;
  1.4681  }
  1.4682 -static __attribute__((always_inline)) inline int MULH(int a, int b)
  1.4683 +static __inline __attribute__((const)) int sign_extend(int val, unsigned int bits)
  1.4684  {
  1.4685 -    return ((int64_t) (a) * (int64_t) (b)) >> 32;
  1.4686 +  return val << (8 * sizeof(int) - bits) >> (8 * sizeof(int) - bits);
  1.4687  }
  1.4688 -static __attribute__((always_inline)) inline unsigned UMULH(unsigned a, unsigned b)
  1.4689 +static __inline __attribute__((const)) unsigned int zero_extend(unsigned int val, unsigned int bits)
  1.4690  {
  1.4691 -    return ((uint64_t) (a) * (uint64_t) (b)) >> 32;
  1.4692 +  return val << (8 * sizeof(int) - bits) >> (8 * sizeof(int) - bits);
  1.4693  }
  1.4694 -static inline __attribute__((const)) int mid_pred(int a, int b, int c)
  1.4695 +struct GetBitContext;
  1.4696 +typedef struct GetBitContext GetBitContext;
  1.4697 +struct  GetBitContext
  1.4698  {
  1.4699 -    if (a > b)
  1.4700 +  uint8_t *rbsp;
  1.4701 +  unsigned int rbsp_size;
  1.4702 +  uint8_t *raw;
  1.4703 +  const uint8_t *buffer;
  1.4704 +  const uint8_t *buffer_end;
  1.4705 +  unsigned int alloc_size;
  1.4706 +  unsigned int buf_size;
  1.4707 +  uint32_t *buffer_ptr;
  1.4708 +  uint32_t cache0;
  1.4709 +  uint32_t cache1;
  1.4710 +  int bit_count;
  1.4711 +  int size_in_bits;
  1.4712 +};
  1.4713 +static __inline int get_bits_count(const GetBitContext *s)
  1.4714 +{
  1.4715 +  return ((uint8_t *)(*s).buffer_ptr - (*s).buffer) * 8 - 32 + (*s).bit_count;
  1.4716 +}
  1.4717 +static __inline void skip_bits_long(GetBitContext *s, int n)
  1.4718 +{
  1.4719 +  int re_bit_count = (*s).bit_count;
  1.4720 +  uint32_t re_cache0 = (*s).cache0;
  1.4721 +  uint32_t re_cache1 = (*s).cache1;
  1.4722 +  uint32_t *re_buffer_ptr = (*s).buffer_ptr;
  1.4723 +  re_bit_count += n;
  1.4724 +  re_buffer_ptr += re_bit_count >> 5;
  1.4725 +  re_bit_count &= 31;
  1.4726 +  re_cache0 = bswap_32(re_buffer_ptr[ -1]) << re_bit_count;
  1.4727 +  re_cache1 = 0;
  1.4728 +  if (re_bit_count > 0)
  1.4729      {
  1.4730 -        if (c > b)
  1.4731 -        {
  1.4732 -            if (c > a)
  1.4733 -                b = a;
  1.4734 -            else
  1.4735 -                b = c;
  1.4736 -        }
  1.4737 -    }
  1.4738 -    else
  1.4739 -    {
  1.4740 -        if (b > c)
  1.4741 -        {
  1.4742 -            if (c > a)
  1.4743 -                b = c;
  1.4744 -            else
  1.4745 -                b = a;
  1.4746 -        }
  1.4747 -    }
  1.4748 -    return b;
  1.4749 -}
  1.4750 -static inline __attribute__((const)) int sign_extend(int val, unsigned bits)
  1.4751 -{
  1.4752 -    return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits);
  1.4753 -}
  1.4754 -static inline __attribute__((const)) unsigned zero_extend(unsigned val, unsigned bits)
  1.4755 -{
  1.4756 -    return (val << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits);
  1.4757 -}
  1.4758 -typedef struct GetBitContext
  1.4759 -{
  1.4760 -        uint8_t *rbsp;
  1.4761 -        unsigned int rbsp_size;
  1.4762 -        uint8_t *raw;
  1.4763 -        const uint8_t *buffer, *buffer_end;
  1.4764 -        unsigned int alloc_size;
  1.4765 -        unsigned int buf_size;
  1.4766 -        uint32_t *buffer_ptr;
  1.4767 -        uint32_t cache0;
  1.4768 -        uint32_t cache1;
  1.4769 -        int bit_count;
  1.4770 -        int size_in_bits;
  1.4771 -} GetBitContext;
  1.4772 -static inline int get_bits_count(const GetBitContext *s)
  1.4773 -{
  1.4774 -    return ((uint8_t *) s->buffer_ptr - s->buffer) * 8 - 32 + s->bit_count;
  1.4775 -}
  1.4776 -static inline void skip_bits_long(GetBitContext *s, int n)
  1.4777 -{
  1.4778 -    int re_bit_count = (s)->bit_count;
  1.4779 -    uint32_t re_cache0 = (s)->cache0;
  1.4780 -    uint32_t re_cache1 = (s)->cache1;
  1.4781 -    uint32_t *re_buffer_ptr = (s)->buffer_ptr;
  1.4782 -    re_bit_count += n;
  1.4783 -    re_buffer_ptr += re_bit_count >> 5;
  1.4784 -    re_bit_count &= 31;
  1.4785 -    re_cache0 = bswap_32(re_buffer_ptr[- 1]) << re_bit_count;
  1.4786 -    re_cache1 = 0;
  1.4787 -    if (re_bit_count > 0)
  1.4788 -    {
  1.4789 +      {
  1.4790          const uint32_t next = bswap_32(*re_buffer_ptr);
  1.4791          re_cache0 |= NEG_USR32(next, re_bit_count);
  1.4792          re_cache1 |= next << re_bit_count;
  1.4793          re_buffer_ptr++;
  1.4794          re_bit_count -= 32;
  1.4795 +      }
  1.4796      }
  1.4797 -    (s)->bit_count = re_bit_count;
  1.4798 -    (s)->cache0 = re_cache0;
  1.4799 -    (s)->cache1 = re_cache1;
  1.4800 -    (s)->buffer_ptr = re_buffer_ptr;
  1.4801 +  (*s).bit_count = re_bit_count;
  1.4802 +  (*s).cache0 = re_cache0;
  1.4803 +  (*s).cache1 = re_cache1;
  1.4804 +  (*s).buffer_ptr = re_buffer_ptr;
  1.4805  }
  1.4806 -static inline int get_xbits(GetBitContext *s, int n)
  1.4807 +static __inline int get_xbits(GetBitContext *s, int n)
  1.4808  {
  1.4809 -    register int sign;
  1.4810 -    register int32_t cache;
  1.4811 -    int re_bit_count = (s)->bit_count;
  1.4812 -    uint32_t re_cache0 = (s)->cache0;
  1.4813 -    uint32_t re_cache1 = (s)->cache1;
  1.4814 -    uint32_t *re_buffer_ptr = (s)->buffer_ptr;
  1.4815 -    if (re_bit_count > 0)
  1.4816 +  register int32_t cache;
  1.4817 +  register int sign;
  1.4818 +  int re_bit_count = (*s).bit_count;
  1.4819 +  uint32_t re_cache0 = (*s).cache0;
  1.4820 +  uint32_t re_cache1 = (*s).cache1;
  1.4821 +  uint32_t *re_buffer_ptr = (*s).buffer_ptr;
  1.4822 +  if (re_bit_count > 0)
  1.4823      {
  1.4824 +      {
  1.4825          const uint32_t next = bswap_32(*re_buffer_ptr);
  1.4826          re_cache0 |= NEG_USR32(next, re_bit_count);
  1.4827          re_cache1 |= next << re_bit_count;
  1.4828          re_buffer_ptr++;
  1.4829          re_bit_count -= 32;
  1.4830 +      }
  1.4831      }
  1.4832 -    cache = (re_cache0);
  1.4833 -    sign = (~cache) >> 31;
  1.4834 +  cache = re_cache0;
  1.4835 +  sign = ~cache >> 31;
  1.4836 +  {
  1.4837 +    __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n));
  1.4838 +    re_bit_count += n;
  1.4839 +  }
  1.4840 +  (*s).bit_count = re_bit_count;
  1.4841 +  (*s).cache0 = re_cache0;
  1.4842 +  (*s).cache1 = re_cache1;
  1.4843 +  (*s).buffer_ptr = re_buffer_ptr;
  1.4844 +  return (NEG_USR32(sign ^ cache, n) ^ sign) - sign;
  1.4845 +}
  1.4846 +static __inline int get_sbits(GetBitContext *s, int n)
  1.4847 +{
  1.4848 +  register int tmp;
  1.4849 +  int re_bit_count = (*s).bit_count;
  1.4850 +  uint32_t re_cache0 = (*s).cache0;
  1.4851 +  uint32_t re_cache1 = (*s).cache1;
  1.4852 +  uint32_t *re_buffer_ptr = (*s).buffer_ptr;
  1.4853 +  if (re_bit_count > 0)
  1.4854      {
  1.4855 -        __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
  1.4856 -        re_bit_count += (n);
  1.4857 -    }
  1.4858 -    (s)->bit_count = re_bit_count;
  1.4859 -    (s)->cache0 = re_cache0;
  1.4860 -    (s)->cache1 = re_cache1;
  1.4861 -    (s)->buffer_ptr = re_buffer_ptr;
  1.4862 -    return (NEG_USR32(sign ^ cache, n) ^ sign) - sign;
  1.4863 -}
  1.4864 -static inline int get_sbits(GetBitContext *s, int n)
  1.4865 -{
  1.4866 -    register int tmp;
  1.4867 -    int re_bit_count = (s)->bit_count;
  1.4868 -    uint32_t re_cache0 = (s)->cache0;
  1.4869 -    uint32_t re_cache1 = (s)->cache1;
  1.4870 -    uint32_t *re_buffer_ptr = (s)->buffer_ptr;
  1.4871 -    if (re_bit_count > 0)
  1.4872 -    {
  1.4873 +      {
  1.4874          const uint32_t next = bswap_32(*re_buffer_ptr);
  1.4875          re_cache0 |= NEG_USR32(next, re_bit_count);
  1.4876          re_cache1 |= next << re_bit_count;
  1.4877          re_buffer_ptr++;
  1.4878          re_bit_count -= 32;
  1.4879 +      }
  1.4880      }
  1.4881 -    tmp = NEG_SSR32(re_cache0, n);
  1.4882 +  tmp = NEG_SSR32(re_cache0, n);
  1.4883 +  {
  1.4884 +    __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n));
  1.4885 +    re_bit_count += n;
  1.4886 +  }
  1.4887 +  (*s).bit_count = re_bit_count;
  1.4888 +  (*s).cache0 = re_cache0;
  1.4889 +  (*s).cache1 = re_cache1;
  1.4890 +  (*s).buffer_ptr = re_buffer_ptr;
  1.4891 +  return tmp;
  1.4892 +}
  1.4893 +static __inline unsigned int get_bits(GetBitContext *s, int n)
  1.4894 +{
  1.4895 +  register int tmp;
  1.4896 +  int re_bit_count = (*s).bit_count;
  1.4897 +  uint32_t re_cache0 = (*s).cache0;
  1.4898 +  uint32_t re_cache1 = (*s).cache1;
  1.4899 +  uint32_t *re_buffer_ptr = (*s).buffer_ptr;
  1.4900 +  if (re_bit_count > 0)
  1.4901      {
  1.4902 -        __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
  1.4903 -        re_bit_count += (n);
  1.4904 -    }
  1.4905 -    (s)->bit_count = re_bit_count;
  1.4906 -    (s)->cache0 = re_cache0;
  1.4907 -    (s)->cache1 = re_cache1;
  1.4908 -    (s)->buffer_ptr = re_buffer_ptr;
  1.4909 -    return tmp;
  1.4910 -}
  1.4911 -static inline unsigned int get_bits(GetBitContext *s, int n)
  1.4912 -{
  1.4913 -    register int tmp;
  1.4914 -    int re_bit_count = (s)->bit_count;
  1.4915 -    uint32_t re_cache0 = (s)->cache0;
  1.4916 -    uint32_t re_cache1 = (s)->cache1;
  1.4917 -    uint32_t *re_buffer_ptr = (s)->buffer_ptr;
  1.4918 -    if (re_bit_count > 0)
  1.4919 -    {
  1.4920 +      {
  1.4921          const uint32_t next = bswap_32(*re_buffer_ptr);
  1.4922          re_cache0 |= NEG_USR32(next, re_bit_count);
  1.4923          re_cache1 |= next << re_bit_count;
  1.4924          re_buffer_ptr++;
  1.4925          re_bit_count -= 32;
  1.4926 +      }
  1.4927      }
  1.4928 -    tmp = NEG_USR32(re_cache0, n);
  1.4929 +  tmp = NEG_USR32(re_cache0, n);
  1.4930 +  {
  1.4931 +    __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n));
  1.4932 +    re_bit_count += n;
  1.4933 +  }
  1.4934 +  (*s).bit_count = re_bit_count;
  1.4935 +  (*s).cache0 = re_cache0;
  1.4936 +  (*s).cache1 = re_cache1;
  1.4937 +  (*s).buffer_ptr = re_buffer_ptr;
  1.4938 +  return tmp;
  1.4939 +}
  1.4940 +static __inline unsigned int show_bits(GetBitContext *s, int n)
  1.4941 +{
  1.4942 +  register int tmp;
  1.4943 +  int re_bit_count = (*s).bit_count;
  1.4944 +  uint32_t re_cache0 = (*s).cache0;
  1.4945 +  uint32_t re_cache1 = (*s).cache1;
  1.4946 +  uint32_t *re_buffer_ptr = (*s).buffer_ptr;
  1.4947 +  if (re_bit_count > 0)
  1.4948      {
  1.4949 -        __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
  1.4950 -        re_bit_count += (n);
  1.4951 -    }
  1.4952 -    (s)->bit_count = re_bit_count;
  1.4953 -    (s)->cache0 = re_cache0;
  1.4954 -    (s)->cache1 = re_cache1;
  1.4955 -    (s)->buffer_ptr = re_buffer_ptr;
  1.4956 -    return tmp;
  1.4957 -}
  1.4958 -static inline unsigned int show_bits(GetBitContext *s, int n)
  1.4959 -{
  1.4960 -    register int tmp;
  1.4961 -    int re_bit_count = (s)->bit_count;
  1.4962 -    uint32_t re_cache0 = (s)->cache0;
  1.4963 -    uint32_t re_cache1 = (s)->cache1;
  1.4964 -    uint32_t *re_buffer_ptr = (s)->buffer_ptr;
  1.4965 -    if (re_bit_count > 0)
  1.4966 -    {
  1.4967 +      {
  1.4968          const uint32_t next = bswap_32(*re_buffer_ptr);
  1.4969          re_cache0 |= NEG_USR32(next, re_bit_count);
  1.4970          re_cache1 |= next << re_bit_count;
  1.4971          re_buffer_ptr++;
  1.4972          re_bit_count -= 32;
  1.4973 +      }
  1.4974      }
  1.4975 -    tmp = NEG_USR32(re_cache0, n);
  1.4976 -    return tmp;
  1.4977 +  tmp = NEG_USR32(re_cache0, n);
  1.4978 +  return tmp;
  1.4979  }
  1.4980 -static inline void skip_bits(GetBitContext *s, int n)
  1.4981 +static __inline void skip_bits(GetBitContext *s, int n)
  1.4982  {
  1.4983 -    int re_bit_count = (s)->bit_count;
  1.4984 -    uint32_t re_cache0 = (s)->cache0;
  1.4985 -    uint32_t re_cache1 = (s)->cache1;
  1.4986 -    uint32_t *re_buffer_ptr = (s)->buffer_ptr;
  1.4987 -    if (re_bit_count > 0)
  1.4988 +  int re_bit_count = (*s).bit_count;
  1.4989 +  uint32_t re_cache0 = (*s).cache0;
  1.4990 +  uint32_t re_cache1 = (*s).cache1;
  1.4991 +  uint32_t *re_buffer_ptr = (*s).buffer_ptr;
  1.4992 +  if (re_bit_count > 0)
  1.4993      {
  1.4994 +      {
  1.4995          const uint32_t next = bswap_32(*re_buffer_ptr);
  1.4996          re_cache0 |= NEG_USR32(next, re_bit_count);
  1.4997          re_cache1 |= next << re_bit_count;
  1.4998          re_buffer_ptr++;
  1.4999          re_bit_count -= 32;
  1.5000 +      }
  1.5001      }
  1.5002 +  {
  1.5003 +    __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t" : "+r"(re_cache0), "+r"(re_cache1) : "Ic"((uint8_t)n));
  1.5004 +    re_bit_count += n;
  1.5005 +  }
  1.5006 +  (*s).bit_count = re_bit_count;
  1.5007 +  (*s).cache0 = re_cache0;
  1.5008 +  (*s).cache1 = re_cache1;
  1.5009 +  (*s).buffer_ptr = re_buffer_ptr;
  1.5010 +}
  1.5011 +static __inline unsigned int get_bits1(GetBitContext *s)
  1.5012 +{
  1.5013 +  return get_bits(s, 1);
  1.5014 +}
  1.5015 +static __inline unsigned int show_bits1(GetBitContext *s)
  1.5016 +{
  1.5017 +  return show_bits(s, 1);
  1.5018 +}
  1.5019 +static __inline void skip_bits1(GetBitContext *s)
  1.5020 +{
  1.5021 +  skip_bits(s, 1);
  1.5022 +}
  1.5023 +static __inline unsigned int get_bits_long(GetBitContext *s, int n)
  1.5024 +{
  1.5025 +  if (n <= 32)
  1.5026      {
  1.5027 -        __asm__ ("shldl %2, %1, %0          \n\t""shll %2, %1               \n\t": "+r" (re_cache0), "+r" (re_cache1): "Ic" ((uint8_t) (n)));
  1.5028 -        re_bit_count += (n);
  1.5029 +      return get_bits(s, n);
  1.5030      }
  1.5031 -    (s)->bit_count = re_bit_count;
  1.5032 -    (s)->cache0 = re_cache0;
  1.5033 -    (s)->cache1 = re_cache1;
  1.5034 -    (s)->buffer_ptr = re_buffer_ptr;
  1.5035 -}
  1.5036 -static inline unsigned int get_bits1(GetBitContext *s)
  1.5037 -{
  1.5038 -    return get_bits(s, 1);
  1.5039 -}
  1.5040 -static inline unsigned int show_bits1(GetBitContext *s)
  1.5041 -{
  1.5042 -    return show_bits(s, 1);
  1.5043 -}
  1.5044 -static inline void skip_bits1(GetBitContext *s)
  1.5045 -{
  1.5046 -    skip_bits(s, 1);
  1.5047 -}
  1.5048 -static inline unsigned int get_bits_long(GetBitContext *s, int n)
  1.5049 -{
  1.5050 -    if (n <= 32)
  1.5051 -        return get_bits(s, n);
  1.5052 -    else
  1.5053 +  else
  1.5054      {
  1.5055 +      {
  1.5056          int ret = get_bits(s, 16) << (n - 16);
  1.5057          return ret | get_bits(s, n - 16);
  1.5058 +      }
  1.5059      }
  1.5060  }
  1.5061 -static inline int get_sbits_long(GetBitContext *s, int n)
  1.5062 +static __inline int get_sbits_long(GetBitContext *s, int n)
  1.5063  {
  1.5064 -    return sign_extend(get_bits_long(s, n), n);
  1.5065 +  return sign_extend(get_bits_long(s, n), n);
  1.5066  }
  1.5067 -static inline unsigned int show_bits_long(GetBitContext *s, int n)
  1.5068 +static __inline unsigned int show_bits_long(GetBitContext *s, int n)
  1.5069  {
  1.5070 -    if (n <= 32)
  1.5071 -        return show_bits(s, n);
  1.5072 -    else
  1.5073 +  if (n <= 32)
  1.5074      {
  1.5075 +      return show_bits(s, n);
  1.5076 +    }
  1.5077 +  else
  1.5078 +    {
  1.5079 +      {
  1.5080          GetBitContext gb = *s;
  1.5081          return get_bits_long(&gb, n);
  1.5082 +      }
  1.5083      }
  1.5084  }
  1.5085 -static inline int check_marker(GetBitContext *s, const char *msg)
  1.5086 +void av_log(int level, const char *fmt, ...);
  1.5087 +static __inline int check_marker(GetBitContext *s, const char *msg)
  1.5088  {
  1.5089 -    int bit = get_bits1(s);
  1.5090 -    if (!bit)
  1.5091 -        av_log(32, "Marker bit missing %s\n", msg);
  1.5092 -    return bit;
  1.5093 +  int bit = get_bits1(s);
  1.5094 +  if (!bit)
  1.5095 +    {
  1.5096 +      av_log(32, "Marker bit missing %s\n", msg);
  1.5097 +    }
  1.5098 +  return bit;
  1.5099  }
  1.5100 -static inline void init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
  1.5101 +typedef long int __intptr_t;
  1.5102 +typedef __intptr_t intptr_t;
  1.5103 +static __inline void init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
  1.5104  {
  1.5105 -    int buffer_size = (bit_size + 7) >> 3;
  1.5106 -    if (buffer_size < 0 || bit_size < 0)
  1.5107 +  int buffer_size = (bit_size + 7) >> 3;
  1.5108 +  if (buffer_size < 0 || bit_size < 0)
  1.5109      {
  1.5110 +      {
  1.5111          buffer_size = bit_size = 0;
  1.5112 -        buffer = ((void *) 0);
  1.5113 +        buffer = (void *)0;
  1.5114 +      }
  1.5115      }
  1.5116 -    s->buffer = buffer;
  1.5117 -    s->size_in_bits = bit_size;
  1.5118 -    s->buffer_end = buffer + buffer_size;
  1.5119 -    s->buffer_ptr = (uint32_t *) ((intptr_t) buffer & (~3));
  1.5120 -    s->bit_count = 32 + 8 * ((intptr_t) buffer & 3);
  1.5121 -    skip_bits_long(s, 0);
  1.5122 +  (*s).buffer = buffer;
  1.5123 +  (*s).size_in_bits = bit_size;
  1.5124 +  (*s).buffer_end = buffer + buffer_size;
  1.5125 +  (*s).buffer_ptr = (uint32_t *)((intptr_t)buffer & ~3);
  1.5126 +  (*s).bit_count = 32 + 8 * ((intptr_t)buffer & 3);
  1.5127 +  skip_bits_long(s, 0);
  1.5128  }
  1.5129 -static inline void align_get_bits(GetBitContext *s)
  1.5130 +static __inline void align_get_bits(GetBitContext *s)
  1.5131  {
  1.5132 -    int n = (- get_bits_count(s)) & 7;
  1.5133 -    if (n)
  1.5134 -        skip_bits(s, n);
  1.5135 +  int n =  -get_bits_count(s) & 7;
  1.5136 +  if (n)
  1.5137 +    {
  1.5138 +      skip_bits(s, n);
  1.5139 +    }
  1.5140  }
  1.5141 -static inline int get_bits_left(GetBitContext *gb)
  1.5142 +static __inline int get_bits_left(GetBitContext *gb)
  1.5143  {
  1.5144 -    return gb->size_in_bits - get_bits_count(gb);
  1.5145 +  return (*gb).size_in_bits - get_bits_count(gb);
  1.5146  }
  1.5147 -enum 
  1.5148 +struct H264Slice;
  1.5149 +typedef struct H264Slice H264Slice;
  1.5150 +struct  PPS
  1.5151  {
  1.5152 -    PARSE = 0, 
  1.5153 -    ENTROPY, 
  1.5154 -    REORDER, 
  1.5155 -    REORDER2, 
  1.5156 -    MBDEC, 
  1.5157 -    OUTPUT, 
  1.5158 -    STAGES
  1.5159 +  unsigned int sps_id;
  1.5160 +  int cabac;
  1.5161 +  int pic_order_present;
  1.5162 +  int slice_group_count;
  1.5163 +  int mb_slice_group_map_type;
  1.5164 +  unsigned int ref_count[2];
  1.5165 +  int weighted_pred;
  1.5166 +  int weighted_bipred_idc;
  1.5167 +  int init_qp;
  1.5168 +  int init_qs;
  1.5169 +  int chroma_qp_index_offset[2];
  1.5170 +  int deblocking_filter_parameters_present;
  1.5171 +  int constrained_intra_pred;
  1.5172 +  int redundant_pic_cnt_present;
  1.5173 +  int transform_8x8_mode;
  1.5174 +  uint8_t scaling_matrix4[6][16];
  1.5175 +  uint8_t scaling_matrix8[2][64];
  1.5176 +  uint8_t chroma_qp_table[2][64];
  1.5177 +  int chroma_qp_diff;
  1.5178  };
  1.5179 -enum 
  1.5180 +typedef struct PPS PPS;
  1.5181 +struct PictureInfo;
  1.5182 +typedef struct PictureInfo PictureInfo;
  1.5183 +struct DecodedPicture;
  1.5184 +typedef struct DecodedPicture DecodedPicture;
  1.5185 +struct  H264Slice
  1.5186  {
  1.5187 -    TOTAL = 0, 
  1.5188 -    FRONT, 
  1.5189 -    ED, 
  1.5190 -    REC, 
  1.5191 -    PROFILE_STAGES
  1.5192 +  PPS pps;
  1.5193 +  PictureInfo *current_picture_info;
  1.5194 +  DecodedPicture *curr_pic;
  1.5195 +  int slice_num;
  1.5196 +  int release_ref_cpn[66];
  1.5197 +  int release_cnt;
  1.5198 +  int qp_thresh;
  1.5199 +  int use_weight;
  1.5200 +  int use_weight_chroma;
  1.5201 +  int luma_log2_weight_denom;
  1.5202 +  int chroma_log2_weight_denom;
  1.5203 +  int16_t luma_weight[16][2][2];
  1.5204 +  int16_t chroma_weight[16][2][2][2];
  1.5205 +  int16_t implicit_weight[16][16][2];
  1.5206 +  int ref_list_cpn[2][16];
  1.5207 +  PictureInfo *ref_list[2][16];
  1.5208 +  DecodedPicture *dp_ref_list[2][16];
  1.5209 +  int ref_count[2];
  1.5210 +  int slice_type;
  1.5211 +  int slice_type_nos;
  1.5212 +  int slice_alpha_c0_offset;
  1.5213 +  int slice_beta_offset;
  1.5214 +  int direct_8x8_inference_flag;
  1.5215 +  uint8_t list_count;
  1.5216 +  uint32_t coded_pic_num;
  1.5217 +  int poc;
  1.5218 +  int key_frame;
  1.5219 +  int mmco_reset;
  1.5220 +  int ip_id;
  1.5221 +  int transform_bypass;
  1.5222 +  int direct_spatial_mv_pred;
  1.5223 +  int map_col_to_list0[2][16];
  1.5224 +  int dist_scale_factor[16];
  1.5225 +  int cabac_init_idc;
  1.5226 +  int nal_ref_idc;
  1.5227 +  int nal_unit_type;
  1.5228 +  int ref2frm[2][64];
  1.5229 +  int qscale;
  1.5230  };
  1.5231 -typedef struct ParserContext
  1.5232 +static __inline int get_chroma_qp(H264Slice *s, int t, int qscale)
  1.5233  {
  1.5234 -        int ifile;
  1.5235 -        int ofile;
  1.5236 -        int buffer_size;
  1.5237 -        int eof_reached;
  1.5238 -        uint8_t *data;
  1.5239 -        int size;
  1.5240 -        uint8_t *cur_ptr;
  1.5241 -        int cur_len;
  1.5242 -        int64_t frame_offset;
  1.5243 -        int64_t cur_offset;
  1.5244 -        int64_t next_frame_offset;
  1.5245 -        int pict_type;
  1.5246 -        int repeat_pict;
  1.5247 -        int key_frame;
  1.5248 -        int64_t pos;
  1.5249 -        int64_t last_pos;
  1.5250 -        int final_frame;
  1.5251 -        uint8_t overread[5];
  1.5252 -        int overread_cnt;
  1.5253 -        int index;
  1.5254 -        int last_index;
  1.5255 -        int frame_start_found;
  1.5256 -        uint32_t state;
  1.5257 -} ParserContext;
  1.5258 -typedef struct NalContext
  1.5259 +  return (*s).pps.chroma_qp_table[t][qscale];
  1.5260 +}
  1.5261 +struct H264Context;
  1.5262 +typedef struct H264Context H264Context;
  1.5263 +struct ParserContext;
  1.5264 +typedef struct ParserContext ParserContext;
  1.5265 +struct NalContext;
  1.5266 +typedef struct NalContext NalContext;
  1.5267 +struct mcc_struct_anon_54;
  1.5268 +typedef struct mcc_struct_anon_54 SliceBufferEntry;
  1.5269 +struct H264Mb;
  1.5270 +typedef struct H264Mb H264Mb;
  1.5271 +struct  mcc_struct_anon_54
  1.5272  {
  1.5273 -        SPS *sps_buffers[32];
  1.5274 -        PPS *pps_buffers[256];
  1.5275 -        SPS sps;
  1.5276 -        PictureInfo picture[16 + 1];
  1.5277 -        PictureInfo *release_ref[66];
  1.5278 -        PictureInfo *short_ref[32];
  1.5279 -        PictureInfo *long_ref[32];
  1.5280 -        int long_ref_count;
  1.5281 -        int short_ref_count;
  1.5282 -        uint32_t coded_pic_num;
  1.5283 -        int poc_lsb;
  1.5284 -        int poc_msb;
  1.5285 -        uint32_t poc_offset;
  1.5286 -        int delta_poc;
  1.5287 -        int frame_num;
  1.5288 -        int prev_poc_msb;
  1.5289 -        int prev_poc_lsb;
  1.5290 -        int frame_num_offset;
  1.5291 -        int prev_frame_num_offset;
  1.5292 -        int prev_frame_num;
  1.5293 -        int max_pic_num;
  1.5294 -        int redundant_pic_count;
  1.5295 -        int outputed_poc;
  1.5296 -        int ip_id;
  1.5297 -        int b4_stride;
  1.5298 -        int mb_stride;
  1.5299 -        int mb_width;
  1.5300 -        int mb_height;
  1.5301 -        int width;
  1.5302 -        int height;
  1.5303 -        int has_b_frames;
  1.5304 -        SEI_PicStructType sei_pic_struct;
  1.5305 -        int sei_ct_type;
  1.5306 -        int sei_dpb_output_delay;
  1.5307 -        int sei_cpb_removal_delay;
  1.5308 -        int sei_recovery_frame_cnt;
  1.5309 -        int sei_buffering_period_present;
  1.5310 -        int initial_cpb_removal_delay[32];
  1.5311 -} NalContext;
  1.5312 -typedef struct EntropyContext
  1.5313 +  H264Slice slice;
  1.5314 +  H264Mb *mbs;
  1.5315 +  DecodedPicture *dp;
  1.5316 +  GetBitContext gb;
  1.5317 +  int lines_taken;
  1.5318 +  int lines_total;
  1.5319 +  int state;
  1.5320 +  int initialized;
  1.5321 +};
  1.5322 +void init_sb_entry(H264Context *h, SliceBufferEntry *sbe);
  1.5323 +struct __pthread_internal_list;
  1.5324 +struct  __pthread_internal_list
  1.5325  {
  1.5326 -        CABACContext c;
  1.5327 -        H264Mb *m;
  1.5328 -        int top_cbp;
  1.5329 -        int left_cbp;
  1.5330 -        int neighbor_transform_size;
  1.5331 -        uint32_t top_type;
  1.5332 -        uint32_t left_type;
  1.5333 -        uint32_t topright_type;
  1.5334 -        uint32_t topleft_type;
  1.5335 -        int curr_qscale;
  1.5336 -        int chroma_qp[2];
  1.5337 -        int last_qscale_diff;
  1.5338 -        uint32_t dequant4_buffer[6][52][16];
  1.5339 -        uint32_t dequant8_buffer[2][52][64];
  1.5340 -        uint32_t (*dequant4_coeff[6])[16];
  1.5341 -        uint32_t (*dequant8_coeff[2])[64];
  1.5342 -        uint8_t (*non_zero_count_top)[8];
  1.5343 -        uint8_t (*non_zero_count)[8];
  1.5344 -        uint8_t (*non_zero_count_row[2])[8];
  1.5345 -        uint8_t __attribute__((aligned(8))) non_zero_count_left[8];
  1.5346 -        uint8_t (*mvd_top[2])[2];
  1.5347 -        uint8_t (*mvd[2])[2];
  1.5348 -        uint8_t (*mvd_table[2][2])[2];
  1.5349 -        uint8_t *direct_top;
  1.5350 -        uint8_t *direct;
  1.5351 -        uint8_t *direct_table[2];
  1.5352 -        uint8_t *chroma_pred_mode_top;
  1.5353 -        uint8_t *chroma_pred_mode;
  1.5354 -        uint8_t *chroma_pred_mode_table[2];
  1.5355 -        uint16_t *cbp_top;
  1.5356 -        uint16_t *cbp;
  1.5357 -        uint16_t *cbp_table[2];
  1.5358 -        int8_t *qscale_top;
  1.5359 -        int8_t *qscale;
  1.5360 -        int8_t *qscale_table[2];
  1.5361 -        int8_t *ref_index_top[2];
  1.5362 -        int8_t *ref_index[2];
  1.5363 -        int8_t *ref_index_table[2][2];
  1.5364 -        uint32_t *mb_type_top;
  1.5365 -        uint32_t *mb_type;
  1.5366 -        uint32_t *mb_type_table[2];
  1.5367 -        int b_stride;
  1.5368 -        int mb_stride;
  1.5369 -        int mb_width;
  1.5370 -        int mb_height;
  1.5371 -        uint8_t *zigzag_scan;
  1.5372 -        uint8_t *zigzag_scan8x8;
  1.5373 -        uint8_t direct_cache[5 * 8];
  1.5374 -        int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8];
  1.5375 -        int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2];
  1.5376 -        int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8];
  1.5377 -        uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8];
  1.5378 -        uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2];
  1.5379 -} EntropyContext;
  1.5380 -typedef struct H264Slice
  1.5381 +  struct __pthread_internal_list *__prev;
  1.5382 +  struct __pthread_internal_list *__next;
  1.5383 +};
  1.5384 +typedef struct __pthread_internal_list __pthread_list_t;
  1.5385 +struct  __pthread_mutex_s
  1.5386  {
  1.5387 -        PPS pps;
  1.5388 -        PictureInfo *current_picture_info;
  1.5389 -        DecodedPicture *curr_pic;
  1.5390 -        int slice_num;
  1.5391 -        int release_ref_cpn[66];
  1.5392 -        int release_cnt;
  1.5393 -        int qp_thresh;
  1.5394 -        int use_weight;
  1.5395 -        int use_weight_chroma;
  1.5396 -        int luma_log2_weight_denom;
  1.5397 -        int chroma_log2_weight_denom;
  1.5398 -        int16_t luma_weight[16][2][2];
  1.5399 -        int16_t chroma_weight[16][2][2][2];
  1.5400 -        int16_t implicit_weight[16][16][2];
  1.5401 -        int ref_list_cpn[2][16];
  1.5402 -        PictureInfo *ref_list[2][16];
  1.5403 -        DecodedPicture *dp_ref_list[2][16];
  1.5404 -        int ref_count[2];
  1.5405 -        int slice_type;
  1.5406 -        int slice_type_nos;
  1.5407 -        int slice_alpha_c0_offset;
  1.5408 -        int slice_beta_offset;
  1.5409 -        int direct_8x8_inference_flag;
  1.5410 -        uint8_t list_count;
  1.5411 -        uint32_t coded_pic_num;
  1.5412 -        int poc;
  1.5413 -        int key_frame;
  1.5414 -        int mmco_reset;
  1.5415 -        int ip_id;
  1.5416 -        int transform_bypass;
  1.5417 -        int direct_spatial_mv_pred;
  1.5418 -        int map_col_to_list0[2][16];
  1.5419 -        int dist_scale_factor[16];
  1.5420 -        int cabac_init_idc;
  1.5421 -        int nal_ref_idc;
  1.5422 -        int nal_unit_type;
  1.5423 -        int ref2frm[2][64];
  1.5424 -        int qscale;
  1.5425 -} H264Slice;
  1.5426 -typedef struct 
  1.5427 +  int __lock;
  1.5428 +  unsigned int __count;
  1.5429 +  int __owner;
  1.5430 +  unsigned int __nusers;
  1.5431 +  int __kind;
  1.5432 +  int __spins;
  1.5433 +  __pthread_list_t __list;
  1.5434 +};
  1.5435 +union  mcc_union_anon_26
  1.5436  {
  1.5437 -        H264Slice slice;
  1.5438 -        H264Mb *mbs;
  1.5439 -        DecodedPicture *dp;
  1.5440 -        GetBitContext gb;
  1.5441 -        int lines_taken;
  1.5442 -        int lines_total;
  1.5443 -        int state;
  1.5444 -        int initialized;
  1.5445 -} SliceBufferEntry;
  1.5446 -typedef struct RingLineEntry
  1.5447 +  struct __pthread_mutex_s __data;
  1.5448 +  char __size[40];
  1.5449 +  long int __align;
  1.5450 +};
  1.5451 +typedef union mcc_union_anon_26 pthread_mutex_t;
  1.5452 +struct  mcc_struct_anon_29
  1.5453  {
  1.5454 -        union 
  1.5455 -        {
  1.5456 -                volatile int32_t __attribute__((aligned(64))) mb_cnt;
  1.5457 -                int32_t __attribute__((aligned(64))) pad[16];
  1.5458 -        };
  1.5459 -        SliceBufferEntry *sbe;
  1.5460 -        int id;
  1.5461 -        int line;
  1.5462 -        TopBorder *top;
  1.5463 -        struct RingLineEntry *prev_line;
  1.5464 -} RingLineEntry;
  1.5465 -typedef struct SuperMBTask
  1.5466 +  int __lock;
  1.5467 +  unsigned int __futex;
  1.5468 +  __extension__ unsigned long long int __total_seq;
  1.5469 +  __extension__ unsigned long long int __wakeup_seq;
  1.5470 +  __extension__ unsigned long long int __woken_seq;
  1.5471 +  void *__mutex;
  1.5472 +  unsigned int __nwaiters;
  1.5473 +  unsigned int __broadcast_seq;
  1.5474 +};
  1.5475 +union  mcc_union_anon_28
  1.5476  {
  1.5477 -        int smb_x;
  1.5478 -        int smb_y;
  1.5479 -} SuperMBTask;
  1.5480 -typedef struct SuperMBContext
  1.5481 +  struct mcc_struct_anon_29 __data;
  1.5482 +  char __size[48];
  1.5483 +  __extension__ long long int __align;
  1.5484 +};
  1.5485 +typedef union mcc_union_anon_28 pthread_cond_t;
  1.5486 +struct  mcc_struct_anon_56
  1.5487  {
  1.5488 -        int nsmb_width;
  1.5489 -        int nsmb_height;
  1.5490 -        int nsmb_3dheight;
  1.5491 -        int smb_width;
  1.5492 -        int smb_height;
  1.5493 -        int refcount;
  1.5494 -        int index;
  1.5495 -        SuperMBTask *smbs[2];
  1.5496 -} SuperMBContext;
  1.5497 -typedef struct MBRecState
  1.5498 +  pthread_mutex_t lock;
  1.5499 +  pthread_cond_t cond;
  1.5500 +  SliceBufferEntry **queue;
  1.5501 +  int size;
  1.5502 +  int cnt;
  1.5503 +  int fi;
  1.5504 +  int fo;
  1.5505 +};
  1.5506 +typedef struct mcc_struct_anon_56 SliceBufferQueue;
  1.5507 +struct RingLineEntry;
  1.5508 +typedef struct RingLineEntry RingLineEntry;
  1.5509 +struct  mcc_struct_anon_57
  1.5510  {
  1.5511 -        int8_t *ref_index_top[2];
  1.5512 -        int8_t *ref_index[2];
  1.5513 -        int16_t (*motion_val_top[2])[2];
  1.5514 -        int16_t (*motion_val[2])[2];
  1.5515 -        uint32_t *mb_type_top;
  1.5516 -        uint32_t *mb_type;
  1.5517 -        int8_t *list1_ref_index[2];
  1.5518 -        int16_t (*list1_motion_val[2])[2];
  1.5519 -        uint32_t *list1_mb_type;
  1.5520 -        int8_t *intra4x4_pred_mode_top;
  1.5521 -        int8_t *intra4x4_pred_mode;
  1.5522 -        int8_t *non_zero_count_top;
  1.5523 -        int8_t *non_zero_count;
  1.5524 -        unsigned int topleft_samples_available;
  1.5525 -        unsigned int topright_samples_available;
  1.5526 -        unsigned int top_samples_available;
  1.5527 -        unsigned int left_samples_available;
  1.5528 -        int top_type;
  1.5529 -        int left_type;
  1.5530 -        int8_t __attribute__((aligned(8))) intra4x4_pred_mode_cache[5 * 8];
  1.5531 -        int16_t __attribute__((aligned(16))) mv_cache[2][5 * 8][2];
  1.5532 -        int8_t __attribute__((aligned(8))) ref_cache[2][5 * 8];
  1.5533 -        uint8_t __attribute__((aligned(8))) non_zero_count_cache[6 * 8];
  1.5534 -        uint8_t __attribute__((aligned(16))) mvd_cache[2][5 * 8][2];
  1.5535 -        int16_t __attribute__((aligned(8))) bS[2][4][4];
  1.5536 -        uint8_t edges[2];
  1.5537 -} MBRecState;
  1.5538 -typedef struct MBRecContext
  1.5539 +  pthread_mutex_t wslock;
  1.5540 +  pthread_cond_t wscond;
  1.5541 +  pthread_mutex_t swlock;
  1.5542 +  pthread_cond_t swcond;
  1.5543 +  RingLineEntry **queue;
  1.5544 +  int size;
  1.5545 +  int ready;
  1.5546 +  int free;
  1.5547 +  int fi;
  1.5548 +  int fo;
  1.5549 +};
  1.5550 +typedef struct mcc_struct_anon_57 RingLineQueue;
  1.5551 +union  mcc_union_anon_25
  1.5552  {
  1.5553 -        DSPContext dsp;
  1.5554 -        H264DSPContext hdsp;
  1.5555 -        H264PredContext hpc;
  1.5556 -        MBRecState *mrs;
  1.5557 -        RingLineEntry *rle;
  1.5558 -        uint8_t *scratchpad_y;
  1.5559 -        uint8_t *scratchpad_cb;
  1.5560 -        uint8_t *scratchpad_cr;
  1.5561 -        int linesize;
  1.5562 -        int uvlinesize;
  1.5563 -        int mb_width;
  1.5564 -        int mb_height;
  1.5565 -        int mb_stride;
  1.5566 -        int b_stride;
  1.5567 -        int width;
  1.5568 -        int height;
  1.5569 -        int block_offset[16 + 8];
  1.5570 -} MBRecContext;
  1.5571 -typedef struct OutputContext
  1.5572 +  char __size[56];
  1.5573 +  long int __align;
  1.5574 +};
  1.5575 +typedef union mcc_union_anon_25 pthread_attr_t;
  1.5576 +typedef unsigned long int pthread_t;
  1.5577 +struct SuperMBContext;
  1.5578 +typedef struct SuperMBContext SuperMBContext;
  1.5579 +typedef long int __time_t;
  1.5580 +struct  timespec
  1.5581  {
  1.5582 -        int bit_buffer_size;
  1.5583 -        uint8_t *bit_buffer;
  1.5584 -        uint64_t video_size;
  1.5585 -        int frame_number;
  1.5586 -        DecodedPicture *delayed_pic[33];
  1.5587 -        int dp_cnt;
  1.5588 -} OutputContext;
  1.5589 -typedef struct 
  1.5590 +  __time_t tv_sec;
  1.5591 +  long int tv_nsec;
  1.5592 +};
  1.5593 +struct  H264Context
  1.5594  {
  1.5595 -        pthread_mutex_t lock;
  1.5596 -        pthread_cond_t cond;
  1.5597 -        SliceBufferEntry **queue;
  1.5598 -        int size;
  1.5599 -        int cnt;
  1.5600 -        int fi;
  1.5601 -        int fo;
  1.5602 -} SliceBufferQueue;
  1.5603 -typedef struct 
  1.5604 +  SliceBufferQueue sb_q[6];
  1.5605 +  RingLineQueue rl_q;
  1.5606 +  pthread_mutex_t lock[6];
  1.5607 +  pthread_cond_t cond[6];
  1.5608 +  pthread_mutex_t task_lock;
  1.5609 +  pthread_cond_t task_cond;
  1.5610 +  pthread_attr_t ed_rec_attr[80];
  1.5611 +  pthread_t ed_rec_thr[80];
  1.5612 +  int init_threads;
  1.5613 +  pthread_mutex_t ilock;
  1.5614 +  pthread_cond_t icond;
  1.5615 +  const char *file_name;
  1.5616 +  int profile;
  1.5617 +  int start;
  1.5618 +  int touch_start;
  1.5619 +  int setaff;
  1.5620 +  int touch_done;
  1.5621 +  int rl_side_touch;
  1.5622 +  int statmbd;
  1.5623 +  pthread_mutex_t slock;
  1.5624 +  pthread_cond_t scond;
  1.5625 +  pthread_mutex_t tlock;
  1.5626 +  pthread_cond_t tcond;
  1.5627 +  pthread_mutex_t tdlock;
  1.5628 +  pthread_cond_t tdcond;
  1.5629 +  int ed_ppe_threads;
  1.5630 +  int threads;
  1.5631 +  int smt;
  1.5632 +  int acdpb_cnt;
  1.5633 +  int reldpb_cnt;
  1.5634 +  int sb_size;
  1.5635 +  SliceBufferEntry *sb;
  1.5636 +  int free_sb_cnt;
  1.5637 +  int slice_bufs;
  1.5638 +  int max_dpb_cnt;
  1.5639 +  DecodedPicture *dpb;
  1.5640 +  int free_dpb_cnt;
  1.5641 +  int ifile;
  1.5642 +  int ofile;
  1.5643 +  int frame_width;
  1.5644 +  int frame_height;
  1.5645 +  int num_frames;
  1.5646 +  int width;
  1.5647 +  int height;
  1.5648 +  int mb_width;
  1.5649 +  int mb_height;
  1.5650 +  int mb_stride;
  1.5651 +  int b4_stride;
  1.5652 +  int b_stride;
  1.5653 +  int smb_height;
  1.5654 +  int smb_width;
  1.5655 +  pthread_mutex_t smb_lock;
  1.5656 +  pthread_cond_t sdl_cond;
  1.5657 +  pthread_mutex_t sdl_lock;
  1.5658 +  SuperMBContext *smbc;
  1.5659 +  int wave_order;
  1.5660 +  int static_3d;
  1.5661 +  int pipe_bufs;
  1.5662 +  uint8_t zigzag_scan[16];
  1.5663 +  uint8_t zigzag_scan8x8[64];
  1.5664 +  int verbose;
  1.5665 +  int no_mbd;
  1.5666 +  int display;
  1.5667 +  int fullscreen;
  1.5668 +  int quit;
  1.5669 +  struct timespec start_time[4];
  1.5670 +  struct timespec end_time[4];
  1.5671 +  double last_time[4];
  1.5672 +  double total_time[4];
  1.5673 +};
  1.5674 +void av_read_frame_internal(ParserContext *pc, GetBitContext *gb);
  1.5675 +int decode_nal_units(NalContext *n, H264Slice *s, GetBitContext *gb);
  1.5676 +static void parse_task(H264Context *h, ParserContext *pc, NalContext *nc, SliceBufferEntry *sbe)
  1.5677  {
  1.5678 -        pthread_mutex_t wslock;
  1.5679 -        pthread_cond_t wscond;
  1.5680 -        pthread_mutex_t swlock;
  1.5681 -        pthread_cond_t swcond;
  1.5682 -        RingLineEntry **queue;
  1.5683 -        int size;
  1.5684 -        int ready;
  1.5685 -        int free;
  1.5686 -        int fi;
  1.5687 -        int fo;
  1.5688 -} RingLineQueue;
  1.5689 -typedef struct H264Context
  1.5690 +  H264Slice *s;
  1.5691 +  if (!(*sbe).initialized)
  1.5692 +    {
  1.5693 +      {
  1.5694 +        init_sb_entry(h, sbe);
  1.5695 +        (*sbe).lines_total = (*h).mb_height;
  1.5696 +      }
  1.5697 +    }
  1.5698 +  av_read_frame_internal(pc, &(*sbe).gb);
  1.5699 +  s = &(*sbe).slice;
  1.5700 +  decode_nal_units(nc, s, &(*sbe).gb);
  1.5701 +}
  1.5702 +struct EntropyContext;
  1.5703 +typedef struct EntropyContext EntropyContext;
  1.5704 +struct  EntropyContext
  1.5705  {
  1.5706 -        SliceBufferQueue sb_q[STAGES];
  1.5707 -        RingLineQueue rl_q;
  1.5708 -        pthread_mutex_t lock[STAGES];
  1.5709 -        pthread_cond_t cond[STAGES];
  1.5710 -        pthread_mutex_t task_lock;
  1.5711 -        pthread_cond_t task_cond;
  1.5712 -        pthread_attr_t ed_rec_attr[80];
  1.5713 -        pthread_t ed_rec_thr[80];
  1.5714 -        int init_threads;
  1.5715 -        pthread_mutex_t ilock;
  1.5716 -        pthread_cond_t icond;
  1.5717 -        const char *file_name;
  1.5718 -        int profile;
  1.5719 -        int start;
  1.5720 -        int touch_start;
  1.5721 -        int setaff;
  1.5722 -        int touch_done;
  1.5723 -        int rl_side_touch;
  1.5724 -        int statmbd;
  1.5725 -        pthread_mutex_t slock;
  1.5726 -        pthread_cond_t scond;
  1.5727 -        pthread_mutex_t tlock;
  1.5728 -        pthread_cond_t tcond;
  1.5729 -        pthread_mutex_t tdlock;
  1.5730 -        pthread_cond_t tdcond;
  1.5731 -        int ed_ppe_threads;
  1.5732 -        int threads;
  1.5733 -        int smt;
  1.5734 -        int acdpb_cnt;
  1.5735 -        int reldpb_cnt;
  1.5736 -        int sb_size;
  1.5737 -        SliceBufferEntry *sb;
  1.5738 -        int free_sb_cnt;
  1.5739 -        int slice_bufs;
  1.5740 -        int max_dpb_cnt;
  1.5741 -        DecodedPicture *dpb;
  1.5742 -        int free_dpb_cnt;
  1.5743 -        int ifile;
  1.5744 -        int ofile;
  1.5745 -        int frame_width;
  1.5746 -        int frame_height;
  1.5747 -        int num_frames;
  1.5748 -        int width;
  1.5749 -        int height;
  1.5750 -        int mb_width;
  1.5751 -        int mb_height;
  1.5752 -        int mb_stride;
  1.5753 -        int b4_stride;
  1.5754 -        int b_stride;
  1.5755 -        int smb_height;
  1.5756 -        int smb_width;
  1.5757 -        pthread_mutex_t smb_lock;
  1.5758 -        pthread_cond_t sdl_cond;
  1.5759 -        pthread_mutex_t sdl_lock;
  1.5760 -        SuperMBContext *smbc;
  1.5761 -        int wave_order;
  1.5762 -        int static_3d;
  1.5763 -        int pipe_bufs;
  1.5764 -        uint8_t zigzag_scan[16];
  1.5765 -        uint8_t zigzag_scan8x8[64];
  1.5766 -        int verbose;
  1.5767 -        int no_mbd;
  1.5768 -        int display;
  1.5769 -        int fullscreen;
  1.5770 -        int quit;
  1.5771 -        struct timespec start_time[PROFILE_STAGES];
  1.5772 -        struct timespec end_time[PROFILE_STAGES];
  1.5773 -        double last_time[PROFILE_STAGES];
  1.5774 -        double total_time[PROFILE_STAGES];
  1.5775 -} H264Context;
  1.5776 -void av_read_frame_internal(ParserContext *pc, GetBitContext *gb);
  1.5777 -ParserContext *get_parse_context(int ifile);
  1.5778 -void free_parse_context(ParserContext *pc);
  1.5779 -int decode_nal_units(NalContext *n, H264Slice *s, GetBitContext *gb);
  1.5780 -NalContext *get_nal_context(int width, int height);
  1.5781 -void free_nal_context(NalContext *nc);
  1.5782 -int ff_h264_decode_mb_cabac(EntropyContext *ec, H264Slice *s, CABACContext *c);
  1.5783 +  CABACContext c;
  1.5784 +  H264Mb *m;
  1.5785 +  int top_cbp;
  1.5786 +  int left_cbp;
  1.5787 +  int neighbor_transform_size;
  1.5788 +  uint32_t top_type;
  1.5789 +  uint32_t left_type;
  1.5790 +  uint32_t topright_type;
  1.5791 +  uint32_t topleft_type;
  1.5792 +  int curr_qscale;
  1.5793 +  int chroma_qp[2];
  1.5794 +  int last_qscale_diff;
  1.5795 +  uint32_t dequant4_buffer[6][52][16];
  1.5796 +  uint32_t dequant8_buffer[2][52][64];
  1.5797 +  uint32_t (*dequant4_coeff[6])[16];
  1.5798 +  uint32_t (*dequant8_coeff[2])[64];
  1.5799 +  uint8_t (*non_zero_count_top)[8];
  1.5800 +  uint8_t (*non_zero_count)[8];
  1.5801 +  uint8_t (*non_zero_count_row[2])[8];
  1.5802 +  __attribute__((aligned(8))) uint8_t non_zero_count_left[8];
  1.5803 +  uint8_t (*mvd_top[2])[2];
  1.5804 +  uint8_t (*mvd[2])[2];
  1.5805 +  uint8_t (*mvd_table[2][2])[2];
  1.5806 +  uint8_t *direct_top;
  1.5807 +  uint8_t *direct;
  1.5808 +  uint8_t *direct_table[2];
  1.5809 +  uint8_t *chroma_pred_mode_top;
  1.5810 +  uint8_t *chroma_pred_mode;
  1.5811 +  uint8_t *chroma_pred_mode_table[2];
  1.5812 +  uint16_t *cbp_top;
  1.5813 +  uint16_t *cbp;
  1.5814 +  uint16_t *cbp_table[2];
  1.5815 +  int8_t *qscale_top;
  1.5816 +  int8_t *qscale;
  1.5817 +  int8_t *qscale_table[2];
  1.5818 +  int8_t *ref_index_top[2];
  1.5819 +  int8_t *ref_index[2];
  1.5820 +  int8_t *ref_index_table[2][2];
  1.5821 +  uint32_t *mb_type_top;
  1.5822 +  uint32_t *mb_type;
  1.5823 +  uint32_t *mb_type_table[2];
  1.5824 +  int b_stride;
  1.5825 +  int mb_stride;
  1.5826 +  int mb_width;
  1.5827 +  int mb_height;
  1.5828 +  uint8_t *zigzag_scan;
  1.5829 +  uint8_t *zigzag_scan8x8;
  1.5830 +  uint8_t direct_cache[40];
  1.5831 +  __attribute__((aligned(8))) int8_t intra4x4_pred_mode_cache[40];
  1.5832 +  __attribute__((aligned(16))) int16_t mv_cache[2][40][2];
  1.5833 +  __attribute__((aligned(8))) int8_t ref_cache[2][40];
  1.5834 +  __attribute__((aligned(8))) uint8_t non_zero_count_cache[48];
  1.5835 +  __attribute__((aligned(16))) uint8_t mvd_cache[2][40][2];
  1.5836 +};
  1.5837 +void init_dequant_tables(H264Slice *s, EntropyContext *ec);
  1.5838 +void ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size);
  1.5839  void ff_h264_init_cabac_states(EntropyContext *ec, H264Slice *s, CABACContext *c);
  1.5840  int init_entropy_buf(EntropyContext *ec, H264Slice *s, int line);
  1.5841 -EntropyContext *get_entropy_context(H264Context *h);
  1.5842 -void init_dequant_tables(H264Slice *s, EntropyContext *ec);
  1.5843 -void free_entropy_context(EntropyContext *ec);
  1.5844 -MBRecContext *get_mbrec_context(H264Context *h);
  1.5845 -void free_mbrec_context(MBRecContext *d);
  1.5846 -void h264_decode_mb_internal(MBRecContext *d, MBRecState *mrs, H264Slice *s, H264Mb *m);
  1.5847 -void init_mbrec_context(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int line);
  1.5848 -void ff_h264_pred_direct_motion_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int *mb_type);
  1.5849 -int pred_motion_mb_rec(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, H264Mb *m);
  1.5850 -void start_timer(H264Context *h, int stage);
  1.5851 -void stop_timer(H264Context *h, int stage);
  1.5852 -void init_sb_entry(H264Context *h, SliceBufferEntry *sbe);
  1.5853 -void free_sb_entry(SliceBufferEntry *sb);
  1.5854 -SliceBufferEntry *get_sb_entry(H264Context *h);
  1.5855 -void release_sb_entry(H264Context *h, SliceBufferEntry *sb);
  1.5856 -DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s);
  1.5857 -void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode);
  1.5858 -void draw_edges(MBRecContext *d, H264Slice *s, int line);
  1.5859 -int ff_init_slice(NalContext *n, H264Slice *s);
  1.5860 -void free_picture(PictureInfo *pic);
  1.5861 -void free_dp(DecodedPicture *pic);
  1.5862 -void av_start_timer();
  1.5863 -int copyEDtoH264Slice(H264Slice *ms, H264Slice *es);
  1.5864 -void print_report(int frame_number, uint64_t video_size, int is_last_report, int verbose);
  1.5865 -int ff_alloc_picture_info(NalContext *n, H264Slice *s, PictureInfo *pic);
  1.5866 -DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height);
  1.5867 -OutputContext *get_output_context(H264Context *h);
  1.5868 -void free_output_context(OutputContext *oc);
  1.5869 -void freeSuperMBContext(SuperMBContext *smbc);
  1.5870 -SuperMBContext *getSuperMBContext(H264Context *h, int smb_width, int smb_height);
  1.5871 -void release_smbc(H264Context *h, SuperMBContext *smbc);
  1.5872 -SuperMBContext *acquire_smbc(H264Context *h);
  1.5873 -static inline int get_chroma_qp(H264Slice *s, int t, int qscale)
  1.5874 +struct  H264Mb
  1.5875  {
  1.5876 -    return s->pps.chroma_qp_table[t][qscale];
  1.5877 -}
  1.5878 -static void parse_task(H264Context *h, ParserContext *pc, NalContext *nc, SliceBufferEntry *sbe)
  1.5879 -{
  1.5880 -    H264Slice *s;
  1.5881 -    if (!sbe->initialized)
  1.5882 +  int16_t mb_x;
  1.5883 +  int16_t mb_y;
  1.5884 +  int32_t mb_type;
  1.5885 +  uint16_t cbp;
  1.5886 +  int8_t qscale_mb_xy;
  1.5887 +  int8_t qscale_left_mb_xy;
  1.5888 +  int8_t qscale_top_mb_xy;
  1.5889 +  __attribute__((aligned(8))) uint16_t sub_mb_type[4];
  1.5890 +  __attribute__((aligned(8))) uint8_t non_zero_count[24];
  1.5891 +  __attribute__((aligned(16))) int16_t mb[384];
  1.5892 +  union 
  1.5893 +  {
  1.5894 +    struct 
  1.5895      {
  1.5896 -        init_sb_entry(h, sbe);
  1.5897 -        sbe->lines_total = h->mb_height;
  1.5898 -    }
  1.5899 -    av_read_frame_internal(pc, &sbe->gb);
  1.5900 -    s = &sbe->slice;
  1.5901 -    decode_nal_units(nc, s, &sbe->gb);
  1.5902 -}
  1.5903 +      __attribute__((aligned(8))) int8_t ref_index[2][4];
  1.5904 +      __attribute__((aligned(16))) int16_t mvd[2][16][2];
  1.5905 +    };
  1.5906 +    struct 
  1.5907 +    {
  1.5908 +      __attribute__((aligned(8))) int8_t intra4x4_pred_mode[16];
  1.5909 +      int8_t chroma_pred_mode;
  1.5910 +      int8_t intra16x16_pred_mode;
  1.5911 +    };
  1.5912 +  };
  1.5913 +  __attribute__((aligned(8))) uint8_t top_border[32];
  1.5914 +  __attribute__((aligned(8))) uint8_t top_border_next[8];
  1.5915 +  __attribute__((aligned(8))) uint8_t left_border[35];
  1.5916 +  int8_t intra4x4_pred_mode_left[4];
  1.5917 +};
  1.5918 +int ff_h264_decode_mb_cabac(EntropyContext *ec, H264Slice *s, CABACContext *c);
  1.5919  static void decode_slice_entropy_task(H264Context *h, EntropyContext *ec, SliceBufferEntry *sbe)
  1.5920  {
  1.5921 -    int i, j;
  1.5922 -    H264Slice *s = &sbe->slice;
  1.5923 -    GetBitContext *gb = &sbe->gb;
  1.5924 -    H264Mb *mbs = sbe->mbs;
  1.5925 -    CABACContext *c = &ec->c;
  1.5926 -    if (!s->pps.cabac)
  1.5927 +  int j;
  1.5928 +  int i;
  1.5929 +  H264Slice *s = &(*sbe).slice;
  1.5930 +  GetBitContext *gb = &(*sbe).gb;
  1.5931 +  H264Mb *mbs = (*sbe).mbs;
  1.5932 +  CABACContext *c = &(*ec).c;
  1.5933 +  if (!(*s).pps.cabac)
  1.5934      {
  1.5935 +      {
  1.5936          av_log(16, "Only cabac encoded streams are supported\n");
  1.5937 -        return;
  1.5938 +        return ;
  1.5939 +      }
  1.5940      }
  1.5941 -    init_dequant_tables(s, ec);
  1.5942 -    ec->curr_qscale = s->qscale;
  1.5943 -    ec->last_qscale_diff = 0;
  1.5944 -    ec->chroma_qp[0] = get_chroma_qp((H264Slice *) s, 0, s->qscale);
  1.5945 -    ec->chroma_qp[1] = get_chroma_qp((H264Slice *) s, 1, s->qscale);
  1.5946 -    align_get_bits(gb);
  1.5947 -    ff_init_cabac_decoder(c, gb->buffer + get_bits_count(gb) / 8, (get_bits_left(gb) + 7) / 8);
  1.5948 -    ff_h264_init_cabac_states(ec, s, c);
  1.5949 -    for (j = 0;
  1.5950 -        j < ec->mb_height;
  1.5951 -        j++)
  1.5952 +  init_dequant_tables(s, ec);
  1.5953 +  (*ec).curr_qscale = (*s).qscale;
  1.5954 +  (*ec).last_qscale_diff = 0;
  1.5955 +  (*ec).chroma_qp[0] = get_chroma_qp((H264Slice *)s, 0, (*s).qscale);
  1.5956 +  (*ec).chroma_qp[1] = get_chroma_qp((H264Slice *)s, 1, (*s).qscale);
  1.5957 +  align_get_bits(gb);
  1.5958 +  ff_init_cabac_decoder(c, (*gb).buffer + get_bits_count(gb) / 8, (get_bits_left(gb) + 7) / 8);
  1.5959 +  ff_h264_init_cabac_states(ec, s, c);
  1.5960 +  for (j = 0; j < (*ec).mb_height; j++)
  1.5961      {
  1.5962 +      {
  1.5963          init_entropy_buf(ec, s, j);
  1.5964 -        for (i = 0;
  1.5965 -            i < ec->mb_width;
  1.5966 -            i++)
  1.5967 +        for (i = 0; i < (*ec).mb_width; i++)
  1.5968 +          {
  1.5969 +            {
  1.5970 +              int ret;
  1.5971 +              int eos;
  1.5972 +              H264Mb *m = &mbs[i + j * (*ec).mb_width];
  1.5973 +              (*m).mb_x = i;
  1.5974 +              (*m).mb_y = j;
  1.5975 +              (*ec).m = m;
  1.5976 +              ret = ff_h264_decode_mb_cabac(ec, s, c);
  1.5977 +              eos = get_cabac_terminate(c);
  1.5978 +              (void)eos;
  1.5979 +              if (ret < 0 || (*c).bytestream > (*c).bytestream_end + 2)
  1.5980 +                {
  1.5981 +                  {
  1.5982 +                    av_log(16, "error while decoding MB %d %d, bytestream (%td)\n", (*m).mb_x, (*m).mb_y, (*c).bytestream_end - (*c).bytestream);
  1.5983 +                    return ;
  1.5984 +                  }
  1.5985 +                }
  1.5986 +            }
  1.5987 +          }
  1.5988 +      }
  1.5989 +    }
  1.5990 +}
  1.5991 +struct MBRecContext;
  1.5992 +typedef struct MBRecContext MBRecContext;
  1.5993 +struct SuperMBTask;
  1.5994 +typedef struct SuperMBTask SuperMBTask;
  1.5995 +struct  SuperMBContext
  1.5996 +{
  1.5997 +  int nsmb_width;
  1.5998 +  int nsmb_height;
  1.5999 +  int nsmb_3dheight;
  1.6000 +  int smb_width;
  1.6001 +  int smb_height;
  1.6002 +  int refcount;
  1.6003 +  int index;
  1.6004 +  SuperMBTask *smbs[2];
  1.6005 +};
  1.6006 +struct MBRecState;
  1.6007 +typedef struct MBRecState MBRecState;
  1.6008 +void init_mbrec_context(MBRecContext *mrc, MBRecState *mrs, H264Slice *s, int line);
  1.6009 +struct  MBRecState
  1.6010 +{
  1.6011 +  int8_t *ref_index_top[2];
  1.6012 +  int8_t *ref_index[2];
  1.6013 +  int16_t (*motion_val_top[2])[2];
  1.6014 +  int16_t (*motion_val[2])[2];
  1.6015 +  uint32_t *mb_type_top;
  1.6016 +  uint32_t *mb_type;
  1.6017 +  int8_t *list1_ref_index[2];
  1.6018 +  int16_t (*list1_motion_val[2])[2];
  1.6019 +  uint32_t *list1_mb_type;
  1.6020 +  int8_t *intra4x4_pred_mode_top;
  1.6021 +  int8_t *intra4x4_pred_mode;
  1.6022 +  int8_t *non_zero_count_top;
  1.6023 +  int8_t *non_zero_count;
  1.6024 +  unsigned int topleft_samples_available;
  1.6025 +  unsigned int topright_samples_available;
  1.6026 +  unsigned int top_samples_available;
  1.6027 +  unsigned int left_samples_available;
  1.6028 +  int top_type;
  1.6029 +  int left_type;
  1.6030 +  __attribute__((aligned(8))) int8_t intra4x4_pred_mode_cache[40];
  1.6031 +  __attribute__((aligned(16))) int16_t mv_cache[2][40][2];
  1.6032 +  __attribute__((aligned(8))) int8_t ref_cache[2][40];
  1.6033 +  __attribute__((aligned(8))) uint8_t non_zero_count_cache[48];
  1.6034 +  __attribute__((aligned(16))) uint8_t mvd_cache[2][40][2];
  1.6035 +  __attribute__((aligned(8))) int16_t bS[2][4][4];
  1.6036 +  uint8_t edges[2];
  1.6037 +};
  1.6038 +typedef short int DCTELEM;
  1.6039 +typedef void (*op_pixels_func)(uint8_t *, const uint8_t *, int, int);
  1.6040 +typedef void (*qpel_mc_func)(uint8_t *, uint8_t *, int);
  1.6041 +typedef void (*h264_chroma_mc_func)(uint8_t *, uint8_t *, int, int, int, int);
  1.6042 +struct  DSPContext
  1.6043 +{
  1.6044 +  void (*get_pixels)(DCTELEM *, const uint8_t *, int);
  1.6045 +  void (*diff_pixels)(DCTELEM *, const uint8_t *, const uint8_t *, int);
  1.6046 +  void (*put_pixels_clamped)(const DCTELEM *, uint8_t *, int);
  1.6047 +  void (*put_signed_pixels_clamped)(const DCTELEM *, uint8_t *, int);
  1.6048 +  void (*put_pixels_nonclamped)(const DCTELEM *, uint8_t *, int);
  1.6049 +  void (*add_pixels_clamped)(const DCTELEM *, uint8_t *, int);
  1.6050 +  void (*add_pixels8)(uint8_t *, DCTELEM *, int);
  1.6051 +  void (*add_pixels4)(uint8_t *, DCTELEM *, int);
  1.6052 +  void (*clear_block)(DCTELEM *);
  1.6053 +  void (*clear_blocks)(DCTELEM *);
  1.6054 +  void (*put_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int);
  1.6055 +  void (*avg_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int);
  1.6056 +  void (*put_no_rnd_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int);
  1.6057 +  void (*avg_no_rnd_pixels_tab[4][4])(uint8_t *, const uint8_t *, int, int);
  1.6058 +  void (*put_no_rnd_pixels_l2[2])(uint8_t *, const uint8_t *, const uint8_t *, int, int);
  1.6059 +  void (*put_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int);
  1.6060 +  void (*avg_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int);
  1.6061 +  void (*put_no_rnd_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int);
  1.6062 +  void (*avg_no_rnd_qpel_pixels_tab[2][16])(uint8_t *, uint8_t *, int);
  1.6063 +  void (*put_mspel_pixels_tab[8])(uint8_t *, uint8_t *, int);
  1.6064 +  void (*put_h264_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int);
  1.6065 +  void (*avg_h264_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int);
  1.6066 +  void (*put_no_rnd_vc1_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int);
  1.6067 +  void (*avg_no_rnd_vc1_chroma_pixels_tab[3])(uint8_t *, uint8_t *, int, int, int, int);
  1.6068 +  void (*put_h264_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int);
  1.6069 +  void (*avg_h264_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int);
  1.6070 +  void (*put_2tap_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int);
  1.6071 +  void (*avg_2tap_qpel_pixels_tab[4][16])(uint8_t *, uint8_t *, int);
  1.6072 +  void (*fdct)(DCTELEM *);
  1.6073 +  void (*fdct248)(DCTELEM *);
  1.6074 +  void (*idct)(DCTELEM *);
  1.6075 +  void (*idct_put)(uint8_t *, int, DCTELEM *);
  1.6076 +  void (*idct_add)(uint8_t *, int, DCTELEM *);
  1.6077 +  void (*draw_edges)(uint8_t *, int, int, int, int);
  1.6078 +  void (*prefetch)(void *, int, int);
  1.6079 +};
  1.6080 +typedef struct DSPContext DSPContext;
  1.6081 +typedef void (*h264_weight_func)(uint8_t *, int, int, int, int);
  1.6082 +typedef void (*h264_biweight_func)(uint8_t *, uint8_t *, int, int, int, int, int);
  1.6083 +struct  H264DSPContext
  1.6084 +{
  1.6085 +  void (*weight_h264_pixels_tab[10])(uint8_t *, int, int, int, int);
  1.6086 +  void (*biweight_h264_pixels_tab[10])(uint8_t *, uint8_t *, int, int, int, int, int);
  1.6087 +  void (*h264_v_loop_filter_luma)(uint8_t *, int, int, int, int8_t *);
  1.6088 +  void (*h264_h_loop_filter_luma)(uint8_t *, int, int, int, int8_t *);
  1.6089 +  void (*h264_v_loop_filter_luma_intra)(uint8_t *, int, int, int);
  1.6090 +  void (*h264_h_loop_filter_luma_intra)(uint8_t *, int, int, int);
  1.6091 +  void (*h264_v_loop_filter_chroma)(uint8_t *, int, int, int, int8_t *);
  1.6092 +  void (*h264_h_loop_filter_chroma)(uint8_t *, int, int, int, int8_t *);
  1.6093 +  void (*h264_v_loop_filter_chroma_intra)(uint8_t *, int, int, int);
  1.6094 +  void (*h264_h_loop_filter_chroma_intra)(uint8_t *, int, int, int);
  1.6095 +  void (*h264_loop_filter_strength)(int16_t [2][4][4], uint8_t [40], int8_t [2][40], int16_t [2][40][2], int, int, int, int, int, int);
  1.6096 +  void (*h264_idct_add)(uint8_t *, DCTELEM *, int);
  1.6097 +  void (*h264_idct8_add)(uint8_t *, DCTELEM *, int);
  1.6098 +  void (*h264_idct_dc_add)(uint8_t *, DCTELEM *, int);
  1.6099 +  void (*h264_idct8_dc_add)(uint8_t *, DCTELEM *, int);
  1.6100 +  void (*h264_dct)(DCTELEM [4][4]);
  1.6101 +  void (*h264_idct_add16)(uint8_t *, const int *, DCTELEM *, int, const uint8_t [48]);
  1.6102 +  void (*h264_idct8_add4)(uint8_t *, const int *, DCTELEM *, int, const uint8_t [48]);
  1.6103 +  void (*h264_idct_add8)(uint8_t **, const int *, DCTELEM *, int, const uint8_t [48]);
  1.6104 +  void (*h264_idct_add16intra)(uint8_t *, const int *, DCTELEM *, int, const uint8_t [48]);
  1.6105 +  void (*(*qpel_put)[16])(uint8_t *, uint8_t *, int);
  1.6106 +  void (*(*qpel_avg)[16])(uint8_t *, uint8_t *, int);
  1.6107 +};
  1.6108 +typedef struct H264DSPContext H264DSPContext;
  1.6109 +struct  H264PredContext
  1.6110 +{
  1.6111 +  void (*pred4x4[15])(uint8_t *, uint8_t *, int);
  1.6112 +  void (*pred8x8l[12])(uint8_t *, int, int, int);
  1.6113 +  void (*pred8x8[11])(uint8_t *, int);
  1.6114 +  void (*pred16x16[7])(uint8_t *, int);
  1.6115 +  void (*pred4x4_add[2])(uint8_t *, const DCTELEM *, int);
  1.6116 +  void (*pred8x8l_add[2])(uint8_t *, const DCTELEM *, int);
  1.6117 +  void (*pred8x8_add[3])(uint8_t *, const int *, const DCTELEM *, int);
  1.6118 +  void (*pred16x16_add[3])(uint8_t *, const int *, const DCTELEM *, int);
  1.6119 +};
  1.6120 +typedef struct H264PredContext H264PredContext;
  1.6121 +struct  MBRecContext
  1.6122 +{
  1.6123 +  DSPContext dsp;
  1.6124 +  H264DSPContext hdsp;
  1.6125 +  H264PredContext hpc;
  1.6126 +  MBRecState *mrs;
  1.6127 +  RingLineEntry *rle;
  1.6128 +  uint8_t *scratchpad_y;
  1.6129 +  uint8_t *scratchpad_cb;
  1.6130 +  uint8_t *scratchpad_cr;
  1.6131 +  int linesize;
  1.6132 +  int uvlinesize;
  1.6133 +  int mb_width;
  1.6134 +  int mb_height;
  1.6135 +  int mb_stride;
  1.6136 +  int b_stride;
  1.6137 +  int width;
  1.6138 +  int height;
  1.6139 +  int block_offset[24];
  1.6140 +};
  1.6141 +void h264_decode_mb_internal(MBRecContext *d, MBRecState *mrs, H264Slice *s, H264Mb *m);
  1.6142 +static void decode_super_mb_block(MBRecContext *d, H264Slice *s, SuperMBContext *smbc, H264Mb *mbs, int smb_x, int smb_y)
  1.6143 +{
  1.6144 +  MBRecState mrs;
  1.6145 +  for (int k = 0, i = smb_y; i < smb_y + (*smbc).smb_height; (i++, k++))
  1.6146 +    {
  1.6147 +      {
  1.6148 +        init_mbrec_context(d, &mrs, s, i);
  1.6149 +        for (int j = smb_x - k; j < smb_x - k + (*smbc).smb_width; j++)
  1.6150 +          {
  1.6151 +            {
  1.6152 +              if ((i < (*d).mb_height && j >= 0) && j < (*d).mb_width)
  1.6153 +                {
  1.6154 +                  {
  1.6155 +                    h264_decode_mb_internal(d, &mrs, s, &mbs[i * (*d).mb_width + j]);
  1.6156 +                  }
  1.6157 +                }
  1.6158 +            }
  1.6159 +          }
  1.6160 +      }
  1.6161 +    }
  1.6162 +}
  1.6163 +struct  SuperMBTask
  1.6164 +{
  1.6165 +  int smb_x;
  1.6166 +  int smb_y;
  1.6167 +};
  1.6168 +static void decode_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *m)
  1.6169 +{
  1.6170 +  H264Slice *s = &(*sbe).slice;
  1.6171 +  H264Mb *mbs = (*sbe).mbs;
  1.6172 +  decode_super_mb_block(d, s, smbc, mbs, (*m).smb_x, (*m).smb_y);
  1.6173 +}
  1.6174 +void draw_edges(MBRecContext *d, H264Slice *s, int line);
  1.6175 +static void draw_edges_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *sm, int line)
  1.6176 +{
  1.6177 +  H264Slice *s = &(*sbe).slice;
  1.6178 +  for (int i = line * (*smbc).smb_height; i < (line + 1) * (*smbc).smb_height && i < (*d).mb_height; i++)
  1.6179 +    {
  1.6180 +      draw_edges(d, s, i);
  1.6181 +    }
  1.6182 +}
  1.6183 +SuperMBContext *acquire_smbc(H264Context *h);
  1.6184 +enum mcc_enum_anon_8
  1.6185 +{
  1.6186 +  NANOS_OK = 0,
  1.6187 +  NANOS_UNKNOWN_ERR = 1,
  1.6188 +  NANOS_UNIMPLEMENTED = 2,
  1.6189 +  NANOS_ENOMEM = 3,
  1.6190 +  NANOS_INVALID_PARAM = 4
  1.6191 +};
  1.6192 +typedef enum mcc_enum_anon_8 nanos_err_t;
  1.6193 +extern nanos_err_t nanos_in_final(_Bool *result);
  1.6194 +struct  mcc_struct_anon_20
  1.6195 +{
  1.6196 +  void (*outline)(void *);
  1.6197 +};
  1.6198 +typedef struct mcc_struct_anon_20 nanos_smp_args_t;
  1.6199 +struct  nanos_args_0_t
  1.6200 +{
  1.6201 +  MBRecContext *d;
  1.6202 +  SliceBufferEntry *sbe;
  1.6203 +  SuperMBContext *smbc;
  1.6204 +  SuperMBTask *ml;
  1.6205 +  SuperMBTask *mur;
  1.6206 +  SuperMBTask *m;
  1.6207 +};
  1.6208 +static void smp_ol_decode_super_mb_task_1(struct nanos_args_0_t *const args);
  1.6209 +struct  mcc_struct_anon_16
  1.6210 +{
  1.6211 +  _Bool mandatory_creation:1;
  1.6212 +  _Bool tied:1;
  1.6213 +  _Bool clear_chunk:1;
  1.6214 +  _Bool reserved0:1;
  1.6215 +  _Bool reserved1:1;
  1.6216 +  _Bool reserved2:1;
  1.6217 +  _Bool reserved3:1;
  1.6218 +  _Bool reserved4:1;
  1.6219 +};
  1.6220 +typedef struct mcc_struct_anon_16 nanos_wd_props_t;
  1.6221 +typedef unsigned long int size_t;
  1.6222 +struct  nanos_const_wd_definition_tag
  1.6223 +{
  1.6224 +  nanos_wd_props_t props;
  1.6225 +  size_t data_alignment;
  1.6226 +  size_t num_copies;
  1.6227 +  size_t num_devices;
  1.6228 +  size_t num_dimensions;
  1.6229 +  const char *description;
  1.6230 +};
  1.6231 +typedef struct nanos_const_wd_definition_tag nanos_const_wd_definition_t;
  1.6232 +struct  mcc_struct_anon_19
  1.6233 +{
  1.6234 +  void *(*factory)(void *);
  1.6235 +  void *arg;
  1.6236 +};
  1.6237 +typedef struct mcc_struct_anon_19 nanos_device_t;
  1.6238 +struct  nanos_const_wd_definition_1
  1.6239 +{
  1.6240 +  nanos_const_wd_definition_t base;
  1.6241 +  nanos_device_t devices[1];
  1.6242 +};
  1.6243 +extern void *nanos_smp_factory(void *args);
  1.6244 +struct  mcc_struct_anon_17
  1.6245 +{
  1.6246 +  _Bool is_final:1;
  1.6247 +  _Bool reserved1:1;
  1.6248 +  _Bool reserved2:1;
  1.6249 +  _Bool reserved3:1;
  1.6250 +  _Bool reserved4:1;
  1.6251 +  _Bool reserved5:1;
  1.6252 +  _Bool reserved6:1;
  1.6253 +  _Bool reserved7:1;
  1.6254 +};
  1.6255 +typedef struct mcc_struct_anon_17 nanos_wd_dyn_flags_t;
  1.6256 +typedef void *nanos_thread_t;
  1.6257 +struct  mcc_struct_anon_18
  1.6258 +{
  1.6259 +  nanos_wd_dyn_flags_t flags;
  1.6260 +  void *tie_to;
  1.6261 +  unsigned int priority;
  1.6262 +};
  1.6263 +typedef struct mcc_struct_anon_18 nanos_wd_dyn_props_t;
  1.6264 +typedef void *nanos_wd_t;
  1.6265 +struct mcc_struct_anon_9;
  1.6266 +typedef struct mcc_struct_anon_9 nanos_copy_data_internal_t;
  1.6267 +typedef nanos_copy_data_internal_t nanos_copy_data_t;
  1.6268 +struct mcc_struct_anon_5;
  1.6269 +typedef struct mcc_struct_anon_5 nanos_region_dimension_internal_t;
  1.6270 +typedef void *nanos_wg_t;
  1.6271 +extern nanos_err_t nanos_create_wd_compact(void **wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void **data, void *wg, nanos_copy_data_t **copies, nanos_region_dimension_internal_t **dimensions);
  1.6272 +extern void *nanos_current_wd(void);
  1.6273 +extern void nanos_handle_error(nanos_err_t err);
  1.6274 +struct  mcc_struct_anon_5
  1.6275 +{
  1.6276 +  size_t size;
  1.6277 +  size_t lower_bound;
  1.6278 +  size_t accessed_length;
  1.6279 +};
  1.6280 +typedef nanos_region_dimension_internal_t nanos_region_dimension_t;
  1.6281 +struct  mcc_struct_anon_6
  1.6282 +{
  1.6283 +  _Bool input:1;
  1.6284 +  _Bool output:1;
  1.6285 +  _Bool can_rename:1;
  1.6286 +  _Bool concurrent:1;
  1.6287 +  _Bool commutative:1;
  1.6288 +};
  1.6289 +typedef struct mcc_struct_anon_6 nanos_access_type_internal_t;
  1.6290 +typedef long int ptrdiff_t;
  1.6291 +struct  mcc_struct_anon_7
  1.6292 +{
  1.6293 +  void *address;
  1.6294 +  nanos_access_type_internal_t flags;
  1.6295 +  short int dimension_count;
  1.6296 +  const nanos_region_dimension_internal_t *dimensions;
  1.6297 +  ptrdiff_t offset;
  1.6298 +};
  1.6299 +typedef struct mcc_struct_anon_7 nanos_data_access_internal_t;
  1.6300 +typedef nanos_data_access_internal_t nanos_data_access_t;
  1.6301 +typedef void *nanos_team_t;
  1.6302 +extern nanos_err_t nanos_submit(void *wd, size_t num_data_accesses, nanos_data_access_t *data_accesses, void *team);
  1.6303 +typedef void (*nanos_translate_args_t)(void *, void *);
  1.6304 +extern nanos_err_t nanos_create_wd_and_run_compact(nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, size_t data_size, void *data, size_t num_data_accesses, nanos_data_access_t *data_accesses, nanos_copy_data_t *copies, nanos_region_dimension_internal_t *dimensions, void (*translate_args)(void *, void *));
  1.6305 +struct  nanos_args_1_t
  1.6306 +{
  1.6307 +  MBRecContext *d;
  1.6308 +  SliceBufferEntry *sbe;
  1.6309 +  SuperMBContext *smbc;
  1.6310 +  SuperMBTask *sm;
  1.6311 +  int line;
  1.6312 +};
  1.6313 +static void smp_ol_draw_edges_task_3(struct nanos_args_1_t *const args);
  1.6314 +extern nanos_err_t nanos_wait_on(size_t num_data_accesses, nanos_data_access_t *data_accesses);
  1.6315 +void release_smbc(H264Context *h, SuperMBContext *smbc);
  1.6316 +static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe)
  1.6317 +{
  1.6318 +  int j;
  1.6319 +  int i;
  1.6320 +  SuperMBTask *sml;
  1.6321 +  SuperMBTask *smur;
  1.6322 +  SuperMBContext *smbc = acquire_smbc(h);
  1.6323 +  int smb_height = (*smbc).nsmb_height;
  1.6324 +  int smb_width = (*smbc).nsmb_width;
  1.6325 +  SuperMBTask *smbs = (*smbc).smbs[0];
  1.6326 +  SuperMBTask *sm = (void *)0;
  1.6327 +  for (j = 0; j < smb_height; j++)
  1.6328 +    {
  1.6329 +      {
  1.6330 +        nanos_err_t mcc_err_in_final_1;
  1.6331 +        _Bool mcc_is_in_final_1;
  1.6332 +        for (i = 0; i < smb_width; i++)
  1.6333 +          {
  1.6334 +            {
  1.6335 +              nanos_err_t mcc_err_in_final_0;
  1.6336 +              _Bool mcc_is_in_final_0;
  1.6337 +              sm = smbs + j * smb_width + i;
  1.6338 +              sml = sm - (i > 0 ? 1 : 0);
  1.6339 +              smur = sm + (i < smb_width - 1 && j > 0 ?  -smb_width + 1 : 0);
  1.6340 +              mcc_err_in_final_0 = nanos_in_final(&mcc_is_in_final_0);
  1.6341 +              {
  1.6342 +                MBRecContext *mcc_arg_0 = d;
  1.6343 +                SliceBufferEntry *mcc_arg_1 = sbe;
  1.6344 +                SuperMBContext *mcc_arg_2 = smbc;
  1.6345 +                SuperMBTask *mcc_arg_3 = sml;
  1.6346 +                SuperMBTask *mcc_arg_4 = smur;
  1.6347 +                SuperMBTask *mcc_arg_5 = sm;
  1.6348 +                if (mcc_is_in_final_0)
  1.6349 +                  {
  1.6350 +                    decode_super_mb_task(d, sbe, smbc, sml, smur, sm);
  1.6351 +                  }
  1.6352 +                else
  1.6353 +                  {
  1.6354 +                    {
  1.6355 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.6356 +                      struct nanos_args_0_t *ol_args;
  1.6357 +                      nanos_err_t err;
  1.6358 +                      struct nanos_args_0_t imm_args;
  1.6359 +                      static nanos_smp_args_t smp_ol_decode_super_mb_task_1_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_0_t *))&smp_ol_decode_super_mb_task_1 };
  1.6360 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_0_t), 0, 1, 0, "decode_super_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_super_mb_task_1_args } } };
  1.6361 +                      nanos_wd_dyn_props.tie_to = 0;
  1.6362 +                      nanos_wd_dyn_props.priority = 0;
  1.6363 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.6364 +                      ol_args = (struct nanos_args_0_t *)0;
  1.6365 +                      void *nanos_wd_ = (void *)0;
  1.6366 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_0_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.6367 +                      if (err != NANOS_OK)
  1.6368 +                        {
  1.6369 +                          nanos_handle_error(err);
  1.6370 +                        }
  1.6371 +                      /* Check pendant writes on subexpressions */
  1.6372 +                      /* End check pendant writes on subexpressions */
  1.6373 +                      if (nanos_wd_ != (void *)0)
  1.6374 +                        {
  1.6375 +                          {
  1.6376 +                            (*ol_args).d = mcc_arg_0;
  1.6377 +                            (*ol_args).sbe = mcc_arg_1;
  1.6378 +                            (*ol_args).smbc = mcc_arg_2;
  1.6379 +                            (*ol_args).ml = mcc_arg_3;
  1.6380 +                            (*ol_args).mur = mcc_arg_4;
  1.6381 +                            (*ol_args).m = mcc_arg_5;
  1.6382 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.6383 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.6384 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6385 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6386 +                            nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6387 +                            nanos_data_access_t dependences[5] = { { (void *)mcc_arg_0, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_1, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_3, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_4, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_5, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } };
  1.6388 +                            ;
  1.6389 +                            err = nanos_submit(nanos_wd_, 5, dependences, (void *)0);
  1.6390 +                            if (err != NANOS_OK)
  1.6391 +                              {
  1.6392 +                                nanos_handle_error(err);
  1.6393 +                              }
  1.6394 +                          }
  1.6395 +                        }
  1.6396 +                      else
  1.6397 +                        {
  1.6398 +                          {
  1.6399 +                            imm_args.d = mcc_arg_0;
  1.6400 +                            imm_args.sbe = mcc_arg_1;
  1.6401 +                            imm_args.smbc = mcc_arg_2;
  1.6402 +                            imm_args.ml = mcc_arg_3;
  1.6403 +                            imm_args.mur = mcc_arg_4;
  1.6404 +                            imm_args.m = mcc_arg_5;
  1.6405 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.6406 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.6407 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6408 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6409 +                            nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6410 +                            nanos_data_access_t dependences[5] = { { (void *)mcc_arg_0, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_1, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_3, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_4, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_5, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } };
  1.6411 +                            ;
  1.6412 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_0_t), &imm_args, 5, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.6413 +                            if (err != NANOS_OK)
  1.6414 +                              {
  1.6415 +                                nanos_handle_error(err);
  1.6416 +                              }
  1.6417 +                          }
  1.6418 +                        }
  1.6419 +                    }
  1.6420 +                  }
  1.6421 +              }
  1.6422 +            }
  1.6423 +          }
  1.6424 +        mcc_err_in_final_1 = nanos_in_final(&mcc_is_in_final_1);
  1.6425          {
  1.6426 -            int eos, ret;
  1.6427 -            H264Mb *m = &mbs[i + j * ec->mb_width];
  1.6428 -            m->mb_x = i;
  1.6429 -            m->mb_y = j;
  1.6430 -            ec->m = m;
  1.6431 -            ret = ff_h264_decode_mb_cabac(ec, s, c);
  1.6432 -            eos = get_cabac_terminate(c);
  1.6433 -            (void) eos;
  1.6434 -            if (ret < 0 || c->bytestream > c->bytestream_end + 2)
  1.6435 +          MBRecContext *mcc_arg_6 = d;
  1.6436 +          SliceBufferEntry *mcc_arg_7 = sbe;
  1.6437 +          SuperMBContext *mcc_arg_8 = smbc;
  1.6438 +          SuperMBTask *mcc_arg_9 = sm;
  1.6439 +          int mcc_arg_10 = j;
  1.6440 +          if (mcc_is_in_final_1)
  1.6441              {
  1.6442 -                av_log(16, "error while decoding MB %d %d, bytestream (%td)\n", m->mb_x, m->mb_y, c->bytestream_end - c->bytestream);
  1.6443 -                return;
  1.6444 +              draw_edges_task(d, sbe, smbc, sm, j);
  1.6445 +            }
  1.6446 +          else
  1.6447 +            {
  1.6448 +              {
  1.6449 +                nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.6450 +                struct nanos_args_1_t *ol_args;
  1.6451 +                nanos_err_t err;
  1.6452 +                struct nanos_args_1_t imm_args;
  1.6453 +                static nanos_smp_args_t smp_ol_draw_edges_task_3_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_1_t *))&smp_ol_draw_edges_task_3 };
  1.6454 +                static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_1_t), 0, 1, 0, "draw_edges_task" }, { { &nanos_smp_factory, &smp_ol_draw_edges_task_3_args } } };
  1.6455 +                nanos_wd_dyn_props.tie_to = 0;
  1.6456 +                nanos_wd_dyn_props.priority = 0;
  1.6457 +                nanos_wd_dyn_props.flags.is_final = 0;
  1.6458 +                ol_args = (struct nanos_args_1_t *)0;
  1.6459 +                void *nanos_wd_ = (void *)0;
  1.6460 +                err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_1_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.6461 +                if (err != NANOS_OK)
  1.6462 +                  {
  1.6463 +                    nanos_handle_error(err);
  1.6464 +                  }
  1.6465 +                /* Check pendant writes on subexpressions */
  1.6466 +                /* End check pendant writes on subexpressions */
  1.6467 +                if (nanos_wd_ != (void *)0)
  1.6468 +                  {
  1.6469 +                    {
  1.6470 +                      (*ol_args).d = mcc_arg_6;
  1.6471 +                      (*ol_args).sbe = mcc_arg_7;
  1.6472 +                      (*ol_args).smbc = mcc_arg_8;
  1.6473 +                      (*ol_args).sm = mcc_arg_9;
  1.6474 +                      (*ol_args).line = mcc_arg_10;
  1.6475 +                      nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.6476 +                      nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.6477 +                      nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6478 +                      nanos_data_access_t dependences[3] = { { (void *)mcc_arg_6, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_7, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_9, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.6479 +                      ;
  1.6480 +                      err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.6481 +                      if (err != NANOS_OK)
  1.6482 +                        {
  1.6483 +                          nanos_handle_error(err);
  1.6484 +                        }
  1.6485 +                    }
  1.6486 +                  }
  1.6487 +                else
  1.6488 +                  {
  1.6489 +                    {
  1.6490 +                      imm_args.d = mcc_arg_6;
  1.6491 +                      imm_args.sbe = mcc_arg_7;
  1.6492 +                      imm_args.smbc = mcc_arg_8;
  1.6493 +                      imm_args.sm = mcc_arg_9;
  1.6494 +                      imm_args.line = mcc_arg_10;
  1.6495 +                      nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.6496 +                      nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.6497 +                      nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6498 +                      nanos_data_access_t dependences[3] = { { (void *)mcc_arg_6, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_7, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_9, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.6499 +                      ;
  1.6500 +                      err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_1_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.6501 +                      if (err != NANOS_OK)
  1.6502 +                        {
  1.6503 +                          nanos_handle_error(err);
  1.6504 +                        }
  1.6505 +                    }
  1.6506 +                  }
  1.6507 +              }
  1.6508              }
  1.6509          }
  1.6510 +      }
  1.6511      }
  1.6512 +  {
  1.6513 +    nanos_region_dimension_t dimensions_0[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.6514 +    nanos_data_access_t dependences[1] = { { (void *)sm, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } };
  1.6515 +    ;
  1.6516 +    nanos_err_t err = nanos_wait_on(1, dependences);
  1.6517 +    if (err != NANOS_OK)
  1.6518 +      {
  1.6519 +        nanos_handle_error(err);
  1.6520 +      }
  1.6521 +  }
  1.6522 +  release_smbc(h, smbc);
  1.6523  }
  1.6524 -static void decode_super_mb_block(MBRecContext *d, H264Slice *s, SuperMBContext *smbc, H264Mb *mbs, int smb_x, int smb_y)
  1.6525 +struct  DecodedPicture
  1.6526  {
  1.6527 -    MBRecState mrs;
  1.6528 -    for (int k = 0, i = smb_y;
  1.6529 -        i < smb_y + smbc->smb_height;
  1.6530 -        i++ , k++)
  1.6531 +  int16_t (*motion_val[2])[2];
  1.6532 +  int16_t (*motion_val_base[2])[2];
  1.6533 +  int8_t *ref_index[2];
  1.6534 +  uint32_t *mb_type;
  1.6535 +  uint32_t *mb_type_base;
  1.6536 +  int8_t *intra4x4_pred_mode;
  1.6537 +  int8_t *non_zero_count;
  1.6538 +  uint8_t *data[3];
  1.6539 +  int linesize[3];
  1.6540 +  uint8_t *base[3];
  1.6541 +  int cpn;
  1.6542 +  int poc;
  1.6543 +  int reference;
  1.6544 +  int key_frame;
  1.6545 +  int mmco_reset;
  1.6546 +};
  1.6547 +struct nanos_lock_t;
  1.6548 +typedef struct nanos_lock_t nanos_lock_t;
  1.6549 +extern nanos_err_t nanos_set_lock(nanos_lock_t *lock);
  1.6550 +enum mcc_enum_anon_7
  1.6551 +{
  1.6552 +  NANOS_LOCK_FREE = 0,
  1.6553 +  NANOS_LOCK_BUSY = 1
  1.6554 +};
  1.6555 +typedef enum mcc_enum_anon_7 nanos_lock_state_t;
  1.6556 +struct  nanos_lock_t
  1.6557 +{
  1.6558 +  volatile nanos_lock_state_t state_;
  1.6559 +};
  1.6560 +__attribute__((weak)) nanos_lock_t nanos_critical_lock_dpb = { NANOS_LOCK_FREE };
  1.6561 +DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s);
  1.6562 +extern nanos_err_t nanos_unset_lock(nanos_lock_t *lock);
  1.6563 +void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode);
  1.6564 +static void decode_slice_mb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe)
  1.6565 +{
  1.6566 +  H264Slice *s = &(*sbe).slice;
  1.6567 +  for (int i = 0; i < 2; i++)
  1.6568      {
  1.6569 -        init_mbrec_context(d, &mrs, s, i);
  1.6570 -        for (int j = smb_x - k;
  1.6571 -            j < smb_x - k + smbc->smb_width;
  1.6572 -            j++)
  1.6573 -        {
  1.6574 -            if (i < d->mb_height && j >= 0 && j < d->mb_width)
  1.6575 +      {
  1.6576 +        for (int j = 0; j < (*s).ref_count[i]; j++)
  1.6577 +          {
  1.6578              {
  1.6579 -                h264_decode_mb_internal(d, &mrs, s, &mbs[i * d->mb_width + j]);
  1.6580 -            }
  1.6581 -        }
  1.6582 -    }
  1.6583 -}
  1.6584 -static void decode_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *m)
  1.6585 -{
  1.6586 -    H264Slice *s = &sbe->slice;
  1.6587 -    H264Mb *mbs = sbe->mbs;
  1.6588 -    decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y);
  1.6589 -}
  1.6590 -static void draw_edges_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *sm, int line)
  1.6591 -{
  1.6592 -    H264Slice *s = &sbe->slice;
  1.6593 -    for (int i = line * smbc->smb_height;
  1.6594 -        i < (line + 1) * smbc->smb_height && i < d->mb_height;
  1.6595 -        i++)
  1.6596 -        draw_edges(d, s, i);
  1.6597 -}
  1.6598 -typedef struct _nx_data_env_0_t_tag
  1.6599 -{
  1.6600 -        struct MBRecContext *__tmp_0_0;
  1.6601 -        SliceBufferEntry *__tmp_1_0;
  1.6602 -        struct SuperMBContext *__tmp_2_0;
  1.6603 -        struct SuperMBTask *__tmp_3_0;
  1.6604 -        struct SuperMBTask *__tmp_4_0;
  1.6605 -        struct SuperMBTask *__tmp_5_0;
  1.6606 -} _nx_data_env_0_t;
  1.6607 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe);
  1.6608 -static void _smp__ol_decode_mb_in_slice_0(_nx_data_env_0_t *const __restrict__ _args)
  1.6609 -{
  1.6610 -    struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
  1.6611 -    SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
  1.6612 -    struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
  1.6613 -    struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
  1.6614 -    struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
  1.6615 -    struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0;
  1.6616 -    /* Translation is done by the runtime */
  1.6617 -    {
  1.6618 -        decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
  1.6619 -    }
  1.6620 -}
  1.6621 -typedef struct _nx_data_env_1_t_tag
  1.6622 -{
  1.6623 -        struct MBRecContext *__tmp_0_0;
  1.6624 -        SliceBufferEntry *__tmp_1_0;
  1.6625 -        struct SuperMBContext *__tmp_2_0;
  1.6626 -        struct SuperMBTask *__tmp_3_0;
  1.6627 -        int __tmp_4_0;
  1.6628 -} _nx_data_env_1_t;
  1.6629 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe);
  1.6630 -static void _smp__ol_decode_mb_in_slice_1(_nx_data_env_1_t *const __restrict__ _args)
  1.6631 -{
  1.6632 -    struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
  1.6633 -    SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
  1.6634 -    struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
  1.6635 -    struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
  1.6636 -    int ___tmp_4_0 = _args->__tmp_4_0;
  1.6637 -    /* Translation is done by the runtime */
  1.6638 -    {
  1.6639 -        draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0));
  1.6640 -    }
  1.6641 -}
  1.6642 -static void decode_mb_in_slice(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe)
  1.6643 -{
  1.6644 -    int i, j;
  1.6645 -    SuperMBContext *smbc = acquire_smbc(h);
  1.6646 -    int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width;
  1.6647 -    SuperMBTask *smbs = smbc->smbs[0];
  1.6648 -    SuperMBTask *sm = ((void *) 0), *sml, *smur;
  1.6649 -    for (j = 0;
  1.6650 -        j < smb_height;
  1.6651 -        j++)
  1.6652 -    {
  1.6653 -        for (i = 0;
  1.6654 -            i < smb_width;
  1.6655 -            i++)
  1.6656 -        {
  1.6657 -            sm = smbs + j * smb_width + i;
  1.6658 -            sml = sm - ((i > 0) ? 1 : 0);
  1.6659 -            smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0);
  1.6660 -            {
  1.6661 -                struct MBRecContext *__tmp_0 = d;
  1.6662 -                SliceBufferEntry *__tmp_1 = sbe;
  1.6663 -                struct SuperMBContext *__tmp_2 = smbc;
  1.6664 -                struct SuperMBTask *__tmp_3 = sml;
  1.6665 -                struct SuperMBTask *__tmp_4 = smur;
  1.6666 -                struct SuperMBTask *__tmp_5 = sm;
  1.6667 +              int k;
  1.6668 +              if ((*s).ref_list_cpn[i][j] ==  -1)
  1.6669                  {
  1.6670 -                    /* SMP device descriptor */
  1.6671 -                    static nanos_smp_args_t _ol_decode_mb_in_slice_0_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_0};
  1.6672 -                    _nx_data_env_0_t *ol_args = (_nx_data_env_0_t *) 0;
  1.6673 -                    nanos_wd_t wd = (nanos_wd_t) 0;
  1.6674 -                    struct nanos_const_wd_definition_local_t
  1.6675 -                    {
  1.6676 -                            nanos_const_wd_definition_t base;
  1.6677 -                            nanos_device_t devices[1];
  1.6678 -                    };
  1.6679 -                    static struct nanos_const_wd_definition_local_t _const_def = {
  1.6680 +                  continue;
  1.6681 +                }
  1.6682 +              for (k = 0; k < (*h).max_dpb_cnt; k++)
  1.6683 +                {
  1.6684 +                  {
  1.6685 +                    if ((*h).dpb[k].reference >= 2 && (*h).dpb[k].cpn == (*s).ref_list_cpn[i][j])
  1.6686 +                      {
  1.6687                          {
  1.6688 -                            {
  1.6689 -                                0,
  1.6690 -                                1,
  1.6691 -                                0,
  1.6692 -                                0,
  1.6693 -                                0,
  1.6694 -                                0,
  1.6695 -                                0,
  1.6696 -                                0
  1.6697 -                            },
  1.6698 -                            __alignof__(_nx_data_env_0_t),
  1.6699 -                            0,
  1.6700 -                            1
  1.6701 -                        },
  1.6702 -                        {{
  1.6703 -                            nanos_smp_factory,
  1.6704 -                            &_ol_decode_mb_in_slice_0_smp_args
  1.6705 -                        }}
  1.6706 -                    };
  1.6707 -                    nanos_wd_dyn_props_t dyn_props = {0};
  1.6708 -                    nanos_err_t err;
  1.6709 -                    dyn_props.priority = 0;
  1.6710 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_0_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.6711 -                    if (err != NANOS_OK)
  1.6712 -                        nanos_handle_error(err);
  1.6713 -                    if (wd != (nanos_wd_t) 0)
  1.6714 -                    {
  1.6715 -                        ol_args->__tmp_0_0 = __tmp_0;
  1.6716 -                        ol_args->__tmp_1_0 = __tmp_1;
  1.6717 -                        ol_args->__tmp_2_0 = __tmp_2;
  1.6718 -                        ol_args->__tmp_3_0 = __tmp_3;
  1.6719 -                        ol_args->__tmp_4_0 = __tmp_4;
  1.6720 -                        ol_args->__tmp_5_0 = __tmp_5;
  1.6721 -                        nanos_dependence_t _dependences[5] = {
  1.6722 -                            {
  1.6723 -                                (void **) &ol_args->__tmp_0_0,
  1.6724 -                                ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
  1.6725 -                                {
  1.6726 -                                    1,
  1.6727 -                                    0,
  1.6728 -                                    1,
  1.6729 -                                    0
  1.6730 -                                },
  1.6731 -                                sizeof(struct MBRecContext)
  1.6732 -                            },
  1.6733 -                            {
  1.6734 -                                (void **) &ol_args->__tmp_1_0,
  1.6735 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.6736 -                                {
  1.6737 -                                    1,
  1.6738 -                                    0,
  1.6739 -                                    1,
  1.6740 -                                    0
  1.6741 -                                },
  1.6742 -                                sizeof(SliceBufferEntry)
  1.6743 -                            },
  1.6744 -                            {
  1.6745 -                                (void **) &ol_args->__tmp_3_0,
  1.6746 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.6747 -                                {
  1.6748 -                                    1,
  1.6749 -                                    0,
  1.6750 -                                    1,
  1.6751 -                                    0
  1.6752 -                                },
  1.6753 -                                sizeof(struct SuperMBTask)
  1.6754 -                            },
  1.6755 -                            {
  1.6756 -                                (void **) &ol_args->__tmp_4_0,
  1.6757 -                                ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
  1.6758 -                                {
  1.6759 -                                    1,
  1.6760 -                                    0,
  1.6761 -                                    1,
  1.6762 -                                    0
  1.6763 -                                },
  1.6764 -                                sizeof(struct SuperMBTask)
  1.6765 -                            },
  1.6766 -                            {
  1.6767 -                                (void **) &ol_args->__tmp_5_0,
  1.6768 -                                ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
  1.6769 -                                {
  1.6770 -                                    1,
  1.6771 -                                    1,
  1.6772 -                                    1,
  1.6773 -                                    0
  1.6774 -                                },
  1.6775 -                                sizeof(struct SuperMBTask)
  1.6776 -                            }
  1.6777 -                        };
  1.6778 -                        err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.6779 -                        if (err != NANOS_OK)
  1.6780 -                            nanos_handle_error(err);
  1.6781 -                    }
  1.6782 -                    else
  1.6783 -                    {
  1.6784 -                        _nx_data_env_0_t imm_args;
  1.6785 -                        imm_args.__tmp_0_0 = __tmp_0;
  1.6786 -                        imm_args.__tmp_1_0 = __tmp_1;
  1.6787 -                        imm_args.__tmp_2_0 = __tmp_2;
  1.6788 -                        imm_args.__tmp_3_0 = __tmp_3;
  1.6789 -                        imm_args.__tmp_4_0 = __tmp_4;
  1.6790 -                        imm_args.__tmp_5_0 = __tmp_5;
  1.6791 -                        nanos_dependence_t _dependences[5] = {
  1.6792 -                            {
  1.6793 -                                (void **) &imm_args.__tmp_0_0,
  1.6794 -                                ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
  1.6795 -                                {
  1.6796 -                                    1,
  1.6797 -                                    0,
  1.6798 -                                    1,
  1.6799 -                                    0
  1.6800 -                                },
  1.6801 -                                sizeof(struct MBRecContext)
  1.6802 -                            },
  1.6803 -                            {
  1.6804 -                                (void **) &imm_args.__tmp_1_0,
  1.6805 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.6806 -                                {
  1.6807 -                                    1,
  1.6808 -                                    0,
  1.6809 -                                    1,
  1.6810 -                                    0
  1.6811 -                                },
  1.6812 -                                sizeof(SliceBufferEntry)
  1.6813 -                            },
  1.6814 -                            {
  1.6815 -                                (void **) &imm_args.__tmp_3_0,
  1.6816 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.6817 -                                {
  1.6818 -                                    1,
  1.6819 -                                    0,
  1.6820 -                                    1,
  1.6821 -                                    0
  1.6822 -                                },
  1.6823 -                                sizeof(struct SuperMBTask)
  1.6824 -                            },
  1.6825 -                            {
  1.6826 -                                (void **) &imm_args.__tmp_4_0,
  1.6827 -                                ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
  1.6828 -                                {
  1.6829 -                                    1,
  1.6830 -                                    0,
  1.6831 -                                    1,
  1.6832 -                                    0
  1.6833 -                                },
  1.6834 -                                sizeof(struct SuperMBTask)
  1.6835 -                            },
  1.6836 -                            {
  1.6837 -                                (void **) &imm_args.__tmp_5_0,
  1.6838 -                                ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
  1.6839 -                                {
  1.6840 -                                    1,
  1.6841 -                                    1,
  1.6842 -                                    1,
  1.6843 -                                    0
  1.6844 -                                },
  1.6845 -                                sizeof(struct SuperMBTask)
  1.6846 -                            }
  1.6847 -                        };
  1.6848 -                        dyn_props.priority = 0;
  1.6849 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_0_t), &imm_args, 5, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.6850 -                        if (err != NANOS_OK)
  1.6851 -                            nanos_handle_error(err);
  1.6852 -                    }
  1.6853 -                }
  1.6854 -                ;
  1.6855 -            }
  1.6856 -        }
  1.6857 -        {
  1.6858 -            struct MBRecContext *__tmp_0 = d;
  1.6859 -            SliceBufferEntry *__tmp_1 = sbe;
  1.6860 -            struct SuperMBContext *__tmp_2 = smbc;
  1.6861 -            struct SuperMBTask *__tmp_3 = sm;
  1.6862 -            int __tmp_4 = j;
  1.6863 -            {
  1.6864 -                /* SMP device descriptor */
  1.6865 -                static nanos_smp_args_t _ol_decode_mb_in_slice_1_smp_args = {(void (*)(void *)) _smp__ol_decode_mb_in_slice_1};
  1.6866 -                _nx_data_env_1_t *ol_args = (_nx_data_env_1_t *) 0;
  1.6867 -                nanos_wd_t wd = (nanos_wd_t) 0;
  1.6868 -                struct nanos_const_wd_definition_local_t
  1.6869 -                {
  1.6870 -                        nanos_const_wd_definition_t base;
  1.6871 -                        nanos_device_t devices[1];
  1.6872 -                };
  1.6873 -                static struct nanos_const_wd_definition_local_t _const_def = {
  1.6874 -                    {
  1.6875 -                        {
  1.6876 -                            0,
  1.6877 -                            1,
  1.6878 -                            0,
  1.6879 -                            0,
  1.6880 -                            0,
  1.6881 -                            0,
  1.6882 -                            0,
  1.6883 -                            0
  1.6884 -                        },
  1.6885 -                        __alignof__(_nx_data_env_1_t),
  1.6886 -                        0,
  1.6887 -                        1
  1.6888 -                    },
  1.6889 -                    {{
  1.6890 -                        nanos_smp_factory,
  1.6891 -                        &_ol_decode_mb_in_slice_1_smp_args
  1.6892 -                    }}
  1.6893 -                };
  1.6894 -                nanos_wd_dyn_props_t dyn_props = {0};
  1.6895 -                nanos_err_t err;
  1.6896 -                dyn_props.priority = 0;
  1.6897 -                err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_1_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.6898 -                if (err != NANOS_OK)
  1.6899 -                    nanos_handle_error(err);
  1.6900 -                if (wd != (nanos_wd_t) 0)
  1.6901 -                {
  1.6902 -                    ol_args->__tmp_0_0 = __tmp_0;
  1.6903 -                    ol_args->__tmp_1_0 = __tmp_1;
  1.6904 -                    ol_args->__tmp_2_0 = __tmp_2;
  1.6905 -                    ol_args->__tmp_3_0 = __tmp_3;
  1.6906 -                    ol_args->__tmp_4_0 = __tmp_4;
  1.6907 -                    nanos_dependence_t _dependences[3] = {
  1.6908 -                        {
  1.6909 -                            (void **) &ol_args->__tmp_0_0,
  1.6910 -                            ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
  1.6911 -                            {
  1.6912 -                                1,
  1.6913 -                                0,
  1.6914 -                                1,
  1.6915 -                                0
  1.6916 -                            },
  1.6917 -                            sizeof(struct MBRecContext)
  1.6918 -                        },
  1.6919 -                        {
  1.6920 -                            (void **) &ol_args->__tmp_1_0,
  1.6921 -                            ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.6922 -                            {
  1.6923 -                                1,
  1.6924 -                                0,
  1.6925 -                                1,
  1.6926 -                                0
  1.6927 -                            },
  1.6928 -                            sizeof(SliceBufferEntry)
  1.6929 -                        },
  1.6930 -                        {
  1.6931 -                            (void **) &ol_args->__tmp_3_0,
  1.6932 -                            ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.6933 -                            {
  1.6934 -                                1,
  1.6935 -                                1,
  1.6936 -                                1,
  1.6937 -                                0
  1.6938 -                            },
  1.6939 -                            sizeof(struct SuperMBTask)
  1.6940 +                          (*s).dp_ref_list[i][j] = &(*h).dpb[k];
  1.6941 +                          break;
  1.6942                          }
  1.6943 -                    };
  1.6944 -                    err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.6945 -                    if (err != NANOS_OK)
  1.6946 -                        nanos_handle_error(err);
  1.6947 -                }
  1.6948 -                else
  1.6949 -                {
  1.6950 -                    _nx_data_env_1_t imm_args;
  1.6951 -                    imm_args.__tmp_0_0 = __tmp_0;
  1.6952 -                    imm_args.__tmp_1_0 = __tmp_1;
  1.6953 -                    imm_args.__tmp_2_0 = __tmp_2;
  1.6954 -                    imm_args.__tmp_3_0 = __tmp_3;
  1.6955 -                    imm_args.__tmp_4_0 = __tmp_4;
  1.6956 -                    nanos_dependence_t _dependences[3] = {
  1.6957 -                        {
  1.6958 -                            (void **) &imm_args.__tmp_0_0,
  1.6959 -                            ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
  1.6960 -                            {
  1.6961 -                                1,
  1.6962 -                                0,
  1.6963 -                                1,
  1.6964 -                                0
  1.6965 -                            },
  1.6966 -                            sizeof(struct MBRecContext)
  1.6967 -                        },
  1.6968 -                        {
  1.6969 -                            (void **) &imm_args.__tmp_1_0,
  1.6970 -                            ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.6971 -                            {
  1.6972 -                                1,
  1.6973 -                                0,
  1.6974 -                                1,
  1.6975 -                                0
  1.6976 -                            },
  1.6977 -                            sizeof(SliceBufferEntry)
  1.6978 -                        },
  1.6979 -                        {
  1.6980 -                            (void **) &imm_args.__tmp_3_0,
  1.6981 -                            ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.6982 -                            {
  1.6983 -                                1,
  1.6984 -                                1,
  1.6985 -                                1,
  1.6986 -                                0
  1.6987 -                            },
  1.6988 -                            sizeof(struct SuperMBTask)
  1.6989 -                        }
  1.6990 -                    };
  1.6991 -                    dyn_props.priority = 0;
  1.6992 -                    err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_1_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.6993 -                    if (err != NANOS_OK)
  1.6994 -                        nanos_handle_error(err);
  1.6995 +                      }
  1.6996 +                  }
  1.6997                  }
  1.6998              }
  1.6999 -            ;
  1.7000 -        }
  1.7001 +          }
  1.7002 +      }
  1.7003      }
  1.7004 +  {
  1.7005 +    nanos_err_t err;
  1.7006 +    err = nanos_set_lock(&nanos_critical_lock_dpb);
  1.7007 +    if (err != NANOS_OK)
  1.7008 +      {
  1.7009 +        nanos_handle_error(err);
  1.7010 +      }
  1.7011 +    get_dpb_entry(h, s);
  1.7012 +    err = nanos_unset_lock(&nanos_critical_lock_dpb);
  1.7013 +    if (err != NANOS_OK)
  1.7014 +      {
  1.7015 +        nanos_handle_error(err);
  1.7016 +      }
  1.7017 +  }
  1.7018 +  if (!(*h).no_mbd)
  1.7019      {
  1.7020 -        struct _dependence_holder
  1.7021 -        {
  1.7022 -                struct SuperMBTask *dep_0;
  1.7023 -        } _dep_holder = {&(*sm)};
  1.7024 -        nanos_dependence_t _wait_dependences[1] = {{
  1.7025 -            (void **) &_dep_holder.dep_0,
  1.7026 -            ((char *) ((sm)) - (char *) _dep_holder.dep_0),
  1.7027 +      {
  1.7028 +        decode_mb_in_slice(h, d, sbe);
  1.7029 +      }
  1.7030 +    }
  1.7031 +  for (int i = 0; i < (*s).release_cnt; i++)
  1.7032 +    {
  1.7033 +      {
  1.7034 +        for (int j = 0; j < (*h).max_dpb_cnt; j++)
  1.7035 +          {
  1.7036              {
  1.7037 -                1,
  1.7038 -                0,
  1.7039 -                0,
  1.7040 -                0
  1.7041 -            },
  1.7042 -            sizeof (*sm)
  1.7043 -        }};
  1.7044 -        nanos_wait_on(1, _wait_dependences);
  1.7045 -    }
  1.7046 -    release_smbc(h, smbc);
  1.7047 -}
  1.7048 -__attribute__((weak)) nanos_lock_t _nx_u_dpb_critical_lock = {NANOS_LOCK_FREE};
  1.7049 -static void decode_slice_mb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe)
  1.7050 -{
  1.7051 -    H264Slice *s = &sbe->slice;
  1.7052 -    for (int i = 0;
  1.7053 -        i < 2;
  1.7054 -        i++)
  1.7055 -    {
  1.7056 -        for (int j = 0;
  1.7057 -            j < s->ref_count[i];
  1.7058 -            j++)
  1.7059 -        {
  1.7060 -            if (s->ref_list_cpn[i][j] == - 1)
  1.7061 -                continue;
  1.7062 -            int k;
  1.7063 -            for (k = 0;
  1.7064 -                k < h->max_dpb_cnt;
  1.7065 -                k++)
  1.7066 -            {
  1.7067 -                if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j])
  1.7068 +              if ((*h).dpb[j].cpn == (*s).release_ref_cpn[i])
  1.7069                  {
  1.7070 -                    s->dp_ref_list[i][j] = &h->dpb[k];
  1.7071 +                  {
  1.7072 +                    {
  1.7073 +                      nanos_err_t err;
  1.7074 +                      err = nanos_set_lock(&nanos_critical_lock_dpb);
  1.7075 +                      if (err != NANOS_OK)
  1.7076 +                        {
  1.7077 +                          nanos_handle_error(err);
  1.7078 +                        }
  1.7079 +                      release_dpb_entry(h, &(*h).dpb[j], 2);
  1.7080 +                      err = nanos_unset_lock(&nanos_critical_lock_dpb);
  1.7081 +                      if (err != NANOS_OK)
  1.7082 +                        {
  1.7083 +                          nanos_handle_error(err);
  1.7084 +                        }
  1.7085 +                    }
  1.7086                      break;
  1.7087 +                  }
  1.7088                  }
  1.7089              }
  1.7090 -        }
  1.7091 +          }
  1.7092 +      }
  1.7093      }
  1.7094 -    {
  1.7095 -        nanos_set_lock(&_nx_u_dpb_critical_lock);
  1.7096 -        get_dpb_entry(h, s);
  1.7097 -        nanos_unset_lock(&_nx_u_dpb_critical_lock);
  1.7098 -    }
  1.7099 -    if (!h->no_mbd)
  1.7100 -    {
  1.7101 -        decode_mb_in_slice(h, d, sbe);
  1.7102 -    }
  1.7103 -    for (int i = 0;
  1.7104 -        i < s->release_cnt;
  1.7105 -        i++)
  1.7106 -    {
  1.7107 -        for (int j = 0;
  1.7108 -            j < h->max_dpb_cnt;
  1.7109 -            j++)
  1.7110 -        {
  1.7111 -            if (h->dpb[j].cpn == s->release_ref_cpn[i])
  1.7112 -            {
  1.7113 -                {
  1.7114 -                    nanos_set_lock(&_nx_u_dpb_critical_lock);
  1.7115 -                    release_dpb_entry(h, &h->dpb[j], 2);
  1.7116 -                    nanos_unset_lock(&_nx_u_dpb_critical_lock);
  1.7117 -                }
  1.7118 -                break;
  1.7119 -            }
  1.7120 -        }
  1.7121 -    }
  1.7122 -    s->release_cnt = 0;
  1.7123 +  (*s).release_cnt = 0;
  1.7124  }
  1.7125  static void decode_3dwave_super_mb_task(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc, SuperMBTask *ml, SuperMBTask *mur, SuperMBTask *mprev, SuperMBTask *m)
  1.7126  {
  1.7127 -    H264Slice *s = &sbe->slice;
  1.7128 -    H264Mb *mbs = sbe->mbs;
  1.7129 -    decode_super_mb_block(d, s, smbc, mbs, m->smb_x, m->smb_y);
  1.7130 +  H264Slice *s = &(*sbe).slice;
  1.7131 +  H264Mb *mbs = (*sbe).mbs;
  1.7132 +  decode_super_mb_block(d, s, smbc, mbs, (*m).smb_x, (*m).smb_y);
  1.7133  }
  1.7134  static void init_ref_list_and_get_dpb_task(H264Context *h, MBRecContext *d, SliceBufferEntry *sbe, int *init)
  1.7135  {
  1.7136 -    H264Slice *s = &sbe->slice;
  1.7137 -    for (int i = 0;
  1.7138 -        i < 2;
  1.7139 -        i++)
  1.7140 +  H264Slice *s = &(*sbe).slice;
  1.7141 +  for (int i = 0; i < 2; i++)
  1.7142      {
  1.7143 -        for (int j = 0;
  1.7144 -            j < s->ref_count[i];
  1.7145 -            j++)
  1.7146 -        {
  1.7147 -            if (s->ref_list_cpn[i][j] == - 1)
  1.7148 -                continue;
  1.7149 -            int k;
  1.7150 -            for (k = 0;
  1.7151 -                k < h->max_dpb_cnt;
  1.7152 -                k++)
  1.7153 +      {
  1.7154 +        for (int j = 0; j < (*s).ref_count[i]; j++)
  1.7155 +          {
  1.7156              {
  1.7157 -                if (h->dpb[k].reference >= 2 && h->dpb[k].cpn == s->ref_list_cpn[i][j])
  1.7158 +              int k;
  1.7159 +              if ((*s).ref_list_cpn[i][j] ==  -1)
  1.7160                  {
  1.7161 -                    s->dp_ref_list[i][j] = &h->dpb[k];
  1.7162 -                    break;
  1.7163 +                  continue;
  1.7164 +                }
  1.7165 +              for (k = 0; k < (*h).max_dpb_cnt; k++)
  1.7166 +                {
  1.7167 +                  {
  1.7168 +                    if ((*h).dpb[k].reference >= 2 && (*h).dpb[k].cpn == (*s).ref_list_cpn[i][j])
  1.7169 +                      {
  1.7170 +                        {
  1.7171 +                          (*s).dp_ref_list[i][j] = &(*h).dpb[k];
  1.7172 +                          break;
  1.7173 +                        }
  1.7174 +                      }
  1.7175 +                  }
  1.7176                  }
  1.7177              }
  1.7178 -        }
  1.7179 +          }
  1.7180 +      }
  1.7181      }
  1.7182 -    {
  1.7183 -        nanos_set_lock(&_nx_u_dpb_critical_lock);
  1.7184 -        get_dpb_entry(h, s);
  1.7185 -        nanos_unset_lock(&_nx_u_dpb_critical_lock);
  1.7186 -    }
  1.7187 +  {
  1.7188 +    nanos_err_t err;
  1.7189 +    err = nanos_set_lock(&nanos_critical_lock_dpb);
  1.7190 +    if (err != NANOS_OK)
  1.7191 +      {
  1.7192 +        nanos_handle_error(err);
  1.7193 +      }
  1.7194 +    get_dpb_entry(h, s);
  1.7195 +    err = nanos_unset_lock(&nanos_critical_lock_dpb);
  1.7196 +    if (err != NANOS_OK)
  1.7197 +      {
  1.7198 +        nanos_handle_error(err);
  1.7199 +      }
  1.7200 +  }
  1.7201  }
  1.7202 -typedef struct _nx_data_env_2_t_tag
  1.7203 +struct  nanos_args_2_t
  1.7204  {
  1.7205 -        struct MBRecContext *__tmp_0_0;
  1.7206 -        SliceBufferEntry *__tmp_1_0;
  1.7207 -        struct SuperMBContext *__tmp_2_0;
  1.7208 -        struct SuperMBTask *__tmp_3_0;
  1.7209 -        struct SuperMBTask *__tmp_4_0;
  1.7210 -        struct SuperMBTask *__tmp_5_0;
  1.7211 -        struct SuperMBTask *__tmp_6_0;
  1.7212 -} _nx_data_env_2_t;
  1.7213 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
  1.7214 -static void _smp__ol_add_decode_slice_3dwave_tasks_2(_nx_data_env_2_t *const __restrict__ _args)
  1.7215 +  MBRecContext *d;
  1.7216 +  SliceBufferEntry *sbe;
  1.7217 +  SuperMBContext *smbc;
  1.7218 +  SuperMBTask *ml;
  1.7219 +  SuperMBTask *mur;
  1.7220 +  SuperMBTask *mprev;
  1.7221 +  SuperMBTask *m;
  1.7222 +};
  1.7223 +static void smp_ol_decode_3dwave_super_mb_task_5(struct nanos_args_2_t *const args);
  1.7224 +struct  nanos_args_3_t
  1.7225  {
  1.7226 -    struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
  1.7227 -    SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
  1.7228 -    struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
  1.7229 -    struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
  1.7230 -    struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
  1.7231 -    struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0;
  1.7232 -    struct SuperMBTask *___tmp_6_0 = _args->__tmp_6_0;
  1.7233 -    /* Translation is done by the runtime */
  1.7234 -    {
  1.7235 -        decode_3dwave_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0), (___tmp_6_0));
  1.7236 -    }
  1.7237 -}
  1.7238 -typedef struct _nx_data_env_3_t_tag
  1.7239 +  MBRecContext *d;
  1.7240 +  SliceBufferEntry *sbe;
  1.7241 +  SuperMBContext *smbc;
  1.7242 +  SuperMBTask *sm;
  1.7243 +  int line;
  1.7244 +};
  1.7245 +static void smp_ol_draw_edges_task_7(struct nanos_args_3_t *const args);
  1.7246 +struct  nanos_args_4_t
  1.7247  {
  1.7248 -        struct MBRecContext *__tmp_0_0;
  1.7249 -        SliceBufferEntry *__tmp_1_0;
  1.7250 -        struct SuperMBContext *__tmp_2_0;
  1.7251 -        struct SuperMBTask *__tmp_3_0;
  1.7252 -        int __tmp_4_0;
  1.7253 -} _nx_data_env_3_t;
  1.7254 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
  1.7255 -static void _smp__ol_add_decode_slice_3dwave_tasks_3(_nx_data_env_3_t *const __restrict__ _args)
  1.7256 +  MBRecContext *d;
  1.7257 +  SliceBufferEntry *sbe;
  1.7258 +  SuperMBContext *smbc;
  1.7259 +  SuperMBTask *ml;
  1.7260 +  SuperMBTask *mur;
  1.7261 +  SuperMBTask *m;
  1.7262 +};
  1.7263 +static void smp_ol_decode_super_mb_task_9(struct nanos_args_4_t *const args);
  1.7264 +struct  nanos_args_5_t
  1.7265  {
  1.7266 -    struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
  1.7267 -    SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
  1.7268 -    struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
  1.7269 -    struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
  1.7270 -    int ___tmp_4_0 = _args->__tmp_4_0;
  1.7271 -    /* Translation is done by the runtime */
  1.7272 -    {
  1.7273 -        draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0));
  1.7274 -    }
  1.7275 -}
  1.7276 -typedef struct _nx_data_env_4_t_tag
  1.7277 -{
  1.7278 -        struct MBRecContext *__tmp_0_0;
  1.7279 -        SliceBufferEntry *__tmp_1_0;
  1.7280 -        struct SuperMBContext *__tmp_2_0;
  1.7281 -        struct SuperMBTask *__tmp_3_0;
  1.7282 -        struct SuperMBTask *__tmp_4_0;
  1.7283 -        struct SuperMBTask *__tmp_5_0;
  1.7284 -} _nx_data_env_4_t;
  1.7285 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
  1.7286 -static void _smp__ol_add_decode_slice_3dwave_tasks_4(_nx_data_env_4_t *const __restrict__ _args)
  1.7287 -{
  1.7288 -    struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
  1.7289 -    SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
  1.7290 -    struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
  1.7291 -    struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
  1.7292 -    struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
  1.7293 -    struct SuperMBTask *___tmp_5_0 = _args->__tmp_5_0;
  1.7294 -    /* Translation is done by the runtime */
  1.7295 -    {
  1.7296 -        decode_super_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
  1.7297 -    }
  1.7298 -}
  1.7299 -typedef struct _nx_data_env_5_t_tag
  1.7300 -{
  1.7301 -        struct MBRecContext *__tmp_0_0;
  1.7302 -        SliceBufferEntry *__tmp_1_0;
  1.7303 -        struct SuperMBContext *__tmp_2_0;
  1.7304 -        struct SuperMBTask *__tmp_3_0;
  1.7305 -        int __tmp_4_0;
  1.7306 -} _nx_data_env_5_t;
  1.7307 -static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc);
  1.7308 -static void _smp__ol_add_decode_slice_3dwave_tasks_5(_nx_data_env_5_t *const __restrict__ _args)
  1.7309 -{
  1.7310 -    struct MBRecContext *___tmp_0_0 = _args->__tmp_0_0;
  1.7311 -    SliceBufferEntry *___tmp_1_0 = _args->__tmp_1_0;
  1.7312 -    struct SuperMBContext *___tmp_2_0 = _args->__tmp_2_0;
  1.7313 -    struct SuperMBTask *___tmp_3_0 = _args->__tmp_3_0;
  1.7314 -    int ___tmp_4_0 = _args->__tmp_4_0;
  1.7315 -    /* Translation is done by the runtime */
  1.7316 -    {
  1.7317 -        draw_edges_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0));
  1.7318 -    }
  1.7319 -}
  1.7320 +  MBRecContext *d;
  1.7321 +  SliceBufferEntry *sbe;
  1.7322 +  SuperMBContext *smbc;
  1.7323 +  SuperMBTask *sm;
  1.7324 +  int line;
  1.7325 +};
  1.7326 +static void smp_ol_draw_edges_task_11(struct nanos_args_5_t *const args);
  1.7327  static SuperMBTask *add_decode_slice_3dwave_tasks(MBRecContext *d, SliceBufferEntry *sbe, SuperMBContext *smbc)
  1.7328  {
  1.7329 -    int i, j;
  1.7330 -    int smb_3d_height = smbc->nsmb_3dheight;
  1.7331 -    int smb_height = smbc->nsmb_height, smb_width = smbc->nsmb_width;
  1.7332 -    int smb_diff_prev = smb_height - smb_3d_height;
  1.7333 -    SuperMBTask *sm = ((void *) 0), *sml, *smur, *smprev;
  1.7334 -    SuperMBTask *smbs = smbc->smbs[smbc->index++];
  1.7335 -    smbc->index %= 2;
  1.7336 -    SuperMBTask *smbs_prev = smbc->smbs[smbc->index];
  1.7337 -    for (j = 0;
  1.7338 -        j < smb_3d_height;
  1.7339 -        j++)
  1.7340 +  int j;
  1.7341 +  int i;
  1.7342 +  SuperMBTask *sml;
  1.7343 +  SuperMBTask *smur;
  1.7344 +  SuperMBTask *smprev;
  1.7345 +  int smb_3d_height = (*smbc).nsmb_3dheight;
  1.7346 +  int smb_height = (*smbc).nsmb_height;
  1.7347 +  int smb_width = (*smbc).nsmb_width;
  1.7348 +  int smb_diff_prev = smb_height - smb_3d_height;
  1.7349 +  SuperMBTask *sm = (void *)0;
  1.7350 +  SuperMBTask *smbs = (*smbc).smbs[(*smbc).index++];
  1.7351 +  (*smbc).index %= 2;
  1.7352 +  SuperMBTask *smbs_prev = (*smbc).smbs[(*smbc).index];
  1.7353 +  for (j = 0; j < smb_3d_height; j++)
  1.7354      {
  1.7355 -        for (i = 0;
  1.7356 -            i < smb_width;
  1.7357 -            i++)
  1.7358 +      {
  1.7359 +        nanos_err_t mcc_err_in_final_3;
  1.7360 +        _Bool mcc_is_in_final_3;
  1.7361 +        for (i = 0; i < smb_width; i++)
  1.7362 +          {
  1.7363 +            {
  1.7364 +              nanos_err_t mcc_err_in_final_2;
  1.7365 +              _Bool mcc_is_in_final_2;
  1.7366 +              sm = smbs + j * smb_width + i;
  1.7367 +              sml = sm - (i > 0 ? 1 : 0);
  1.7368 +              smur = sm + (i < smb_width - 1 && j > 0 ?  -smb_width + 1 : 0);
  1.7369 +              smprev = smbs_prev + (j + smb_diff_prev + 1) * smb_width - 1;
  1.7370 +              mcc_err_in_final_2 = nanos_in_final(&mcc_is_in_final_2);
  1.7371 +              {
  1.7372 +                MBRecContext *mcc_arg_11 = d;
  1.7373 +                SliceBufferEntry *mcc_arg_12 = sbe;
  1.7374 +                SuperMBContext *mcc_arg_13 = smbc;
  1.7375 +                SuperMBTask *mcc_arg_14 = sml;
  1.7376 +                SuperMBTask *mcc_arg_15 = smur;
  1.7377 +                SuperMBTask *mcc_arg_16 = smprev;
  1.7378 +                SuperMBTask *mcc_arg_17 = sm;
  1.7379 +                if (mcc_is_in_final_2)
  1.7380 +                  {
  1.7381 +                    decode_3dwave_super_mb_task(d, sbe, smbc, sml, smur, smprev, sm);
  1.7382 +                  }
  1.7383 +                else
  1.7384 +                  {
  1.7385 +                    {
  1.7386 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.7387 +                      struct nanos_args_2_t *ol_args;
  1.7388 +                      nanos_err_t err;
  1.7389 +                      struct nanos_args_2_t imm_args;
  1.7390 +                      static nanos_smp_args_t smp_ol_decode_3dwave_super_mb_task_5_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_2_t *))&smp_ol_decode_3dwave_super_mb_task_5 };
  1.7391 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_2_t), 0, 1, 0, "decode_3dwave_super_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_3dwave_super_mb_task_5_args } } };
  1.7392 +                      nanos_wd_dyn_props.tie_to = 0;
  1.7393 +                      nanos_wd_dyn_props.priority = 0;
  1.7394 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.7395 +                      ol_args = (struct nanos_args_2_t *)0;
  1.7396 +                      void *nanos_wd_ = (void *)0;
  1.7397 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_2_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.7398 +                      if (err != NANOS_OK)
  1.7399 +                        {
  1.7400 +                          nanos_handle_error(err);
  1.7401 +                        }
  1.7402 +                      /* Check pendant writes on subexpressions */
  1.7403 +                      /* End check pendant writes on subexpressions */
  1.7404 +                      if (nanos_wd_ != (void *)0)
  1.7405 +                        {
  1.7406 +                          {
  1.7407 +                            (*ol_args).d = mcc_arg_11;
  1.7408 +                            (*ol_args).sbe = mcc_arg_12;
  1.7409 +                            (*ol_args).smbc = mcc_arg_13;
  1.7410 +                            (*ol_args).ml = mcc_arg_14;
  1.7411 +                            (*ol_args).mur = mcc_arg_15;
  1.7412 +                            (*ol_args).mprev = mcc_arg_16;
  1.7413 +                            (*ol_args).m = mcc_arg_17;
  1.7414 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7415 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7416 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7417 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7418 +                            nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7419 +                            nanos_region_dimension_t dimensions_5[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7420 +                            nanos_data_access_t dependences[6] = { { (void *)mcc_arg_11, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_12, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_14, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_15, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_16, { 1, 0, 0, 0, 0 }, 1, dimensions_4, 0 }, { (void *)mcc_arg_17, { 1, 1, 0, 0, 0 }, 1, dimensions_5, 0 } };
  1.7421 +                            ;
  1.7422 +                            err = nanos_submit(nanos_wd_, 6, dependences, (void *)0);
  1.7423 +                            if (err != NANOS_OK)
  1.7424 +                              {
  1.7425 +                                nanos_handle_error(err);
  1.7426 +                              }
  1.7427 +                          }
  1.7428 +                        }
  1.7429 +                      else
  1.7430 +                        {
  1.7431 +                          {
  1.7432 +                            imm_args.d = mcc_arg_11;
  1.7433 +                            imm_args.sbe = mcc_arg_12;
  1.7434 +                            imm_args.smbc = mcc_arg_13;
  1.7435 +                            imm_args.ml = mcc_arg_14;
  1.7436 +                            imm_args.mur = mcc_arg_15;
  1.7437 +                            imm_args.mprev = mcc_arg_16;
  1.7438 +                            imm_args.m = mcc_arg_17;
  1.7439 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7440 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7441 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7442 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7443 +                            nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7444 +                            nanos_region_dimension_t dimensions_5[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7445 +                            nanos_data_access_t dependences[6] = { { (void *)mcc_arg_11, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_12, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_14, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_15, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_16, { 1, 0, 0, 0, 0 }, 1, dimensions_4, 0 }, { (void *)mcc_arg_17, { 1, 1, 0, 0, 0 }, 1, dimensions_5, 0 } };
  1.7446 +                            ;
  1.7447 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_2_t), &imm_args, 6, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.7448 +                            if (err != NANOS_OK)
  1.7449 +                              {
  1.7450 +                                nanos_handle_error(err);
  1.7451 +                              }
  1.7452 +                          }
  1.7453 +                        }
  1.7454 +                    }
  1.7455 +                  }
  1.7456 +              }
  1.7457 +            }
  1.7458 +          }
  1.7459 +        mcc_err_in_final_3 = nanos_in_final(&mcc_is_in_final_3);
  1.7460          {
  1.7461 -            sm = smbs + j * smb_width + i;
  1.7462 -            sml = sm - ((i > 0) ? 1 : 0);
  1.7463 -            smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0);
  1.7464 -            smprev = smbs_prev + (j + smb_diff_prev + 1) * smb_width - 1;
  1.7465 +          MBRecContext *mcc_arg_18 = d;
  1.7466 +          SliceBufferEntry *mcc_arg_19 = sbe;
  1.7467 +          SuperMBContext *mcc_arg_20 = smbc;
  1.7468 +          SuperMBTask *mcc_arg_21 = sm;
  1.7469 +          int mcc_arg_22 = j;
  1.7470 +          if (mcc_is_in_final_3)
  1.7471              {
  1.7472 -                struct MBRecContext *__tmp_0 = d;
  1.7473 -                SliceBufferEntry *__tmp_1 = sbe;
  1.7474 -                struct SuperMBContext *__tmp_2 = smbc;
  1.7475 -                struct SuperMBTask *__tmp_3 = sml;
  1.7476 -                struct SuperMBTask *__tmp_4 = smur;
  1.7477 -                struct SuperMBTask *__tmp_5 = smprev;
  1.7478 -                struct SuperMBTask *__tmp_6 = sm;
  1.7479 -                {
  1.7480 -                    /* SMP device descriptor */
  1.7481 -                    static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_2_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_2};
  1.7482 -                    _nx_data_env_2_t *ol_args = (_nx_data_env_2_t *) 0;
  1.7483 -                    nanos_wd_t wd = (nanos_wd_t) 0;
  1.7484 -                    struct nanos_const_wd_definition_local_t
  1.7485 +              draw_edges_task(d, sbe, smbc, sm, j);
  1.7486 +            }
  1.7487 +          else
  1.7488 +            {
  1.7489 +              {
  1.7490 +                nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.7491 +                struct nanos_args_3_t *ol_args;
  1.7492 +                nanos_err_t err;
  1.7493 +                struct nanos_args_3_t imm_args;
  1.7494 +                static nanos_smp_args_t smp_ol_draw_edges_task_7_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_3_t *))&smp_ol_draw_edges_task_7 };
  1.7495 +                static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_3_t), 0, 1, 0, "draw_edges_task" }, { { &nanos_smp_factory, &smp_ol_draw_edges_task_7_args } } };
  1.7496 +                nanos_wd_dyn_props.tie_to = 0;
  1.7497 +                nanos_wd_dyn_props.priority = 0;
  1.7498 +                nanos_wd_dyn_props.flags.is_final = 0;
  1.7499 +                ol_args = (struct nanos_args_3_t *)0;
  1.7500 +                void *nanos_wd_ = (void *)0;
  1.7501 +                err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_3_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.7502 +                if (err != NANOS_OK)
  1.7503 +                  {
  1.7504 +                    nanos_handle_error(err);
  1.7505 +                  }
  1.7506 +                /* Check pendant writes on subexpressions */
  1.7507 +                /* End check pendant writes on subexpressions */
  1.7508 +                if (nanos_wd_ != (void *)0)
  1.7509 +                  {
  1.7510                      {
  1.7511 -                            nanos_const_wd_definition_t base;
  1.7512 -                            nanos_device_t devices[1];
  1.7513 -                    };
  1.7514 -                    static struct nanos_const_wd_definition_local_t _const_def = {
  1.7515 +                      (*ol_args).d = mcc_arg_18;
  1.7516 +                      (*ol_args).sbe = mcc_arg_19;
  1.7517 +                      (*ol_args).smbc = mcc_arg_20;
  1.7518 +                      (*ol_args).sm = mcc_arg_21;
  1.7519 +                      (*ol_args).line = mcc_arg_22;
  1.7520 +                      nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7521 +                      nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7522 +                      nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7523 +                      nanos_data_access_t dependences[3] = { { (void *)mcc_arg_18, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_19, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_21, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.7524 +                      ;
  1.7525 +                      err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.7526 +                      if (err != NANOS_OK)
  1.7527                          {
  1.7528 -                            {
  1.7529 -                                0,
  1.7530 -                                1,
  1.7531 -                                0,
  1.7532 -                                0,
  1.7533 -                                0,
  1.7534 -                                0,
  1.7535 -                                0,
  1.7536 -                                0
  1.7537 -                            },
  1.7538 -                            __alignof__(_nx_data_env_2_t),
  1.7539 -                            0,
  1.7540 -                            1
  1.7541 -                        },
  1.7542 -                        {{
  1.7543 -                            nanos_smp_factory,
  1.7544 -                            &_ol_add_decode_slice_3dwave_tasks_2_smp_args
  1.7545 -                        }}
  1.7546 -                    };
  1.7547 -                    nanos_wd_dyn_props_t dyn_props = {0};
  1.7548 -                    nanos_err_t err;
  1.7549 -                    dyn_props.priority = 0;
  1.7550 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_2_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.7551 -                    if (err != NANOS_OK)
  1.7552 -                        nanos_handle_error(err);
  1.7553 -                    if (wd != (nanos_wd_t) 0)
  1.7554 +                          nanos_handle_error(err);
  1.7555 +                        }
  1.7556 +                    }
  1.7557 +                  }
  1.7558 +                else
  1.7559 +                  {
  1.7560                      {
  1.7561 -                        ol_args->__tmp_0_0 = __tmp_0;
  1.7562 -                        ol_args->__tmp_1_0 = __tmp_1;
  1.7563 -                        ol_args->__tmp_2_0 = __tmp_2;
  1.7564 -                        ol_args->__tmp_3_0 = __tmp_3;
  1.7565 -                        ol_args->__tmp_4_0 = __tmp_4;
  1.7566 -                        ol_args->__tmp_5_0 = __tmp_5;
  1.7567 -                        ol_args->__tmp_6_0 = __tmp_6;
  1.7568 -                        nanos_dependence_t _dependences[6] = {
  1.7569 -                            {
  1.7570 -                                (void **) &ol_args->__tmp_0_0,
  1.7571 -                                ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
  1.7572 -                                {
  1.7573 -                                    1,
  1.7574 -                                    0,
  1.7575 -                                    1,
  1.7576 -                                    0
  1.7577 -                                },
  1.7578 -                                sizeof(struct MBRecContext)
  1.7579 -                            },
  1.7580 -                            {
  1.7581 -                                (void **) &ol_args->__tmp_1_0,
  1.7582 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.7583 -                                {
  1.7584 -                                    1,
  1.7585 -                                    0,
  1.7586 -                                    1,
  1.7587 -                                    0
  1.7588 -                                },
  1.7589 -                                sizeof(SliceBufferEntry)
  1.7590 -                            },
  1.7591 -                            {
  1.7592 -                                (void **) &ol_args->__tmp_3_0,
  1.7593 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.7594 -                                {
  1.7595 -                                    1,
  1.7596 -                                    0,
  1.7597 -                                    1,
  1.7598 -                                    0
  1.7599 -                                },
  1.7600 -                                sizeof(struct SuperMBTask)
  1.7601 -                            },
  1.7602 -                            {
  1.7603 -                                (void **) &ol_args->__tmp_4_0,
  1.7604 -                                ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
  1.7605 -                                {
  1.7606 -                                    1,
  1.7607 -                                    0,
  1.7608 -                                    1,
  1.7609 -                                    0
  1.7610 -                                },
  1.7611 -                                sizeof(struct SuperMBTask)
  1.7612 -                            },
  1.7613 -                            {
  1.7614 -                                (void **) &ol_args->__tmp_5_0,
  1.7615 -                                ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
  1.7616 -                                {
  1.7617 -                                    1,
  1.7618 -                                    0,
  1.7619 -                                    1,
  1.7620 -                                    0
  1.7621 -                                },
  1.7622 -                                sizeof(struct SuperMBTask)
  1.7623 -                            },
  1.7624 -                            {
  1.7625 -                                (void **) &ol_args->__tmp_6_0,
  1.7626 -                                ((char *) ((__tmp_6)) - (char *) ol_args->__tmp_6_0),
  1.7627 -                                {
  1.7628 -                                    1,
  1.7629 -                                    1,
  1.7630 -                                    1,
  1.7631 -                                    0
  1.7632 -                                },
  1.7633 -                                sizeof(struct SuperMBTask)
  1.7634 -                            }
  1.7635 -                        };
  1.7636 -                        err = nanos_submit(wd, 6, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.7637 -                        if (err != NANOS_OK)
  1.7638 -                            nanos_handle_error(err);
  1.7639 +                      imm_args.d = mcc_arg_18;
  1.7640 +                      imm_args.sbe = mcc_arg_19;
  1.7641 +                      imm_args.smbc = mcc_arg_20;
  1.7642 +                      imm_args.sm = mcc_arg_21;
  1.7643 +                      imm_args.line = mcc_arg_22;
  1.7644 +                      nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7645 +                      nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7646 +                      nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7647 +                      nanos_data_access_t dependences[3] = { { (void *)mcc_arg_18, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_19, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_21, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.7648 +                      ;
  1.7649 +                      err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_3_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.7650 +                      if (err != NANOS_OK)
  1.7651 +                        {
  1.7652 +                          nanos_handle_error(err);
  1.7653 +                        }
  1.7654                      }
  1.7655 -                    else
  1.7656 -                    {
  1.7657 -                        _nx_data_env_2_t imm_args;
  1.7658 -                        imm_args.__tmp_0_0 = __tmp_0;
  1.7659 -                        imm_args.__tmp_1_0 = __tmp_1;
  1.7660 -                        imm_args.__tmp_2_0 = __tmp_2;
  1.7661 -                        imm_args.__tmp_3_0 = __tmp_3;
  1.7662 -                        imm_args.__tmp_4_0 = __tmp_4;
  1.7663 -                        imm_args.__tmp_5_0 = __tmp_5;
  1.7664 -                        imm_args.__tmp_6_0 = __tmp_6;
  1.7665 -                        nanos_dependence_t _dependences[6] = {
  1.7666 -                            {
  1.7667 -                                (void **) &imm_args.__tmp_0_0,
  1.7668 -                                ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
  1.7669 -                                {
  1.7670 -                                    1,
  1.7671 -                                    0,
  1.7672 -                                    1,
  1.7673 -                                    0
  1.7674 -                                },
  1.7675 -                                sizeof(struct MBRecContext)
  1.7676 -                            },
  1.7677 -                            {
  1.7678 -                                (void **) &imm_args.__tmp_1_0,
  1.7679 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.7680 -                                {
  1.7681 -                                    1,
  1.7682 -                                    0,
  1.7683 -                                    1,
  1.7684 -                                    0
  1.7685 -                                },
  1.7686 -                                sizeof(SliceBufferEntry)
  1.7687 -                            },
  1.7688 -                            {
  1.7689 -                                (void **) &imm_args.__tmp_3_0,
  1.7690 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.7691 -                                {
  1.7692 -                                    1,
  1.7693 -                                    0,
  1.7694 -                                    1,
  1.7695 -                                    0
  1.7696 -                                },
  1.7697 -                                sizeof(struct SuperMBTask)
  1.7698 -                            },
  1.7699 -                            {
  1.7700 -                                (void **) &imm_args.__tmp_4_0,
  1.7701 -                                ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
  1.7702 -                                {
  1.7703 -                                    1,
  1.7704 -                                    0,
  1.7705 -                                    1,
  1.7706 -                                    0
  1.7707 -                                },
  1.7708 -                                sizeof(struct SuperMBTask)
  1.7709 -                            },
  1.7710 -                            {
  1.7711 -                                (void **) &imm_args.__tmp_5_0,
  1.7712 -                                ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
  1.7713 -                                {
  1.7714 -                                    1,
  1.7715 -                                    0,
  1.7716 -                                    1,
  1.7717 -                                    0
  1.7718 -                                },
  1.7719 -                                sizeof(struct SuperMBTask)
  1.7720 -                            },
  1.7721 -                            {
  1.7722 -                                (void **) &imm_args.__tmp_6_0,
  1.7723 -                                ((char *) ((__tmp_6)) - (char *) imm_args.__tmp_6_0),
  1.7724 -                                {
  1.7725 -                                    1,
  1.7726 -                                    1,
  1.7727 -                                    1,
  1.7728 -                                    0
  1.7729 -                                },
  1.7730 -                                sizeof(struct SuperMBTask)
  1.7731 -                            }
  1.7732 -                        };
  1.7733 -                        dyn_props.priority = 0;
  1.7734 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_2_t), &imm_args, 6, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.7735 -                        if (err != NANOS_OK)
  1.7736 -                            nanos_handle_error(err);
  1.7737 -                    }
  1.7738 -                }
  1.7739 -                ;
  1.7740 +                  }
  1.7741 +              }
  1.7742              }
  1.7743          }
  1.7744 +      }
  1.7745 +    }
  1.7746 +  for (; j < smb_height; j++)
  1.7747 +    {
  1.7748 +      {
  1.7749 +        nanos_err_t mcc_err_in_final_5;
  1.7750 +        _Bool mcc_is_in_final_5;
  1.7751 +        for (i = 0; i < smb_width; i++)
  1.7752 +          {
  1.7753 +            {
  1.7754 +              nanos_err_t mcc_err_in_final_4;
  1.7755 +              _Bool mcc_is_in_final_4;
  1.7756 +              sm = smbs + j * smb_width + i;
  1.7757 +              sml = sm - (i > 0 ? 1 : 0);
  1.7758 +              smur = sm + (i < smb_width - 1 && j > 0 ?  -smb_width + 1 : 0);
  1.7759 +              mcc_err_in_final_4 = nanos_in_final(&mcc_is_in_final_4);
  1.7760 +              {
  1.7761 +                MBRecContext *mcc_arg_23 = d;
  1.7762 +                SliceBufferEntry *mcc_arg_24 = sbe;
  1.7763 +                SuperMBContext *mcc_arg_25 = smbc;
  1.7764 +                SuperMBTask *mcc_arg_26 = sml;
  1.7765 +                SuperMBTask *mcc_arg_27 = smur;
  1.7766 +                SuperMBTask *mcc_arg_28 = sm;
  1.7767 +                if (mcc_is_in_final_4)
  1.7768 +                  {
  1.7769 +                    decode_super_mb_task(d, sbe, smbc, sml, smur, sm);
  1.7770 +                  }
  1.7771 +                else
  1.7772 +                  {
  1.7773 +                    {
  1.7774 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.7775 +                      struct nanos_args_4_t *ol_args;
  1.7776 +                      nanos_err_t err;
  1.7777 +                      struct nanos_args_4_t imm_args;
  1.7778 +                      static nanos_smp_args_t smp_ol_decode_super_mb_task_9_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_4_t *))&smp_ol_decode_super_mb_task_9 };
  1.7779 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_4_t), 0, 1, 0, "decode_super_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_super_mb_task_9_args } } };
  1.7780 +                      nanos_wd_dyn_props.tie_to = 0;
  1.7781 +                      nanos_wd_dyn_props.priority = 0;
  1.7782 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.7783 +                      ol_args = (struct nanos_args_4_t *)0;
  1.7784 +                      void *nanos_wd_ = (void *)0;
  1.7785 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_4_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.7786 +                      if (err != NANOS_OK)
  1.7787 +                        {
  1.7788 +                          nanos_handle_error(err);
  1.7789 +                        }
  1.7790 +                      /* Check pendant writes on subexpressions */
  1.7791 +                      /* End check pendant writes on subexpressions */
  1.7792 +                      if (nanos_wd_ != (void *)0)
  1.7793 +                        {
  1.7794 +                          {
  1.7795 +                            (*ol_args).d = mcc_arg_23;
  1.7796 +                            (*ol_args).sbe = mcc_arg_24;
  1.7797 +                            (*ol_args).smbc = mcc_arg_25;
  1.7798 +                            (*ol_args).ml = mcc_arg_26;
  1.7799 +                            (*ol_args).mur = mcc_arg_27;
  1.7800 +                            (*ol_args).m = mcc_arg_28;
  1.7801 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7802 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7803 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7804 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7805 +                            nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7806 +                            nanos_data_access_t dependences[5] = { { (void *)mcc_arg_23, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_24, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_26, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_27, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_28, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } };
  1.7807 +                            ;
  1.7808 +                            err = nanos_submit(nanos_wd_, 5, dependences, (void *)0);
  1.7809 +                            if (err != NANOS_OK)
  1.7810 +                              {
  1.7811 +                                nanos_handle_error(err);
  1.7812 +                              }
  1.7813 +                          }
  1.7814 +                        }
  1.7815 +                      else
  1.7816 +                        {
  1.7817 +                          {
  1.7818 +                            imm_args.d = mcc_arg_23;
  1.7819 +                            imm_args.sbe = mcc_arg_24;
  1.7820 +                            imm_args.smbc = mcc_arg_25;
  1.7821 +                            imm_args.ml = mcc_arg_26;
  1.7822 +                            imm_args.mur = mcc_arg_27;
  1.7823 +                            imm_args.m = mcc_arg_28;
  1.7824 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7825 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7826 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7827 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7828 +                            nanos_region_dimension_t dimensions_4[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7829 +                            nanos_data_access_t dependences[5] = { { (void *)mcc_arg_23, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_24, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_26, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_27, { 1, 0, 0, 0, 0 }, 1, dimensions_3, 0 }, { (void *)mcc_arg_28, { 1, 1, 0, 0, 0 }, 1, dimensions_4, 0 } };
  1.7830 +                            ;
  1.7831 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_4_t), &imm_args, 5, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.7832 +                            if (err != NANOS_OK)
  1.7833 +                              {
  1.7834 +                                nanos_handle_error(err);
  1.7835 +                              }
  1.7836 +                          }
  1.7837 +                        }
  1.7838 +                    }
  1.7839 +                  }
  1.7840 +              }
  1.7841 +            }
  1.7842 +          }
  1.7843 +        mcc_err_in_final_5 = nanos_in_final(&mcc_is_in_final_5);
  1.7844          {
  1.7845 -            struct MBRecContext *__tmp_0 = d;
  1.7846 -            SliceBufferEntry *__tmp_1 = sbe;
  1.7847 -            struct SuperMBContext *__tmp_2 = smbc;
  1.7848 -            struct SuperMBTask *__tmp_3 = sm;
  1.7849 -            int __tmp_4 = j;
  1.7850 +          MBRecContext *mcc_arg_29 = d;
  1.7851 +          SliceBufferEntry *mcc_arg_30 = sbe;
  1.7852 +          SuperMBContext *mcc_arg_31 = smbc;
  1.7853 +          SuperMBTask *mcc_arg_32 = sm;
  1.7854 +          int mcc_arg_33 = j;
  1.7855 +          if (mcc_is_in_final_5)
  1.7856              {
  1.7857 -                /* SMP device descriptor */
  1.7858 -                static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_3_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_3};
  1.7859 -                _nx_data_env_3_t *ol_args = (_nx_data_env_3_t *) 0;
  1.7860 -                nanos_wd_t wd = (nanos_wd_t) 0;
  1.7861 -                struct nanos_const_wd_definition_local_t
  1.7862 -                {
  1.7863 -                        nanos_const_wd_definition_t base;
  1.7864 -                        nanos_device_t devices[1];
  1.7865 -                };
  1.7866 -                static struct nanos_const_wd_definition_local_t _const_def = {
  1.7867 +              draw_edges_task(d, sbe, smbc, sm, j);
  1.7868 +            }
  1.7869 +          else
  1.7870 +            {
  1.7871 +              {
  1.7872 +                nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.7873 +                struct nanos_args_5_t *ol_args;
  1.7874 +                nanos_err_t err;
  1.7875 +                struct nanos_args_5_t imm_args;
  1.7876 +                static nanos_smp_args_t smp_ol_draw_edges_task_11_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_5_t *))&smp_ol_draw_edges_task_11 };
  1.7877 +                static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_5_t), 0, 1, 0, "draw_edges_task" }, { { &nanos_smp_factory, &smp_ol_draw_edges_task_11_args } } };
  1.7878 +                nanos_wd_dyn_props.tie_to = 0;
  1.7879 +                nanos_wd_dyn_props.priority = 0;
  1.7880 +                nanos_wd_dyn_props.flags.is_final = 0;
  1.7881 +                ol_args = (struct nanos_args_5_t *)0;
  1.7882 +                void *nanos_wd_ = (void *)0;
  1.7883 +                err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_5_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.7884 +                if (err != NANOS_OK)
  1.7885 +                  {
  1.7886 +                    nanos_handle_error(err);
  1.7887 +                  }
  1.7888 +                /* Check pendant writes on subexpressions */
  1.7889 +                /* End check pendant writes on subexpressions */
  1.7890 +                if (nanos_wd_ != (void *)0)
  1.7891 +                  {
  1.7892                      {
  1.7893 +                      (*ol_args).d = mcc_arg_29;
  1.7894 +                      (*ol_args).sbe = mcc_arg_30;
  1.7895 +                      (*ol_args).smbc = mcc_arg_31;
  1.7896 +                      (*ol_args).sm = mcc_arg_32;
  1.7897 +                      (*ol_args).line = mcc_arg_33;
  1.7898 +                      nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7899 +                      nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7900 +                      nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7901 +                      nanos_data_access_t dependences[3] = { { (void *)mcc_arg_29, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_30, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_32, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.7902 +                      ;
  1.7903 +                      err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.7904 +                      if (err != NANOS_OK)
  1.7905                          {
  1.7906 -                            0,
  1.7907 -                            1,
  1.7908 -                            0,
  1.7909 -                            0,
  1.7910 -                            0,
  1.7911 -                            0,
  1.7912 -                            0,
  1.7913 -                            0
  1.7914 -                        },
  1.7915 -                        __alignof__(_nx_data_env_3_t),
  1.7916 -                        0,
  1.7917 -                        1
  1.7918 -                    },
  1.7919 -                    {{
  1.7920 -                        nanos_smp_factory,
  1.7921 -                        &_ol_add_decode_slice_3dwave_tasks_3_smp_args
  1.7922 -                    }}
  1.7923 -                };
  1.7924 -                nanos_wd_dyn_props_t dyn_props = {0};
  1.7925 -                nanos_err_t err;
  1.7926 -                dyn_props.priority = 0;
  1.7927 -                err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_3_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.7928 -                if (err != NANOS_OK)
  1.7929 -                    nanos_handle_error(err);
  1.7930 -                if (wd != (nanos_wd_t) 0)
  1.7931 -                {
  1.7932 -                    ol_args->__tmp_0_0 = __tmp_0;
  1.7933 -                    ol_args->__tmp_1_0 = __tmp_1;
  1.7934 -                    ol_args->__tmp_2_0 = __tmp_2;
  1.7935 -                    ol_args->__tmp_3_0 = __tmp_3;
  1.7936 -                    ol_args->__tmp_4_0 = __tmp_4;
  1.7937 -                    nanos_dependence_t _dependences[3] = {
  1.7938 +                          nanos_handle_error(err);
  1.7939 +                        }
  1.7940 +                    }
  1.7941 +                  }
  1.7942 +                else
  1.7943 +                  {
  1.7944 +                    {
  1.7945 +                      imm_args.d = mcc_arg_29;
  1.7946 +                      imm_args.sbe = mcc_arg_30;
  1.7947 +                      imm_args.smbc = mcc_arg_31;
  1.7948 +                      imm_args.sm = mcc_arg_32;
  1.7949 +                      imm_args.line = mcc_arg_33;
  1.7950 +                      nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.7951 +                      nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.7952 +                      nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.7953 +                      nanos_data_access_t dependences[3] = { { (void *)mcc_arg_29, { 1, 0, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_30, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_32, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.7954 +                      ;
  1.7955 +                      err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_5_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.7956 +                      if (err != NANOS_OK)
  1.7957                          {
  1.7958 -                            (void **) &ol_args->__tmp_0_0,
  1.7959 -                            ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
  1.7960 -                            {
  1.7961 -                                1,
  1.7962 -                                0,
  1.7963 -                                1,
  1.7964 -                                0
  1.7965 -                            },
  1.7966 -                            sizeof(struct MBRecContext)
  1.7967 -                        },
  1.7968 -                        {
  1.7969 -                            (void **) &ol_args->__tmp_1_0,
  1.7970 -                            ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.7971 -                            {
  1.7972 -                                1,
  1.7973 -                                0,
  1.7974 -                                1,
  1.7975 -                                0
  1.7976 -                            },
  1.7977 -                            sizeof(SliceBufferEntry)
  1.7978 -                        },
  1.7979 -                        {
  1.7980 -                            (void **) &ol_args->__tmp_3_0,
  1.7981 -                            ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.7982 -                            {
  1.7983 -                                1,
  1.7984 -                                1,
  1.7985 -                                1,
  1.7986 -                                0
  1.7987 -                            },
  1.7988 -                            sizeof(struct SuperMBTask)
  1.7989 +                          nanos_handle_error(err);
  1.7990                          }
  1.7991 -                    };
  1.7992 -                    err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.7993 -                    if (err != NANOS_OK)
  1.7994 -                        nanos_handle_error(err);
  1.7995 -                }
  1.7996 -                else
  1.7997 -                {
  1.7998 -                    _nx_data_env_3_t imm_args;
  1.7999 -                    imm_args.__tmp_0_0 = __tmp_0;
  1.8000 -                    imm_args.__tmp_1_0 = __tmp_1;
  1.8001 -                    imm_args.__tmp_2_0 = __tmp_2;
  1.8002 -                    imm_args.__tmp_3_0 = __tmp_3;
  1.8003 -                    imm_args.__tmp_4_0 = __tmp_4;
  1.8004 -                    nanos_dependence_t _dependences[3] = {
  1.8005 -                        {
  1.8006 -                            (void **) &imm_args.__tmp_0_0,
  1.8007 -                            ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
  1.8008 -                            {
  1.8009 -                                1,
  1.8010 -                                0,
  1.8011 -                                1,
  1.8012 -                                0
  1.8013 -                            },
  1.8014 -                            sizeof(struct MBRecContext)
  1.8015 -                        },
  1.8016 -                        {
  1.8017 -                            (void **) &imm_args.__tmp_1_0,
  1.8018 -                            ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.8019 -                            {
  1.8020 -                                1,
  1.8021 -                                0,
  1.8022 -                                1,
  1.8023 -                                0
  1.8024 -                            },
  1.8025 -                            sizeof(SliceBufferEntry)
  1.8026 -                        },
  1.8027 -                        {
  1.8028 -                            (void **) &imm_args.__tmp_3_0,
  1.8029 -                            ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.8030 -                            {
  1.8031 -                                1,
  1.8032 -                                1,
  1.8033 -                                1,
  1.8034 -                                0
  1.8035 -                            },
  1.8036 -                            sizeof(struct SuperMBTask)
  1.8037 -                        }
  1.8038 -                    };
  1.8039 -                    dyn_props.priority = 0;
  1.8040 -                    err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_3_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.8041 -                    if (err != NANOS_OK)
  1.8042 -                        nanos_handle_error(err);
  1.8043 -                }
  1.8044 -            }
  1.8045 -            ;
  1.8046 -        }
  1.8047 -    }
  1.8048 -    for (;
  1.8049 -        j < smb_height;
  1.8050 -        j++)
  1.8051 -    {
  1.8052 -        for (i = 0;
  1.8053 -            i < smb_width;
  1.8054 -            i++)
  1.8055 -        {
  1.8056 -            sm = smbs + j * smb_width + i;
  1.8057 -            sml = sm - ((i > 0) ? 1 : 0);
  1.8058 -            smur = sm + (((i < smb_width - 1) && (j > 0)) ? - smb_width + 1 : 0);
  1.8059 -            {
  1.8060 -                struct MBRecContext *__tmp_0 = d;
  1.8061 -                SliceBufferEntry *__tmp_1 = sbe;
  1.8062 -                struct SuperMBContext *__tmp_2 = smbc;
  1.8063 -                struct SuperMBTask *__tmp_3 = sml;
  1.8064 -                struct SuperMBTask *__tmp_4 = smur;
  1.8065 -                struct SuperMBTask *__tmp_5 = sm;
  1.8066 -                {
  1.8067 -                    /* SMP device descriptor */
  1.8068 -                    static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_4_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_4};
  1.8069 -                    _nx_data_env_4_t *ol_args = (_nx_data_env_4_t *) 0;
  1.8070 -                    nanos_wd_t wd = (nanos_wd_t) 0;
  1.8071 -                    struct nanos_const_wd_definition_local_t
  1.8072 -                    {
  1.8073 -                            nanos_const_wd_definition_t base;
  1.8074 -                            nanos_device_t devices[1];
  1.8075 -                    };
  1.8076 -                    static struct nanos_const_wd_definition_local_t _const_def = {
  1.8077 -                        {
  1.8078 -                            {
  1.8079 -                                0,
  1.8080 -                                1,
  1.8081 -                                0,
  1.8082 -                                0,
  1.8083 -                                0,
  1.8084 -                                0,
  1.8085 -                                0,
  1.8086 -                                0
  1.8087 -                            },
  1.8088 -                            __alignof__(_nx_data_env_4_t),
  1.8089 -                            0,
  1.8090 -                            1
  1.8091 -                        },
  1.8092 -                        {{
  1.8093 -                            nanos_smp_factory,
  1.8094 -                            &_ol_add_decode_slice_3dwave_tasks_4_smp_args
  1.8095 -                        }}
  1.8096 -                    };
  1.8097 -                    nanos_wd_dyn_props_t dyn_props = {0};
  1.8098 -                    nanos_err_t err;
  1.8099 -                    dyn_props.priority = 0;
  1.8100 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_4_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.8101 -                    if (err != NANOS_OK)
  1.8102 -                        nanos_handle_error(err);
  1.8103 -                    if (wd != (nanos_wd_t) 0)
  1.8104 -                    {
  1.8105 -                        ol_args->__tmp_0_0 = __tmp_0;
  1.8106 -                        ol_args->__tmp_1_0 = __tmp_1;
  1.8107 -                        ol_args->__tmp_2_0 = __tmp_2;
  1.8108 -                        ol_args->__tmp_3_0 = __tmp_3;
  1.8109 -                        ol_args->__tmp_4_0 = __tmp_4;
  1.8110 -                        ol_args->__tmp_5_0 = __tmp_5;
  1.8111 -                        nanos_dependence_t _dependences[5] = {
  1.8112 -                            {
  1.8113 -                                (void **) &ol_args->__tmp_0_0,
  1.8114 -                                ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
  1.8115 -                                {
  1.8116 -                                    1,
  1.8117 -                                    0,
  1.8118 -                                    1,
  1.8119 -                                    0
  1.8120 -                                },
  1.8121 -                                sizeof(struct MBRecContext)
  1.8122 -                            },
  1.8123 -                            {
  1.8124 -                                (void **) &ol_args->__tmp_1_0,
  1.8125 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.8126 -                                {
  1.8127 -                                    1,
  1.8128 -                                    0,
  1.8129 -                                    1,
  1.8130 -                                    0
  1.8131 -                                },
  1.8132 -                                sizeof(SliceBufferEntry)
  1.8133 -                            },
  1.8134 -                            {
  1.8135 -                                (void **) &ol_args->__tmp_3_0,
  1.8136 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.8137 -                                {
  1.8138 -                                    1,
  1.8139 -                                    0,
  1.8140 -                                    1,
  1.8141 -                                    0
  1.8142 -                                },
  1.8143 -                                sizeof(struct SuperMBTask)
  1.8144 -                            },
  1.8145 -                            {
  1.8146 -                                (void **) &ol_args->__tmp_4_0,
  1.8147 -                                ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
  1.8148 -                                {
  1.8149 -                                    1,
  1.8150 -                                    0,
  1.8151 -                                    1,
  1.8152 -                                    0
  1.8153 -                                },
  1.8154 -                                sizeof(struct SuperMBTask)
  1.8155 -                            },
  1.8156 -                            {
  1.8157 -                                (void **) &ol_args->__tmp_5_0,
  1.8158 -                                ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
  1.8159 -                                {
  1.8160 -                                    1,
  1.8161 -                                    1,
  1.8162 -                                    1,
  1.8163 -                                    0
  1.8164 -                                },
  1.8165 -                                sizeof(struct SuperMBTask)
  1.8166 -                            }
  1.8167 -                        };
  1.8168 -                        err = nanos_submit(wd, 5, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.8169 -                        if (err != NANOS_OK)
  1.8170 -                            nanos_handle_error(err);
  1.8171                      }
  1.8172 -                    else
  1.8173 -                    {
  1.8174 -                        _nx_data_env_4_t imm_args;
  1.8175 -                        imm_args.__tmp_0_0 = __tmp_0;
  1.8176 -                        imm_args.__tmp_1_0 = __tmp_1;
  1.8177 -                        imm_args.__tmp_2_0 = __tmp_2;
  1.8178 -                        imm_args.__tmp_3_0 = __tmp_3;
  1.8179 -                        imm_args.__tmp_4_0 = __tmp_4;
  1.8180 -                        imm_args.__tmp_5_0 = __tmp_5;
  1.8181 -                        nanos_dependence_t _dependences[5] = {
  1.8182 -                            {
  1.8183 -                                (void **) &imm_args.__tmp_0_0,
  1.8184 -                                ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
  1.8185 -                                {
  1.8186 -                                    1,
  1.8187 -                                    0,
  1.8188 -                                    1,
  1.8189 -                                    0
  1.8190 -                                },
  1.8191 -                                sizeof(struct MBRecContext)
  1.8192 -                            },
  1.8193 -                            {
  1.8194 -                                (void **) &imm_args.__tmp_1_0,
  1.8195 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.8196 -                                {
  1.8197 -                                    1,
  1.8198 -                                    0,
  1.8199 -                                    1,
  1.8200 -                                    0
  1.8201 -                                },
  1.8202 -                                sizeof(SliceBufferEntry)
  1.8203 -                            },
  1.8204 -                            {
  1.8205 -                                (void **) &imm_args.__tmp_3_0,
  1.8206 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.8207 -                                {
  1.8208 -                                    1,
  1.8209 -                                    0,
  1.8210 -                                    1,
  1.8211 -                                    0
  1.8212 -                                },
  1.8213 -                                sizeof(struct SuperMBTask)
  1.8214 -                            },
  1.8215 -                            {
  1.8216 -                                (void **) &imm_args.__tmp_4_0,
  1.8217 -                                ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
  1.8218 -                                {
  1.8219 -                                    1,
  1.8220 -                                    0,
  1.8221 -                                    1,
  1.8222 -                                    0
  1.8223 -                                },
  1.8224 -                                sizeof(struct SuperMBTask)
  1.8225 -                            },
  1.8226 -                            {
  1.8227 -                                (void **) &imm_args.__tmp_5_0,
  1.8228 -                                ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
  1.8229 -                                {
  1.8230 -                                    1,
  1.8231 -                                    1,
  1.8232 -                                    1,
  1.8233 -                                    0
  1.8234 -                                },
  1.8235 -                                sizeof(struct SuperMBTask)
  1.8236 -                            }
  1.8237 -                        };
  1.8238 -                        dyn_props.priority = 0;
  1.8239 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_4_t), &imm_args, 5, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.8240 -                        if (err != NANOS_OK)
  1.8241 -                            nanos_handle_error(err);
  1.8242 -                    }
  1.8243 -                }
  1.8244 -                ;
  1.8245 +                  }
  1.8246 +              }
  1.8247              }
  1.8248          }
  1.8249 -        {
  1.8250 -            struct MBRecContext *__tmp_0 = d;
  1.8251 -            SliceBufferEntry *__tmp_1 = sbe;
  1.8252 -            struct SuperMBContext *__tmp_2 = smbc;
  1.8253 -            struct SuperMBTask *__tmp_3 = sm;
  1.8254 -            int __tmp_4 = j;
  1.8255 -            {
  1.8256 -                /* SMP device descriptor */
  1.8257 -                static nanos_smp_args_t _ol_add_decode_slice_3dwave_tasks_5_smp_args = {(void (*)(void *)) _smp__ol_add_decode_slice_3dwave_tasks_5};
  1.8258 -                _nx_data_env_5_t *ol_args = (_nx_data_env_5_t *) 0;
  1.8259 -                nanos_wd_t wd = (nanos_wd_t) 0;
  1.8260 -                struct nanos_const_wd_definition_local_t
  1.8261 -                {
  1.8262 -                        nanos_const_wd_definition_t base;
  1.8263 -                        nanos_device_t devices[1];
  1.8264 -                };
  1.8265 -                static struct nanos_const_wd_definition_local_t _const_def = {
  1.8266 -                    {
  1.8267 -                        {
  1.8268 -                            0,
  1.8269 -                            1,
  1.8270 -                            0,
  1.8271 -                            0,
  1.8272 -                            0,
  1.8273 -                            0,
  1.8274 -                            0,
  1.8275 -                            0
  1.8276 -                        },
  1.8277 -                        __alignof__(_nx_data_env_5_t),
  1.8278 -                        0,
  1.8279 -                        1
  1.8280 -                    },
  1.8281 -                    {{
  1.8282 -                        nanos_smp_factory,
  1.8283 -                        &_ol_add_decode_slice_3dwave_tasks_5_smp_args
  1.8284 -                    }}
  1.8285 -                };
  1.8286 -                nanos_wd_dyn_props_t dyn_props = {0};
  1.8287 -                nanos_err_t err;
  1.8288 -                dyn_props.priority = 0;
  1.8289 -                err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_5_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.8290 -                if (err != NANOS_OK)
  1.8291 -                    nanos_handle_error(err);
  1.8292 -                if (wd != (nanos_wd_t) 0)
  1.8293 -                {
  1.8294 -                    ol_args->__tmp_0_0 = __tmp_0;
  1.8295 -                    ol_args->__tmp_1_0 = __tmp_1;
  1.8296 -                    ol_args->__tmp_2_0 = __tmp_2;
  1.8297 -                    ol_args->__tmp_3_0 = __tmp_3;
  1.8298 -                    ol_args->__tmp_4_0 = __tmp_4;
  1.8299 -                    nanos_dependence_t _dependences[3] = {
  1.8300 -                        {
  1.8301 -                            (void **) &ol_args->__tmp_0_0,
  1.8302 -                            ((char *) ((__tmp_0)) - (char *) ol_args->__tmp_0_0),
  1.8303 -                            {
  1.8304 -                                1,
  1.8305 -                                0,
  1.8306 -                                1,
  1.8307 -                                0
  1.8308 -                            },
  1.8309 -                            sizeof(struct MBRecContext)
  1.8310 -                        },
  1.8311 -                        {
  1.8312 -                            (void **) &ol_args->__tmp_1_0,
  1.8313 -                            ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.8314 -                            {
  1.8315 -                                1,
  1.8316 -                                0,
  1.8317 -                                1,
  1.8318 -                                0
  1.8319 -                            },
  1.8320 -                            sizeof(SliceBufferEntry)
  1.8321 -                        },
  1.8322 -                        {
  1.8323 -                            (void **) &ol_args->__tmp_3_0,
  1.8324 -                            ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.8325 -                            {
  1.8326 -                                1,
  1.8327 -                                1,
  1.8328 -                                1,
  1.8329 -                                0
  1.8330 -                            },
  1.8331 -                            sizeof(struct SuperMBTask)
  1.8332 -                        }
  1.8333 -                    };
  1.8334 -                    err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.8335 -                    if (err != NANOS_OK)
  1.8336 -                        nanos_handle_error(err);
  1.8337 -                }
  1.8338 -                else
  1.8339 -                {
  1.8340 -                    _nx_data_env_5_t imm_args;
  1.8341 -                    imm_args.__tmp_0_0 = __tmp_0;
  1.8342 -                    imm_args.__tmp_1_0 = __tmp_1;
  1.8343 -                    imm_args.__tmp_2_0 = __tmp_2;
  1.8344 -                    imm_args.__tmp_3_0 = __tmp_3;
  1.8345 -                    imm_args.__tmp_4_0 = __tmp_4;
  1.8346 -                    nanos_dependence_t _dependences[3] = {
  1.8347 -                        {
  1.8348 -                            (void **) &imm_args.__tmp_0_0,
  1.8349 -                            ((char *) ((__tmp_0)) - (char *) imm_args.__tmp_0_0),
  1.8350 -                            {
  1.8351 -                                1,
  1.8352 -                                0,
  1.8353 -                                1,
  1.8354 -                                0
  1.8355 -                            },
  1.8356 -                            sizeof(struct MBRecContext)
  1.8357 -                        },
  1.8358 -                        {
  1.8359 -                            (void **) &imm_args.__tmp_1_0,
  1.8360 -                            ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.8361 -                            {
  1.8362 -                                1,
  1.8363 -                                0,
  1.8364 -                                1,
  1.8365 -                                0
  1.8366 -                            },
  1.8367 -                            sizeof(SliceBufferEntry)
  1.8368 -                        },
  1.8369 -                        {
  1.8370 -                            (void **) &imm_args.__tmp_3_0,
  1.8371 -                            ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.8372 -                            {
  1.8373 -                                1,
  1.8374 -                                1,
  1.8375 -                                1,
  1.8376 -                                0
  1.8377 -                            },
  1.8378 -                            sizeof(struct SuperMBTask)
  1.8379 -                        }
  1.8380 -                    };
  1.8381 -                    dyn_props.priority = 0;
  1.8382 -                    err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_5_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.8383 -                    if (err != NANOS_OK)
  1.8384 -                        nanos_handle_error(err);
  1.8385 -                }
  1.8386 -            }
  1.8387 -            ;
  1.8388 -        }
  1.8389 +      }
  1.8390      }
  1.8391 -    return sm;
  1.8392 +  return sm;
  1.8393  }
  1.8394  static void release_ref_list_task(H264Context *h, SuperMBContext *smbc, MBRecContext *d, SliceBufferEntry *sbe, SuperMBTask *lastsmb, int *release)
  1.8395  {
  1.8396 -    H264Slice *s = &sbe->slice;
  1.8397 -    for (int i = 0;
  1.8398 -        i < s->release_cnt;
  1.8399 -        i++)
  1.8400 +  H264Slice *s = &(*sbe).slice;
  1.8401 +  for (int i = 0; i < (*s).release_cnt; i++)
  1.8402      {
  1.8403 -        for (int j = 0;
  1.8404 -            j < h->max_dpb_cnt;
  1.8405 -            j++)
  1.8406 +      {
  1.8407 +        for (int j = 0; j < (*h).max_dpb_cnt; j++)
  1.8408 +          {
  1.8409 +            {
  1.8410 +              if ((*h).dpb[j].cpn == (*s).release_ref_cpn[i])
  1.8411 +                {
  1.8412 +                  {
  1.8413 +                    {
  1.8414 +                      nanos_err_t err;
  1.8415 +                      err = nanos_set_lock(&nanos_critical_lock_dpb);
  1.8416 +                      if (err != NANOS_OK)
  1.8417 +                        {
  1.8418 +                          nanos_handle_error(err);
  1.8419 +                        }
  1.8420 +                      release_dpb_entry(h, &(*h).dpb[j], 2);
  1.8421 +                      err = nanos_unset_lock(&nanos_critical_lock_dpb);
  1.8422 +                      if (err != NANOS_OK)
  1.8423 +                        {
  1.8424 +                          nanos_handle_error(err);
  1.8425 +                        }
  1.8426 +                    }
  1.8427 +                    break;
  1.8428 +                  }
  1.8429 +                }
  1.8430 +            }
  1.8431 +          }
  1.8432 +      }
  1.8433 +    }
  1.8434 +  (*s).release_cnt = 0;
  1.8435 +  release_smbc(h, smbc);
  1.8436 +}
  1.8437 +struct OutputContext;
  1.8438 +typedef struct OutputContext OutputContext;
  1.8439 +DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height);
  1.8440 +static void output_task(H264Context *h, OutputContext *oc, SliceBufferEntry *sbe)
  1.8441 +{
  1.8442 +  DecodedPicture *out = output_frame(h, oc, (*sbe).slice.curr_pic, (*h).ofile, (*h).frame_width, (*h).frame_height);
  1.8443 +  if (out)
  1.8444 +    {
  1.8445 +      {
  1.8446          {
  1.8447 -            if (h->dpb[j].cpn == s->release_ref_cpn[i])
  1.8448 +          nanos_err_t err;
  1.8449 +          err = nanos_set_lock(&nanos_critical_lock_dpb);
  1.8450 +          if (err != NANOS_OK)
  1.8451              {
  1.8452 -                {
  1.8453 -                    nanos_set_lock(&_nx_u_dpb_critical_lock);
  1.8454 -                    release_dpb_entry(h, &h->dpb[j], 2);
  1.8455 -                    nanos_unset_lock(&_nx_u_dpb_critical_lock);
  1.8456 -                }
  1.8457 -                break;
  1.8458 +              nanos_handle_error(err);
  1.8459 +            }
  1.8460 +          release_dpb_entry(h, out, 1);
  1.8461 +          err = nanos_unset_lock(&nanos_critical_lock_dpb);
  1.8462 +          if (err != NANOS_OK)
  1.8463 +            {
  1.8464 +              nanos_handle_error(err);
  1.8465              }
  1.8466          }
  1.8467 -    }
  1.8468 -    s->release_cnt = 0;
  1.8469 -    release_smbc(h, smbc);
  1.8470 -}
  1.8471 -static void output_task(H264Context *h, OutputContext *oc, SliceBufferEntry *sbe)
  1.8472 -{
  1.8473 -    DecodedPicture *out = output_frame(h, oc, sbe->slice.curr_pic, h->ofile, h->frame_width, h->frame_height);
  1.8474 -    if (out)
  1.8475 -    {
  1.8476 -        {
  1.8477 -            nanos_set_lock(&_nx_u_dpb_critical_lock);
  1.8478 -            release_dpb_entry(h, out, 1);
  1.8479 -            nanos_unset_lock(&_nx_u_dpb_critical_lock);
  1.8480 -        }
  1.8481 +      }
  1.8482      }
  1.8483  }
  1.8484 -typedef struct _nx_data_env_6_t_tag
  1.8485 +void *av_mallocz(unsigned int size)__attribute__((__malloc__));
  1.8486 +ParserContext *get_parse_context(int ifile);
  1.8487 +NalContext *get_nal_context(int width, int height);
  1.8488 +EntropyContext *get_entropy_context(H264Context *h);
  1.8489 +MBRecContext *get_mbrec_context(H264Context *h);
  1.8490 +OutputContext *get_output_context(H264Context *h);
  1.8491 +void av_start_timer();
  1.8492 +struct  ParserContext
  1.8493  {
  1.8494 -        struct H264Context *__tmp_0_0;
  1.8495 -        struct ParserContext *__tmp_1_0;
  1.8496 -        struct NalContext *__tmp_2_0;
  1.8497 -        SliceBufferEntry *__tmp_3_0;
  1.8498 -} _nx_data_env_6_t;
  1.8499 -int h264_decode_ompss(H264Context *h);
  1.8500 -static void _smp__ol_h264_decode_ompss_6(_nx_data_env_6_t *const __restrict__ _args)
  1.8501 +  int ifile;
  1.8502 +  int ofile;
  1.8503 +  int buffer_size;
  1.8504 +  int eof_reached;
  1.8505 +  uint8_t *data;
  1.8506 +  int size;
  1.8507 +  uint8_t *cur_ptr;
  1.8508 +  int cur_len;
  1.8509 +  int64_t frame_offset;
  1.8510 +  int64_t cur_offset;
  1.8511 +  int64_t next_frame_offset;
  1.8512 +  int pict_type;
  1.8513 +  int repeat_pict;
  1.8514 +  int key_frame;
  1.8515 +  int64_t pos;
  1.8516 +  int64_t last_pos;
  1.8517 +  int final_frame;
  1.8518 +  uint8_t overread[5];
  1.8519 +  int overread_cnt;
  1.8520 +  int index;
  1.8521 +  int last_index;
  1.8522 +  int frame_start_found;
  1.8523 +  uint32_t state;
  1.8524 +};
  1.8525 +struct  nanos_args_6_t
  1.8526  {
  1.8527 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8528 -    struct ParserContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8529 -    struct NalContext *___tmp_2_0 = _args->__tmp_2_0;
  1.8530 -    SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
  1.8531 -    /* Translation is done by the runtime */
  1.8532 -    {
  1.8533 -        parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
  1.8534 -    }
  1.8535 -}
  1.8536 -typedef struct _nx_data_env_7_t_tag
  1.8537 +  H264Context *h;
  1.8538 +  ParserContext *pc;
  1.8539 +  NalContext *nc;
  1.8540 +  SliceBufferEntry *sbe;
  1.8541 +};
  1.8542 +static void smp_ol_parse_task_13(struct nanos_args_6_t *const args);
  1.8543 +struct SPS;
  1.8544 +typedef struct SPS SPS;
  1.8545 +enum AVColorPrimaries
  1.8546  {
  1.8547 -        struct H264Context *__tmp_0_0;
  1.8548 -        struct EntropyContext *__tmp_1_0;
  1.8549 -        SliceBufferEntry *__tmp_2_0;
  1.8550 -} _nx_data_env_7_t;
  1.8551 -int h264_decode_ompss(H264Context *h);
  1.8552 -static void _smp__ol_h264_decode_ompss_7(_nx_data_env_7_t *const __restrict__ _args)
  1.8553 +  AVCOL_PRI_BT709 = 1,
  1.8554 +  AVCOL_PRI_UNSPECIFIED = 2,
  1.8555 +  AVCOL_PRI_BT470M = 4,
  1.8556 +  AVCOL_PRI_BT470BG = 5,
  1.8557 +  AVCOL_PRI_SMPTE170M = 6,
  1.8558 +  AVCOL_PRI_SMPTE240M = 7,
  1.8559 +  AVCOL_PRI_FILM = 8,
  1.8560 +  AVCOL_PRI_NB = 9
  1.8561 +};
  1.8562 +enum AVColorTransferCharacteristic
  1.8563  {
  1.8564 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8565 -    struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8566 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8567 -    /* Translation is done by the runtime */
  1.8568 -    {
  1.8569 -        decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.8570 -    }
  1.8571 -}
  1.8572 -typedef struct _nx_data_env_8_t_tag
  1.8573 +  AVCOL_TRC_BT709 = 1,
  1.8574 +  AVCOL_TRC_UNSPECIFIED = 2,
  1.8575 +  AVCOL_TRC_GAMMA22 = 4,
  1.8576 +  AVCOL_TRC_GAMMA28 = 5,
  1.8577 +  AVCOL_TRC_NB = 6
  1.8578 +};
  1.8579 +enum AVColorSpace
  1.8580  {
  1.8581 -        struct H264Context *__tmp_0_0;
  1.8582 -        struct ParserContext *__tmp_1_0;
  1.8583 -        struct NalContext *__tmp_2_0;
  1.8584 -        SliceBufferEntry *__tmp_3_0;
  1.8585 -} _nx_data_env_8_t;
  1.8586 -int h264_decode_ompss(H264Context *h);
  1.8587 -static void _smp__ol_h264_decode_ompss_8(_nx_data_env_8_t *const __restrict__ _args)
  1.8588 +  AVCOL_SPC_RGB = 0,
  1.8589 +  AVCOL_SPC_BT709 = 1,
  1.8590 +  AVCOL_SPC_UNSPECIFIED = 2,
  1.8591 +  AVCOL_SPC_FCC = 4,
  1.8592 +  AVCOL_SPC_BT470BG = 5,
  1.8593 +  AVCOL_SPC_SMPTE170M = 6,
  1.8594 +  AVCOL_SPC_SMPTE240M = 7,
  1.8595 +  AVCOL_SPC_NB = 8
  1.8596 +};
  1.8597 +struct  SPS
  1.8598  {
  1.8599 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8600 -    struct ParserContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8601 -    struct NalContext *___tmp_2_0 = _args->__tmp_2_0;
  1.8602 -    SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
  1.8603 -    /* Translation is done by the runtime */
  1.8604 -    {
  1.8605 -        parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
  1.8606 -    }
  1.8607 -}
  1.8608 -typedef struct _nx_data_env_9_t_tag
  1.8609 +  int profile_idc;
  1.8610 +  int level_idc;
  1.8611 +  int chroma_format_idc;
  1.8612 +  int transform_bypass;
  1.8613 +  int log2_max_frame_num;
  1.8614 +  int poc_type;
  1.8615 +  int log2_max_poc_lsb;
  1.8616 +  int delta_pic_order_always_zero_flag;
  1.8617 +  int offset_for_non_ref_pic;
  1.8618 +  int offset_for_top_to_bottom_field;
  1.8619 +  int poc_cycle_length;
  1.8620 +  int ref_frame_count;
  1.8621 +  int gaps_in_frame_num_allowed_flag;
  1.8622 +  int mb_width;
  1.8623 +  int mb_height;
  1.8624 +  int frame_mbs_only_flag;
  1.8625 +  int mb_aff;
  1.8626 +  int direct_8x8_inference_flag;
  1.8627 +  int crop;
  1.8628 +  unsigned int crop_left;
  1.8629 +  unsigned int crop_right;
  1.8630 +  unsigned int crop_top;
  1.8631 +  unsigned int crop_bottom;
  1.8632 +  int vui_parameters_present_flag;
  1.8633 +  int num;
  1.8634 +  int den;
  1.8635 +  int video_signal_type_present_flag;
  1.8636 +  int full_range;
  1.8637 +  int colour_description_present_flag;
  1.8638 +  enum AVColorPrimaries color_primaries;
  1.8639 +  enum AVColorTransferCharacteristic color_trc;
  1.8640 +  enum AVColorSpace colorspace;
  1.8641 +  int timing_info_present_flag;
  1.8642 +  uint32_t num_units_in_tick;
  1.8643 +  uint32_t time_scale;
  1.8644 +  int fixed_frame_rate_flag;
  1.8645 +  short int offset_for_ref_frame[256];
  1.8646 +  int bitstream_restriction_flag;
  1.8647 +  int num_reorder_frames;
  1.8648 +  int scaling_matrix_present;
  1.8649 +  uint8_t scaling_matrix4[6][16];
  1.8650 +  uint8_t scaling_matrix8[2][64];
  1.8651 +  int nal_hrd_parameters_present_flag;
  1.8652 +  int vcl_hrd_parameters_present_flag;
  1.8653 +  int pic_struct_present_flag;
  1.8654 +  int time_offset_length;
  1.8655 +  int cpb_cnt;
  1.8656 +  int initial_cpb_removal_delay_length;
  1.8657 +  int cpb_removal_delay_length;
  1.8658 +  int dpb_output_delay_length;
  1.8659 +  int bit_depth_luma;
  1.8660 +  int bit_depth_chroma;
  1.8661 +  int residual_color_transform_flag;
  1.8662 +};
  1.8663 +struct  PictureInfo
  1.8664  {
  1.8665 -        struct H264Context *__tmp_0_0;
  1.8666 -        struct EntropyContext *__tmp_1_0;
  1.8667 -        SliceBufferEntry *__tmp_2_0;
  1.8668 -} _nx_data_env_9_t;
  1.8669 -int h264_decode_ompss(H264Context *h);
  1.8670 -static void _smp__ol_h264_decode_ompss_9(_nx_data_env_9_t *const __restrict__ _args)
  1.8671 +  int ref_poc[2][16];
  1.8672 +  int ref_count[2];
  1.8673 +  int poc;
  1.8674 +  int frame_num;
  1.8675 +  int pic_id;
  1.8676 +  int long_ref;
  1.8677 +  int cpn;
  1.8678 +  int slice_type_nos;
  1.8679 +  int reference;
  1.8680 +};
  1.8681 +enum mcc_enum_anon_20
  1.8682  {
  1.8683 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8684 -    struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8685 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8686 -    /* Translation is done by the runtime */
  1.8687 -    {
  1.8688 -        decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.8689 -    }
  1.8690 -}
  1.8691 -typedef struct _nx_data_env_10_t_tag
  1.8692 +  SEI_PIC_STRUCT_FRAME = 0,
  1.8693 +  SEI_PIC_STRUCT_TOP_FIELD = 1,
  1.8694 +  SEI_PIC_STRUCT_BOTTOM_FIELD = 2,
  1.8695 +  SEI_PIC_STRUCT_TOP_BOTTOM = 3,
  1.8696 +  SEI_PIC_STRUCT_BOTTOM_TOP = 4,
  1.8697 +  SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5,
  1.8698 +  SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6,
  1.8699 +  SEI_PIC_STRUCT_FRAME_DOUBLING = 7,
  1.8700 +  SEI_PIC_STRUCT_FRAME_TRIPLING = 8
  1.8701 +};
  1.8702 +typedef enum mcc_enum_anon_20 SEI_PicStructType;
  1.8703 +struct  NalContext
  1.8704  {
  1.8705 -        struct H264Context *__tmp_0_0;
  1.8706 -        struct MBRecContext *__tmp_1_0;
  1.8707 -        SliceBufferEntry *__tmp_2_0;
  1.8708 -        int *__tmp_3_0;
  1.8709 -} _nx_data_env_10_t;
  1.8710 -int h264_decode_ompss(H264Context *h);
  1.8711 -static void _smp__ol_h264_decode_ompss_10(_nx_data_env_10_t *const __restrict__ _args)
  1.8712 +  SPS *sps_buffers[32];
  1.8713 +  PPS *pps_buffers[256];
  1.8714 +  SPS sps;
  1.8715 +  PictureInfo picture[17];
  1.8716 +  PictureInfo *release_ref[66];
  1.8717 +  PictureInfo *short_ref[32];
  1.8718 +  PictureInfo *long_ref[32];
  1.8719 +  int long_ref_count;
  1.8720 +  int short_ref_count;
  1.8721 +  uint32_t coded_pic_num;
  1.8722 +  int poc_lsb;
  1.8723 +  int poc_msb;
  1.8724 +  uint32_t poc_offset;
  1.8725 +  int delta_poc;
  1.8726 +  int frame_num;
  1.8727 +  int prev_poc_msb;
  1.8728 +  int prev_poc_lsb;
  1.8729 +  int frame_num_offset;
  1.8730 +  int prev_frame_num_offset;
  1.8731 +  int prev_frame_num;
  1.8732 +  int max_pic_num;
  1.8733 +  int redundant_pic_count;
  1.8734 +  int outputed_poc;
  1.8735 +  int ip_id;
  1.8736 +  int b4_stride;
  1.8737 +  int mb_stride;
  1.8738 +  int mb_width;
  1.8739 +  int mb_height;
  1.8740 +  int width;
  1.8741 +  int height;
  1.8742 +  int has_b_frames;
  1.8743 +  SEI_PicStructType sei_pic_struct;
  1.8744 +  int sei_ct_type;
  1.8745 +  int sei_dpb_output_delay;
  1.8746 +  int sei_cpb_removal_delay;
  1.8747 +  int sei_recovery_frame_cnt;
  1.8748 +  int sei_buffering_period_present;
  1.8749 +  int initial_cpb_removal_delay[32];
  1.8750 +};
  1.8751 +struct  nanos_args_7_t
  1.8752  {
  1.8753 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8754 -    struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8755 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8756 -    int *___tmp_3_0 = _args->__tmp_3_0;
  1.8757 -    /* Translation is done by the runtime */
  1.8758 -    {
  1.8759 -        init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
  1.8760 -    }
  1.8761 -}
  1.8762 -typedef struct _nx_data_env_11_t_tag
  1.8763 +  H264Context *h;
  1.8764 +  EntropyContext *ec;
  1.8765 +  SliceBufferEntry *sbe;
  1.8766 +};
  1.8767 +static void smp_ol_decode_slice_entropy_task_15(struct nanos_args_7_t *const args);
  1.8768 +struct  nanos_args_8_t
  1.8769  {
  1.8770 -        struct H264Context *__tmp_0_0;
  1.8771 -        struct SuperMBContext *__tmp_1_0;
  1.8772 -        struct MBRecContext *__tmp_2_0;
  1.8773 -        SliceBufferEntry *__tmp_3_0;
  1.8774 -        struct SuperMBTask *__tmp_4_0;
  1.8775 -        int *__tmp_5_0;
  1.8776 -} _nx_data_env_11_t;
  1.8777 -int h264_decode_ompss(H264Context *h);
  1.8778 -static void _smp__ol_h264_decode_ompss_11(_nx_data_env_11_t *const __restrict__ _args)
  1.8779 +  H264Context *h;
  1.8780 +  ParserContext *pc;
  1.8781 +  NalContext *nc;
  1.8782 +  SliceBufferEntry *sbe;
  1.8783 +};
  1.8784 +static void smp_ol_parse_task_17(struct nanos_args_8_t *const args);
  1.8785 +struct  nanos_args_9_t
  1.8786  {
  1.8787 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8788 -    struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8789 -    struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0;
  1.8790 -    SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
  1.8791 -    struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
  1.8792 -    int *___tmp_5_0 = _args->__tmp_5_0;
  1.8793 -    /* Translation is done by the runtime */
  1.8794 -    {
  1.8795 -        release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
  1.8796 -    }
  1.8797 -}
  1.8798 -typedef struct _nx_data_env_12_t_tag
  1.8799 +  H264Context *h;
  1.8800 +  EntropyContext *ec;
  1.8801 +  SliceBufferEntry *sbe;
  1.8802 +};
  1.8803 +static void smp_ol_decode_slice_entropy_task_19(struct nanos_args_9_t *const args);
  1.8804 +struct  nanos_args_10_t
  1.8805  {
  1.8806 -        struct H264Context *__tmp_0_0;
  1.8807 -        struct OutputContext *__tmp_1_0;
  1.8808 -        SliceBufferEntry *__tmp_2_0;
  1.8809 -} _nx_data_env_12_t;
  1.8810 -int h264_decode_ompss(H264Context *h);
  1.8811 -static void _smp__ol_h264_decode_ompss_12(_nx_data_env_12_t *const __restrict__ _args)
  1.8812 +  H264Context *h;
  1.8813 +  MBRecContext *d;
  1.8814 +  SliceBufferEntry *sbe;
  1.8815 +  int *init;
  1.8816 +};
  1.8817 +static void smp_ol_init_ref_list_and_get_dpb_task_21(struct nanos_args_10_t *const args);
  1.8818 +struct  nanos_args_11_t
  1.8819  {
  1.8820 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8821 -    struct OutputContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8822 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8823 -    /* Translation is done by the runtime */
  1.8824 -    {
  1.8825 -        output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.8826 -    }
  1.8827 -}
  1.8828 -typedef struct _nx_data_env_13_t_tag
  1.8829 +  H264Context *h;
  1.8830 +  SuperMBContext *smbc;
  1.8831 +  MBRecContext *d;
  1.8832 +  SliceBufferEntry *sbe;
  1.8833 +  SuperMBTask *lastsmb;
  1.8834 +  int *release;
  1.8835 +};
  1.8836 +static void smp_ol_release_ref_list_task_23(struct nanos_args_11_t *const args);
  1.8837 +struct  nanos_args_12_t
  1.8838  {
  1.8839 -        struct H264Context *__tmp_0_0;
  1.8840 -        struct MBRecContext *__tmp_1_0;
  1.8841 -        SliceBufferEntry *__tmp_2_0;
  1.8842 -        int *__tmp_3_0;
  1.8843 -} _nx_data_env_13_t;
  1.8844 -int h264_decode_ompss(H264Context *h);
  1.8845 -static void _smp__ol_h264_decode_ompss_13(_nx_data_env_13_t *const __restrict__ _args)
  1.8846 +  H264Context *h;
  1.8847 +  OutputContext *oc;
  1.8848 +  SliceBufferEntry *sbe;
  1.8849 +};
  1.8850 +static void smp_ol_output_task_25(struct nanos_args_12_t *const args);
  1.8851 +struct  OutputContext
  1.8852  {
  1.8853 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8854 -    struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8855 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8856 -    int *___tmp_3_0 = _args->__tmp_3_0;
  1.8857 -    /* Translation is done by the runtime */
  1.8858 -    {
  1.8859 -        init_ref_list_and_get_dpb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
  1.8860 -    }
  1.8861 -}
  1.8862 -typedef struct _nx_data_env_14_t_tag
  1.8863 +  int bit_buffer_size;
  1.8864 +  uint8_t *bit_buffer;
  1.8865 +  uint64_t video_size;
  1.8866 +  int frame_number;
  1.8867 +  DecodedPicture *delayed_pic[33];
  1.8868 +  int dp_cnt;
  1.8869 +};
  1.8870 +struct  nanos_args_13_t
  1.8871  {
  1.8872 -        struct H264Context *__tmp_0_0;
  1.8873 -        struct SuperMBContext *__tmp_1_0;
  1.8874 -        struct MBRecContext *__tmp_2_0;
  1.8875 -        SliceBufferEntry *__tmp_3_0;
  1.8876 -        struct SuperMBTask *__tmp_4_0;
  1.8877 -        int *__tmp_5_0;
  1.8878 -} _nx_data_env_14_t;
  1.8879 -int h264_decode_ompss(H264Context *h);
  1.8880 -static void _smp__ol_h264_decode_ompss_14(_nx_data_env_14_t *const __restrict__ _args)
  1.8881 +  H264Context *h;
  1.8882 +  MBRecContext *d;
  1.8883 +  SliceBufferEntry *sbe;
  1.8884 +  int *init;
  1.8885 +};
  1.8886 +static void smp_ol_init_ref_list_and_get_dpb_task_27(struct nanos_args_13_t *const args);
  1.8887 +struct  nanos_args_14_t
  1.8888  {
  1.8889 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8890 -    struct SuperMBContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8891 -    struct MBRecContext *___tmp_2_0 = _args->__tmp_2_0;
  1.8892 -    SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
  1.8893 -    struct SuperMBTask *___tmp_4_0 = _args->__tmp_4_0;
  1.8894 -    int *___tmp_5_0 = _args->__tmp_5_0;
  1.8895 -    /* Translation is done by the runtime */
  1.8896 -    {
  1.8897 -        release_ref_list_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0), (___tmp_4_0), (___tmp_5_0));
  1.8898 -    }
  1.8899 -}
  1.8900 -typedef struct _nx_data_env_15_t_tag
  1.8901 +  H264Context *h;
  1.8902 +  SuperMBContext *smbc;
  1.8903 +  MBRecContext *d;
  1.8904 +  SliceBufferEntry *sbe;
  1.8905 +  SuperMBTask *lastsmb;
  1.8906 +  int *release;
  1.8907 +};
  1.8908 +static void smp_ol_release_ref_list_task_29(struct nanos_args_14_t *const args);
  1.8909 +struct  nanos_args_15_t
  1.8910  {
  1.8911 -        struct H264Context *__tmp_0_0;
  1.8912 -        struct OutputContext *__tmp_1_0;
  1.8913 -        SliceBufferEntry *__tmp_2_0;
  1.8914 -} _nx_data_env_15_t;
  1.8915 -int h264_decode_ompss(H264Context *h);
  1.8916 -static void _smp__ol_h264_decode_ompss_15(_nx_data_env_15_t *const __restrict__ _args)
  1.8917 +  H264Context *h;
  1.8918 +  OutputContext *oc;
  1.8919 +  SliceBufferEntry *sbe;
  1.8920 +};
  1.8921 +static void smp_ol_output_task_31(struct nanos_args_15_t *const args);
  1.8922 +struct  nanos_args_16_t
  1.8923  {
  1.8924 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8925 -    struct OutputContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8926 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8927 -    /* Translation is done by the runtime */
  1.8928 -    {
  1.8929 -        output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.8930 -    }
  1.8931 -}
  1.8932 -typedef struct _nx_data_env_16_t_tag
  1.8933 +  H264Context *h;
  1.8934 +  ParserContext *pc;
  1.8935 +  NalContext *nc;
  1.8936 +  SliceBufferEntry *sbe;
  1.8937 +};
  1.8938 +static void smp_ol_parse_task_33(struct nanos_args_16_t *const args);
  1.8939 +struct  nanos_args_17_t
  1.8940  {
  1.8941 -        struct H264Context *__tmp_0_0;
  1.8942 -        struct ParserContext *__tmp_1_0;
  1.8943 -        struct NalContext *__tmp_2_0;
  1.8944 -        SliceBufferEntry *__tmp_3_0;
  1.8945 -} _nx_data_env_16_t;
  1.8946 -int h264_decode_ompss(H264Context *h);
  1.8947 -static void _smp__ol_h264_decode_ompss_16(_nx_data_env_16_t *const __restrict__ _args)
  1.8948 +  H264Context *h;
  1.8949 +  EntropyContext *ec;
  1.8950 +  SliceBufferEntry *sbe;
  1.8951 +};
  1.8952 +static void smp_ol_decode_slice_entropy_task_35(struct nanos_args_17_t *const args);
  1.8953 +struct  nanos_args_18_t
  1.8954  {
  1.8955 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8956 -    struct ParserContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8957 -    struct NalContext *___tmp_2_0 = _args->__tmp_2_0;
  1.8958 -    SliceBufferEntry *___tmp_3_0 = _args->__tmp_3_0;
  1.8959 -    /* Translation is done by the runtime */
  1.8960 -    {
  1.8961 -        parse_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0), (___tmp_3_0));
  1.8962 -    }
  1.8963 -}
  1.8964 -typedef struct _nx_data_env_17_t_tag
  1.8965 +  H264Context *h;
  1.8966 +  MBRecContext *d;
  1.8967 +  SliceBufferEntry *sbe;
  1.8968 +};
  1.8969 +static void smp_ol_decode_slice_mb_task_37(struct nanos_args_18_t *const args);
  1.8970 +struct  nanos_args_19_t
  1.8971  {
  1.8972 -        struct H264Context *__tmp_0_0;
  1.8973 -        struct EntropyContext *__tmp_1_0;
  1.8974 -        SliceBufferEntry *__tmp_2_0;
  1.8975 -} _nx_data_env_17_t;
  1.8976 -int h264_decode_ompss(H264Context *h);
  1.8977 -static void _smp__ol_h264_decode_ompss_17(_nx_data_env_17_t *const __restrict__ _args)
  1.8978 -{
  1.8979 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8980 -    struct EntropyContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8981 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8982 -    /* Translation is done by the runtime */
  1.8983 -    {
  1.8984 -        decode_slice_entropy_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.8985 -    }
  1.8986 -}
  1.8987 -typedef struct _nx_data_env_18_t_tag
  1.8988 -{
  1.8989 -        struct H264Context *__tmp_0_0;
  1.8990 -        struct MBRecContext *__tmp_1_0;
  1.8991 -        SliceBufferEntry *__tmp_2_0;
  1.8992 -} _nx_data_env_18_t;
  1.8993 -int h264_decode_ompss(H264Context *h);
  1.8994 -static void _smp__ol_h264_decode_ompss_18(_nx_data_env_18_t *const __restrict__ _args)
  1.8995 -{
  1.8996 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.8997 -    struct MBRecContext *___tmp_1_0 = _args->__tmp_1_0;
  1.8998 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.8999 -    /* Translation is done by the runtime */
  1.9000 -    {
  1.9001 -        decode_slice_mb_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.9002 -    }
  1.9003 -}
  1.9004 -typedef struct _nx_data_env_19_t_tag
  1.9005 -{
  1.9006 -        struct H264Context *__tmp_0_0;
  1.9007 -        struct OutputContext *__tmp_1_0;
  1.9008 -        SliceBufferEntry *__tmp_2_0;
  1.9009 -} _nx_data_env_19_t;
  1.9010 -int h264_decode_ompss(H264Context *h);
  1.9011 -static void _smp__ol_h264_decode_ompss_19(_nx_data_env_19_t *const __restrict__ _args)
  1.9012 -{
  1.9013 -    struct H264Context *___tmp_0_0 = _args->__tmp_0_0;
  1.9014 -    struct OutputContext *___tmp_1_0 = _args->__tmp_1_0;
  1.9015 -    SliceBufferEntry *___tmp_2_0 = _args->__tmp_2_0;
  1.9016 -    /* Translation is done by the runtime */
  1.9017 -    {
  1.9018 -        output_task((___tmp_0_0), (___tmp_1_0), (___tmp_2_0));
  1.9019 -    }
  1.9020 -}
  1.9021 +  H264Context *h;
  1.9022 +  OutputContext *oc;
  1.9023 +  SliceBufferEntry *sbe;
  1.9024 +};
  1.9025 +static void smp_ol_output_task_39(struct nanos_args_19_t *const args);
  1.9026 +extern nanos_err_t nanos_wg_wait_completion(void *wg, _Bool avoid_flush);
  1.9027 +void free_parse_context(ParserContext *pc);
  1.9028 +void free_nal_context(NalContext *nc);
  1.9029 +void free_output_context(OutputContext *oc);
  1.9030 +void free_sb_entry(SliceBufferEntry *sb);
  1.9031 +void free_entropy_context(EntropyContext *ec);
  1.9032 +void av_free(void *ptr);
  1.9033 +void free_mbrec_context(MBRecContext *d);
  1.9034  int h264_decode_ompss(H264Context *h)
  1.9035  {
  1.9036 -    const int bufs = h->pipe_bufs;
  1.9037 -    ParserContext *pc;
  1.9038 -    NalContext *nc;
  1.9039 -    EntropyContext *ec[bufs];
  1.9040 -    MBRecContext *rc[2];
  1.9041 -    OutputContext *oc;
  1.9042 -    SliceBufferEntry *sbe;
  1.9043 -    SuperMBContext *smbc;
  1.9044 -    DecodedPicture *out;
  1.9045 -    int frames = 0;
  1.9046 -    sbe = av_mallocz(sizeof(SliceBufferEntry) * bufs);
  1.9047 -    pc = get_parse_context(h->ifile);
  1.9048 -    nc = get_nal_context(h->width, h->height);
  1.9049 -    for (int i = 0;
  1.9050 -        i < bufs;
  1.9051 -        i++)
  1.9052 +  SliceBufferEntry *sbe;
  1.9053 +  ParserContext *pc;
  1.9054 +  NalContext *nc;
  1.9055 +  MBRecContext *rc[2];
  1.9056 +  OutputContext *oc;
  1.9057 +  int init;
  1.9058 +  SuperMBContext *smbc;
  1.9059 +  int release;
  1.9060 +  DecodedPicture *out;
  1.9061 +  const int bufs = (*h).pipe_bufs;
  1.9062 +  EntropyContext *ec[bufs];
  1.9063 +  int frames = 0;
  1.9064 +  sbe = av_mallocz(sizeof(SliceBufferEntry) * bufs);
  1.9065 +  pc = get_parse_context((*h).ifile);
  1.9066 +  nc = get_nal_context((*h).width, (*h).height);
  1.9067 +  for (int i = 0; i < bufs; i++)
  1.9068      {
  1.9069 +      {
  1.9070          ec[i] = get_entropy_context(h);
  1.9071 +      }
  1.9072      }
  1.9073 -    for (int i = 0;
  1.9074 -        i < 2;
  1.9075 -        i++)
  1.9076 +  for (int i = 0; i < 2; i++)
  1.9077      {
  1.9078 +      {
  1.9079          rc[i] = get_mbrec_context(h);
  1.9080 +      }
  1.9081      }
  1.9082 -    oc = get_output_context(h);
  1.9083 -    av_start_timer();
  1.9084 -    int k = 0;
  1.9085 -    int init, release;
  1.9086 -    if (h->static_3d && bufs < h->num_frames)
  1.9087 +  oc = get_output_context(h);
  1.9088 +  av_start_timer();
  1.9089 +  int k = 0;
  1.9090 +  if ((*h).static_3d && bufs < (*h).num_frames)
  1.9091      {
  1.9092 +      {
  1.9093          int num_pre_ed = 0;
  1.9094 -        for (num_pre_ed = 0;
  1.9095 -            num_pre_ed < bufs - 1 && !pc->final_frame;
  1.9096 -            num_pre_ed++)
  1.9097 -        {
  1.9098 +        for (num_pre_ed = 0; num_pre_ed < bufs - 1 && !(*pc).final_frame; num_pre_ed++)
  1.9099 +          {
  1.9100              {
  1.9101 -                struct H264Context *__tmp_0 = h;
  1.9102 -                struct ParserContext *__tmp_1 = pc;
  1.9103 -                struct NalContext *__tmp_2 = nc;
  1.9104 -                SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
  1.9105 -                {
  1.9106 -                    /* SMP device descriptor */
  1.9107 -                    static nanos_smp_args_t _ol_h264_decode_ompss_6_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_6};
  1.9108 -                    _nx_data_env_6_t *ol_args = (_nx_data_env_6_t *) 0;
  1.9109 -                    nanos_wd_t wd = (nanos_wd_t) 0;
  1.9110 -                    struct nanos_const_wd_definition_local_t
  1.9111 +              nanos_err_t mcc_err_in_final_6;
  1.9112 +              _Bool mcc_is_in_final_6;
  1.9113 +              nanos_err_t mcc_err_in_final_7;
  1.9114 +              _Bool mcc_is_in_final_7;
  1.9115 +              mcc_err_in_final_6 = nanos_in_final(&mcc_is_in_final_6);
  1.9116 +              {
  1.9117 +                H264Context *mcc_arg_34 = h;
  1.9118 +                ParserContext *mcc_arg_35 = pc;
  1.9119 +                NalContext *mcc_arg_36 = nc;
  1.9120 +                SliceBufferEntry *mcc_arg_37 = &sbe[k % bufs];
  1.9121 +                if (mcc_is_in_final_6)
  1.9122 +                  {
  1.9123 +                    parse_task(h, pc, nc, &sbe[k % bufs]);
  1.9124 +                  }
  1.9125 +                else
  1.9126 +                  {
  1.9127                      {
  1.9128 -                            nanos_const_wd_definition_t base;
  1.9129 -                            nanos_device_t devices[1];
  1.9130 -                    };
  1.9131 -                    static struct nanos_const_wd_definition_local_t _const_def = {
  1.9132 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9133 +                      struct nanos_args_6_t *ol_args;
  1.9134 +                      nanos_err_t err;
  1.9135 +                      struct nanos_args_6_t imm_args;
  1.9136 +                      static nanos_smp_args_t smp_ol_parse_task_13_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_6_t *))&smp_ol_parse_task_13 };
  1.9137 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_6_t), 0, 1, 0, "parse_task" }, { { &nanos_smp_factory, &smp_ol_parse_task_13_args } } };
  1.9138 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9139 +                      nanos_wd_dyn_props.priority = 0;
  1.9140 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9141 +                      ol_args = (struct nanos_args_6_t *)0;
  1.9142 +                      void *nanos_wd_ = (void *)0;
  1.9143 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_6_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9144 +                      if (err != NANOS_OK)
  1.9145                          {
  1.9146 -                            {
  1.9147 -                                0,
  1.9148 -                                1,
  1.9149 -                                0,
  1.9150 -                                0,
  1.9151 -                                0,
  1.9152 -                                0,
  1.9153 -                                0,
  1.9154 -                                0
  1.9155 -                            },
  1.9156 -                            __alignof__(_nx_data_env_6_t),
  1.9157 -                            0,
  1.9158 -                            1
  1.9159 -                        },
  1.9160 -                        {{
  1.9161 -                            nanos_smp_factory,
  1.9162 -                            &_ol_h264_decode_ompss_6_smp_args
  1.9163 -                        }}
  1.9164 -                    };
  1.9165 -                    nanos_wd_dyn_props_t dyn_props = {0};
  1.9166 -                    nanos_err_t err;
  1.9167 -                    dyn_props.priority = 0;
  1.9168 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_6_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.9169 -                    if (err != NANOS_OK)
  1.9170 -                        nanos_handle_error(err);
  1.9171 -                    if (wd != (nanos_wd_t) 0)
  1.9172 +                          nanos_handle_error(err);
  1.9173 +                        }
  1.9174 +                      /* Check pendant writes on subexpressions */
  1.9175 +                      /* End check pendant writes on subexpressions */
  1.9176 +                      if (nanos_wd_ != (void *)0)
  1.9177 +                        {
  1.9178 +                          {
  1.9179 +                            (*ol_args).h = mcc_arg_34;
  1.9180 +                            (*ol_args).pc = mcc_arg_35;
  1.9181 +                            (*ol_args).nc = mcc_arg_36;
  1.9182 +                            (*ol_args).sbe = mcc_arg_37;
  1.9183 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
  1.9184 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } };
  1.9185 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9186 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_35, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_36, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_37, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9187 +                            ;
  1.9188 +                            err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.9189 +                            if (err != NANOS_OK)
  1.9190 +                              {
  1.9191 +                                nanos_handle_error(err);
  1.9192 +                              }
  1.9193 +                          }
  1.9194 +                        }
  1.9195 +                      else
  1.9196 +                        {
  1.9197 +                          {
  1.9198 +                            imm_args.h = mcc_arg_34;
  1.9199 +                            imm_args.pc = mcc_arg_35;
  1.9200 +                            imm_args.nc = mcc_arg_36;
  1.9201 +                            imm_args.sbe = mcc_arg_37;
  1.9202 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
  1.9203 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } };
  1.9204 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9205 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_35, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_36, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_37, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9206 +                            ;
  1.9207 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_6_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9208 +                            if (err != NANOS_OK)
  1.9209 +                              {
  1.9210 +                                nanos_handle_error(err);
  1.9211 +                              }
  1.9212 +                          }
  1.9213 +                        }
  1.9214 +                    }
  1.9215 +                  }
  1.9216 +              }
  1.9217 +              mcc_err_in_final_7 = nanos_in_final(&mcc_is_in_final_7);
  1.9218 +              {
  1.9219 +                H264Context *mcc_arg_38 = h;
  1.9220 +                EntropyContext *mcc_arg_39 = ec[k % bufs];
  1.9221 +                SliceBufferEntry *mcc_arg_40 = &sbe[k % bufs];
  1.9222 +                if (mcc_is_in_final_7)
  1.9223 +                  {
  1.9224 +                    decode_slice_entropy_task(h, ec[k % bufs], &sbe[k % bufs]);
  1.9225 +                  }
  1.9226 +                else
  1.9227 +                  {
  1.9228                      {
  1.9229 -                        ol_args->__tmp_0_0 = __tmp_0;
  1.9230 -                        ol_args->__tmp_1_0 = __tmp_1;
  1.9231 -                        ol_args->__tmp_2_0 = __tmp_2;
  1.9232 -                        ol_args->__tmp_3_0 = __tmp_3;
  1.9233 -                        nanos_dependence_t _dependences[3] = {
  1.9234 -                            {
  1.9235 -                                (void **) &ol_args->__tmp_3_0,
  1.9236 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
  1.9237 -                                {
  1.9238 -                                    0,
  1.9239 -                                    1,
  1.9240 -                                    1,
  1.9241 -                                    0
  1.9242 -                                },
  1.9243 -                                sizeof(SliceBufferEntry)
  1.9244 -                            },
  1.9245 -                            {
  1.9246 -                                (void **) &ol_args->__tmp_1_0,
  1.9247 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.9248 -                                {
  1.9249 -                                    1,
  1.9250 -                                    1,
  1.9251 -                                    1,
  1.9252 -                                    0
  1.9253 -                                },
  1.9254 -                                sizeof(struct ParserContext)
  1.9255 -                            },
  1.9256 -                            {
  1.9257 -                                (void **) &ol_args->__tmp_2_0,
  1.9258 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
  1.9259 -                                {
  1.9260 -                                    1,
  1.9261 -                                    1,
  1.9262 -                                    1,
  1.9263 -                                    0
  1.9264 -                                },
  1.9265 -                                sizeof(struct NalContext)
  1.9266 -                            }
  1.9267 -                        };
  1.9268 -                        err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.9269 -                        if (err != NANOS_OK)
  1.9270 -                            nanos_handle_error(err);
  1.9271 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9272 +                      struct nanos_args_7_t *ol_args;
  1.9273 +                      nanos_err_t err;
  1.9274 +                      struct nanos_args_7_t imm_args;
  1.9275 +                      static nanos_smp_args_t smp_ol_decode_slice_entropy_task_15_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_7_t *))&smp_ol_decode_slice_entropy_task_15 };
  1.9276 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_7_t), 0, 1, 0, "decode_slice_entropy_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_entropy_task_15_args } } };
  1.9277 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9278 +                      nanos_wd_dyn_props.priority = 0;
  1.9279 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9280 +                      ol_args = (struct nanos_args_7_t *)0;
  1.9281 +                      void *nanos_wd_ = (void *)0;
  1.9282 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_7_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9283 +                      if (err != NANOS_OK)
  1.9284 +                        {
  1.9285 +                          nanos_handle_error(err);
  1.9286 +                        }
  1.9287 +                      /* Check pendant writes on subexpressions */
  1.9288 +                      /* End check pendant writes on subexpressions */
  1.9289 +                      if (nanos_wd_ != (void *)0)
  1.9290 +                        {
  1.9291 +                          {
  1.9292 +                            (*ol_args).h = mcc_arg_38;
  1.9293 +                            (*ol_args).ec = mcc_arg_39;
  1.9294 +                            (*ol_args).sbe = mcc_arg_40;
  1.9295 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } };
  1.9296 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9297 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_39, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_40, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
  1.9298 +                            ;
  1.9299 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
  1.9300 +                            if (err != NANOS_OK)
  1.9301 +                              {
  1.9302 +                                nanos_handle_error(err);
  1.9303 +                              }
  1.9304 +                          }
  1.9305 +                        }
  1.9306 +                      else
  1.9307 +                        {
  1.9308 +                          {
  1.9309 +                            imm_args.h = mcc_arg_38;
  1.9310 +                            imm_args.ec = mcc_arg_39;
  1.9311 +                            imm_args.sbe = mcc_arg_40;
  1.9312 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } };
  1.9313 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9314 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_39, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_40, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
  1.9315 +                            ;
  1.9316 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_7_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9317 +                            if (err != NANOS_OK)
  1.9318 +                              {
  1.9319 +                                nanos_handle_error(err);
  1.9320 +                              }
  1.9321 +                          }
  1.9322 +                        }
  1.9323                      }
  1.9324 -                    else
  1.9325 +                  }
  1.9326 +              }
  1.9327 +              {
  1.9328 +                nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
  1.9329 +                nanos_data_access_t dependences[1] = { { (void *)pc, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } };
  1.9330 +                ;
  1.9331 +                nanos_err_t err = nanos_wait_on(1, dependences);
  1.9332 +                if (err != NANOS_OK)
  1.9333 +                  {
  1.9334 +                    nanos_handle_error(err);
  1.9335 +                  }
  1.9336 +              }
  1.9337 +              k++;
  1.9338 +            }
  1.9339 +          }
  1.9340 +        while ((!(*pc).final_frame && frames++ < (*h).num_frames) && !(*h).quit)
  1.9341 +          {
  1.9342 +            {
  1.9343 +              nanos_err_t mcc_err_in_final_8;
  1.9344 +              _Bool mcc_is_in_final_8;
  1.9345 +              nanos_err_t mcc_err_in_final_9;
  1.9346 +              _Bool mcc_is_in_final_9;
  1.9347 +              nanos_err_t mcc_err_in_final_10;
  1.9348 +              _Bool mcc_is_in_final_10;
  1.9349 +              nanos_err_t mcc_err_in_final_11;
  1.9350 +              _Bool mcc_is_in_final_11;
  1.9351 +              nanos_err_t mcc_err_in_final_12;
  1.9352 +              _Bool mcc_is_in_final_12;
  1.9353 +              mcc_err_in_final_8 = nanos_in_final(&mcc_is_in_final_8);
  1.9354 +              {
  1.9355 +                H264Context *mcc_arg_41 = h;
  1.9356 +                ParserContext *mcc_arg_42 = pc;
  1.9357 +                NalContext *mcc_arg_43 = nc;
  1.9358 +                SliceBufferEntry *mcc_arg_44 = &sbe[k % bufs];
  1.9359 +                if (mcc_is_in_final_8)
  1.9360 +                  {
  1.9361 +                    parse_task(h, pc, nc, &sbe[k % bufs]);
  1.9362 +                  }
  1.9363 +                else
  1.9364 +                  {
  1.9365                      {
  1.9366 -                        _nx_data_env_6_t imm_args;
  1.9367 -                        imm_args.__tmp_0_0 = __tmp_0;
  1.9368 -                        imm_args.__tmp_1_0 = __tmp_1;
  1.9369 -                        imm_args.__tmp_2_0 = __tmp_2;
  1.9370 -                        imm_args.__tmp_3_0 = __tmp_3;
  1.9371 -                        nanos_dependence_t _dependences[3] = {
  1.9372 -                            {
  1.9373 -                                (void **) &imm_args.__tmp_3_0,
  1.9374 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
  1.9375 -                                {
  1.9376 -                                    0,
  1.9377 -                                    1,
  1.9378 -                                    1,
  1.9379 -                                    0
  1.9380 -                                },
  1.9381 -                                sizeof(SliceBufferEntry)
  1.9382 -                            },
  1.9383 -                            {
  1.9384 -                                (void **) &imm_args.__tmp_1_0,
  1.9385 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
  1.9386 -                                {
  1.9387 -                                    1,
  1.9388 -                                    1,
  1.9389 -                                    1,
  1.9390 -                                    0
  1.9391 -                                },
  1.9392 -                                sizeof(struct ParserContext)
  1.9393 -                            },
  1.9394 -                            {
  1.9395 -                                (void **) &imm_args.__tmp_2_0,
  1.9396 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
  1.9397 -                                {
  1.9398 -                                    1,
  1.9399 -                                    1,
  1.9400 -                                    1,
  1.9401 -                                    0
  1.9402 -                                },
  1.9403 -                                sizeof(struct NalContext)
  1.9404 -                            }
  1.9405 -                        };
  1.9406 -                        dyn_props.priority = 0;
  1.9407 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_6_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
  1.9408 -                        if (err != NANOS_OK)
  1.9409 -                            nanos_handle_error(err);
  1.9410 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9411 +                      struct nanos_args_8_t *ol_args;
  1.9412 +                      nanos_err_t err;
  1.9413 +                      struct nanos_args_8_t imm_args;
  1.9414 +                      static nanos_smp_args_t smp_ol_parse_task_17_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_8_t *))&smp_ol_parse_task_17 };
  1.9415 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_8_t), 0, 1, 0, "parse_task" }, { { &nanos_smp_factory, &smp_ol_parse_task_17_args } } };
  1.9416 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9417 +                      nanos_wd_dyn_props.priority = 0;
  1.9418 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9419 +                      ol_args = (struct nanos_args_8_t *)0;
  1.9420 +                      void *nanos_wd_ = (void *)0;
  1.9421 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_8_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9422 +                      if (err != NANOS_OK)
  1.9423 +                        {
  1.9424 +                          nanos_handle_error(err);
  1.9425 +                        }
  1.9426 +                      /* Check pendant writes on subexpressions */
  1.9427 +                      /* End check pendant writes on subexpressions */
  1.9428 +                      if (nanos_wd_ != (void *)0)
  1.9429 +                        {
  1.9430 +                          {
  1.9431 +                            (*ol_args).h = mcc_arg_41;
  1.9432 +                            (*ol_args).pc = mcc_arg_42;
  1.9433 +                            (*ol_args).nc = mcc_arg_43;
  1.9434 +                            (*ol_args).sbe = mcc_arg_44;
  1.9435 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
  1.9436 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } };
  1.9437 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9438 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_42, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_43, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_44, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9439 +                            ;
  1.9440 +                            err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.9441 +                            if (err != NANOS_OK)
  1.9442 +                              {
  1.9443 +                                nanos_handle_error(err);
  1.9444 +                              }
  1.9445 +                          }
  1.9446 +                        }
  1.9447 +                      else
  1.9448 +                        {
  1.9449 +                          {
  1.9450 +                            imm_args.h = mcc_arg_41;
  1.9451 +                            imm_args.pc = mcc_arg_42;
  1.9452 +                            imm_args.nc = mcc_arg_43;
  1.9453 +                            imm_args.sbe = mcc_arg_44;
  1.9454 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
  1.9455 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } };
  1.9456 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9457 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_42, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_43, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_44, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9458 +                            ;
  1.9459 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_8_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9460 +                            if (err != NANOS_OK)
  1.9461 +                              {
  1.9462 +                                nanos_handle_error(err);
  1.9463 +                              }
  1.9464 +                          }
  1.9465 +                        }
  1.9466                      }
  1.9467 -                }
  1.9468 +                  }
  1.9469 +              }
  1.9470 +              mcc_err_in_final_9 = nanos_in_final(&mcc_is_in_final_9);
  1.9471 +              {
  1.9472 +                H264Context *mcc_arg_45 = h;
  1.9473 +                EntropyContext *mcc_arg_46 = ec[k % bufs];
  1.9474 +                SliceBufferEntry *mcc_arg_47 = &sbe[k % bufs];
  1.9475 +                if (mcc_is_in_final_9)
  1.9476 +                  {
  1.9477 +                    decode_slice_entropy_task(h, ec[k % bufs], &sbe[k % bufs]);
  1.9478 +                  }
  1.9479 +                else
  1.9480 +                  {
  1.9481 +                    {
  1.9482 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9483 +                      struct nanos_args_9_t *ol_args;
  1.9484 +                      nanos_err_t err;
  1.9485 +                      struct nanos_args_9_t imm_args;
  1.9486 +                      static nanos_smp_args_t smp_ol_decode_slice_entropy_task_19_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_9_t *))&smp_ol_decode_slice_entropy_task_19 };
  1.9487 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_9_t), 0, 1, 0, "decode_slice_entropy_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_entropy_task_19_args } } };
  1.9488 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9489 +                      nanos_wd_dyn_props.priority = 0;
  1.9490 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9491 +                      ol_args = (struct nanos_args_9_t *)0;
  1.9492 +                      void *nanos_wd_ = (void *)0;
  1.9493 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_9_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9494 +                      if (err != NANOS_OK)
  1.9495 +                        {
  1.9496 +                          nanos_handle_error(err);
  1.9497 +                        }
  1.9498 +                      /* Check pendant writes on subexpressions */
  1.9499 +                      /* End check pendant writes on subexpressions */
  1.9500 +                      if (nanos_wd_ != (void *)0)
  1.9501 +                        {
  1.9502 +                          {
  1.9503 +                            (*ol_args).h = mcc_arg_45;
  1.9504 +                            (*ol_args).ec = mcc_arg_46;
  1.9505 +                            (*ol_args).sbe = mcc_arg_47;
  1.9506 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } };
  1.9507 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9508 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_46, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_47, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
  1.9509 +                            ;
  1.9510 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
  1.9511 +                            if (err != NANOS_OK)
  1.9512 +                              {
  1.9513 +                                nanos_handle_error(err);
  1.9514 +                              }
  1.9515 +                          }
  1.9516 +                        }
  1.9517 +                      else
  1.9518 +                        {
  1.9519 +                          {
  1.9520 +                            imm_args.h = mcc_arg_45;
  1.9521 +                            imm_args.ec = mcc_arg_46;
  1.9522 +                            imm_args.sbe = mcc_arg_47;
  1.9523 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } };
  1.9524 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9525 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_46, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_47, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
  1.9526 +                            ;
  1.9527 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_9_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9528 +                            if (err != NANOS_OK)
  1.9529 +                              {
  1.9530 +                                nanos_handle_error(err);
  1.9531 +                              }
  1.9532 +                          }
  1.9533 +                        }
  1.9534 +                    }
  1.9535 +                  }
  1.9536 +              }
  1.9537 +              k++;
  1.9538 +              mcc_err_in_final_10 = nanos_in_final(&mcc_is_in_final_10);
  1.9539 +              {
  1.9540 +                H264Context *mcc_arg_48 = h;
  1.9541 +                MBRecContext *mcc_arg_49 = rc[k % 2];
  1.9542 +                SliceBufferEntry *mcc_arg_50 = &sbe[k % bufs];
  1.9543 +                int *mcc_arg_51 = &init;
  1.9544 +                if (mcc_is_in_final_10)
  1.9545 +                  {
  1.9546 +                    init_ref_list_and_get_dpb_task(h, rc[k % 2], &sbe[k % bufs], &init);
  1.9547 +                  }
  1.9548 +                else
  1.9549 +                  {
  1.9550 +                    {
  1.9551 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9552 +                      struct nanos_args_10_t *ol_args;
  1.9553 +                      nanos_err_t err;
  1.9554 +                      struct nanos_args_10_t imm_args;
  1.9555 +                      static nanos_smp_args_t smp_ol_init_ref_list_and_get_dpb_task_21_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_10_t *))&smp_ol_init_ref_list_and_get_dpb_task_21 };
  1.9556 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_10_t), 0, 1, 0, "init_ref_list_and_get_dpb_task" }, { { &nanos_smp_factory, &smp_ol_init_ref_list_and_get_dpb_task_21_args } } };
  1.9557 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9558 +                      nanos_wd_dyn_props.priority = 0;
  1.9559 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9560 +                      ol_args = (struct nanos_args_10_t *)0;
  1.9561 +                      void *nanos_wd_ = (void *)0;
  1.9562 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_10_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9563 +                      if (err != NANOS_OK)
  1.9564 +                        {
  1.9565 +                          nanos_handle_error(err);
  1.9566 +                        }
  1.9567 +                      /* Check pendant writes on subexpressions */
  1.9568 +                      /* End check pendant writes on subexpressions */
  1.9569 +                      if (nanos_wd_ != (void *)0)
  1.9570 +                        {
  1.9571 +                          {
  1.9572 +                            (*ol_args).h = mcc_arg_48;
  1.9573 +                            (*ol_args).d = mcc_arg_49;
  1.9574 +                            (*ol_args).sbe = mcc_arg_50;
  1.9575 +                            (*ol_args).init = mcc_arg_51;
  1.9576 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9577 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9578 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9579 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_49, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_50, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_51, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9580 +                            ;
  1.9581 +                            err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.9582 +                            if (err != NANOS_OK)
  1.9583 +                              {
  1.9584 +                                nanos_handle_error(err);
  1.9585 +                              }
  1.9586 +                          }
  1.9587 +                        }
  1.9588 +                      else
  1.9589 +                        {
  1.9590 +                          {
  1.9591 +                            imm_args.h = mcc_arg_48;
  1.9592 +                            imm_args.d = mcc_arg_49;
  1.9593 +                            imm_args.sbe = mcc_arg_50;
  1.9594 +                            imm_args.init = mcc_arg_51;
  1.9595 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9596 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9597 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9598 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_49, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_50, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_51, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9599 +                            ;
  1.9600 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_10_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9601 +                            if (err != NANOS_OK)
  1.9602 +                              {
  1.9603 +                                nanos_handle_error(err);
  1.9604 +                              }
  1.9605 +                          }
  1.9606 +                        }
  1.9607 +                    }
  1.9608 +                  }
  1.9609 +              }
  1.9610 +              smbc = acquire_smbc(h);
  1.9611 +              SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc);
  1.9612 +              mcc_err_in_final_11 = nanos_in_final(&mcc_is_in_final_11);
  1.9613 +              {
  1.9614 +                H264Context *mcc_arg_52 = h;
  1.9615 +                SuperMBContext *mcc_arg_53 = smbc;
  1.9616 +                MBRecContext *mcc_arg_54 = rc[k % 2];
  1.9617 +                SliceBufferEntry *mcc_arg_55 = &sbe[k % bufs];
  1.9618 +                SuperMBTask *mcc_arg_56 = lastsmb;
  1.9619 +                int *mcc_arg_57 = &release;
  1.9620 +                if (mcc_is_in_final_11)
  1.9621 +                  {
  1.9622 +                    release_ref_list_task(h, smbc, rc[k % 2], &sbe[k % bufs], lastsmb, &release);
  1.9623 +                  }
  1.9624 +                else
  1.9625 +                  {
  1.9626 +                    {
  1.9627 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9628 +                      struct nanos_args_11_t *ol_args;
  1.9629 +                      nanos_err_t err;
  1.9630 +                      struct nanos_args_11_t imm_args;
  1.9631 +                      static nanos_smp_args_t smp_ol_release_ref_list_task_23_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_11_t *))&smp_ol_release_ref_list_task_23 };
  1.9632 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_11_t), 0, 1, 0, "release_ref_list_task" }, { { &nanos_smp_factory, &smp_ol_release_ref_list_task_23_args } } };
  1.9633 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9634 +                      nanos_wd_dyn_props.priority = 0;
  1.9635 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9636 +                      ol_args = (struct nanos_args_11_t *)0;
  1.9637 +                      void *nanos_wd_ = (void *)0;
  1.9638 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_11_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9639 +                      if (err != NANOS_OK)
  1.9640 +                        {
  1.9641 +                          nanos_handle_error(err);
  1.9642 +                        }
  1.9643 +                      /* Check pendant writes on subexpressions */
  1.9644 +                      /* End check pendant writes on subexpressions */
  1.9645 +                      if (nanos_wd_ != (void *)0)
  1.9646 +                        {
  1.9647 +                          {
  1.9648 +                            (*ol_args).h = mcc_arg_52;
  1.9649 +                            (*ol_args).smbc = mcc_arg_53;
  1.9650 +                            (*ol_args).d = mcc_arg_54;
  1.9651 +                            (*ol_args).sbe = mcc_arg_55;
  1.9652 +                            (*ol_args).lastsmb = mcc_arg_56;
  1.9653 +                            (*ol_args).release = mcc_arg_57;
  1.9654 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9655 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9656 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.9657 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9658 +                            nanos_data_access_t dependences[4] = { { (void *)mcc_arg_54, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_55, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_56, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_57, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } };
  1.9659 +                            ;
  1.9660 +                            err = nanos_submit(nanos_wd_, 4, dependences, (void *)0);
  1.9661 +                            if (err != NANOS_OK)
  1.9662 +                              {
  1.9663 +                                nanos_handle_error(err);
  1.9664 +                              }
  1.9665 +                          }
  1.9666 +                        }
  1.9667 +                      else
  1.9668 +                        {
  1.9669 +                          {
  1.9670 +                            imm_args.h = mcc_arg_52;
  1.9671 +                            imm_args.smbc = mcc_arg_53;
  1.9672 +                            imm_args.d = mcc_arg_54;
  1.9673 +                            imm_args.sbe = mcc_arg_55;
  1.9674 +                            imm_args.lastsmb = mcc_arg_56;
  1.9675 +                            imm_args.release = mcc_arg_57;
  1.9676 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9677 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9678 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.9679 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9680 +                            nanos_data_access_t dependences[4] = { { (void *)mcc_arg_54, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_55, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_56, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_57, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } };
  1.9681 +                            ;
  1.9682 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_11_t), &imm_args, 4, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9683 +                            if (err != NANOS_OK)
  1.9684 +                              {
  1.9685 +                                nanos_handle_error(err);
  1.9686 +                              }
  1.9687 +                          }
  1.9688 +                        }
  1.9689 +                    }
  1.9690 +                  }
  1.9691 +              }
  1.9692 +              mcc_err_in_final_12 = nanos_in_final(&mcc_is_in_final_12);
  1.9693 +              {
  1.9694 +                H264Context *mcc_arg_58 = h;
  1.9695 +                OutputContext *mcc_arg_59 = oc;
  1.9696 +                SliceBufferEntry *mcc_arg_60 = &sbe[k % bufs];
  1.9697 +                if (mcc_is_in_final_12)
  1.9698 +                  {
  1.9699 +                    output_task(h, oc, &sbe[k % bufs]);
  1.9700 +                  }
  1.9701 +                else
  1.9702 +                  {
  1.9703 +                    {
  1.9704 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9705 +                      struct nanos_args_12_t *ol_args;
  1.9706 +                      nanos_err_t err;
  1.9707 +                      struct nanos_args_12_t imm_args;
  1.9708 +                      static nanos_smp_args_t smp_ol_output_task_25_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_12_t *))&smp_ol_output_task_25 };
  1.9709 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_12_t), 0, 1, 0, "output_task" }, { { &nanos_smp_factory, &smp_ol_output_task_25_args } } };
  1.9710 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9711 +                      nanos_wd_dyn_props.priority = 0;
  1.9712 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9713 +                      ol_args = (struct nanos_args_12_t *)0;
  1.9714 +                      void *nanos_wd_ = (void *)0;
  1.9715 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_12_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9716 +                      if (err != NANOS_OK)
  1.9717 +                        {
  1.9718 +                          nanos_handle_error(err);
  1.9719 +                        }
  1.9720 +                      /* Check pendant writes on subexpressions */
  1.9721 +                      /* End check pendant writes on subexpressions */
  1.9722 +                      if (nanos_wd_ != (void *)0)
  1.9723 +                        {
  1.9724 +                          {
  1.9725 +                            (*ol_args).h = mcc_arg_58;
  1.9726 +                            (*ol_args).oc = mcc_arg_59;
  1.9727 +                            (*ol_args).sbe = mcc_arg_60;
  1.9728 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } };
  1.9729 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9730 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_59, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_60, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } };
  1.9731 +                            ;
  1.9732 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
  1.9733 +                            if (err != NANOS_OK)
  1.9734 +                              {
  1.9735 +                                nanos_handle_error(err);
  1.9736 +                              }
  1.9737 +                          }
  1.9738 +                        }
  1.9739 +                      else
  1.9740 +                        {
  1.9741 +                          {
  1.9742 +                            imm_args.h = mcc_arg_58;
  1.9743 +                            imm_args.oc = mcc_arg_59;
  1.9744 +                            imm_args.sbe = mcc_arg_60;
  1.9745 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } };
  1.9746 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9747 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_59, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_60, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } };
  1.9748 +                            ;
  1.9749 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_12_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9750 +                            if (err != NANOS_OK)
  1.9751 +                              {
  1.9752 +                                nanos_handle_error(err);
  1.9753 +                              }
  1.9754 +                          }
  1.9755 +                        }
  1.9756 +                    }
  1.9757 +                  }
  1.9758 +              }
  1.9759 +              {
  1.9760 +                nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
  1.9761 +                nanos_data_access_t dependences[1] = { { (void *)pc, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } };
  1.9762                  ;
  1.9763 +                nanos_err_t err = nanos_wait_on(1, dependences);
  1.9764 +                if (err != NANOS_OK)
  1.9765 +                  {
  1.9766 +                    nanos_handle_error(err);
  1.9767 +                  }
  1.9768 +              }
  1.9769              }
  1.9770 +          }
  1.9771 +        for (int i = 0; i < num_pre_ed; i++)
  1.9772 +          {
  1.9773              {
  1.9774 -                struct H264Context *__tmp_0 = h;
  1.9775 -                struct EntropyContext *__tmp_1 = ec[k % bufs];
  1.9776 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
  1.9777 -                {
  1.9778 -                    /* SMP device descriptor */
  1.9779 -                    static nanos_smp_args_t _ol_h264_decode_ompss_7_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_7};
  1.9780 -                    _nx_data_env_7_t *ol_args = (_nx_data_env_7_t *) 0;
  1.9781 -                    nanos_wd_t wd = (nanos_wd_t) 0;
  1.9782 -                    struct nanos_const_wd_definition_local_t
  1.9783 +              nanos_err_t mcc_err_in_final_13;
  1.9784 +              _Bool mcc_is_in_final_13;
  1.9785 +              nanos_err_t mcc_err_in_final_14;
  1.9786 +              _Bool mcc_is_in_final_14;
  1.9787 +              nanos_err_t mcc_err_in_final_15;
  1.9788 +              _Bool mcc_is_in_final_15;
  1.9789 +              k++;
  1.9790 +              mcc_err_in_final_13 = nanos_in_final(&mcc_is_in_final_13);
  1.9791 +              {
  1.9792 +                H264Context *mcc_arg_61 = h;
  1.9793 +                MBRecContext *mcc_arg_62 = rc[k % 2];
  1.9794 +                SliceBufferEntry *mcc_arg_63 = &sbe[k % bufs];
  1.9795 +                int *mcc_arg_64 = &init;
  1.9796 +                if (mcc_is_in_final_13)
  1.9797 +                  {
  1.9798 +                    init_ref_list_and_get_dpb_task(h, rc[k % 2], &sbe[k % bufs], &init);
  1.9799 +                  }
  1.9800 +                else
  1.9801 +                  {
  1.9802                      {
  1.9803 -                            nanos_const_wd_definition_t base;
  1.9804 -                            nanos_device_t devices[1];
  1.9805 -                    };
  1.9806 -                    static struct nanos_const_wd_definition_local_t _const_def = {
  1.9807 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9808 +                      struct nanos_args_13_t *ol_args;
  1.9809 +                      nanos_err_t err;
  1.9810 +                      struct nanos_args_13_t imm_args;
  1.9811 +                      static nanos_smp_args_t smp_ol_init_ref_list_and_get_dpb_task_27_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_13_t *))&smp_ol_init_ref_list_and_get_dpb_task_27 };
  1.9812 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_13_t), 0, 1, 0, "init_ref_list_and_get_dpb_task" }, { { &nanos_smp_factory, &smp_ol_init_ref_list_and_get_dpb_task_27_args } } };
  1.9813 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9814 +                      nanos_wd_dyn_props.priority = 0;
  1.9815 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9816 +                      ol_args = (struct nanos_args_13_t *)0;
  1.9817 +                      void *nanos_wd_ = (void *)0;
  1.9818 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_13_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9819 +                      if (err != NANOS_OK)
  1.9820                          {
  1.9821 -                            {
  1.9822 -                                0,
  1.9823 -                                1,
  1.9824 -                                0,
  1.9825 -                                0,
  1.9826 -                                0,
  1.9827 -                                0,
  1.9828 -                                0,
  1.9829 -                                0
  1.9830 -                            },
  1.9831 -                            __alignof__(_nx_data_env_7_t),
  1.9832 -                            0,
  1.9833 -                            1
  1.9834 -                        },
  1.9835 -                        {{
  1.9836 -                            nanos_smp_factory,
  1.9837 -                            &_ol_h264_decode_ompss_7_smp_args
  1.9838 -                        }}
  1.9839 -                    };
  1.9840 -                    nanos_wd_dyn_props_t dyn_props = {0};
  1.9841 -                    nanos_err_t err;
  1.9842 -                    dyn_props.priority = 0;
  1.9843 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_7_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
  1.9844 -                    if (err != NANOS_OK)
  1.9845 -                        nanos_handle_error(err);
  1.9846 -                    if (wd != (nanos_wd_t) 0)
  1.9847 +                          nanos_handle_error(err);
  1.9848 +                        }
  1.9849 +                      /* Check pendant writes on subexpressions */
  1.9850 +                      /* End check pendant writes on subexpressions */
  1.9851 +                      if (nanos_wd_ != (void *)0)
  1.9852 +                        {
  1.9853 +                          {
  1.9854 +                            (*ol_args).h = mcc_arg_61;
  1.9855 +                            (*ol_args).d = mcc_arg_62;
  1.9856 +                            (*ol_args).sbe = mcc_arg_63;
  1.9857 +                            (*ol_args).init = mcc_arg_64;
  1.9858 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9859 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9860 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9861 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_62, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_63, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_64, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9862 +                            ;
  1.9863 +                            err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
  1.9864 +                            if (err != NANOS_OK)
  1.9865 +                              {
  1.9866 +                                nanos_handle_error(err);
  1.9867 +                              }
  1.9868 +                          }
  1.9869 +                        }
  1.9870 +                      else
  1.9871 +                        {
  1.9872 +                          {
  1.9873 +                            imm_args.h = mcc_arg_61;
  1.9874 +                            imm_args.d = mcc_arg_62;
  1.9875 +                            imm_args.sbe = mcc_arg_63;
  1.9876 +                            imm_args.init = mcc_arg_64;
  1.9877 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9878 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9879 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9880 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_62, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_63, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_64, { 1, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
  1.9881 +                            ;
  1.9882 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_13_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9883 +                            if (err != NANOS_OK)
  1.9884 +                              {
  1.9885 +                                nanos_handle_error(err);
  1.9886 +                              }
  1.9887 +                          }
  1.9888 +                        }
  1.9889 +                    }
  1.9890 +                  }
  1.9891 +              }
  1.9892 +              smbc = acquire_smbc(h);
  1.9893 +              SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc);
  1.9894 +              mcc_err_in_final_14 = nanos_in_final(&mcc_is_in_final_14);
  1.9895 +              {
  1.9896 +                H264Context *mcc_arg_65 = h;
  1.9897 +                SuperMBContext *mcc_arg_66 = smbc;
  1.9898 +                MBRecContext *mcc_arg_67 = rc[k % 2];
  1.9899 +                SliceBufferEntry *mcc_arg_68 = &sbe[k % bufs];
  1.9900 +                SuperMBTask *mcc_arg_69 = lastsmb;
  1.9901 +                int *mcc_arg_70 = &release;
  1.9902 +                if (mcc_is_in_final_14)
  1.9903 +                  {
  1.9904 +                    release_ref_list_task(h, smbc, rc[k % 2], &sbe[k % bufs], lastsmb, &release);
  1.9905 +                  }
  1.9906 +                else
  1.9907 +                  {
  1.9908                      {
  1.9909 -                        ol_args->__tmp_0_0 = __tmp_0;
  1.9910 -                        ol_args->__tmp_1_0 = __tmp_1;
  1.9911 -                        ol_args->__tmp_2_0 = __tmp_2;
  1.9912 -                        nanos_dependence_t _dependences[2] = {
  1.9913 -                            {
  1.9914 -                                (void **) &ol_args->__tmp_1_0,
  1.9915 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
  1.9916 -                                {
  1.9917 -                                    1,
  1.9918 -                                    1,
  1.9919 -                                    1,
  1.9920 -                                    0
  1.9921 -                                },
  1.9922 -                                sizeof(struct EntropyContext)
  1.9923 -                            },
  1.9924 -                            {
  1.9925 -                                (void **) &ol_args->__tmp_2_0,
  1.9926 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
  1.9927 -                                {
  1.9928 -                                    1,
  1.9929 -                                    1,
  1.9930 -                                    1,
  1.9931 -                                    0
  1.9932 -                                },
  1.9933 -                                sizeof(SliceBufferEntry)
  1.9934 -                            }
  1.9935 -                        };
  1.9936 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
  1.9937 -                        if (err != NANOS_OK)
  1.9938 -                            nanos_handle_error(err);
  1.9939 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
  1.9940 +                      struct nanos_args_14_t *ol_args;
  1.9941 +                      nanos_err_t err;
  1.9942 +                      struct nanos_args_14_t imm_args;
  1.9943 +                      static nanos_smp_args_t smp_ol_release_ref_list_task_29_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_14_t *))&smp_ol_release_ref_list_task_29 };
  1.9944 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_14_t), 0, 1, 0, "release_ref_list_task" }, { { &nanos_smp_factory, &smp_ol_release_ref_list_task_29_args } } };
  1.9945 +                      nanos_wd_dyn_props.tie_to = 0;
  1.9946 +                      nanos_wd_dyn_props.priority = 0;
  1.9947 +                      nanos_wd_dyn_props.flags.is_final = 0;
  1.9948 +                      ol_args = (struct nanos_args_14_t *)0;
  1.9949 +                      void *nanos_wd_ = (void *)0;
  1.9950 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_14_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
  1.9951 +                      if (err != NANOS_OK)
  1.9952 +                        {
  1.9953 +                          nanos_handle_error(err);
  1.9954 +                        }
  1.9955 +                      /* Check pendant writes on subexpressions */
  1.9956 +                      /* End check pendant writes on subexpressions */
  1.9957 +                      if (nanos_wd_ != (void *)0)
  1.9958 +                        {
  1.9959 +                          {
  1.9960 +                            (*ol_args).h = mcc_arg_65;
  1.9961 +                            (*ol_args).smbc = mcc_arg_66;
  1.9962 +                            (*ol_args).d = mcc_arg_67;
  1.9963 +                            (*ol_args).sbe = mcc_arg_68;
  1.9964 +                            (*ol_args).lastsmb = mcc_arg_69;
  1.9965 +                            (*ol_args).release = mcc_arg_70;
  1.9966 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9967 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9968 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.9969 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9970 +                            nanos_data_access_t dependences[4] = { { (void *)mcc_arg_67, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_68, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_69, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_70, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } };
  1.9971 +                            ;
  1.9972 +                            err = nanos_submit(nanos_wd_, 4, dependences, (void *)0);
  1.9973 +                            if (err != NANOS_OK)
  1.9974 +                              {
  1.9975 +                                nanos_handle_error(err);
  1.9976 +                              }
  1.9977 +                          }
  1.9978 +                        }
  1.9979 +                      else
  1.9980 +                        {
  1.9981 +                          {
  1.9982 +                            imm_args.h = mcc_arg_65;
  1.9983 +                            imm_args.smbc = mcc_arg_66;
  1.9984 +                            imm_args.d = mcc_arg_67;
  1.9985 +                            imm_args.sbe = mcc_arg_68;
  1.9986 +                            imm_args.lastsmb = mcc_arg_69;
  1.9987 +                            imm_args.release = mcc_arg_70;
  1.9988 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
  1.9989 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
  1.9990 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SuperMBTask), 0, sizeof(SuperMBTask) } };
  1.9991 +                            nanos_region_dimension_t dimensions_3[1] = { { sizeof(int), 0, sizeof(int) } };
  1.9992 +                            nanos_data_access_t dependences[4] = { { (void *)mcc_arg_67, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_68, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_69, { 1, 0, 0, 0, 0 }, 1, dimensions_2, 0 }, { (void *)mcc_arg_70, { 1, 1, 0, 0, 0 }, 1, dimensions_3, 0 } };
  1.9993 +                            ;
  1.9994 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_14_t), &imm_args, 4, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
  1.9995 +                            if (err != NANOS_OK)
  1.9996 +                              {
  1.9997 +                                nanos_handle_error(err);
  1.9998 +                              }
  1.9999 +                          }
 1.10000 +                        }
 1.10001                      }
 1.10002 -                    else
 1.10003 +                  }
 1.10004 +              }
 1.10005 +              mcc_err_in_final_15 = nanos_in_final(&mcc_is_in_final_15);
 1.10006 +              {
 1.10007 +                H264Context *mcc_arg_71 = h;
 1.10008 +                OutputContext *mcc_arg_72 = oc;
 1.10009 +                SliceBufferEntry *mcc_arg_73 = &sbe[k % bufs];
 1.10010 +                if (mcc_is_in_final_15)
 1.10011 +                  {
 1.10012 +                    output_task(h, oc, &sbe[k % bufs]);
 1.10013 +                  }
 1.10014 +                else
 1.10015 +                  {
 1.10016                      {
 1.10017 -                        _nx_data_env_7_t imm_args;
 1.10018 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.10019 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.10020 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.10021 -                        nanos_dependence_t _dependences[2] = {
 1.10022 -                            {
 1.10023 -                                (void **) &imm_args.__tmp_1_0,
 1.10024 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.10025 -                                {
 1.10026 -                                    1,
 1.10027 -                                    1,
 1.10028 -                                    1,
 1.10029 -                                    0
 1.10030 -                                },
 1.10031 -                                sizeof(struct EntropyContext)
 1.10032 -                            },
 1.10033 -                            {
 1.10034 -                                (void **) &imm_args.__tmp_2_0,
 1.10035 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.10036 -                                {
 1.10037 -                                    1,
 1.10038 -                                    1,
 1.10039 -                                    1,
 1.10040 -                                    0
 1.10041 -                                },
 1.10042 -                                sizeof(SliceBufferEntry)
 1.10043 -                            }
 1.10044 -                        };
 1.10045 -                        dyn_props.priority = 0;
 1.10046 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_7_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.10047 -                        if (err != NANOS_OK)
 1.10048 -                            nanos_handle_error(err);
 1.10049 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
 1.10050 +                      struct nanos_args_15_t *ol_args;
 1.10051 +                      nanos_err_t err;
 1.10052 +                      struct nanos_args_15_t imm_args;
 1.10053 +                      static nanos_smp_args_t smp_ol_output_task_31_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_15_t *))&smp_ol_output_task_31 };
 1.10054 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_15_t), 0, 1, 0, "output_task" }, { { &nanos_smp_factory, &smp_ol_output_task_31_args } } };
 1.10055 +                      nanos_wd_dyn_props.tie_to = 0;
 1.10056 +                      nanos_wd_dyn_props.priority = 0;
 1.10057 +                      nanos_wd_dyn_props.flags.is_final = 0;
 1.10058 +                      ol_args = (struct nanos_args_15_t *)0;
 1.10059 +                      void *nanos_wd_ = (void *)0;
 1.10060 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_15_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
 1.10061 +                      if (err != NANOS_OK)
 1.10062 +                        {
 1.10063 +                          nanos_handle_error(err);
 1.10064 +                        }
 1.10065 +                      /* Check pendant writes on subexpressions */
 1.10066 +                      /* End check pendant writes on subexpressions */
 1.10067 +                      if (nanos_wd_ != (void *)0)
 1.10068 +                        {
 1.10069 +                          {
 1.10070 +                            (*ol_args).h = mcc_arg_71;
 1.10071 +                            (*ol_args).oc = mcc_arg_72;
 1.10072 +                            (*ol_args).sbe = mcc_arg_73;
 1.10073 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } };
 1.10074 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10075 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_72, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_73, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10076 +                            ;
 1.10077 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
 1.10078 +                            if (err != NANOS_OK)
 1.10079 +                              {
 1.10080 +                                nanos_handle_error(err);
 1.10081 +                              }
 1.10082 +                          }
 1.10083 +                        }
 1.10084 +                      else
 1.10085 +                        {
 1.10086 +                          {
 1.10087 +                            imm_args.h = mcc_arg_71;
 1.10088 +                            imm_args.oc = mcc_arg_72;
 1.10089 +                            imm_args.sbe = mcc_arg_73;
 1.10090 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } };
 1.10091 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10092 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_72, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_73, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10093 +                            ;
 1.10094 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_15_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
 1.10095 +                            if (err != NANOS_OK)
 1.10096 +                              {
 1.10097 +                                nanos_handle_error(err);
 1.10098 +                              }
 1.10099 +                          }
 1.10100 +                        }
 1.10101                      }
 1.10102 -                }
 1.10103 +                  }
 1.10104 +              }
 1.10105 +            }
 1.10106 +          }
 1.10107 +      }
 1.10108 +    }
 1.10109 +  else
 1.10110 +    {
 1.10111 +      {
 1.10112 +        while ((!(*pc).final_frame && frames++ < (*h).num_frames) && !(*h).quit)
 1.10113 +          {
 1.10114 +            {
 1.10115 +              nanos_err_t mcc_err_in_final_16;
 1.10116 +              _Bool mcc_is_in_final_16;
 1.10117 +              nanos_err_t mcc_err_in_final_17;
 1.10118 +              _Bool mcc_is_in_final_17;
 1.10119 +              nanos_err_t mcc_err_in_final_18;
 1.10120 +              _Bool mcc_is_in_final_18;
 1.10121 +              nanos_err_t mcc_err_in_final_19;
 1.10122 +              _Bool mcc_is_in_final_19;
 1.10123 +              mcc_err_in_final_16 = nanos_in_final(&mcc_is_in_final_16);
 1.10124 +              {
 1.10125 +                H264Context *mcc_arg_74 = h;
 1.10126 +                ParserContext *mcc_arg_75 = pc;
 1.10127 +                NalContext *mcc_arg_76 = nc;
 1.10128 +                SliceBufferEntry *mcc_arg_77 = &sbe[k % bufs];
 1.10129 +                if (mcc_is_in_final_16)
 1.10130 +                  {
 1.10131 +                    parse_task(h, pc, nc, &sbe[k % bufs]);
 1.10132 +                  }
 1.10133 +                else
 1.10134 +                  {
 1.10135 +                    {
 1.10136 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
 1.10137 +                      struct nanos_args_16_t *ol_args;
 1.10138 +                      nanos_err_t err;
 1.10139 +                      struct nanos_args_16_t imm_args;
 1.10140 +                      static nanos_smp_args_t smp_ol_parse_task_33_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_16_t *))&smp_ol_parse_task_33 };
 1.10141 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_16_t), 0, 1, 0, "parse_task" }, { { &nanos_smp_factory, &smp_ol_parse_task_33_args } } };
 1.10142 +                      nanos_wd_dyn_props.tie_to = 0;
 1.10143 +                      nanos_wd_dyn_props.priority = 0;
 1.10144 +                      nanos_wd_dyn_props.flags.is_final = 0;
 1.10145 +                      ol_args = (struct nanos_args_16_t *)0;
 1.10146 +                      void *nanos_wd_ = (void *)0;
 1.10147 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_16_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
 1.10148 +                      if (err != NANOS_OK)
 1.10149 +                        {
 1.10150 +                          nanos_handle_error(err);
 1.10151 +                        }
 1.10152 +                      /* Check pendant writes on subexpressions */
 1.10153 +                      /* End check pendant writes on subexpressions */
 1.10154 +                      if (nanos_wd_ != (void *)0)
 1.10155 +                        {
 1.10156 +                          {
 1.10157 +                            (*ol_args).h = mcc_arg_74;
 1.10158 +                            (*ol_args).pc = mcc_arg_75;
 1.10159 +                            (*ol_args).nc = mcc_arg_76;
 1.10160 +                            (*ol_args).sbe = mcc_arg_77;
 1.10161 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
 1.10162 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } };
 1.10163 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10164 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_75, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_76, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_77, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
 1.10165 +                            ;
 1.10166 +                            err = nanos_submit(nanos_wd_, 3, dependences, (void *)0);
 1.10167 +                            if (err != NANOS_OK)
 1.10168 +                              {
 1.10169 +                                nanos_handle_error(err);
 1.10170 +                              }
 1.10171 +                          }
 1.10172 +                        }
 1.10173 +                      else
 1.10174 +                        {
 1.10175 +                          {
 1.10176 +                            imm_args.h = mcc_arg_74;
 1.10177 +                            imm_args.pc = mcc_arg_75;
 1.10178 +                            imm_args.nc = mcc_arg_76;
 1.10179 +                            imm_args.sbe = mcc_arg_77;
 1.10180 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
 1.10181 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(NalContext), 0, sizeof(NalContext) } };
 1.10182 +                            nanos_region_dimension_t dimensions_2[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10183 +                            nanos_data_access_t dependences[3] = { { (void *)mcc_arg_75, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_76, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 }, { (void *)mcc_arg_77, { 0, 1, 0, 0, 0 }, 1, dimensions_2, 0 } };
 1.10184 +                            ;
 1.10185 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_16_t), &imm_args, 3, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
 1.10186 +                            if (err != NANOS_OK)
 1.10187 +                              {
 1.10188 +                                nanos_handle_error(err);
 1.10189 +                              }
 1.10190 +                          }
 1.10191 +                        }
 1.10192 +                    }
 1.10193 +                  }
 1.10194 +              }
 1.10195 +              mcc_err_in_final_17 = nanos_in_final(&mcc_is_in_final_17);
 1.10196 +              {
 1.10197 +                H264Context *mcc_arg_78 = h;
 1.10198 +                EntropyContext *mcc_arg_79 = ec[k % bufs];
 1.10199 +                SliceBufferEntry *mcc_arg_80 = &sbe[k % bufs];
 1.10200 +                if (mcc_is_in_final_17)
 1.10201 +                  {
 1.10202 +                    decode_slice_entropy_task(h, ec[k % bufs], &sbe[k % bufs]);
 1.10203 +                  }
 1.10204 +                else
 1.10205 +                  {
 1.10206 +                    {
 1.10207 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
 1.10208 +                      struct nanos_args_17_t *ol_args;
 1.10209 +                      nanos_err_t err;
 1.10210 +                      struct nanos_args_17_t imm_args;
 1.10211 +                      static nanos_smp_args_t smp_ol_decode_slice_entropy_task_35_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_17_t *))&smp_ol_decode_slice_entropy_task_35 };
 1.10212 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_17_t), 0, 1, 0, "decode_slice_entropy_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_entropy_task_35_args } } };
 1.10213 +                      nanos_wd_dyn_props.tie_to = 0;
 1.10214 +                      nanos_wd_dyn_props.priority = 0;
 1.10215 +                      nanos_wd_dyn_props.flags.is_final = 0;
 1.10216 +                      ol_args = (struct nanos_args_17_t *)0;
 1.10217 +                      void *nanos_wd_ = (void *)0;
 1.10218 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_17_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
 1.10219 +                      if (err != NANOS_OK)
 1.10220 +                        {
 1.10221 +                          nanos_handle_error(err);
 1.10222 +                        }
 1.10223 +                      /* Check pendant writes on subexpressions */
 1.10224 +                      /* End check pendant writes on subexpressions */
 1.10225 +                      if (nanos_wd_ != (void *)0)
 1.10226 +                        {
 1.10227 +                          {
 1.10228 +                            (*ol_args).h = mcc_arg_78;
 1.10229 +                            (*ol_args).ec = mcc_arg_79;
 1.10230 +                            (*ol_args).sbe = mcc_arg_80;
 1.10231 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } };
 1.10232 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10233 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_79, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_80, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10234 +                            ;
 1.10235 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
 1.10236 +                            if (err != NANOS_OK)
 1.10237 +                              {
 1.10238 +                                nanos_handle_error(err);
 1.10239 +                              }
 1.10240 +                          }
 1.10241 +                        }
 1.10242 +                      else
 1.10243 +                        {
 1.10244 +                          {
 1.10245 +                            imm_args.h = mcc_arg_78;
 1.10246 +                            imm_args.ec = mcc_arg_79;
 1.10247 +                            imm_args.sbe = mcc_arg_80;
 1.10248 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(EntropyContext), 0, sizeof(EntropyContext) } };
 1.10249 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10250 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_79, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_80, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10251 +                            ;
 1.10252 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_17_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
 1.10253 +                            if (err != NANOS_OK)
 1.10254 +                              {
 1.10255 +                                nanos_handle_error(err);
 1.10256 +                              }
 1.10257 +                          }
 1.10258 +                        }
 1.10259 +                    }
 1.10260 +                  }
 1.10261 +              }
 1.10262 +              mcc_err_in_final_18 = nanos_in_final(&mcc_is_in_final_18);
 1.10263 +              {
 1.10264 +                H264Context *mcc_arg_81 = h;
 1.10265 +                MBRecContext *mcc_arg_82 = rc[0];
 1.10266 +                SliceBufferEntry *mcc_arg_83 = &sbe[k % bufs];
 1.10267 +                if (mcc_is_in_final_18)
 1.10268 +                  {
 1.10269 +                    decode_slice_mb_task(h, rc[0], &sbe[k % bufs]);
 1.10270 +                  }
 1.10271 +                else
 1.10272 +                  {
 1.10273 +                    {
 1.10274 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
 1.10275 +                      struct nanos_args_18_t *ol_args;
 1.10276 +                      nanos_err_t err;
 1.10277 +                      struct nanos_args_18_t imm_args;
 1.10278 +                      static nanos_smp_args_t smp_ol_decode_slice_mb_task_37_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_18_t *))&smp_ol_decode_slice_mb_task_37 };
 1.10279 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_18_t), 0, 1, 0, "decode_slice_mb_task" }, { { &nanos_smp_factory, &smp_ol_decode_slice_mb_task_37_args } } };
 1.10280 +                      nanos_wd_dyn_props.tie_to = 0;
 1.10281 +                      nanos_wd_dyn_props.priority = 0;
 1.10282 +                      nanos_wd_dyn_props.flags.is_final = 0;
 1.10283 +                      ol_args = (struct nanos_args_18_t *)0;
 1.10284 +                      void *nanos_wd_ = (void *)0;
 1.10285 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_18_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
 1.10286 +                      if (err != NANOS_OK)
 1.10287 +                        {
 1.10288 +                          nanos_handle_error(err);
 1.10289 +                        }
 1.10290 +                      /* Check pendant writes on subexpressions */
 1.10291 +                      /* End check pendant writes on subexpressions */
 1.10292 +                      if (nanos_wd_ != (void *)0)
 1.10293 +                        {
 1.10294 +                          {
 1.10295 +                            (*ol_args).h = mcc_arg_81;
 1.10296 +                            (*ol_args).d = mcc_arg_82;
 1.10297 +                            (*ol_args).sbe = mcc_arg_83;
 1.10298 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
 1.10299 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10300 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_82, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_83, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10301 +                            ;
 1.10302 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
 1.10303 +                            if (err != NANOS_OK)
 1.10304 +                              {
 1.10305 +                                nanos_handle_error(err);
 1.10306 +                              }
 1.10307 +                          }
 1.10308 +                        }
 1.10309 +                      else
 1.10310 +                        {
 1.10311 +                          {
 1.10312 +                            imm_args.h = mcc_arg_81;
 1.10313 +                            imm_args.d = mcc_arg_82;
 1.10314 +                            imm_args.sbe = mcc_arg_83;
 1.10315 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(MBRecContext), 0, sizeof(MBRecContext) } };
 1.10316 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10317 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_82, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_83, { 1, 1, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10318 +                            ;
 1.10319 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_18_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
 1.10320 +                            if (err != NANOS_OK)
 1.10321 +                              {
 1.10322 +                                nanos_handle_error(err);
 1.10323 +                              }
 1.10324 +                          }
 1.10325 +                        }
 1.10326 +                    }
 1.10327 +                  }
 1.10328 +              }
 1.10329 +              mcc_err_in_final_19 = nanos_in_final(&mcc_is_in_final_19);
 1.10330 +              {
 1.10331 +                H264Context *mcc_arg_84 = h;
 1.10332 +                OutputContext *mcc_arg_85 = oc;
 1.10333 +                SliceBufferEntry *mcc_arg_86 = &sbe[k % bufs];
 1.10334 +                if (mcc_is_in_final_19)
 1.10335 +                  {
 1.10336 +                    output_task(h, oc, &sbe[k % bufs]);
 1.10337 +                  }
 1.10338 +                else
 1.10339 +                  {
 1.10340 +                    {
 1.10341 +                      nanos_wd_dyn_props_t nanos_wd_dyn_props;
 1.10342 +                      struct nanos_args_19_t *ol_args;
 1.10343 +                      nanos_err_t err;
 1.10344 +                      struct nanos_args_19_t imm_args;
 1.10345 +                      static nanos_smp_args_t smp_ol_output_task_39_args = { .outline = (void (*)(void *))(void (*)(struct nanos_args_19_t *))&smp_ol_output_task_39 };
 1.10346 +                      static struct nanos_const_wd_definition_1 nanos_wd_const_data = { { { 0, 1, 0, 0, 0, 0, 0, 0 }, __alignof__(struct nanos_args_19_t), 0, 1, 0, "output_task" }, { { &nanos_smp_factory, &smp_ol_output_task_39_args } } };
 1.10347 +                      nanos_wd_dyn_props.tie_to = 0;
 1.10348 +                      nanos_wd_dyn_props.priority = 0;
 1.10349 +                      nanos_wd_dyn_props.flags.is_final = 0;
 1.10350 +                      ol_args = (struct nanos_args_19_t *)0;
 1.10351 +                      void *nanos_wd_ = (void *)0;
 1.10352 +                      err = nanos_create_wd_compact(&nanos_wd_, &nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_19_t), (void **)&ol_args, nanos_current_wd(), (nanos_copy_data_t **)0, (nanos_region_dimension_internal_t **)0);
 1.10353 +                      if (err != NANOS_OK)
 1.10354 +                        {
 1.10355 +                          nanos_handle_error(err);
 1.10356 +                        }
 1.10357 +                      /* Check pendant writes on subexpressions */
 1.10358 +                      /* End check pendant writes on subexpressions */
 1.10359 +                      if (nanos_wd_ != (void *)0)
 1.10360 +                        {
 1.10361 +                          {
 1.10362 +                            (*ol_args).h = mcc_arg_84;
 1.10363 +                            (*ol_args).oc = mcc_arg_85;
 1.10364 +                            (*ol_args).sbe = mcc_arg_86;
 1.10365 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } };
 1.10366 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10367 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_85, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_86, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10368 +                            ;
 1.10369 +                            err = nanos_submit(nanos_wd_, 2, dependences, (void *)0);
 1.10370 +                            if (err != NANOS_OK)
 1.10371 +                              {
 1.10372 +                                nanos_handle_error(err);
 1.10373 +                              }
 1.10374 +                          }
 1.10375 +                        }
 1.10376 +                      else
 1.10377 +                        {
 1.10378 +                          {
 1.10379 +                            imm_args.h = mcc_arg_84;
 1.10380 +                            imm_args.oc = mcc_arg_85;
 1.10381 +                            imm_args.sbe = mcc_arg_86;
 1.10382 +                            nanos_region_dimension_t dimensions_0[1] = { { sizeof(OutputContext), 0, sizeof(OutputContext) } };
 1.10383 +                            nanos_region_dimension_t dimensions_1[1] = { { sizeof(SliceBufferEntry), 0, sizeof(SliceBufferEntry) } };
 1.10384 +                            nanos_data_access_t dependences[2] = { { (void *)mcc_arg_85, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 }, { (void *)mcc_arg_86, { 1, 0, 0, 0, 0 }, 1, dimensions_1, 0 } };
 1.10385 +                            ;
 1.10386 +                            err = nanos_create_wd_and_run_compact(&nanos_wd_const_data.base, &nanos_wd_dyn_props, sizeof(struct nanos_args_19_t), &imm_args, 2, dependences, (nanos_copy_data_t *)0, (nanos_region_dimension_internal_t *)0, (void (*)(void *, void *))0);
 1.10387 +                            if (err != NANOS_OK)
 1.10388 +                              {
 1.10389 +                                nanos_handle_error(err);
 1.10390 +                              }
 1.10391 +                          }
 1.10392 +                        }
 1.10393 +                    }
 1.10394 +                  }
 1.10395 +              }
 1.10396 +              {
 1.10397 +                nanos_region_dimension_t dimensions_0[1] = { { sizeof(ParserContext), 0, sizeof(ParserContext) } };
 1.10398 +                nanos_data_access_t dependences[1] = { { (void *)pc, { 1, 1, 0, 0, 0 }, 1, dimensions_0, 0 } };
 1.10399                  ;
 1.10400 +                nanos_err_t err = nanos_wait_on(1, dependences);
 1.10401 +                if (err != NANOS_OK)
 1.10402 +                  {
 1.10403 +                    nanos_handle_error(err);
 1.10404 +                  }
 1.10405 +              }
 1.10406 +              k++;
 1.10407              }
 1.10408 -            {
 1.10409 -                struct _dependence_holder
 1.10410 -                {
 1.10411 -                        struct ParserContext *dep_0;
 1.10412 -                } _dep_holder = {&(*pc)};
 1.10413 -                nanos_dependence_t _wait_dependences[1] = {{
 1.10414 -                    (void **) &_dep_holder.dep_0,
 1.10415 -                    ((char *) ((pc)) - (char *) _dep_holder.dep_0),
 1.10416 -                    {
 1.10417 -                        1,
 1.10418 -                        0,
 1.10419 -                        0,
 1.10420 -                        0
 1.10421 -                    },
 1.10422 -                    sizeof (*pc)
 1.10423 -                }};
 1.10424 -                nanos_wait_on(1, _wait_dependences);
 1.10425 -            }
 1.10426 -            k++;
 1.10427 -        }
 1.10428 -        while (!pc->final_frame && frames++ < h->num_frames && !h->quit)
 1.10429 -        {
 1.10430 -            {
 1.10431 -                struct H264Context *__tmp_0 = h;
 1.10432 -                struct ParserContext *__tmp_1 = pc;
 1.10433 -                struct NalContext *__tmp_2 = nc;
 1.10434 -                SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
 1.10435 -                {
 1.10436 -                    /* SMP device descriptor */
 1.10437 -                    static nanos_smp_args_t _ol_h264_decode_ompss_8_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_8};
 1.10438 -                    _nx_data_env_8_t *ol_args = (_nx_data_env_8_t *) 0;
 1.10439 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.10440 -                    struct nanos_const_wd_definition_local_t
 1.10441 -                    {
 1.10442 -                            nanos_const_wd_definition_t base;
 1.10443 -                            nanos_device_t devices[1];
 1.10444 -                    };
 1.10445 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.10446 -                        {
 1.10447 -                            {
 1.10448 -                                0,
 1.10449 -                                1,
 1.10450 -                                0,
 1.10451 -                                0,
 1.10452 -                                0,
 1.10453 -                                0,
 1.10454 -                                0,
 1.10455 -                                0
 1.10456 -                            },
 1.10457 -                            __alignof__(_nx_data_env_8_t),
 1.10458 -                            0,
 1.10459 -                            1
 1.10460 -                        },
 1.10461 -                        {{
 1.10462 -                            nanos_smp_factory,
 1.10463 -                            &_ol_h264_decode_ompss_8_smp_args
 1.10464 -                        }}
 1.10465 -                    };
 1.10466 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.10467 -                    nanos_err_t err;
 1.10468 -                    dyn_props.priority = 0;
 1.10469 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_8_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.10470 -                    if (err != NANOS_OK)
 1.10471 -                        nanos_handle_error(err);
 1.10472 -                    if (wd != (nanos_wd_t) 0)
 1.10473 -                    {
 1.10474 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.10475 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.10476 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.10477 -                        ol_args->__tmp_3_0 = __tmp_3;
 1.10478 -                        nanos_dependence_t _dependences[3] = {
 1.10479 -                            {
 1.10480 -                                (void **) &ol_args->__tmp_3_0,
 1.10481 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
 1.10482 -                                {
 1.10483 -                                    0,
 1.10484 -                                    1,
 1.10485 -                                    1,
 1.10486 -                                    0
 1.10487 -                                },
 1.10488 -                                sizeof(SliceBufferEntry)
 1.10489 -                            },
 1.10490 -                            {
 1.10491 -                                (void **) &ol_args->__tmp_1_0,
 1.10492 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.10493 -                                {
 1.10494 -                                    1,
 1.10495 -                                    1,
 1.10496 -                                    1,
 1.10497 -                                    0
 1.10498 -                                },
 1.10499 -                                sizeof(struct ParserContext)
 1.10500 -                            },
 1.10501 -                            {
 1.10502 -                                (void **) &ol_args->__tmp_2_0,
 1.10503 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.10504 -                                {
 1.10505 -                                    1,
 1.10506 -                                    1,
 1.10507 -                                    1,
 1.10508 -                                    0
 1.10509 -                                },
 1.10510 -                                sizeof(struct NalContext)
 1.10511 -                            }
 1.10512 -                        };
 1.10513 -                        err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.10514 -                        if (err != NANOS_OK)
 1.10515 -                            nanos_handle_error(err);
 1.10516 -                    }
 1.10517 -                    else
 1.10518 -                    {
 1.10519 -                        _nx_data_env_8_t imm_args;
 1.10520 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.10521 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.10522 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.10523 -                        imm_args.__tmp_3_0 = __tmp_3;
 1.10524 -                        nanos_dependence_t _dependences[3] = {
 1.10525 -                            {
 1.10526 -                                (void **) &imm_args.__tmp_3_0,
 1.10527 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
 1.10528 -                                {
 1.10529 -                                    0,
 1.10530 -                                    1,
 1.10531 -                                    1,
 1.10532 -                                    0
 1.10533 -                                },
 1.10534 -                                sizeof(SliceBufferEntry)
 1.10535 -                            },
 1.10536 -                            {
 1.10537 -                                (void **) &imm_args.__tmp_1_0,
 1.10538 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.10539 -                                {
 1.10540 -                                    1,
 1.10541 -                                    1,
 1.10542 -                                    1,
 1.10543 -                                    0
 1.10544 -                                },
 1.10545 -                                sizeof(struct ParserContext)
 1.10546 -                            },
 1.10547 -                            {
 1.10548 -                                (void **) &imm_args.__tmp_2_0,
 1.10549 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.10550 -                                {
 1.10551 -                                    1,
 1.10552 -                                    1,
 1.10553 -                                    1,
 1.10554 -                                    0
 1.10555 -                                },
 1.10556 -                                sizeof(struct NalContext)
 1.10557 -                            }
 1.10558 -                        };
 1.10559 -                        dyn_props.priority = 0;
 1.10560 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_8_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.10561 -                        if (err != NANOS_OK)
 1.10562 -                            nanos_handle_error(err);
 1.10563 -                    }
 1.10564 -                }
 1.10565 -                ;
 1.10566 -            }
 1.10567 -            {
 1.10568 -                struct H264Context *__tmp_0 = h;
 1.10569 -                struct EntropyContext *__tmp_1 = ec[k % bufs];
 1.10570 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.10571 -                {
 1.10572 -                    /* SMP device descriptor */
 1.10573 -                    static nanos_smp_args_t _ol_h264_decode_ompss_9_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_9};
 1.10574 -                    _nx_data_env_9_t *ol_args = (_nx_data_env_9_t *) 0;
 1.10575 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.10576 -                    struct nanos_const_wd_definition_local_t
 1.10577 -                    {
 1.10578 -                            nanos_const_wd_definition_t base;
 1.10579 -                            nanos_device_t devices[1];
 1.10580 -                    };
 1.10581 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.10582 -                        {
 1.10583 -                            {
 1.10584 -                                0,
 1.10585 -                                1,
 1.10586 -                                0,
 1.10587 -                                0,
 1.10588 -                                0,
 1.10589 -                                0,
 1.10590 -                                0,
 1.10591 -                                0
 1.10592 -                            },
 1.10593 -                            __alignof__(_nx_data_env_9_t),
 1.10594 -                            0,
 1.10595 -                            1
 1.10596 -                        },
 1.10597 -                        {{
 1.10598 -                            nanos_smp_factory,
 1.10599 -                            &_ol_h264_decode_ompss_9_smp_args
 1.10600 -                        }}
 1.10601 -                    };
 1.10602 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.10603 -                    nanos_err_t err;
 1.10604 -                    dyn_props.priority = 0;
 1.10605 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_9_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.10606 -                    if (err != NANOS_OK)
 1.10607 -                        nanos_handle_error(err);
 1.10608 -                    if (wd != (nanos_wd_t) 0)
 1.10609 -                    {
 1.10610 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.10611 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.10612 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.10613 -                        nanos_dependence_t _dependences[2] = {
 1.10614 -                            {
 1.10615 -                                (void **) &ol_args->__tmp_1_0,
 1.10616 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.10617 -                                {
 1.10618 -                                    1,
 1.10619 -                                    1,
 1.10620 -                                    1,
 1.10621 -                                    0
 1.10622 -                                },
 1.10623 -                                sizeof(struct EntropyContext)
 1.10624 -                            },
 1.10625 -                            {
 1.10626 -                                (void **) &ol_args->__tmp_2_0,
 1.10627 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.10628 -                                {
 1.10629 -                                    1,
 1.10630 -                                    1,
 1.10631 -                                    1,
 1.10632 -                                    0
 1.10633 -                                },
 1.10634 -                                sizeof(SliceBufferEntry)
 1.10635 -                            }
 1.10636 -                        };
 1.10637 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.10638 -                        if (err != NANOS_OK)
 1.10639 -                            nanos_handle_error(err);
 1.10640 -                    }
 1.10641 -                    else
 1.10642 -                    {
 1.10643 -                        _nx_data_env_9_t imm_args;
 1.10644 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.10645 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.10646 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.10647 -                        nanos_dependence_t _dependences[2] = {
 1.10648 -                            {
 1.10649 -                                (void **) &imm_args.__tmp_1_0,
 1.10650 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.10651 -                                {
 1.10652 -                                    1,
 1.10653 -                                    1,
 1.10654 -                                    1,
 1.10655 -                                    0
 1.10656 -                                },
 1.10657 -                                sizeof(struct EntropyContext)
 1.10658 -                            },
 1.10659 -                            {
 1.10660 -                                (void **) &imm_args.__tmp_2_0,
 1.10661 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.10662 -                                {
 1.10663 -                                    1,
 1.10664 -                                    1,
 1.10665 -                                    1,
 1.10666 -                                    0
 1.10667 -                                },
 1.10668 -                                sizeof(SliceBufferEntry)
 1.10669 -                            }
 1.10670 -                        };
 1.10671 -                        dyn_props.priority = 0;
 1.10672 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_9_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.10673 -                        if (err != NANOS_OK)
 1.10674 -                            nanos_handle_error(err);
 1.10675 -                    }
 1.10676 -                }
 1.10677 -                ;
 1.10678 -            }
 1.10679 -            k++;
 1.10680 -            {
 1.10681 -                struct H264Context *__tmp_0 = h;
 1.10682 -                struct MBRecContext *__tmp_1 = rc[k % 2];
 1.10683 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.10684 -                int *__tmp_3 = &init;
 1.10685 -                {
 1.10686 -                    /* SMP device descriptor */
 1.10687 -                    static nanos_smp_args_t _ol_h264_decode_ompss_10_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_10};
 1.10688 -                    _nx_data_env_10_t *ol_args = (_nx_data_env_10_t *) 0;
 1.10689 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.10690 -                    struct nanos_const_wd_definition_local_t
 1.10691 -                    {
 1.10692 -                            nanos_const_wd_definition_t base;
 1.10693 -                            nanos_device_t devices[1];
 1.10694 -                    };
 1.10695 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.10696 -                        {
 1.10697 -                            {
 1.10698 -                                0,
 1.10699 -                                1,
 1.10700 -                                0,
 1.10701 -                                0,
 1.10702 -                                0,
 1.10703 -                                0,
 1.10704 -                                0,
 1.10705 -                                0
 1.10706 -                            },
 1.10707 -                            __alignof__(_nx_data_env_10_t),
 1.10708 -                            0,
 1.10709 -                            1
 1.10710 -                        },
 1.10711 -                        {{
 1.10712 -                            nanos_smp_factory,
 1.10713 -                            &_ol_h264_decode_ompss_10_smp_args
 1.10714 -                        }}
 1.10715 -                    };
 1.10716 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.10717 -                    nanos_err_t err;
 1.10718 -                    dyn_props.priority = 0;
 1.10719 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_10_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.10720 -                    if (err != NANOS_OK)
 1.10721 -                        nanos_handle_error(err);
 1.10722 -                    if (wd != (nanos_wd_t) 0)
 1.10723 -                    {
 1.10724 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.10725 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.10726 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.10727 -                        ol_args->__tmp_3_0 = __tmp_3;
 1.10728 -                        nanos_dependence_t _dependences[3] = {
 1.10729 -                            {
 1.10730 -                                (void **) &ol_args->__tmp_1_0,
 1.10731 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.10732 -                                {
 1.10733 -                                    1,
 1.10734 -                                    1,
 1.10735 -                                    1,
 1.10736 -                                    0
 1.10737 -                                },
 1.10738 -                                sizeof(struct MBRecContext)
 1.10739 -                            },
 1.10740 -                            {
 1.10741 -                                (void **) &ol_args->__tmp_2_0,
 1.10742 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.10743 -                                {
 1.10744 -                                    1,
 1.10745 -                                    1,
 1.10746 -                                    1,
 1.10747 -                                    0
 1.10748 -                                },
 1.10749 -                                sizeof(SliceBufferEntry)
 1.10750 -                            },
 1.10751 -                            {
 1.10752 -                                (void **) &ol_args->__tmp_3_0,
 1.10753 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
 1.10754 -                                {
 1.10755 -                                    1,
 1.10756 -                                    1,
 1.10757 -                                    1,
 1.10758 -                                    0
 1.10759 -                                },
 1.10760 -                                sizeof(int)
 1.10761 -                            }
 1.10762 -                        };
 1.10763 -                        err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.10764 -                        if (err != NANOS_OK)
 1.10765 -                            nanos_handle_error(err);
 1.10766 -                    }
 1.10767 -                    else
 1.10768 -                    {
 1.10769 -                        _nx_data_env_10_t imm_args;
 1.10770 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.10771 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.10772 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.10773 -                        imm_args.__tmp_3_0 = __tmp_3;
 1.10774 -                        nanos_dependence_t _dependences[3] = {
 1.10775 -                            {
 1.10776 -                                (void **) &imm_args.__tmp_1_0,
 1.10777 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.10778 -                                {
 1.10779 -                                    1,
 1.10780 -                                    1,
 1.10781 -                                    1,
 1.10782 -                                    0
 1.10783 -                                },
 1.10784 -                                sizeof(struct MBRecContext)
 1.10785 -                            },
 1.10786 -                            {
 1.10787 -                                (void **) &imm_args.__tmp_2_0,
 1.10788 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.10789 -                                {
 1.10790 -                                    1,
 1.10791 -                                    1,
 1.10792 -                                    1,
 1.10793 -                                    0
 1.10794 -                                },
 1.10795 -                                sizeof(SliceBufferEntry)
 1.10796 -                            },
 1.10797 -                            {
 1.10798 -                                (void **) &imm_args.__tmp_3_0,
 1.10799 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
 1.10800 -                                {
 1.10801 -                                    1,
 1.10802 -                                    1,
 1.10803 -                                    1,
 1.10804 -                                    0
 1.10805 -                                },
 1.10806 -                                sizeof(int)
 1.10807 -                            }
 1.10808 -                        };
 1.10809 -                        dyn_props.priority = 0;
 1.10810 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_10_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.10811 -                        if (err != NANOS_OK)
 1.10812 -                            nanos_handle_error(err);
 1.10813 -                    }
 1.10814 -                }
 1.10815 -                ;
 1.10816 -            }
 1.10817 -            smbc = acquire_smbc(h);
 1.10818 -            SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc);
 1.10819 -            {
 1.10820 -                struct H264Context *__tmp_0 = h;
 1.10821 -                struct SuperMBContext *__tmp_1 = smbc;
 1.10822 -                struct MBRecContext *__tmp_2 = rc[k % 2];
 1.10823 -                SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
 1.10824 -                struct SuperMBTask *__tmp_4 = lastsmb;
 1.10825 -                int *__tmp_5 = &release;
 1.10826 -                {
 1.10827 -                    /* SMP device descriptor */
 1.10828 -                    static nanos_smp_args_t _ol_h264_decode_ompss_11_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_11};
 1.10829 -                    _nx_data_env_11_t *ol_args = (_nx_data_env_11_t *) 0;
 1.10830 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.10831 -                    struct nanos_const_wd_definition_local_t
 1.10832 -                    {
 1.10833 -                            nanos_const_wd_definition_t base;
 1.10834 -                            nanos_device_t devices[1];
 1.10835 -                    };
 1.10836 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.10837 -                        {
 1.10838 -                            {
 1.10839 -                                0,
 1.10840 -                                1,
 1.10841 -                                0,
 1.10842 -                                0,
 1.10843 -                                0,
 1.10844 -                                0,
 1.10845 -                                0,
 1.10846 -                                0
 1.10847 -                            },
 1.10848 -                            __alignof__(_nx_data_env_11_t),
 1.10849 -                            0,
 1.10850 -                            1
 1.10851 -                        },
 1.10852 -                        {{
 1.10853 -                            nanos_smp_factory,
 1.10854 -                            &_ol_h264_decode_ompss_11_smp_args
 1.10855 -                        }}
 1.10856 -                    };
 1.10857 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.10858 -                    nanos_err_t err;
 1.10859 -                    dyn_props.priority = 0;
 1.10860 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_11_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.10861 -                    if (err != NANOS_OK)
 1.10862 -                        nanos_handle_error(err);
 1.10863 -                    if (wd != (nanos_wd_t) 0)
 1.10864 -                    {
 1.10865 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.10866 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.10867 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.10868 -                        ol_args->__tmp_3_0 = __tmp_3;
 1.10869 -                        ol_args->__tmp_4_0 = __tmp_4;
 1.10870 -                        ol_args->__tmp_5_0 = __tmp_5;
 1.10871 -                        nanos_dependence_t _dependences[4] = {
 1.10872 -                            {
 1.10873 -                                (void **) &ol_args->__tmp_4_0,
 1.10874 -                                ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
 1.10875 -                                {
 1.10876 -                                    1,
 1.10877 -                                    0,
 1.10878 -                                    1,
 1.10879 -                                    0
 1.10880 -                                },
 1.10881 -                                sizeof(struct SuperMBTask)
 1.10882 -                            },
 1.10883 -                            {
 1.10884 -                                (void **) &ol_args->__tmp_2_0,
 1.10885 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.10886 -                                {
 1.10887 -                                    1,
 1.10888 -                                    1,
 1.10889 -                                    1,
 1.10890 -                                    0
 1.10891 -                                },
 1.10892 -                                sizeof(struct MBRecContext)
 1.10893 -                            },
 1.10894 -                            {
 1.10895 -                                (void **) &ol_args->__tmp_3_0,
 1.10896 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
 1.10897 -                                {
 1.10898 -                                    1,
 1.10899 -                                    1,
 1.10900 -                                    1,
 1.10901 -                                    0
 1.10902 -                                },
 1.10903 -                                sizeof(SliceBufferEntry)
 1.10904 -                            },
 1.10905 -                            {
 1.10906 -                                (void **) &ol_args->__tmp_5_0,
 1.10907 -                                ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
 1.10908 -                                {
 1.10909 -                                    1,
 1.10910 -                                    1,
 1.10911 -                                    1,
 1.10912 -                                    0
 1.10913 -                                },
 1.10914 -                                sizeof(int)
 1.10915 -                            }
 1.10916 -                        };
 1.10917 -                        err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.10918 -                        if (err != NANOS_OK)
 1.10919 -                            nanos_handle_error(err);
 1.10920 -                    }
 1.10921 -                    else
 1.10922 -                    {
 1.10923 -                        _nx_data_env_11_t imm_args;
 1.10924 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.10925 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.10926 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.10927 -                        imm_args.__tmp_3_0 = __tmp_3;
 1.10928 -                        imm_args.__tmp_4_0 = __tmp_4;
 1.10929 -                        imm_args.__tmp_5_0 = __tmp_5;
 1.10930 -                        nanos_dependence_t _dependences[4] = {
 1.10931 -                            {
 1.10932 -                                (void **) &imm_args.__tmp_4_0,
 1.10933 -                                ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
 1.10934 -                                {
 1.10935 -                                    1,
 1.10936 -                                    0,
 1.10937 -                                    1,
 1.10938 -                                    0
 1.10939 -                                },
 1.10940 -                                sizeof(struct SuperMBTask)
 1.10941 -                            },
 1.10942 -                            {
 1.10943 -                                (void **) &imm_args.__tmp_2_0,
 1.10944 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.10945 -                                {
 1.10946 -                                    1,
 1.10947 -                                    1,
 1.10948 -                                    1,
 1.10949 -                                    0
 1.10950 -                                },
 1.10951 -                                sizeof(struct MBRecContext)
 1.10952 -                            },
 1.10953 -                            {
 1.10954 -                                (void **) &imm_args.__tmp_3_0,
 1.10955 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
 1.10956 -                                {
 1.10957 -                                    1,
 1.10958 -                                    1,
 1.10959 -                                    1,
 1.10960 -                                    0
 1.10961 -                                },
 1.10962 -                                sizeof(SliceBufferEntry)
 1.10963 -                            },
 1.10964 -                            {
 1.10965 -                                (void **) &imm_args.__tmp_5_0,
 1.10966 -                                ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
 1.10967 -                                {
 1.10968 -                                    1,
 1.10969 -                                    1,
 1.10970 -                                    1,
 1.10971 -                                    0
 1.10972 -                                },
 1.10973 -                                sizeof(int)
 1.10974 -                            }
 1.10975 -                        };
 1.10976 -                        dyn_props.priority = 0;
 1.10977 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_11_t), &imm_args, 4, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.10978 -                        if (err != NANOS_OK)
 1.10979 -                            nanos_handle_error(err);
 1.10980 -                    }
 1.10981 -                }
 1.10982 -                ;
 1.10983 -            }
 1.10984 -            {
 1.10985 -                struct H264Context *__tmp_0 = h;
 1.10986 -                struct OutputContext *__tmp_1 = oc;
 1.10987 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.10988 -                {
 1.10989 -                    /* SMP device descriptor */
 1.10990 -                    static nanos_smp_args_t _ol_h264_decode_ompss_12_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_12};
 1.10991 -                    _nx_data_env_12_t *ol_args = (_nx_data_env_12_t *) 0;
 1.10992 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.10993 -                    struct nanos_const_wd_definition_local_t
 1.10994 -                    {
 1.10995 -                            nanos_const_wd_definition_t base;
 1.10996 -                            nanos_device_t devices[1];
 1.10997 -                    };
 1.10998 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.10999 -                        {
 1.11000 -                            {
 1.11001 -                                0,
 1.11002 -                                1,
 1.11003 -                                0,
 1.11004 -                                0,
 1.11005 -                                0,
 1.11006 -                                0,
 1.11007 -                                0,
 1.11008 -                                0
 1.11009 -                            },
 1.11010 -                            __alignof__(_nx_data_env_12_t),
 1.11011 -                            0,
 1.11012 -                            1
 1.11013 -                        },
 1.11014 -                        {{
 1.11015 -                            nanos_smp_factory,
 1.11016 -                            &_ol_h264_decode_ompss_12_smp_args
 1.11017 -                        }}
 1.11018 -                    };
 1.11019 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11020 -                    nanos_err_t err;
 1.11021 -                    dyn_props.priority = 0;
 1.11022 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_12_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11023 -                    if (err != NANOS_OK)
 1.11024 -                        nanos_handle_error(err);
 1.11025 -                    if (wd != (nanos_wd_t) 0)
 1.11026 -                    {
 1.11027 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11028 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11029 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11030 -                        nanos_dependence_t _dependences[2] = {
 1.11031 -                            {
 1.11032 -                                (void **) &ol_args->__tmp_2_0,
 1.11033 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11034 -                                {
 1.11035 -                                    1,
 1.11036 -                                    0,
 1.11037 -                                    1,
 1.11038 -                                    0
 1.11039 -                                },
 1.11040 -                                sizeof(SliceBufferEntry)
 1.11041 -                            },
 1.11042 -                            {
 1.11043 -                                (void **) &ol_args->__tmp_1_0,
 1.11044 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11045 -                                {
 1.11046 -                                    1,
 1.11047 -                                    1,
 1.11048 -                                    1,
 1.11049 -                                    0
 1.11050 -                                },
 1.11051 -                                sizeof(struct OutputContext)
 1.11052 -                            }
 1.11053 -                        };
 1.11054 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11055 -                        if (err != NANOS_OK)
 1.11056 -                            nanos_handle_error(err);
 1.11057 -                    }
 1.11058 -                    else
 1.11059 -                    {
 1.11060 -                        _nx_data_env_12_t imm_args;
 1.11061 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11062 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11063 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11064 -                        nanos_dependence_t _dependences[2] = {
 1.11065 -                            {
 1.11066 -                                (void **) &imm_args.__tmp_2_0,
 1.11067 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11068 -                                {
 1.11069 -                                    1,
 1.11070 -                                    0,
 1.11071 -                                    1,
 1.11072 -                                    0
 1.11073 -                                },
 1.11074 -                                sizeof(SliceBufferEntry)
 1.11075 -                            },
 1.11076 -                            {
 1.11077 -                                (void **) &imm_args.__tmp_1_0,
 1.11078 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.11079 -                                {
 1.11080 -                                    1,
 1.11081 -                                    1,
 1.11082 -                                    1,
 1.11083 -                                    0
 1.11084 -                                },
 1.11085 -                                sizeof(struct OutputContext)
 1.11086 -                            }
 1.11087 -                        };
 1.11088 -                        dyn_props.priority = 0;
 1.11089 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_12_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11090 -                        if (err != NANOS_OK)
 1.11091 -                            nanos_handle_error(err);
 1.11092 -                    }
 1.11093 -                }
 1.11094 -                ;
 1.11095 -            }
 1.11096 -            {
 1.11097 -                struct _dependence_holder
 1.11098 -                {
 1.11099 -                        struct ParserContext *dep_0;
 1.11100 -                } _dep_holder = {&(*pc)};
 1.11101 -                nanos_dependence_t _wait_dependences[1] = {{
 1.11102 -                    (void **) &_dep_holder.dep_0,
 1.11103 -                    ((char *) ((pc)) - (char *) _dep_holder.dep_0),
 1.11104 -                    {
 1.11105 -                        1,
 1.11106 -                        0,
 1.11107 -                        0,
 1.11108 -                        0
 1.11109 -                    },
 1.11110 -                    sizeof (*pc)
 1.11111 -                }};
 1.11112 -                nanos_wait_on(1, _wait_dependences);
 1.11113 -            }
 1.11114 -        }
 1.11115 -        for (int i = 0;
 1.11116 -            i < num_pre_ed;
 1.11117 -            i++)
 1.11118 -        {
 1.11119 -            k++;
 1.11120 -            {
 1.11121 -                struct H264Context *__tmp_0 = h;
 1.11122 -                struct MBRecContext *__tmp_1 = rc[k % 2];
 1.11123 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.11124 -                int *__tmp_3 = &init;
 1.11125 -                {
 1.11126 -                    /* SMP device descriptor */
 1.11127 -                    static nanos_smp_args_t _ol_h264_decode_ompss_13_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_13};
 1.11128 -                    _nx_data_env_13_t *ol_args = (_nx_data_env_13_t *) 0;
 1.11129 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11130 -                    struct nanos_const_wd_definition_local_t
 1.11131 -                    {
 1.11132 -                            nanos_const_wd_definition_t base;
 1.11133 -                            nanos_device_t devices[1];
 1.11134 -                    };
 1.11135 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11136 -                        {
 1.11137 -                            {
 1.11138 -                                0,
 1.11139 -                                1,
 1.11140 -                                0,
 1.11141 -                                0,
 1.11142 -                                0,
 1.11143 -                                0,
 1.11144 -                                0,
 1.11145 -                                0
 1.11146 -                            },
 1.11147 -                            __alignof__(_nx_data_env_13_t),
 1.11148 -                            0,
 1.11149 -                            1
 1.11150 -                        },
 1.11151 -                        {{
 1.11152 -                            nanos_smp_factory,
 1.11153 -                            &_ol_h264_decode_ompss_13_smp_args
 1.11154 -                        }}
 1.11155 -                    };
 1.11156 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11157 -                    nanos_err_t err;
 1.11158 -                    dyn_props.priority = 0;
 1.11159 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_13_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11160 -                    if (err != NANOS_OK)
 1.11161 -                        nanos_handle_error(err);
 1.11162 -                    if (wd != (nanos_wd_t) 0)
 1.11163 -                    {
 1.11164 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11165 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11166 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11167 -                        ol_args->__tmp_3_0 = __tmp_3;
 1.11168 -                        nanos_dependence_t _dependences[3] = {
 1.11169 -                            {
 1.11170 -                                (void **) &ol_args->__tmp_1_0,
 1.11171 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11172 -                                {
 1.11173 -                                    1,
 1.11174 -                                    1,
 1.11175 -                                    1,
 1.11176 -                                    0
 1.11177 -                                },
 1.11178 -                                sizeof(struct MBRecContext)
 1.11179 -                            },
 1.11180 -                            {
 1.11181 -                                (void **) &ol_args->__tmp_2_0,
 1.11182 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11183 -                                {
 1.11184 -                                    1,
 1.11185 -                                    1,
 1.11186 -                                    1,
 1.11187 -                                    0
 1.11188 -                                },
 1.11189 -                                sizeof(SliceBufferEntry)
 1.11190 -                            },
 1.11191 -                            {
 1.11192 -                                (void **) &ol_args->__tmp_3_0,
 1.11193 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
 1.11194 -                                {
 1.11195 -                                    1,
 1.11196 -                                    1,
 1.11197 -                                    1,
 1.11198 -                                    0
 1.11199 -                                },
 1.11200 -                                sizeof(int)
 1.11201 -                            }
 1.11202 -                        };
 1.11203 -                        err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11204 -                        if (err != NANOS_OK)
 1.11205 -                            nanos_handle_error(err);
 1.11206 -                    }
 1.11207 -                    else
 1.11208 -                    {
 1.11209 -                        _nx_data_env_13_t imm_args;
 1.11210 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11211 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11212 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11213 -                        imm_args.__tmp_3_0 = __tmp_3;
 1.11214 -                        nanos_dependence_t _dependences[3] = {
 1.11215 -                            {
 1.11216 -                                (void **) &imm_args.__tmp_1_0,
 1.11217 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.11218 -                                {
 1.11219 -                                    1,
 1.11220 -                                    1,
 1.11221 -                                    1,
 1.11222 -                                    0
 1.11223 -                                },
 1.11224 -                                sizeof(struct MBRecContext)
 1.11225 -                            },
 1.11226 -                            {
 1.11227 -                                (void **) &imm_args.__tmp_2_0,
 1.11228 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11229 -                                {
 1.11230 -                                    1,
 1.11231 -                                    1,
 1.11232 -                                    1,
 1.11233 -                                    0
 1.11234 -                                },
 1.11235 -                                sizeof(SliceBufferEntry)
 1.11236 -                            },
 1.11237 -                            {
 1.11238 -                                (void **) &imm_args.__tmp_3_0,
 1.11239 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
 1.11240 -                                {
 1.11241 -                                    1,
 1.11242 -                                    1,
 1.11243 -                                    1,
 1.11244 -                                    0
 1.11245 -                                },
 1.11246 -                                sizeof(int)
 1.11247 -                            }
 1.11248 -                        };
 1.11249 -                        dyn_props.priority = 0;
 1.11250 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_13_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11251 -                        if (err != NANOS_OK)
 1.11252 -                            nanos_handle_error(err);
 1.11253 -                    }
 1.11254 -                }
 1.11255 -                ;
 1.11256 -            }
 1.11257 -            smbc = acquire_smbc(h);
 1.11258 -            SuperMBTask *lastsmb = add_decode_slice_3dwave_tasks(rc[k % 2], &sbe[k % bufs], smbc);
 1.11259 -            {
 1.11260 -                struct H264Context *__tmp_0 = h;
 1.11261 -                struct SuperMBContext *__tmp_1 = smbc;
 1.11262 -                struct MBRecContext *__tmp_2 = rc[k % 2];
 1.11263 -                SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
 1.11264 -                struct SuperMBTask *__tmp_4 = lastsmb;
 1.11265 -                int *__tmp_5 = &release;
 1.11266 -                {
 1.11267 -                    /* SMP device descriptor */
 1.11268 -                    static nanos_smp_args_t _ol_h264_decode_ompss_14_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_14};
 1.11269 -                    _nx_data_env_14_t *ol_args = (_nx_data_env_14_t *) 0;
 1.11270 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11271 -                    struct nanos_const_wd_definition_local_t
 1.11272 -                    {
 1.11273 -                            nanos_const_wd_definition_t base;
 1.11274 -                            nanos_device_t devices[1];
 1.11275 -                    };
 1.11276 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11277 -                        {
 1.11278 -                            {
 1.11279 -                                0,
 1.11280 -                                1,
 1.11281 -                                0,
 1.11282 -                                0,
 1.11283 -                                0,
 1.11284 -                                0,
 1.11285 -                                0,
 1.11286 -                                0
 1.11287 -                            },
 1.11288 -                            __alignof__(_nx_data_env_14_t),
 1.11289 -                            0,
 1.11290 -                            1
 1.11291 -                        },
 1.11292 -                        {{
 1.11293 -                            nanos_smp_factory,
 1.11294 -                            &_ol_h264_decode_ompss_14_smp_args
 1.11295 -                        }}
 1.11296 -                    };
 1.11297 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11298 -                    nanos_err_t err;
 1.11299 -                    dyn_props.priority = 0;
 1.11300 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_14_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11301 -                    if (err != NANOS_OK)
 1.11302 -                        nanos_handle_error(err);
 1.11303 -                    if (wd != (nanos_wd_t) 0)
 1.11304 -                    {
 1.11305 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11306 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11307 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11308 -                        ol_args->__tmp_3_0 = __tmp_3;
 1.11309 -                        ol_args->__tmp_4_0 = __tmp_4;
 1.11310 -                        ol_args->__tmp_5_0 = __tmp_5;
 1.11311 -                        nanos_dependence_t _dependences[4] = {
 1.11312 -                            {
 1.11313 -                                (void **) &ol_args->__tmp_4_0,
 1.11314 -                                ((char *) ((__tmp_4)) - (char *) ol_args->__tmp_4_0),
 1.11315 -                                {
 1.11316 -                                    1,
 1.11317 -                                    0,
 1.11318 -                                    1,
 1.11319 -                                    0
 1.11320 -                                },
 1.11321 -                                sizeof(struct SuperMBTask)
 1.11322 -                            },
 1.11323 -                            {
 1.11324 -                                (void **) &ol_args->__tmp_2_0,
 1.11325 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11326 -                                {
 1.11327 -                                    1,
 1.11328 -                                    1,
 1.11329 -                                    1,
 1.11330 -                                    0
 1.11331 -                                },
 1.11332 -                                sizeof(struct MBRecContext)
 1.11333 -                            },
 1.11334 -                            {
 1.11335 -                                (void **) &ol_args->__tmp_3_0,
 1.11336 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
 1.11337 -                                {
 1.11338 -                                    1,
 1.11339 -                                    1,
 1.11340 -                                    1,
 1.11341 -                                    0
 1.11342 -                                },
 1.11343 -                                sizeof(SliceBufferEntry)
 1.11344 -                            },
 1.11345 -                            {
 1.11346 -                                (void **) &ol_args->__tmp_5_0,
 1.11347 -                                ((char *) ((__tmp_5)) - (char *) ol_args->__tmp_5_0),
 1.11348 -                                {
 1.11349 -                                    1,
 1.11350 -                                    1,
 1.11351 -                                    1,
 1.11352 -                                    0
 1.11353 -                                },
 1.11354 -                                sizeof(int)
 1.11355 -                            }
 1.11356 -                        };
 1.11357 -                        err = nanos_submit(wd, 4, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11358 -                        if (err != NANOS_OK)
 1.11359 -                            nanos_handle_error(err);
 1.11360 -                    }
 1.11361 -                    else
 1.11362 -                    {
 1.11363 -                        _nx_data_env_14_t imm_args;
 1.11364 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11365 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11366 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11367 -                        imm_args.__tmp_3_0 = __tmp_3;
 1.11368 -                        imm_args.__tmp_4_0 = __tmp_4;
 1.11369 -                        imm_args.__tmp_5_0 = __tmp_5;
 1.11370 -                        nanos_dependence_t _dependences[4] = {
 1.11371 -                            {
 1.11372 -                                (void **) &imm_args.__tmp_4_0,
 1.11373 -                                ((char *) ((__tmp_4)) - (char *) imm_args.__tmp_4_0),
 1.11374 -                                {
 1.11375 -                                    1,
 1.11376 -                                    0,
 1.11377 -                                    1,
 1.11378 -                                    0
 1.11379 -                                },
 1.11380 -                                sizeof(struct SuperMBTask)
 1.11381 -                            },
 1.11382 -                            {
 1.11383 -                                (void **) &imm_args.__tmp_2_0,
 1.11384 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11385 -                                {
 1.11386 -                                    1,
 1.11387 -                                    1,
 1.11388 -                                    1,
 1.11389 -                                    0
 1.11390 -                                },
 1.11391 -                                sizeof(struct MBRecContext)
 1.11392 -                            },
 1.11393 -                            {
 1.11394 -                                (void **) &imm_args.__tmp_3_0,
 1.11395 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
 1.11396 -                                {
 1.11397 -                                    1,
 1.11398 -                                    1,
 1.11399 -                                    1,
 1.11400 -                                    0
 1.11401 -                                },
 1.11402 -                                sizeof(SliceBufferEntry)
 1.11403 -                            },
 1.11404 -                            {
 1.11405 -                                (void **) &imm_args.__tmp_5_0,
 1.11406 -                                ((char *) ((__tmp_5)) - (char *) imm_args.__tmp_5_0),
 1.11407 -                                {
 1.11408 -                                    1,
 1.11409 -                                    1,
 1.11410 -                                    1,
 1.11411 -                                    0
 1.11412 -                                },
 1.11413 -                                sizeof(int)
 1.11414 -                            }
 1.11415 -                        };
 1.11416 -                        dyn_props.priority = 0;
 1.11417 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_14_t), &imm_args, 4, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11418 -                        if (err != NANOS_OK)
 1.11419 -                            nanos_handle_error(err);
 1.11420 -                    }
 1.11421 -                }
 1.11422 -                ;
 1.11423 -            }
 1.11424 -            {
 1.11425 -                struct H264Context *__tmp_0 = h;
 1.11426 -                struct OutputContext *__tmp_1 = oc;
 1.11427 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.11428 -                {
 1.11429 -                    /* SMP device descriptor */
 1.11430 -                    static nanos_smp_args_t _ol_h264_decode_ompss_15_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_15};
 1.11431 -                    _nx_data_env_15_t *ol_args = (_nx_data_env_15_t *) 0;
 1.11432 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11433 -                    struct nanos_const_wd_definition_local_t
 1.11434 -                    {
 1.11435 -                            nanos_const_wd_definition_t base;
 1.11436 -                            nanos_device_t devices[1];
 1.11437 -                    };
 1.11438 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11439 -                        {
 1.11440 -                            {
 1.11441 -                                0,
 1.11442 -                                1,
 1.11443 -                                0,
 1.11444 -                                0,
 1.11445 -                                0,
 1.11446 -                                0,
 1.11447 -                                0,
 1.11448 -                                0
 1.11449 -                            },
 1.11450 -                            __alignof__(_nx_data_env_15_t),
 1.11451 -                            0,
 1.11452 -                            1
 1.11453 -                        },
 1.11454 -                        {{
 1.11455 -                            nanos_smp_factory,
 1.11456 -                            &_ol_h264_decode_ompss_15_smp_args
 1.11457 -                        }}
 1.11458 -                    };
 1.11459 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11460 -                    nanos_err_t err;
 1.11461 -                    dyn_props.priority = 0;
 1.11462 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_15_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11463 -                    if (err != NANOS_OK)
 1.11464 -                        nanos_handle_error(err);
 1.11465 -                    if (wd != (nanos_wd_t) 0)
 1.11466 -                    {
 1.11467 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11468 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11469 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11470 -                        nanos_dependence_t _dependences[2] = {
 1.11471 -                            {
 1.11472 -                                (void **) &ol_args->__tmp_2_0,
 1.11473 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11474 -                                {
 1.11475 -                                    1,
 1.11476 -                                    0,
 1.11477 -                                    1,
 1.11478 -                                    0
 1.11479 -                                },
 1.11480 -                                sizeof(SliceBufferEntry)
 1.11481 -                            },
 1.11482 -                            {
 1.11483 -                                (void **) &ol_args->__tmp_1_0,
 1.11484 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11485 -                                {
 1.11486 -                                    1,
 1.11487 -                                    1,
 1.11488 -                                    1,
 1.11489 -                                    0
 1.11490 -                                },
 1.11491 -                                sizeof(struct OutputContext)
 1.11492 -                            }
 1.11493 -                        };
 1.11494 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11495 -                        if (err != NANOS_OK)
 1.11496 -                            nanos_handle_error(err);
 1.11497 -                    }
 1.11498 -                    else
 1.11499 -                    {
 1.11500 -                        _nx_data_env_15_t imm_args;
 1.11501 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11502 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11503 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11504 -                        nanos_dependence_t _dependences[2] = {
 1.11505 -                            {
 1.11506 -                                (void **) &imm_args.__tmp_2_0,
 1.11507 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11508 -                                {
 1.11509 -                                    1,
 1.11510 -                                    0,
 1.11511 -                                    1,
 1.11512 -                                    0
 1.11513 -                                },
 1.11514 -                                sizeof(SliceBufferEntry)
 1.11515 -                            },
 1.11516 -                            {
 1.11517 -                                (void **) &imm_args.__tmp_1_0,
 1.11518 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.11519 -                                {
 1.11520 -                                    1,
 1.11521 -                                    1,
 1.11522 -                                    1,
 1.11523 -                                    0
 1.11524 -                                },
 1.11525 -                                sizeof(struct OutputContext)
 1.11526 -                            }
 1.11527 -                        };
 1.11528 -                        dyn_props.priority = 0;
 1.11529 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_15_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11530 -                        if (err != NANOS_OK)
 1.11531 -                            nanos_handle_error(err);
 1.11532 -                    }
 1.11533 -                }
 1.11534 -                ;
 1.11535 -            }
 1.11536 -        }
 1.11537 +          }
 1.11538 +      }
 1.11539      }
 1.11540 -    else
 1.11541 +  {
 1.11542 +    nanos_err_t err;
 1.11543 +    void *nanos_wd_ = nanos_current_wd();
 1.11544 +    err = nanos_wg_wait_completion(nanos_wd_, 0);
 1.11545 +    if (err != NANOS_OK)
 1.11546 +      {
 1.11547 +        nanos_handle_error(err);
 1.11548 +      }
 1.11549 +  }
 1.11550 +  while ((out = output_frame(h, oc, (void *)0, (*h).ofile, (*h).frame_width, (*h).frame_height)))
 1.11551      {
 1.11552 -        while (!pc->final_frame && frames++ < h->num_frames && !h->quit)
 1.11553 -        {
 1.11554 -            {
 1.11555 -                struct H264Context *__tmp_0 = h;
 1.11556 -                struct ParserContext *__tmp_1 = pc;
 1.11557 -                struct NalContext *__tmp_2 = nc;
 1.11558 -                SliceBufferEntry *__tmp_3 = &sbe[k % bufs];
 1.11559 -                {
 1.11560 -                    /* SMP device descriptor */
 1.11561 -                    static nanos_smp_args_t _ol_h264_decode_ompss_16_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_16};
 1.11562 -                    _nx_data_env_16_t *ol_args = (_nx_data_env_16_t *) 0;
 1.11563 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11564 -                    struct nanos_const_wd_definition_local_t
 1.11565 -                    {
 1.11566 -                            nanos_const_wd_definition_t base;
 1.11567 -                            nanos_device_t devices[1];
 1.11568 -                    };
 1.11569 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11570 -                        {
 1.11571 -                            {
 1.11572 -                                0,
 1.11573 -                                1,
 1.11574 -                                0,
 1.11575 -                                0,
 1.11576 -                                0,
 1.11577 -                                0,
 1.11578 -                                0,
 1.11579 -                                0
 1.11580 -                            },
 1.11581 -                            __alignof__(_nx_data_env_16_t),
 1.11582 -                            0,
 1.11583 -                            1
 1.11584 -                        },
 1.11585 -                        {{
 1.11586 -                            nanos_smp_factory,
 1.11587 -                            &_ol_h264_decode_ompss_16_smp_args
 1.11588 -                        }}
 1.11589 -                    };
 1.11590 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11591 -                    nanos_err_t err;
 1.11592 -                    dyn_props.priority = 0;
 1.11593 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_16_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11594 -                    if (err != NANOS_OK)
 1.11595 -                        nanos_handle_error(err);
 1.11596 -                    if (wd != (nanos_wd_t) 0)
 1.11597 -                    {
 1.11598 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11599 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11600 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11601 -                        ol_args->__tmp_3_0 = __tmp_3;
 1.11602 -                        nanos_dependence_t _dependences[3] = {
 1.11603 -                            {
 1.11604 -                                (void **) &ol_args->__tmp_3_0,
 1.11605 -                                ((char *) ((__tmp_3)) - (char *) ol_args->__tmp_3_0),
 1.11606 -                                {
 1.11607 -                                    0,
 1.11608 -                                    1,
 1.11609 -                                    1,
 1.11610 -                                    0
 1.11611 -                                },
 1.11612 -                                sizeof(SliceBufferEntry)
 1.11613 -                            },
 1.11614 -                            {
 1.11615 -                                (void **) &ol_args->__tmp_1_0,
 1.11616 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11617 -                                {
 1.11618 -                                    1,
 1.11619 -                                    1,
 1.11620 -                                    1,
 1.11621 -                                    0
 1.11622 -                                },
 1.11623 -                                sizeof(struct ParserContext)
 1.11624 -                            },
 1.11625 -                            {
 1.11626 -                                (void **) &ol_args->__tmp_2_0,
 1.11627 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11628 -                                {
 1.11629 -                                    1,
 1.11630 -                                    1,
 1.11631 -                                    1,
 1.11632 -                                    0
 1.11633 -                                },
 1.11634 -                                sizeof(struct NalContext)
 1.11635 -                            }
 1.11636 -                        };
 1.11637 -                        err = nanos_submit(wd, 3, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11638 -                        if (err != NANOS_OK)
 1.11639 -                            nanos_handle_error(err);
 1.11640 -                    }
 1.11641 -                    else
 1.11642 -                    {
 1.11643 -                        _nx_data_env_16_t imm_args;
 1.11644 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11645 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11646 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11647 -                        imm_args.__tmp_3_0 = __tmp_3;
 1.11648 -                        nanos_dependence_t _dependences[3] = {
 1.11649 -                            {
 1.11650 -                                (void **) &imm_args.__tmp_3_0,
 1.11651 -                                ((char *) ((__tmp_3)) - (char *) imm_args.__tmp_3_0),
 1.11652 -                                {
 1.11653 -                                    0,
 1.11654 -                                    1,
 1.11655 -                                    1,
 1.11656 -                                    0
 1.11657 -                                },
 1.11658 -                                sizeof(SliceBufferEntry)
 1.11659 -                            },
 1.11660 -                            {
 1.11661 -                                (void **) &imm_args.__tmp_1_0,
 1.11662 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.11663 -                                {
 1.11664 -                                    1,
 1.11665 -                                    1,
 1.11666 -                                    1,
 1.11667 -                                    0
 1.11668 -                                },
 1.11669 -                                sizeof(struct ParserContext)
 1.11670 -                            },
 1.11671 -                            {
 1.11672 -                                (void **) &imm_args.__tmp_2_0,
 1.11673 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11674 -                                {
 1.11675 -                                    1,
 1.11676 -                                    1,
 1.11677 -                                    1,
 1.11678 -                                    0
 1.11679 -                                },
 1.11680 -                                sizeof(struct NalContext)
 1.11681 -                            }
 1.11682 -                        };
 1.11683 -                        dyn_props.priority = 0;
 1.11684 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_16_t), &imm_args, 3, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11685 -                        if (err != NANOS_OK)
 1.11686 -                            nanos_handle_error(err);
 1.11687 -                    }
 1.11688 -                }
 1.11689 -                ;
 1.11690 -            }
 1.11691 -            {
 1.11692 -                struct H264Context *__tmp_0 = h;
 1.11693 -                struct EntropyContext *__tmp_1 = ec[k % bufs];
 1.11694 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.11695 -                {
 1.11696 -                    /* SMP device descriptor */
 1.11697 -                    static nanos_smp_args_t _ol_h264_decode_ompss_17_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_17};
 1.11698 -                    _nx_data_env_17_t *ol_args = (_nx_data_env_17_t *) 0;
 1.11699 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11700 -                    struct nanos_const_wd_definition_local_t
 1.11701 -                    {
 1.11702 -                            nanos_const_wd_definition_t base;
 1.11703 -                            nanos_device_t devices[1];
 1.11704 -                    };
 1.11705 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11706 -                        {
 1.11707 -                            {
 1.11708 -                                0,
 1.11709 -                                1,
 1.11710 -                                0,
 1.11711 -                                0,
 1.11712 -                                0,
 1.11713 -                                0,
 1.11714 -                                0,
 1.11715 -                                0
 1.11716 -                            },
 1.11717 -                            __alignof__(_nx_data_env_17_t),
 1.11718 -                            0,
 1.11719 -                            1
 1.11720 -                        },
 1.11721 -                        {{
 1.11722 -                            nanos_smp_factory,
 1.11723 -                            &_ol_h264_decode_ompss_17_smp_args
 1.11724 -                        }}
 1.11725 -                    };
 1.11726 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11727 -                    nanos_err_t err;
 1.11728 -                    dyn_props.priority = 0;
 1.11729 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_17_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11730 -                    if (err != NANOS_OK)
 1.11731 -                        nanos_handle_error(err);
 1.11732 -                    if (wd != (nanos_wd_t) 0)
 1.11733 -                    {
 1.11734 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11735 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11736 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11737 -                        nanos_dependence_t _dependences[2] = {
 1.11738 -                            {
 1.11739 -                                (void **) &ol_args->__tmp_1_0,
 1.11740 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11741 -                                {
 1.11742 -                                    1,
 1.11743 -                                    1,
 1.11744 -                                    1,
 1.11745 -                                    0
 1.11746 -                                },
 1.11747 -                                sizeof(struct EntropyContext)
 1.11748 -                            },
 1.11749 -                            {
 1.11750 -                                (void **) &ol_args->__tmp_2_0,
 1.11751 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11752 -                                {
 1.11753 -                                    1,
 1.11754 -                                    1,
 1.11755 -                                    1,
 1.11756 -                                    0
 1.11757 -                                },
 1.11758 -                                sizeof(SliceBufferEntry)
 1.11759 -                            }
 1.11760 -                        };
 1.11761 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11762 -                        if (err != NANOS_OK)
 1.11763 -                            nanos_handle_error(err);
 1.11764 -                    }
 1.11765 -                    else
 1.11766 -                    {
 1.11767 -                        _nx_data_env_17_t imm_args;
 1.11768 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11769 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11770 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11771 -                        nanos_dependence_t _dependences[2] = {
 1.11772 -                            {
 1.11773 -                                (void **) &imm_args.__tmp_1_0,
 1.11774 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.11775 -                                {
 1.11776 -                                    1,
 1.11777 -                                    1,
 1.11778 -                                    1,
 1.11779 -                                    0
 1.11780 -                                },
 1.11781 -                                sizeof(struct EntropyContext)
 1.11782 -                            },
 1.11783 -                            {
 1.11784 -                                (void **) &imm_args.__tmp_2_0,
 1.11785 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11786 -                                {
 1.11787 -                                    1,
 1.11788 -                                    1,
 1.11789 -                                    1,
 1.11790 -                                    0
 1.11791 -                                },
 1.11792 -                                sizeof(SliceBufferEntry)
 1.11793 -                            }
 1.11794 -                        };
 1.11795 -                        dyn_props.priority = 0;
 1.11796 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_17_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11797 -                        if (err != NANOS_OK)
 1.11798 -                            nanos_handle_error(err);
 1.11799 -                    }
 1.11800 -                }
 1.11801 -                ;
 1.11802 -            }
 1.11803 -            {
 1.11804 -                struct H264Context *__tmp_0 = h;
 1.11805 -                struct MBRecContext *__tmp_1 = rc[0];
 1.11806 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.11807 -                {
 1.11808 -                    /* SMP device descriptor */
 1.11809 -                    static nanos_smp_args_t _ol_h264_decode_ompss_18_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_18};
 1.11810 -                    _nx_data_env_18_t *ol_args = (_nx_data_env_18_t *) 0;
 1.11811 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11812 -                    struct nanos_const_wd_definition_local_t
 1.11813 -                    {
 1.11814 -                            nanos_const_wd_definition_t base;
 1.11815 -                            nanos_device_t devices[1];
 1.11816 -                    };
 1.11817 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11818 -                        {
 1.11819 -                            {
 1.11820 -                                0,
 1.11821 -                                1,
 1.11822 -                                0,
 1.11823 -                                0,
 1.11824 -                                0,
 1.11825 -                                0,
 1.11826 -                                0,
 1.11827 -                                0
 1.11828 -                            },
 1.11829 -                            __alignof__(_nx_data_env_18_t),
 1.11830 -                            0,
 1.11831 -                            1
 1.11832 -                        },
 1.11833 -                        {{
 1.11834 -                            nanos_smp_factory,
 1.11835 -                            &_ol_h264_decode_ompss_18_smp_args
 1.11836 -                        }}
 1.11837 -                    };
 1.11838 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11839 -                    nanos_err_t err;
 1.11840 -                    dyn_props.priority = 0;
 1.11841 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_18_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11842 -                    if (err != NANOS_OK)
 1.11843 -                        nanos_handle_error(err);
 1.11844 -                    if (wd != (nanos_wd_t) 0)
 1.11845 -                    {
 1.11846 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11847 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11848 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11849 -                        nanos_dependence_t _dependences[2] = {
 1.11850 -                            {
 1.11851 -                                (void **) &ol_args->__tmp_1_0,
 1.11852 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11853 -                                {
 1.11854 -                                    1,
 1.11855 -                                    1,
 1.11856 -                                    1,
 1.11857 -                                    0
 1.11858 -                                },
 1.11859 -                                sizeof(struct MBRecContext)
 1.11860 -                            },
 1.11861 -                            {
 1.11862 -                                (void **) &ol_args->__tmp_2_0,
 1.11863 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11864 -                                {
 1.11865 -                                    1,
 1.11866 -                                    1,
 1.11867 -                                    1,
 1.11868 -                                    0
 1.11869 -                                },
 1.11870 -                                sizeof(SliceBufferEntry)
 1.11871 -                            }
 1.11872 -                        };
 1.11873 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11874 -                        if (err != NANOS_OK)
 1.11875 -                            nanos_handle_error(err);
 1.11876 -                    }
 1.11877 -                    else
 1.11878 -                    {
 1.11879 -                        _nx_data_env_18_t imm_args;
 1.11880 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11881 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11882 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11883 -                        nanos_dependence_t _dependences[2] = {
 1.11884 -                            {
 1.11885 -                                (void **) &imm_args.__tmp_1_0,
 1.11886 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.11887 -                                {
 1.11888 -                                    1,
 1.11889 -                                    1,
 1.11890 -                                    1,
 1.11891 -                                    0
 1.11892 -                                },
 1.11893 -                                sizeof(struct MBRecContext)
 1.11894 -                            },
 1.11895 -                            {
 1.11896 -                                (void **) &imm_args.__tmp_2_0,
 1.11897 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11898 -                                {
 1.11899 -                                    1,
 1.11900 -                                    1,
 1.11901 -                                    1,
 1.11902 -                                    0
 1.11903 -                                },
 1.11904 -                                sizeof(SliceBufferEntry)
 1.11905 -                            }
 1.11906 -                        };
 1.11907 -                        dyn_props.priority = 0;
 1.11908 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_18_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.11909 -                        if (err != NANOS_OK)
 1.11910 -                            nanos_handle_error(err);
 1.11911 -                    }
 1.11912 -                }
 1.11913 -                ;
 1.11914 -            }
 1.11915 -            {
 1.11916 -                struct H264Context *__tmp_0 = h;
 1.11917 -                struct OutputContext *__tmp_1 = oc;
 1.11918 -                SliceBufferEntry *__tmp_2 = &sbe[k % bufs];
 1.11919 -                {
 1.11920 -                    /* SMP device descriptor */
 1.11921 -                    static nanos_smp_args_t _ol_h264_decode_ompss_19_smp_args = {(void (*)(void *)) _smp__ol_h264_decode_ompss_19};
 1.11922 -                    _nx_data_env_19_t *ol_args = (_nx_data_env_19_t *) 0;
 1.11923 -                    nanos_wd_t wd = (nanos_wd_t) 0;
 1.11924 -                    struct nanos_const_wd_definition_local_t
 1.11925 -                    {
 1.11926 -                            nanos_const_wd_definition_t base;
 1.11927 -                            nanos_device_t devices[1];
 1.11928 -                    };
 1.11929 -                    static struct nanos_const_wd_definition_local_t _const_def = {
 1.11930 -                        {
 1.11931 -                            {
 1.11932 -                                0,
 1.11933 -                                1,
 1.11934 -                                0,
 1.11935 -                                0,
 1.11936 -                                0,
 1.11937 -                                0,
 1.11938 -                                0,
 1.11939 -                                0
 1.11940 -                            },
 1.11941 -                            __alignof__(_nx_data_env_19_t),
 1.11942 -                            0,
 1.11943 -                            1
 1.11944 -                        },
 1.11945 -                        {{
 1.11946 -                            nanos_smp_factory,
 1.11947 -                            &_ol_h264_decode_ompss_19_smp_args
 1.11948 -                        }}
 1.11949 -                    };
 1.11950 -                    nanos_wd_dyn_props_t dyn_props = {0};
 1.11951 -                    nanos_err_t err;
 1.11952 -                    dyn_props.priority = 0;
 1.11953 -                    err = nanos_create_wd_compact(&wd, &_const_def.base, &dyn_props, sizeof(_nx_data_env_19_t), (void **) &ol_args, nanos_current_wd(), (nanos_copy_data_t **) 0);
 1.11954 -                    if (err != NANOS_OK)
 1.11955 -                        nanos_handle_error(err);
 1.11956 -                    if (wd != (nanos_wd_t) 0)
 1.11957 -                    {
 1.11958 -                        ol_args->__tmp_0_0 = __tmp_0;
 1.11959 -                        ol_args->__tmp_1_0 = __tmp_1;
 1.11960 -                        ol_args->__tmp_2_0 = __tmp_2;
 1.11961 -                        nanos_dependence_t _dependences[2] = {
 1.11962 -                            {
 1.11963 -                                (void **) &ol_args->__tmp_2_0,
 1.11964 -                                ((char *) ((__tmp_2)) - (char *) ol_args->__tmp_2_0),
 1.11965 -                                {
 1.11966 -                                    1,
 1.11967 -                                    0,
 1.11968 -                                    1,
 1.11969 -                                    0
 1.11970 -                                },
 1.11971 -                                sizeof(SliceBufferEntry)
 1.11972 -                            },
 1.11973 -                            {
 1.11974 -                                (void **) &ol_args->__tmp_1_0,
 1.11975 -                                ((char *) ((__tmp_1)) - (char *) ol_args->__tmp_1_0),
 1.11976 -                                {
 1.11977 -                                    1,
 1.11978 -                                    1,
 1.11979 -                                    1,
 1.11980 -                                    0
 1.11981 -                                },
 1.11982 -                                sizeof(struct OutputContext)
 1.11983 -                            }
 1.11984 -                        };
 1.11985 -                        err = nanos_submit(wd, 2, (nanos_dependence_t *) _dependences, (nanos_team_t) 0);
 1.11986 -                        if (err != NANOS_OK)
 1.11987 -                            nanos_handle_error(err);
 1.11988 -                    }
 1.11989 -                    else
 1.11990 -                    {
 1.11991 -                        _nx_data_env_19_t imm_args;
 1.11992 -                        imm_args.__tmp_0_0 = __tmp_0;
 1.11993 -                        imm_args.__tmp_1_0 = __tmp_1;
 1.11994 -                        imm_args.__tmp_2_0 = __tmp_2;
 1.11995 -                        nanos_dependence_t _dependences[2] = {
 1.11996 -                            {
 1.11997 -                                (void **) &imm_args.__tmp_2_0,
 1.11998 -                                ((char *) ((__tmp_2)) - (char *) imm_args.__tmp_2_0),
 1.11999 -                                {
 1.12000 -                                    1,
 1.12001 -                                    0,
 1.12002 -                                    1,
 1.12003 -                                    0
 1.12004 -                                },
 1.12005 -                                sizeof(SliceBufferEntry)
 1.12006 -                            },
 1.12007 -                            {
 1.12008 -                                (void **) &imm_args.__tmp_1_0,
 1.12009 -                                ((char *) ((__tmp_1)) - (char *) imm_args.__tmp_1_0),
 1.12010 -                                {
 1.12011 -                                    1,
 1.12012 -                                    1,
 1.12013 -                                    1,
 1.12014 -                                    0
 1.12015 -                                },
 1.12016 -                                sizeof(struct OutputContext)
 1.12017 -                            }
 1.12018 -                        };
 1.12019 -                        dyn_props.priority = 0;
 1.12020 -                        err = nanos_create_wd_and_run_compact(&_const_def.base, &dyn_props, sizeof(_nx_data_env_19_t), &imm_args, 2, (nanos_dependence_t *) _dependences, (nanos_copy_data_t *) 0, (void *) 0);
 1.12021 -                        if (err != NANOS_OK)
 1.12022 -                            nanos_handle_error(err);
 1.12023 -                    }
 1.12024 -                }
 1.12025 -                ;
 1.12026 -            }
 1.12027 -            {
 1.12028 -                struct _dependence_holder
 1.12029 -                {
 1.12030 -                        struct ParserContext *dep_0;
 1.12031 -                } _dep_holder = {&(*pc)};
 1.12032 -                nanos_dependence_t _wait_dependences[1] = {{
 1.12033 -                    (void **) &_dep_holder.dep_0,
 1.12034 -                    ((char *) ((pc)) - (char *) _dep_holder.dep_0),
 1.12035 -                    {
 1.12036 -                        1,
 1.12037 -                        0,
 1.12038 -                        0,
 1.12039 -                        0
 1.12040 -                    },
 1.12041 -                    sizeof (*pc)
 1.12042 -                }};
 1.12043 -                nanos_wait_on(1, _wait_dependences);
 1.12044 -            }
 1.12045 -            k++;
 1.12046 -        }
 1.12047 +      ;
 1.12048      }
 1.12049 -    nanos_wg_wait_completion(nanos_current_wd(), 0);
 1.12050 -    while ((out = output_frame(h, oc, ((void *) 0), h->ofile, h->frame_width, h->frame_height)))
 1.12051 -        ;
 1.12052 -    h->num_frames = oc->frame_number;
 1.12053 -    free_parse_context(pc);
 1.12054 -    free_nal_context(nc);
 1.12055 -    free_output_context(oc);
 1.12056 -    for (int i = 0;
 1.12057 -        i < bufs;
 1.12058 -        i++)
 1.12059 +  (*h).num_frames = (*oc).frame_number;
 1.12060 +  free_parse_context(pc);
 1.12061 +  free_nal_context(nc);
 1.12062 +  free_output_context(oc);
 1.12063 +  for (int i = 0; i < bufs; i++)
 1.12064      {
 1.12065 +      {
 1.12066          free_sb_entry(&sbe[i]);
 1.12067          free_entropy_context(ec[i]);
 1.12068 +      }
 1.12069      }
 1.12070 -    av_free(sbe);
 1.12071 -    for (int i = 0;
 1.12072 -        i < 2;
 1.12073 -        i++)
 1.12074 +  av_free(sbe);
 1.12075 +  for (int i = 0; i < 2; i++)
 1.12076      {
 1.12077 +      {
 1.12078          free_mbrec_context(rc[i]);
 1.12079 +      }
 1.12080      }
 1.12081 -    return 0;
 1.12082 +  return 0;
 1.12083  }
 1.12084 -__attribute__((weak, section("nanos_init"))) nanos_init_desc_t __section__nanos_init = {
 1.12085 -    nanos_omp_set_interface,
 1.12086 -    (void *) 0
 1.12087 +static void smp_ol_decode_super_mb_task_1_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const ml, SuperMBTask **const mur, SuperMBTask **const m)
 1.12088 +{
 1.12089 +  {
 1.12090 +    decode_super_mb_task((*d), (*sbe), (*smbc), (*ml), (*mur), (*m));
 1.12091 +  }
 1.12092 +}
 1.12093 +static void smp_ol_decode_super_mb_task_1(struct nanos_args_0_t *const args)
 1.12094 +{
 1.12095 +  {
 1.12096 +    smp_ol_decode_super_mb_task_1_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).ml), &((*args).mur), &((*args).m));
 1.12097 +  }
 1.12098 +}
 1.12099 +static void smp_ol_draw_edges_task_3_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const sm, int *const line)
 1.12100 +{
 1.12101 +  {
 1.12102 +    draw_edges_task((*d), (*sbe), (*smbc), (*sm), (*line));
 1.12103 +  }
 1.12104 +}
 1.12105 +static void smp_ol_draw_edges_task_3(struct nanos_args_1_t *const args)
 1.12106 +{
 1.12107 +  {
 1.12108 +    smp_ol_draw_edges_task_3_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).sm), &((*args).line));
 1.12109 +  }
 1.12110 +}
 1.12111 +static void smp_ol_decode_3dwave_super_mb_task_5_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const ml, SuperMBTask **const mur, SuperMBTask **const mprev, SuperMBTask **const m)
 1.12112 +{
 1.12113 +  {
 1.12114 +    decode_3dwave_super_mb_task((*d), (*sbe), (*smbc), (*ml), (*mur), (*mprev), (*m));
 1.12115 +  }
 1.12116 +}
 1.12117 +static void smp_ol_decode_3dwave_super_mb_task_5(struct nanos_args_2_t *const args)
 1.12118 +{
 1.12119 +  {
 1.12120 +    smp_ol_decode_3dwave_super_mb_task_5_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).ml), &((*args).mur), &((*args).mprev), &((*args).m));
 1.12121 +  }
 1.12122 +}
 1.12123 +static void smp_ol_draw_edges_task_7_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const sm, int *const line)
 1.12124 +{
 1.12125 +  {
 1.12126 +    draw_edges_task((*d), (*sbe), (*smbc), (*sm), (*line));
 1.12127 +  }
 1.12128 +}
 1.12129 +static void smp_ol_draw_edges_task_7(struct nanos_args_3_t *const args)
 1.12130 +{
 1.12131 +  {
 1.12132 +    smp_ol_draw_edges_task_7_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).sm), &((*args).line));
 1.12133 +  }
 1.12134 +}
 1.12135 +static void smp_ol_decode_super_mb_task_9_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const ml, SuperMBTask **const mur, SuperMBTask **const m)
 1.12136 +{
 1.12137 +  {
 1.12138 +    decode_super_mb_task((*d), (*sbe), (*smbc), (*ml), (*mur), (*m));
 1.12139 +  }
 1.12140 +}
 1.12141 +static void smp_ol_decode_super_mb_task_9(struct nanos_args_4_t *const args)
 1.12142 +{
 1.12143 +  {
 1.12144 +    smp_ol_decode_super_mb_task_9_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).ml), &((*args).mur), &((*args).m));
 1.12145 +  }
 1.12146 +}
 1.12147 +static void smp_ol_draw_edges_task_11_unpacked(MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBContext **const smbc, SuperMBTask **const sm, int *const line)
 1.12148 +{
 1.12149 +  {
 1.12150 +    draw_edges_task((*d), (*sbe), (*smbc), (*sm), (*line));
 1.12151 +  }
 1.12152 +}
 1.12153 +static void smp_ol_draw_edges_task_11(struct nanos_args_5_t *const args)
 1.12154 +{
 1.12155 +  {
 1.12156 +    smp_ol_draw_edges_task_11_unpacked(&((*args).d), &((*args).sbe), &((*args).smbc), &((*args).sm), &((*args).line));
 1.12157 +  }
 1.12158 +}
 1.12159 +static void smp_ol_parse_task_13_unpacked(H264Context **const h, ParserContext **const pc, NalContext **const nc, SliceBufferEntry **const sbe)
 1.12160 +{
 1.12161 +  {
 1.12162 +    parse_task((*h), (*pc), (*nc), (*sbe));
 1.12163 +  }
 1.12164 +}
 1.12165 +static void smp_ol_parse_task_13(struct nanos_args_6_t *const args)
 1.12166 +{
 1.12167 +  {
 1.12168 +    smp_ol_parse_task_13_unpacked(&((*args).h), &((*args).pc), &((*args).nc), &((*args).sbe));
 1.12169 +  }
 1.12170 +}
 1.12171 +static void smp_ol_decode_slice_entropy_task_15_unpacked(H264Context **const h, EntropyContext **const ec, SliceBufferEntry **const sbe)
 1.12172 +{
 1.12173 +  {
 1.12174 +    decode_slice_entropy_task((*h), (*ec), (*sbe));
 1.12175 +  }
 1.12176 +}
 1.12177 +static void smp_ol_decode_slice_entropy_task_15(struct nanos_args_7_t *const args)
 1.12178 +{
 1.12179 +  {
 1.12180 +    smp_ol_decode_slice_entropy_task_15_unpacked(&((*args).h), &((*args).ec), &((*args).sbe));
 1.12181 +  }
 1.12182 +}
 1.12183 +static void smp_ol_parse_task_17_unpacked(H264Context **const h, ParserContext **const pc, NalContext **const nc, SliceBufferEntry **const sbe)
 1.12184 +{
 1.12185 +  {
 1.12186 +    parse_task((*h), (*pc), (*nc), (*sbe));
 1.12187 +  }
 1.12188 +}
 1.12189 +static void smp_ol_parse_task_17(struct nanos_args_8_t *const args)
 1.12190 +{
 1.12191 +  {
 1.12192 +    smp_ol_parse_task_17_unpacked(&((*args).h), &((*args).pc), &((*args).nc), &((*args).sbe));
 1.12193 +  }
 1.12194 +}
 1.12195 +static void smp_ol_decode_slice_entropy_task_19_unpacked(H264Context **const h, EntropyContext **const ec, SliceBufferEntry **const sbe)
 1.12196 +{
 1.12197 +  {
 1.12198 +    decode_slice_entropy_task((*h), (*ec), (*sbe));
 1.12199 +  }
 1.12200 +}
 1.12201 +static void smp_ol_decode_slice_entropy_task_19(struct nanos_args_9_t *const args)
 1.12202 +{
 1.12203 +  {
 1.12204 +    smp_ol_decode_slice_entropy_task_19_unpacked(&((*args).h), &((*args).ec), &((*args).sbe));
 1.12205 +  }
 1.12206 +}
 1.12207 +static void smp_ol_init_ref_list_and_get_dpb_task_21_unpacked(H264Context **const h, MBRecContext **const d, SliceBufferEntry **const sbe, int **const init)
 1.12208 +{
 1.12209 +  {
 1.12210 +    init_ref_list_and_get_dpb_task((*h), (*d), (*sbe), (*init));
 1.12211 +  }
 1.12212 +}
 1.12213 +static void smp_ol_init_ref_list_and_get_dpb_task_21(struct nanos_args_10_t *const args)
 1.12214 +{
 1.12215 +  {
 1.12216 +    smp_ol_init_ref_list_and_get_dpb_task_21_unpacked(&((*args).h), &((*args).d), &((*args).sbe), &((*args).init));
 1.12217 +  }
 1.12218 +}
 1.12219 +static void smp_ol_release_ref_list_task_23_unpacked(H264Context **const h, SuperMBContext **const smbc, MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBTask **const lastsmb, int **const release)
 1.12220 +{
 1.12221 +  {
 1.12222 +    release_ref_list_task((*h), (*smbc), (*d), (*sbe), (*lastsmb), (*release));
 1.12223 +  }
 1.12224 +}
 1.12225 +static void smp_ol_release_ref_list_task_23(struct nanos_args_11_t *const args)
 1.12226 +{
 1.12227 +  {
 1.12228 +    smp_ol_release_ref_list_task_23_unpacked(&((*args).h), &((*args).smbc), &((*args).d), &((*args).sbe), &((*args).lastsmb), &((*args).release));
 1.12229 +  }
 1.12230 +}
 1.12231 +static void smp_ol_output_task_25_unpacked(H264Context **const h, OutputContext **const oc, SliceBufferEntry **const sbe)
 1.12232 +{
 1.12233 +  {
 1.12234 +    output_task((*h), (*oc), (*sbe));
 1.12235 +  }
 1.12236 +}
 1.12237 +static void smp_ol_output_task_25(struct nanos_args_12_t *const args)
 1.12238 +{
 1.12239 +  {
 1.12240 +    smp_ol_output_task_25_unpacked(&((*args).h), &((*args).oc), &((*args).sbe));
 1.12241 +  }
 1.12242 +}
 1.12243 +static void smp_ol_init_ref_list_and_get_dpb_task_27_unpacked(H264Context **const h, MBRecContext **const d, SliceBufferEntry **const sbe, int **const init)
 1.12244 +{
 1.12245 +  {
 1.12246 +    init_ref_list_and_get_dpb_task((*h), (*d), (*sbe), (*init));
 1.12247 +  }
 1.12248 +}
 1.12249 +static void smp_ol_init_ref_list_and_get_dpb_task_27(struct nanos_args_13_t *const args)
 1.12250 +{
 1.12251 +  {
 1.12252 +    smp_ol_init_ref_list_and_get_dpb_task_27_unpacked(&((*args).h), &((*args).d), &((*args).sbe), &((*args).init));
 1.12253 +  }
 1.12254 +}
 1.12255 +static void smp_ol_release_ref_list_task_29_unpacked(H264Context **const h, SuperMBContext **const smbc, MBRecContext **const d, SliceBufferEntry **const sbe, SuperMBTask **const lastsmb, int **const release)
 1.12256 +{
 1.12257 +  {
 1.12258 +    release_ref_list_task((*h), (*smbc), (*d), (*sbe), (*lastsmb), (*release));
 1.12259 +  }
 1.12260 +}
 1.12261 +static void smp_ol_release_ref_list_task_29(struct nanos_args_14_t *const args)
 1.12262 +{
 1.12263 +  {
 1.12264 +    smp_ol_release_ref_list_task_29_unpacked(&((*args).h), &((*args).smbc), &((*args).d), &((*args).sbe), &((*args).lastsmb), &((*args).release));
 1.12265 +  }
 1.12266 +}
 1.12267 +static void smp_ol_output_task_31_unpacked(H264Context **const h, OutputContext **const oc, SliceBufferEntry **const sbe)
 1.12268 +{
 1.12269 +  {
 1.12270 +    output_task((*h), (*oc), (*sbe));
 1.12271 +  }
 1.12272 +}
 1.12273 +static void smp_ol_output_task_31(struct nanos_args_15_t *const args)
 1.12274 +{
 1.12275 +  {
 1.12276 +    smp_ol_output_task_31_unpacked(&((*args).h), &((*args).oc), &((*args).sbe));
 1.12277 +  }
 1.12278 +}
 1.12279 +static void smp_ol_parse_task_33_unpacked(H264Context **const h, ParserContext **const pc, NalContext **const nc, SliceBufferEntry **const sbe)
 1.12280 +{
 1.12281 +  {
 1.12282 +    parse_task((*h), (*pc), (*nc), (*sbe));
 1.12283 +  }
 1.12284 +}
 1.12285 +static void smp_ol_parse_task_33(struct nanos_args_16_t *const args)
 1.12286 +{
 1.12287 +  {
 1.12288 +    smp_ol_parse_task_33_unpacked(&((*args).h), &((*args).pc), &((*args).nc), &((*args).sbe));
 1.12289 +  }
 1.12290 +}
 1.12291 +static void smp_ol_decode_slice_entropy_task_35_unpacked(H264Context **const h, EntropyContext **const ec, SliceBufferEntry **const sbe)
 1.12292 +{
 1.12293 +  {
 1.12294 +    decode_slice_entropy_task((*h), (*ec), (*sbe));
 1.12295 +  }
 1.12296 +}
 1.12297 +static void smp_ol_decode_slice_entropy_task_35(struct nanos_args_17_t *const args)
 1.12298 +{
 1.12299 +  {
 1.12300 +    smp_ol_decode_slice_entropy_task_35_unpacked(&((*args).h), &((*args).ec), &((*args).sbe));
 1.12301 +  }
 1.12302 +}
 1.12303 +static void smp_ol_decode_slice_mb_task_37_unpacked(H264Context **const h, MBRecContext **const d, SliceBufferEntry **const sbe)
 1.12304 +{
 1.12305 +  {
 1.12306 +    decode_slice_mb_task((*h), (*d), (*sbe));
 1.12307 +  }
 1.12308 +}
 1.12309 +static void smp_ol_decode_slice_mb_task_37(struct nanos_args_18_t *const args)
 1.12310 +{
 1.12311 +  {
 1.12312 +    smp_ol_decode_slice_mb_task_37_unpacked(&((*args).h), &((*args).d), &((*args).sbe));
 1.12313 +  }
 1.12314 +}
 1.12315 +static void smp_ol_output_task_39_unpacked(H264Context **const h, OutputContext **const oc, SliceBufferEntry **const sbe)
 1.12316 +{
 1.12317 +  {
 1.12318 +    output_task((*h), (*oc), (*sbe));
 1.12319 +  }
 1.12320 +}
 1.12321 +static void smp_ol_output_task_39(struct nanos_args_19_t *const args)
 1.12322 +{
 1.12323 +  {
 1.12324 +    smp_ol_output_task_39_unpacked(&((*args).h), &((*args).oc), &((*args).sbe));
 1.12325 +  }
 1.12326 +}
 1.12327 +typedef void nanos_init_func_t(void *);
 1.12328 +struct  mcc_struct_anon_22
 1.12329 +{
 1.12330 +  void (*func)(void *);
 1.12331 +  void *data;
 1.12332  };
 1.12333 +typedef struct mcc_struct_anon_22 nanos_init_desc_t;
 1.12334 +void nanos_omp_set_interface(void *);
 1.12335 +__attribute__((weak)) __attribute__((section("nanos_init"))) nanos_init_desc_t __section__nanos_init = { nanos_omp_set_interface, (void *)0 };