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