111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   To edit the content of this header, modify the corresponding
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   source file (e.g. under external/kernel-headers/original/) then
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   run bionic/libc/kernel/tools/update_all.py
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   Any manual change here will be lost the next time this script will
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   be run. You've been warned!
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _ASM_GENERIC_FCNTL_H
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _ASM_GENERIC_FCNTL_H
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_ACCMODE 00000003
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_RDONLY 00000000
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_WRONLY 00000001
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_RDWR 00000002
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_CREAT
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_CREAT 00000100
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_EXCL
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_EXCL 00000200
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_NOCTTY
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_NOCTTY 00000400
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_TRUNC
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_TRUNC 00001000
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_APPEND
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_APPEND 00002000
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_NONBLOCK
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_NONBLOCK 00004000
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_DSYNC
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_DSYNC 00010000
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef FASYNC
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FASYNC 00020000
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_DIRECT
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_DIRECT 00040000
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_LARGEFILE
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_LARGEFILE 00100000
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_DIRECTORY
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_DIRECTORY 00200000
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_NOFOLLOW
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_NOFOLLOW 00400000
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_NOATIME
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_NOATIME 01000000
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_CLOEXEC
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_CLOEXEC 02000000
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_SYNC
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __O_SYNC 04000000
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_SYNC (__O_SYNC|O_DSYNC)
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_PATH
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_PATH 010000000
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __O_TMPFILE
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __O_TMPFILE 020000000
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT)
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef O_NDELAY
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define O_NDELAY O_NONBLOCK
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_DUPFD 0
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETFD 1
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETFD 2
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETFL 3
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETFL 4
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_GETLK
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETLK 5
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETLK 6
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETLKW 7
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_SETOWN
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETOWN 8
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETOWN 9
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_SETSIG
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETSIG 10
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETSIG 11
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LP64__
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_GETLK64
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETLK64 12
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETLK64 13
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETLKW64 14
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_SETOWN_EX
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SETOWN_EX 15
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETOWN_EX 16
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_GETOWNER_UIDS
13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_GETOWNER_UIDS 17
13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_OWNER_TID 0
14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_OWNER_PID 1
14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_OWNER_PGRP 2
14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct f_owner_ex {
14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int type;
14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_pid_t pid;
14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_CLOEXEC 1
14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_RDLCK
15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_RDLCK 0
15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_WRLCK 1
15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_UNLCK 2
15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef F_EXLCK
15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_EXLCK 4
15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_SHLCK 8
15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_SH 1
16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_EX 2
16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_NB 4
16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_UN 8
16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_MAND 32
16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_READ 64
16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_WRITE 128
16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define LOCK_RW 192
17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define F_LINUX_SPECIFIC_BASE 1024
17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef HAVE_ARCH_STRUCT_FLOCK
17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ARCH_FLOCK_PAD
17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ARCH_FLOCK_PAD
17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct flock {
17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short l_type;
17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short l_whence;
18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_off_t l_start;
18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_off_t l_len;
18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_pid_t l_pid;
18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __ARCH_FLOCK_PAD
18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LP64__
18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef HAVE_ARCH_STRUCT_FLOCK64
19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __ARCH_FLOCK64_PAD
19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __ARCH_FLOCK64_PAD
19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct flock64 {
19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short l_type;
19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short l_whence;
19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_loff_t l_start;
19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_loff_t l_len;
20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_pid_t l_pid;
20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __ARCH_FLOCK64_PAD
20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
207