home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-11 | 58.1 KB | 1,013 lines |
- Newsgroups: comp.sources.misc
- From: phil@pex.eecs.nwu.edu (William LeFebvre)
- Subject: v36i016: securelib - Shared library control for network daemon access, Part02/03
- Message-ID: <1993Mar12.214505.8275@sparky.imd.sterling.com>
- X-Md4-Signature: ecdb364e8a6e9a5263147f970b6577e8
- Date: Fri, 12 Mar 1993 21:45:05 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: phil@pex.eecs.nwu.edu (William LeFebvre)
- Posting-number: Volume 36, Issue 16
- Archive-name: securelib/part02
- Environment: SunOS 4.1.x
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: _okaddr.c extract_lib patchlevel.h securelib.ps.B start.X
- # Wrapped by kent@sparky on Fri Mar 12 09:49:53 1993
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 2 (of 3)."'
- if test -f '_okaddr.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'_okaddr.c'\"
- else
- echo shar: Extracting \"'_okaddr.c'\" \(7948 characters\)
- sed "s/^X//" >'_okaddr.c' <<'END_OF_FILE'
- X/*
- X * securelib: a package to enhance network security.
- X *
- X * Written by William LeFebvre, EECS Department, Northwestern University
- X * Internet address: phil@eecs.nwu.edu
- X *
- X * Configuration file code added by Sam Horrocks (sam@ics.uci.edu).
- X */
- X
- X/* Edit these def's to customize for your site. */
- X
- X#ifndef CONF_FILE
- X#define CONF_FILE "/etc/securelib.conf" /* Name of the config file *
- X * (may be overridden by cc) */
- X#endif
- X
- X#define MAX_LINES 8 /* Maximum number of config lines *
- X * that can apply to one process */
- X
- X#define ENV_NAME "SL_NAME" /* Name of the environment variable *
- X * to use to filter the config file. */
- X
- X#define ALL_NAME "all" /* Name used in config file for *
- X * lines that apply to all processes */
- X
- X#define STAT_TIMEOUT (60*60) /* Time to wait before stat'ing *
- X * the config file again. */
- X
- X#define MAX_TOKEN 40 /* Maximum size of one token in the *
- X * configuration file */
- X
- X#define BUF_SIZE 80 /* Size of buffer used to read file. */
- X
- X
- X#include <sys/types.h>
- X#include <sys/socket.h>
- X#include <netinet/in.h>
- X#include <sys/stat.h>
- X#include <sys/time.h>
- X#include <stdio.h>
- X#include <ctype.h>
- X
- Xstruct conf_line { /* Info about config file line */
- X u_long adr, mask
- X};
- X
- Xstatic int next_token();
- Xextern char *getenv();
- Xextern time_t time();
- Xextern u_long inet_addr();
- X
- X
- X/*
- X * _ok_address - check the sockaddr "addr" (of length "addrlen") to see
- X * if it corresponds to an acceptable host. Return true
- X * (non-zero) if acceptable, otherwise return false (zero).
- X * If "addr" is NULL or if "addrlen" is not long enough,
- X * then use "getpeername" on socket "s" to determine the
- X * address of the connecting host.
- X */
- X
- X_ok_address(s, addr, addrlen)
- X
- Xint s;
- Xstruct sockaddr *addr;
- Xint addrlen;
- X
- X{
- X struct sockaddr peername; /* in case we need to use getpeername */
- X int peernamelen; /* ditto */
- X u_long ip_addr;
- X
- X /* was addr actually used and was it sufficient? */
- X if (addr == (struct sockaddr *)0 || addrlen < (2+2+sizeof(struct in_addr)))
- X {
- X /* no, so get the info with getpeername */
- X peernamelen = sizeof(peername);
- X if (getpeername(s, &peername, &peernamelen) < 0)
- X {
- X /* not sure what the appropriate thing to do here is... */
- X /* so we will return "not ok" just to be safe */
- X return(0);
- X }
- X
- X /* for remainder of this function: */
- X addr = &peername;
- X }
- X
- X /* now, verify the socket type */
- X if (addr->sa_family == AF_INET)
- X {
- X static struct conf_line conf[MAX_LINES];
- X static int nconf;
- X static time_t last_stat_time, last_mtime;
- X struct timeval now;
- X int i;
- X
- X (void) gettimeofday(&now, (struct timezone*)0);
- X
- X /* Decide whether to read our config file */
- X if (last_stat_time == 0 ||
- X (now.tv_sec - last_stat_time) > STAT_TIMEOUT)
- X {
- X struct stat stbuf;
- X char *conf_file = CONF_FILE;
- X char *my_name = getenv(ENV_NAME);
- X char fil_buf[BUF_SIZE], buf[MAX_TOKEN];
- X FILE fil;
- X
- X last_stat_time = now.tv_sec;
- X bzero((char*)&fil, sizeof(fil));
- X
- X /* Stat the config file. If it changed, open it */
- X if (stat(conf_file, &stbuf) != -1 &&
- X last_mtime != stbuf.st_mtime &&
- X freopen(conf_file, "r", &fil) == &fil)
- X {
- X /* Update the timestamp */
- X last_mtime = stbuf.st_mtime;
- X nconf = 0;
- X
- X /* Use the buffer on the stack instead of malloc'ing */
- X setbuffer(&fil, fil_buf, sizeof(fil_buf));
- X
- X /* Grab the "name" */
- X while ((i = next_token(&fil, buf, sizeof(buf))) != EOF)
- X {
- X /* If only token on the line, ignore */
- X if (i == '\n') continue;
- X
- X /* Comment -- read until end of line then next line */
- X if (buf[0] == '#') {
- X while (next_token(&fil, buf, sizeof(buf)) == 0) ;
- X continue;
- X }
- X
- X /*
- X * Check to make sure this says "all" or that it matches
- X * the name given in the environment variable.
- X */
- X if (strcmp(buf, ALL_NAME) == 0 ||
- X (my_name != NULL && strcmp(buf, my_name) == 0))
- X {
- X /* Get next token, if last on line, ignore */
- X if (next_token(&fil, buf, sizeof(buf)) != 0)
- X continue;
- X
- X /* Got address */
- X conf[nconf].adr = inet_addr(buf);
- X
- X /* Get next token (mask) */
- X i = next_token(&fil, buf, sizeof(buf));
- X
- X /* Only ignore if we got no text at all */
- X if (i != EOF)
- X {
- X /* Add to list, quit if array is full */
- X conf[nconf++].mask = inet_addr(buf);
- X if (nconf == MAX_LINES) break;
- X }
- X
- X /* If not at end-of-line, keep reading til we are */
- X /* why isn't this outside the if(strcmp...) ??? */
- X while (i == 0)
- X {
- X i = next_token(&fil, buf, sizeof(buf));
- X }
- X }
- X }
- X (void) fclose(&fil);
- X }
- X }
- X
- X /* Config lines now in memory so start checking address */
- X /* grab just the address */
- X ip_addr = ((struct sockaddr_in *)addr)->sin_addr.s_addr;
- X
- X /*
- X * Go through the conf array, turn off the bits given by the mask
- X * and then compare the result with the address. A match means
- X * that this address is ok.
- X */
- X for (i = 0; i < nconf; ++i)
- X {
- X if ((ip_addr & ~conf[i].mask) == conf[i].adr) return 1;
- X }
- X
- X /* no match, so we can't approve the address */
- X return 0;
- X }
- X else
- X {
- X /* we don't know how to handle non-Internet connections, so
- X we will give them all blanket approval */
- X return 1;
- X }
- X /*NOTREACHED*/
- X}
- X
- X/*
- X * Grab one token out of fp. Defined as the next string of non-whitespace
- X * in the file. After we get the token, continue reading until EOF, end of
- X * line or the next token. If it's the last token on the line, return '\n'
- X * for the value. If we get EOF before reading a token, return EOF. In all
- X * other cases return 0.
- X */
- Xstatic int next_token(fp, buf, bufsz)
- X
- XFILE *fp;
- Xchar *buf;
- Xint bufsz;
- X
- X{
- X int c;
- X char *eb = buf+(bufsz-1);
- X
- X /* Discard inital whitespace */
- X while (isspace(c = getc(fp))) ;
- X
- X /* EOF seen before any token so return EOF */
- X if (c == EOF) return -1;
- X
- X /* Form a token in buf */
- X do {
- X if (buf < eb) *buf++ = c;
- X c = getc(fp);
- X } while (!isspace(c) && c != EOF);
- X *buf = '\0';
- X
- X /* Discard trailing tabs and spaces */
- X while (c == ' ' || c == '\t') c = getc(fp);
- X
- X /* Put back the char that was non-whitespace (putting back EOF is ok) */
- X (void) ungetc(c, fp);
- X
- X /* If we ended with a newline, return that, otherwise return 0 */
- X return (c == '\n' ? '\n' : 0);
- X}
- X
- X/*
- X * _addrcpy(to, tolenptr, from, fromlen)
- X *
- X * copy an address from "from" to "to". "fromlen" is the length of the
- X * from address. "tolenptr" points to the length that is available in
- X * the buffer "to" and will be modified the reflect the actual number of
- X * bytes copied. Under no circumstances will more than *tolenptr bytes
- X * be copied (even if *tolenptr == 0).
- X *
- X * This is a global routine and is used in the modified accept call.
- X */
- X
- X_addrcpy(to, tolenp, from, fromlen)
- X
- Xstruct sockaddr *to, *from;
- Xint *tolenp;
- Xint fromlen;
- X
- X{
- X register int amt = 0;
- X
- X /*
- X * Explanation: amt is initialized to 0. If to is null, then the
- X * second half of the && conditional is not done (K&R guarantees
- X * this). Therefore, amt gets set to *tolenp iff amt != NULL.
- X * Then, if *tolenp is greater than 0, the lesser of amt (*tolenp)
- X * and fromlen is used as the length of the copy. Thus, amt is always
- X * the number of bytes copied, even if that number is 0 (indicating
- X * that no copying was done).
- X */
- X
- X if (to != (struct sockaddr *)0 && (amt = *tolenp) > 0)
- X {
- X if (fromlen < amt)
- X {
- X amt = fromlen;
- X }
- X bcopy((char *)from, (char *)to, amt);
- X }
- X *tolenp = amt;
- X}
- END_OF_FILE
- if test 7948 -ne `wc -c <'_okaddr.c'`; then
- echo shar: \"'_okaddr.c'\" unpacked with wrong size!
- fi
- # end of '_okaddr.c'
- fi
- if test -f 'extract_lib' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'extract_lib'\"
- else
- echo shar: Extracting \"'extract_lib'\" \(371 characters\)
- sed "s/^X//" >'extract_lib' <<'END_OF_FILE'
- X#!/bin/csh -fv
- Xcd $1
- Xif (! -e tmp) then
- X mkdir tmp
- X cd tmp
- X ar x ../libc_pic.a
- X rm __.SYMDEF
- X mv rpc_dtablesize. rpc_dtablesize.o
- X mv rpc_commondata. rpc_commondata.o
- X mv xccs.multibyte. xccs.multibyte.o
- X cd ..
- Xendif
- Xgrep _okaddr.o lorder-sparc >/dev/null
- Xif ($status == 1) then
- X mv lorder-sparc lorder-sparc.orig
- X cat <<'EOF' >>lorder-sparc
- X_okaddr.o
- X'EOF'
- Xendif
- END_OF_FILE
- if test 371 -ne `wc -c <'extract_lib'`; then
- echo shar: \"'extract_lib'\" unpacked with wrong size!
- fi
- # end of 'extract_lib'
- fi
- if test -f 'patchlevel.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patchlevel.h'\"
- else
- echo shar: Extracting \"'patchlevel.h'\" \(21 characters\)
- sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE'
- X#define PATCHLEVEL 4
- END_OF_FILE
- if test 21 -ne `wc -c <'patchlevel.h'`; then
- echo shar: \"'patchlevel.h'\" unpacked with wrong size!
- fi
- # end of 'patchlevel.h'
- fi
- if test -f 'securelib.ps.B' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'securelib.ps.B'\"
- else
- echo shar: Extracting \"'securelib.ps.B'\" \(46421 characters\)
- sed "s/^X//" >'securelib.ps.B' <<'END_OF_FILE'
- X0007800000078000000780000007800000078000000FC00000FFFC0000191F7E9E1F>I<FFFF80
- X000F80F0000780780007803C0007801E0007801E0007801F0007801F0007801F0007801F000780
- X1E0007801E0007803C00078078000780F00007FF80000781C0000780E0000780F0000780700007
- X807800078078000780780007807C0007807C0007807C0007807C0407807E0407803E040FC01E08
- XFFFC0F10000003E01E207E9E21>82 D<07E0800C1980100780300380600180600180E00180E000
- X80E00080E00080F00000F000007800007F00003FF0001FFC000FFE0003FF00001F800007800003
- XC00003C00001C08001C08001C08001C08001C0C00180C00380E00300F00600CE0C0081F8001221
- X7D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F0010800F
- X0010800F0010000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
- X0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
- X000F0000001F800007FFFE001C1F7E9E21>I<FFFC3FF80FC007C0078003800780010007800100
- X078001000780010007800100078001000780010007800100078001000780010007800100078001
- X000780010007800100078001000780010007800100078001000780010007800100078001000380
- X02000380020001C0020001C0040000E008000070180000382000000FC0001D207E9E22>I<FFF0
- X03FE1F8000F80F0000600F800060078000400780004003C0008003C0008003C0008001E0010001
- XE0010001F0010000F0020000F0020000F806000078040000780400003C0800003C0800003C0800
- X001E1000001E1000001F3000000F2000000F20000007C0000007C0000007C00000038000000380
- X0000038000000100001F207F9E22>I<FFF07FF81FF01F800FC007C00F00078003800F00078001
- X000F0007C00100078007C00200078007C00200078007C0020003C009E0040003C009E0040003C0
- X09E0040003E010F00C0001E010F0080001E010F0080001F02078080000F02078100000F0207810
- X0000F0403C10000078403C20000078403C20000078C03E2000003C801E4000003C801E4000003C
- X801E4000001F000F8000001F000F8000001F000F8000001E00078000000E00070000000E000700
- X00000C000300000004000200002C207F9E2F>I<7FF83FF80FE00FC007C0070003C0020001E004
- X0001F00C0000F0080000781000007C1000003C2000003E4000001E4000000F8000000F80000007
- X80000003C0000007E0000005E0000009F0000018F8000010780000207C0000603C0000401E0000
- X801F0001800F0001000780020007C0070003C01F8007E0FFE01FFE1F1F7F9E22>I<FEFEC0C0C0
- XC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FE
- XFE072D7CA10D>91 D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E
- X7B9F17>I<FEFE0606060606060606060606060606060606060606060606060606060606060606
- X060606060606060606FEFE072D7FA10D>I<1FE000303000781800781C00300E00000E00000E00
- X000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C0
- X14147E9317>97 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E
- X00000E00000E3E000EC3800F01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E
- X00780E00780E00700E00700E00E00F00E00D01C00CC300083E0015207F9F19>I<03F80E0C1C1E
- X381E380C70007000F000F000F000F000F000F00070007000380138011C020E0C03F010147E9314
- X>I<000380003F8000038000038000038000038000038000038000038000038000038000038003
- XE380061B801C0780380380380380700380700380F00380F00380F00380F00380F00380F0038070
- X03807003803803803807801C07800E1B8003E3F815207E9F19>I<03F0000E1C001C0E00380700
- X380700700700700380F00380F00380FFFF80F00000F00000F00000700000700000380080180080
- X0C010007060001F80011147F9314>I<007C00C6018F038F070607000700070007000700070007
- X00FFF0070007000700070007000700070007000700070007000700070007000700070007000700
- X7FF01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F00
- X380E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFFC03001E0600070
- XC00030C00030C00030C000306000603000C01C038003FC00141F7F9417>I<0E0000FE00000E00
- X000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000E43000E81800F01
- XC00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
- XC00E01C00E01C0FFE7FC16207F9F19>I<1C001E003E001E001C00000000000000000000000000
- X0E007E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF
- XC00A1F809E0C>I<00E001F001F001F000E0000000000000000000000000007007F000F0007000
- X700070007000700070007000700070007000700070007000700070007000700070007000700070
- X6070F060F0C061803F000C28829E0E>I<0E0000FE00000E00000E00000E00000E00000E00000E
- X00000E00000E00000E00000E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E
- X70000EF8000F38000E1C000E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF815207F9F
- X18>I<0E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
- X0E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B20809F0C>I<0E1F01F0
- X00FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E0
- X0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00
- XE00E000E00E00E000E00E00E00FFE7FE7FE023147F9326>I<0E3E00FE43000E81800F01C00F01
- XC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
- XC00E01C0FFE7FC16147F9319>I<01F800070E001C03803801C03801C07000E07000E0F000F0F0
- X00F0F000F0F000F0F000F0F000F07000E07000E03801C03801C01C0380070E0001F80014147F93
- X17>I<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00780E00780E00780E0078
- X0E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E00000E00000E0000
- X0E00000E00000E0000FFE000151D7F9319>I<03E0800619801C05803C07803803807803807003
- X80F00380F00380F00380F00380F00380F003807003807803803803803807801C0B800E138003E3
- X80000380000380000380000380000380000380000380000380003FF8151D7E9318>I<0E78FE8C
- X0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00F147F
- X9312>I<1F9030704030C010C010C010E00078007F803FE00FF00070803880188018C018C018E0
- X30D0608F800D147E9312>I<020002000200060006000E000E003E00FFF80E000E000E000E000E
- X000E000E000E000E000E000E000E080E080E080E080E080610031001E00D1C7F9B12>I<0E01C0
- XFE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
- X0E01C00E01C00E03C00603C0030DC001F1FC16147F9319>I<FF83F81E01E01C00C00E00800E00
- X800E008007010007010003820003820003820001C40001C40001EC0000E80000E8000070000070
- X0000700000200015147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E
- X03C0400707C0800704C0800704E080038861000388710003C8730001D0320001D03A0000F03C00
- X00E01C0000E01C0000601800004008001E147F9321>I<7FC3FC0F01E00701C007018003810001
- XC20000E40000EC00007800003800003C00007C00004E000087000107000303800201C00601E01E
- X01E0FF07FE1714809318>I<FF83F81E01E01C00C00E00800E00800E0080070100070100038200
- X03820003820001C40001C40001EC0000E80000E800007000007000007000002000002000004000
- X004000004000F08000F08000F100006200003C0000151D7F9318>I<3FFF380E200E201C403840
- X78407000E001E001C00380078007010E011E011C0338027006700EFFFE10147F9314>I<FFFFFC
- X1601808C17>I<FFFFFFFFFFF02C01808C2D>I E /Fl 40 122 df<000E00001E00007E0007FE00
- XFFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
- X00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
- X00FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>49
- XD<00FF800003FFF0000FFFFC001F03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF00
- X1FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F8000007F000000FE0000
- X00FC000001F8000003F0000003E00000078000000F0000001E0000003C00E0007000E000E000E0
- X01C001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF
- X801B277DA622>I<007F800003FFF00007FFFC000F81FE001F00FF003F80FF003F807F803F807F
- X803F807F801F807F800F007F800000FF000000FF000000FE000001FC000001F8000007F00000FF
- XC00000FFF0000001FC0000007E0000007F0000007F8000003FC000003FC000003FE000003FE03C
- X003FE07E003FE0FF003FE0FF003FE0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC00
- X07FFF00000FF80001B277DA622>I<00000E0000001E0000003E0000007E000000FE000000FE00
- X0001FE000003FE0000077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E
- X0001C07E0003807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFF
- XFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
- X00FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFFFE000FFFFC000F
- XFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000000E0000000E0000000E0000000E000000
- X0E0000000E7FC0000FFFF8000F80FC000E003E000C003F0000001F8000001FC000001FC000001F
- XE000001FE018001FE07C001FE0FE001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F807800
- X3F803C007F001F01FE000FFFF80003FFF00000FF80001B277DA622>I<0007F000003FFC0000FF
- XFE0001FC0F0003F01F8007E03F800FC03F801FC03F801F803F803F801F003F8000007F0000007F
- X0000007F000000FF000000FF0FC000FF3FF800FF707C00FFC03E00FFC03F00FF801F80FF801FC0
- XFF001FC0FF001FE0FF001FE0FF001FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001F
- XC01F801FC01F803F800FC03F0007E07E0003FFFC0000FFF000003FC0001B277DA622>I<380000
- X003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E007000
- X0E0070001C00E0003800E0007000E000E0000000E0000001C00000038000000780000007800000
- X0F0000000F0000001F0000001F0000003F0000003E0000003E0000007E0000007E0000007E0000
- X007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007C00
- X00003800001C297CA822>I<000003800000000007C00000000007C0000000000FE0000000000F
- XE0000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF80000
- X000073FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0
- XFF00000003C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003FE000
- X000E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF800007800
- X07FC0000700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000FF00
- X01C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65
- XD<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F8003FC
- X00003F8007F000001F800FF000000F801FE0000007801FE0000007803FC0000007803FC0000003
- X807FC0000003807F80000003807F8000000000FF8000000000FF8000000000FF8000000000FF80
- X00000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000007F80000000
- X007F80000000007FC0000003803FC0000003803FC0000003801FE0000003801FE0000007000FF0
- X0000070007F000000E0003FC00001E0001FE00003C0000FF8000F800003FF007E000000FFFFFC0
- X000003FFFF000000003FF8000029297CA832>67 D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE00
- X01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
- X01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
- X01FE0001FE0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>73
- XD<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC03FC00001E0003FC00003C0003FC0000780003FC
- X0000F00003FC0001E00003FC0003C00003FC0007000003FC001E000003FC003C000003FC007800
- X0003FC00F0000003FC01E0000003FC0380000003FC07C0000003FC1FC0000003FC3FE0000003FC
- X7FF0000003FCFFF8000003FDE7F8000003FF83FC000003FF01FE000003FE01FF000003FC00FF00
- X0003FC007F800003FC003FC00003FC003FC00003FC001FE00003FC000FF00003FC000FF80003FC
- X0007F80003FC0003FC0003FC0001FE0003FC0001FF0003FC0000FF0003FC00007F80FFFFF00FFF
- XFEFFFFF00FFFFEFFFFF00FFFFE2F297DA836>75 D<FFFFFC0000FFFFFC0000FFFFFC000003FC00
- X000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
- X00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003
- XFC00000003FC00000003FC00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C0
- X03FC0001C003FC0003C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F
- X8003FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>I<FF
- XFC0000FFFEFFFE0000FFFEFFFF0000FFFE03FF8000038003FF8000038003BFC0000380039FE000
- X0380039FF0000380038FF80003800387F80003800383FC0003800381FE0003800381FF00038003
- X80FF80038003807FC0038003803FC0038003801FE0038003800FF0038003800FF80380038007FC
- X0380038003FC0380038001FE0380038000FF0380038000FF83800380007FC3800380003FE38003
- X80001FE3800380000FF38003800007FB8003800007FF8003800003FF8003800001FF8003800000
- XFF80038000007F80038000007F80038000003F80038000001F80038000000F80FFFE00000780FF
- XFE00000380FFFE000003802F297DA836>78 D<FFFFFFF800FFFFFFFF00FFFFFFFFC003FC003FE0
- X03FC000FF003FC0007F803FC0007FC03FC0003FC03FC0003FE03FC0003FE03FC0003FE03FC0003
- XFE03FC0003FE03FC0003FE03FC0003FE03FC0003FC03FC0007FC03FC0007F803FC000FF003FC00
- X3FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC00000003FC
- X00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003
- XFC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027297DA82F>80
- XD<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC007FE00003FC000FF00003FC0007F80003FC
- X0007FC0003FC0003FC0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE
- X0003FC0003FE0003FC0003FC0003FC0007F80003FC0007F80003FC001FE00003FC007FC00003FF
- XFFFE000003FFFFF0000003FC00FC000003FC007F000003FC003F800003FC003F800003FC001FC0
- X0003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FF00003FC
- X001FF00003FC001FF00003FC001FF00703FC001FF80703FC000FF80703FC0007F80EFFFFF003FE
- X1CFFFFF001FFF8FFFFF0003FF030297DA834>82 D<007F806003FFF0E007FFF9E00F807FE01F00
- X1FE03E0007E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FF
- XC000007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF0
- X00007FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0F00001
- XF0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297CA826>I<7FFFFF
- XFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC003C0
- X70003FC001C0F0003FC001E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003F
- XC000E0E0003FC000E000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
- X00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F
- XC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
- X00003FC0000000003FC0000000003FC0000000003FC00000007FFFFFE000007FFFFFE000007FFF
- XFFE0002B287EA730>I<FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF003FC
- X0001FE00001C0003FC0001FE00001C0001FE0001FF0000380001FE0000FF0000380001FF0000FF
- X0000780000FF0000FF8000700000FF0000FF8000700000FF8000FF8000F000007F8001FFC000E0
- X00007F8001FFC000E000003FC003FFE001C000003FC0039FE001C000003FE0039FE003C000001F
- XE0070FF0038000001FE0070FF0038000001FF00F0FF0078000000FF00E07F8070000000FF00E07
- XF80700000007F81E07FC0E00000007F81C03FC0E00000007FC1C03FC1E00000003FC3801FE1C00
- X000003FC3801FE1C00000001FE7801FF3800000001FE7000FF3800000001FE7000FF3800000000
- XFFF000FFF000000000FFE0007FF000000000FFE0007FF0000000007FC0003FE0000000007FC000
- X3FE0000000003FC0003FC0000000003F80001FC0000000003F80001FC0000000001F80001F8000
- X0000001F00000F80000000001F00000F80000000000E00000700000044297FA847>87
- XD<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F8000003F800000
- X3F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F80FE003F80FE
- X003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03FC1E1B7E9A21>97
- XD<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE00000000FE000
- X00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE1
- XFE00000FE7FF80000FFE07E0000FF801F0000FF000F8000FE000FC000FE000FE000FE0007F000F
- XE0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F80
- X0FE0007F800FE0007F000FE0007F000FE0007F000FE000FE000FE000FC000FF001F8000FF803F0
- X000F9E07E0000F07FF80000E01FC0000212A7EA926>I<001FF80000FFFE0003F01F0007E03F80
- X0FC03F801F803F803F801F007F800E007F0000007F000000FF000000FF000000FF000000FF0000
- X00FF000000FF000000FF0000007F0000007F0000007F8000003F8001C01F8001C00FC0038007E0
- X070003F01E0000FFFC00001FE0001A1B7E9A1F>I<00003FF80000003FF80000003FF800000003
- XF800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000
- X03F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF80007E00FF8000F
- XC007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003F800FF0003F800FF0003F800
- XFF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8007F0003F8
- X003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF8000FFF3FF80003FC3FF80212A7E
- XA926>I<003FE00001FFF80003F07E0007C01F000F801F801F800F803F800FC07F000FC07F0007
- XC07F0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF0000007F0000007F00
- X00007F0000003F8000E01F8000E00FC001C007E0038003F81F0000FFFE00001FF0001B1B7E9A20
- X>I<0007F0003FFC00FE3E01F87F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007
- XF00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007
- XF00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
- XF0007FFF807FFF807FFF80182A7EA915>I<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F
- X007E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80FC00
- X0FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFFFF001FFFFF
- X800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C00
- X01F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22>I<FFE0000000FFE0000000
- XFFE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
- X000FE00000000FE00000000FE00000000FE00000000FE00000000FE07F00000FE1FFC0000FE787
- XE0000FEE03F0000FF803F0000FF803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE0
- X03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
- XE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80
- XFFFE3FFF80212A7DA926>I<07000F801FC03FE03FE03FE01FC00F800700000000000000000000
- X0000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
- X0FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE00000FFE00000FFE00000
- X0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000
- X000FE000000FE000000FE01FFC0FE01FFC0FE01FFC0FE007800FE00F000FE01E000FE03C000FE0
- X78000FE0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0000FF3F8000FE3F8000FC1FC000F
- XC0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC00FE0FFFC3FFEFFFC3FFEFFFC3FFE
- X1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
- X0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
- XE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>I<FFC07F800FF000FFC1FFE03FFC00FFC383
- XF0707E000FC603F8C07F000FCC01F9803F000FD801FF003F800FF001FE003F800FF001FE003F80
- X0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC
- X003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F
- XE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F80FFFE1FFFC3
- XFFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A>I<FFC07F0000FFC1FFC000FFC787E0000F
- XCE03F0000FD803F0000FD803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003F800
- X0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
- X000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3F
- XFF80211B7D9A26>I<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F00
- X07F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF
- X0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE000
- X1D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F0000FF001F8000FE000FC000FE0
- X00FE000FE000FF000FE0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800F
- XE0007F800FE0007F800FE0007F800FE0007F000FE000FF000FE000FF000FE000FE000FE001FC00
- X0FF001F8000FF803F0000FFE0FE0000FE7FF80000FE1FC00000FE00000000FE00000000FE00000
- X000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000FFFE000000FFFE00
- X0000FFFE00000021277E9A26>I<FFC1F0FFC7FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0F
- XE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
- XE0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>114 D<03FE300FFFF01E03F03800F070
- X0070F00070F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC00
- X00FC60007CE0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00161B7E9A1B>I<007000
- X00700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF0
- X07F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
- X07F03807F03807F03807F03807F03807F03803F03803F87001F86000FFC0001F8015267FA51B>
- XI<FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
- XF8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
- X03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE007F80007E007F80007
- XE00FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03
- XFF8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE
- X03800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC000000
- X1FDC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003E00000
- X0001C00000211B7F9A24>I<FFFE7FFC0FFEFFFE7FFC0FFEFFFE7FFC0FFE0FE007E000E007F003
- XF001C007F003F001C007F807F803C003F807F8038003F807F8038001FC0EFC070001FC0EFC0700
- X01FE1EFC0F0000FE1C7E0E0000FE1C7E0E0000FF383F1E00007F383F1C00007F783F3C00003FF0
- X1FB800003FF01FB800003FF01FF800001FE00FF000001FE00FF000000FC007E000000FC007E000
- X000FC007E00000078003C00000078003C0002F1B7F9A32>I<FFFE03FF80FFFE03FF80FFFE03FF
- X8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE03
- X800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC0000001F
- XDC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003E0000000
- X01C000000001C000000003800000000380000038078000007C07000000FE0F000000FE0E000000
- XFE1E000000FE3C0000007C780000003FE00000000FC000000021277F9A24>121
- XD E /Fm 5 118 df<01F007080C08181C3838300070007000E000E000E000E000E000E008E010
- X602030C01F000E127B9113>99 D<01E007100C1018083810701070607F80E000E000E000E000E0
- X00E0086010602030C01F000D127B9113>101 D<3C3C26C2468747078E068E000E000E001C001C
- X001C001C0038003800380038007000300010127C9112>114 D<01F006080C080C1C18181C001F
- X001FC00FF007F0007800386030E030C030806060C01F000E127D9111>I<1E0300270700470700
- X470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C00383880383880183880183900
- X1C5900078E0011127C9116>117 D E /Fn 4 109 df<7E0000FE00007E00000E00000E00000E00
- X000E00000E3E000EFF000FFF800F83C00F00E00E00E00E00700E00700E00700E00700E00700E00
- X700E00E00F01E00F83C00FFF800EFF00063C001419809816>98 D<03F80FFC1FFE3C1E780C7000
- XE000E000E000E000E000F000700778073E0E1FFC0FF803F010127D9116>I<018003C003C00180
- X00000000000000007FC07FC07FC001C001C001C001C001C001C001C001C001C001C001C001C07F
- XFFFFFF7FFF101A7D9916>105 D<FFC000FFC000FFC00001C00001C00001C00001C00001C00001
- XC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
- XC000FFFF80FFFF80FFFF8011197E9816>108 D E /Fo 35 122 df<007E1F0001C1B1800303E3
- XC00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01
- XC0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E
- X01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11
- XD<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01
- XC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
- XC00E01C00E01C07F87F8151D809C17>I<6060F0F0F8F868680808080808081010101020204040
- X80800D0C7F9C15>34 D<60F0F8680808081010204080050C7C9C0C>39 D<60F0F0701010101020
- X204080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0F06004047C830C>I<FFF00F000F000F
- X000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
- X0F000F000F000F00FFF00C1C7F9B0F>73 D<003F800000E0E0000380380007001C000E000E001C
- X0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0
- XF00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C0007
- X000E000E0007001C000380380000E0E000003F80001B1E7E9C20>79 D<FFFF00000F01E0000F00
- X78000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F
- X01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F007800
- X0F0078000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>82
- XD<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800007C00007FC0
- X003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001C0C00180C001
- X80E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F00
- X40C00F0020800F0020800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F
- X0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
- X0F0000000F0000001F800003FFFC001B1C7F9B1E>I<08081010202040404040808080808080B0
- XB0F8F8787830300D0C7A9C15>92 D<1FC000307000783800781C00301C00001C00001C0001FC00
- X0F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97
- XD<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001D86
- X001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01
- X801E030019060010F800131D7F9C17>I<07E00C301878307870306000E000E000E000E000E000
- XE00060007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700
- X00070000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700
- XE00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E0
- X0C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112
- X>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E
- X000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38
- X80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800001FF8
- X001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215
- X>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001C
- X87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
- X03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000000000000000
- X00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D
- X7F9C0C>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
- X3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C3C001C
- X1C001C0E001C0F001C0F80FF9FE0131D7F9C16>107 D<FC001C001C001C001C001C001C001C00
- X1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
- X00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C01C
- X001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0
- X1C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E
- X03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
- X0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0E001C0
- XE001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C001D86
- X001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C01
- X801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF8000131A7F9117
- X>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D
- X127F9110>114 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E0
- X10D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C
- X001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C03801C
- X03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C
- X07800E1B8003E3F014127F9117>I<FF07E03C03801C01001C01000E02000E0200070400070400
- X07040003880003880003D80001D00001D00000E00000E00000E00000400013127F9116>I<FF3F
- XCFE03C0F03801C0701801C0701001C0B01000E0B82000E0B82000E1182000711C4000711C40007
- X20C40003A0E80003A0E80003C0680001C0700001C0700001803000008020001B127F911E>I<FF
- X07E03C03801C01001C01000E02000E020007040007040007040003880003880003D80001D00001
- XD00000E00000E00000E000004000004000008000008000F08000F10000F300006600003C000013
- X1A7F9116>121 D E /Fp 7 117 df<00038000000380000007C0000007C0000007C000000FE000
- X000FE000001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E
- X0000C07E0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C00
- X07E0FFC07FFEFFC07FFE1F1C7E9B24>65 D<0FF8001C1E003E0F803E07803E07C01C07C00007C0
- X007FC007E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>
- X97 D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F3F80
- X1FE1E01F80701F00781F003C1F003C1F003E1F003E1F003E1F003E1F003E1F003E1F003C1F003C
- X1F00781F80701EC1E01C3F00171D7F9C1B>I<03FC000E0E001C1F003C1F00781F00780E00F800
- X00F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E9115
- X>I<FE3E00FE47001E8F801E8F801E8F801F07001F00001F00001F00001F00001F00001F00001F
- X00001F00001F00001F0000FFF000FFF00011127F9114>114 D<1FD830786018E018E018F000FF
- X807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>I<030003000300030007
- X0007000F000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F0C0F08
- X079803F00E1A7F9913>I E /Fq 20 122 df<00007F00800003808100000E0063000038002700
- X0070001F0000E0000E0001C0000E000380000E000700000E000F000004000E000004001E000004
- X003C000004003C00000800780000000078000000007800000000F000000000F000000000F00000
- X0000F000000000F000000000E000000000E000002000E000002000E000004000E000004000F000
- X00800070000080007000010000380002000018000400001C0008000006003000000381C0000000
- XFE000000212479A223>67 D<00FFFFF000000F003C00000F000E00000F000700001E000380001E
- X000380001E0001C0001E0001C0003C0001C0003C0001E0003C0001E0003C0001E000780001E000
- X780001E000780001E000780001E000F00003C000F00003C000F00003C000F00003C001E0000780
- X01E000078001E000070001E0000F0003C0000E0003C0001C0003C0003C0003C000380007800070
- X00078000E000078001C00007800700000F801C0000FFFFF0000023227DA125>I<00FFFFFF8000
- X0F000780000F000180000F000180001E000180001E000180001E000100001E000100003C000100
- X003C000100003C010100003C01000000780200000078020000007806000000780E000000FFFC00
- X0000F00C000000F00C000000F00C000001E008000001E008000001E008040001E000080003C000
- X080003C000080003C000100003C000100007800020000780006000078000C000078001C0000F80
- X07C000FFFFFF800021227DA121>I<00FF000FFC000F8001E0000F800180000FC000800013C001
- X000013C001000011E001000011E001000021E002000020F002000020F002000020F00200004078
- X04000040780400004078040000403C040000803C080000803E080000801E080000801E08000100
- X1F100001000F100001000F10000100079000020007A000020007A000020003E000020003E00004
- X0003C000040001C000040001C0000C0001C0001E00008000FFC000800026227DA124>78
- XD<0001F020000E0C40001802C0003001C0006001C000E0018000C0018001C0018001C0018003C0
- X010003C0010003C0000003C0000003E0000001F8000001FF000000FFE000007FF000001FF80000
- X03FC0000007C0000003C0000001E0000001E0000001E0020001C0020001C0020001C0020001800
- X6000380060003000700060007000C000C8018000C607000081FC00001B247DA21B>83
- XD<3FFE03FF03C0007803C0006003C00020078000400780004007800040078000400F0000800F00
- X00800F0000800F0000801E0001001E0001001E0001001E0001003C0002003C0002003C0002003C
- X0002007800040078000400780004007800040070000800F0000800F00010007000100070002000
- X700040003000400038018000180200000E0C000003F00000202377A124>85
- XD<00F8C00185C00705C00E03800E03801C03803C0380380700780700780700780700F00E00F00E
- X00F00E00F00E10F01C20701C20703C20305C40308C400F078014157B9419>97
- XD<00F803840E021C023C0238027804F018FFE0F000F000E000E000E000E000E002E00260047018
- X30600F800F157A9416>101 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C0
- X00038000038000038000038000070000071F0007218007C0C00F00E00F00E00E00E00E00E01C01
- XC01C01C01C01C01C01C0380380380380380380380704700708700E08700E10700610E006206003
- XC016237DA219>104 D<00C001E001C001C0000000000000000000000000000000001C00230043
- X0043008700870087000E000E001C001C001C00380038003840708070807080710032001C000B21
- X7BA00F>I<1C0F80F8002610C10C00476066060087807807008780780700870070070087007007
- X000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001C01C01C001C01C01C001C01C0
- X3820380380384038038070403803807080380380308070070031003003001E0023157B9428>
- X109 D<1C0F002631C04740C08780E08780E08700E08700E00E01C00E01C00E01C00E01C01C0380
- X1C03801C03801C0704380708380E08380E103806107006203003C016157B941B>I<007E0001C3
- X000381800701C00E01C01C01E03C01E03801E07801E07801E07801E0F003C0F003C0F00380F007
- X80700700700E00700C0030180018700007C00013157B9419>I<01C1F002621804741C08780C08
- X700E08700E08701E00E01E00E01E00E01E00E01E01C03C01C03C01C03C01C07803807003807003
- XC0E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C00001C0000FF
- XC000171F7F9419>I<1C1F002620804741C08783C08703C08701808700000E00000E00000E0000
- X0E00001C00001C00001C00001C000038000038000038000038000070000030000012157B9415>
- X114 D<00FC000183000200800401800C03800C03000C00000F00000FF00007FC0003FE00003E00
- X000F00000700700700F00600F00600E004004008002030001FC00011157D9414>I<00C001C001
- XC001C001C003800380038003800700FFF8070007000E000E000E000E001C001C001C001C003800
- X380038003810702070207040708031001E000D1F7C9E10>I<1E03802307C04387C04383C08381
- XC08700C08700C00700800E00800E00800E00801C01001C01001C01001C02001C02001C04001C08
- X001C08000C300003C00012157B9416>118 D<1E0060E02300E1F04380E1F04381C0F08381C070
- X8701C0308701C030070380200E0380200E0380200E0380201C0700401C0700401C0700401C0700
- X801C0700801C0701001C0F01000C0F020006138C0003E0F0001C157B9420>I<1E003023007043
- X80704380E08380E08700E08700E00701C00E01C00E01C00E01C01C03801C03801C03801C03801C
- X07001C07001C07001C0F000C3E0003CE00000E00000E00001C00601C00F03800F03000E0600080
- XC0004380003E0000141F7B9418>121 D E /Fr 11 119 df<FFFFFFC00F8007C0078001C00780
- X00C007800040078000400780006007800020078000200780002007802020078020000780200007
- X802000078060000780E00007FFE0000780E0000780600007802000078020000780200007802000
- X0780000007800000078000000780000007800000078000000780000007800000078000000FC000
- X00FFFE00001B227EA120>70 D<FFFE00000FC00000078000000780000007800000078000000780
- X000007800000078000000780000007800000078000000780000007800000078000000780000007
- X800000078000000780000007800000078000000780000007800080078000800780008007800080
- X078001800780018007800100078003000780030007800F000F803F00FFFFFF0019227EA11E>76
- XD<FFF03FFC03FE1F8007E000F80F0003C000700F0003C000200F0003C00020078001E000400780
- X01E00040078001E0004003C002F0008003C002F0008003C002F0008001E00478010001E0047801
- X0001E00478010000F0083C020000F0083C020000F0083C020000F8183E06000078101E04000078
- X101E0400007C101E0400003C200F0800003C200F0800003C200F0800001E40079000001E400790
- X00001E40079000000F8003E000000F8003E000000F8003E00000070001C00000070001C0000007
- X0001C0000003000180000002000080002F237FA132>87 D<0FE0001838003C0C003C0E00180700
- X00070000070000070000FF0007C7001E07003C0700780700700700F00708F00708F00708F00F08
- X7817083C23900FC1E015157E9418>97 D<0E0000FE00001E00000E00000E00000E00000E00000E
- X00000E00000E00000E00000E00000E00000E00000E1F000E61C00E80600F00300E00380E003C0E
- X001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C
- X41C0083F0017237FA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0
- XF00000F00000F00000F00000F000007000007800203800201C00400E008007030000FC0013157F
- X9416>101 D<1C001E003E001E001C00000000000000000000000000000000000E00FE001E000E
- X000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A227FA1
- X0E>105 D<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
- X0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B237F
- XA20E>108 D<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E00E003800E00E0038
- X00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00
- X3800E00E003800E00E003800E00E003800E00E003800E00E003800E0FFE3FF8FFE27157F942A>
- XI<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E00
- X0F00FFF010157F9413>114 D<FFC1FE1E00780E00300E00200E00200700400700400380800380
- X8003808001C10001C10000E20000E20000E2000074000074000038000038000038000010001715
- X7F941A>118 D E /Fs 22 122 df<0000007C0000000000007C000000000000FE000000000000
- XFE000000000000FE000000000001FF000000000001FF000000000003FF800000000003FF800000
- X000007FFC00000000007FFC00000000007FFC0000000000FFFE0000000000F7FE0000000001F7F
- XF0000000001E3FF0000000001E3FF0000000003E3FF8000000003C1FF8000000007C1FFC000000
- X00780FFC00000000780FFC00000000F80FFE00000000F007FE00000001F007FF00000001E003FF
- X00000001E003FF00000003E003FF80000003C001FF80000007C001FFC00000078000FFC0000007
- X8000FFC000000FFFFFFFE000000FFFFFFFE000001FFFFFFFF000001E00003FF000001E00003FF0
- X00003C00003FF800003C00001FF800007C00001FFC00007800000FFC00007800000FFC0000F000
- X0007FE0000F0000007FE0001F0000007FF0003F8000003FF00FFFFC001FFFFFEFFFFC001FFFFFE
- XFFFFC001FFFFFE37317DB03E>65 D<FFFFFFFFF00000FFFFFFFFFF0000FFFFFFFFFFC00000FFC0
- X00FFF00000FFC0000FFC0000FFC00007FE0000FFC00001FF0000FFC00000FF8000FFC000007FC0
- X00FFC000003FE000FFC000003FE000FFC000001FF000FFC000001FF000FFC000001FF800FFC000
- X000FF800FFC000000FFC00FFC000000FFC00FFC000000FFC00FFC000000FFC00FFC000000FFE00
- XFFC000000FFE00FFC000000FFE00FFC000000FFE00FFC000000FFE00FFC000000FFE00FFC00000
- X0FFE00FFC000000FFE00FFC000000FFE00FFC000000FFE00FFC000000FFE00FFC000000FFC00FF
- XC000000FFC00FFC000000FFC00FFC000000FFC00FFC000000FF800FFC000001FF800FFC000001F
- XF800FFC000001FF000FFC000003FE000FFC000003FE000FFC000007FC000FFC00000FF8000FFC0
- X0001FF0000FFC00003FE0000FFC0000FFC0000FFC0007FF000FFFFFFFFFFE000FFFFFFFFFF0000
- XFFFFFFFFF0000037317EB03F>68 D<FFFFC000007FFFF0FFFFE000007FFFF0FFFFF000007FFFF0
- X00FFF8000000F80000FFFC000000700000FFFE000000700000EFFF000000700000E7FF80000070
- X0000E3FF800000700000E1FFC00000700000E0FFE00000700000E07FF00000700000E07FF80000
- X700000E03FFC0000700000E01FFE0000700000E00FFF0000700000E007FF8000700000E003FF80
- X00700000E001FFC000700000E000FFE000700000E0007FF000700000E0007FF800700000E0003F
- XFC00700000E0001FFE00700000E0000FFF00700000E00007FF80700000E00003FF80700000E000
- X01FFC0700000E00000FFE0700000E000007FF0700000E000007FF8700000E000003FFC700000E0
- X00001FFE700000E000000FFF700000E0000007FFF00000E0000003FFF00000E0000001FFF00000
- XE0000000FFF00000E00000007FF00000E00000007FF00000E00000003FF00000E00000001FF000
- X00E00000000FF00000E000000007F00000E000000003F00001F000000001F000FFFFE0000000F0
- X00FFFFE00000007000FFFFE000000070003C317EB041>78 D<00000FFE0000000000FFFFE00000
- X0007FFFFFC0000001FFC07FF0000003FE000FF800000FF80003FE00001FF00001FF00003FE0000
- X0FF80007FC000007FC0007FC000007FC000FF8000003FE001FF8000003FF001FF0000001FF003F
- XF0000001FF803FF0000001FF803FF0000001FF807FE0000000FFC07FE0000000FFC07FE0000000
- XFFC0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0
- X000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FF
- XE07FE0000000FFC07FE0000000FFC07FF0000001FFC07FF0000001FFC03FF0000001FF803FF000
- X0001FF801FF8000003FF001FF8000003FF000FFC000007FE000FFC000007FE0007FE00000FFC00
- X03FF00001FF80001FF80003FF00000FFC0007FE000003FE000FF8000001FFC07FF00000007FFFF
- XFC00000000FFFFE0000000000FFE00000033317BB03E>I<FFFFFFFFC0000000FFFFFFFFFC0000
- X00FFFFFFFFFF80000000FFC001FFE0000000FFC0003FF0000000FFC0000FFC000000FFC00007FC
- X000000FFC00007FE000000FFC00003FF000000FFC00003FF000000FFC00003FF800000FFC00003
- XFF800000FFC00003FF800000FFC00003FF800000FFC00003FF800000FFC00003FF800000FFC000
- X03FF000000FFC00003FF000000FFC00007FE000000FFC00007FC000000FFC0000FFC000000FFC0
- X003FF0000000FFC001FFE0000000FFFFFFFF80000000FFFFFFFC00000000FFFFFFFE00000000FF
- XC003FF00000000FFC000FFC0000000FFC0007FE0000000FFC0003FE0000000FFC0003FF0000000
- XFFC0001FF0000000FFC0001FF8000000FFC0001FF8000000FFC0001FF8000000FFC0001FF80000
- X00FFC0001FF8000000FFC0001FFC000000FFC0001FFC000000FFC0001FFC000000FFC0001FFC00
- X4000FFC0001FFC00E000FFC0001FFE00E000FFC0000FFE00E000FFC0000FFF01C000FFC00007FF
- X83C0FFFFFFC003FFFF80FFFFFFC000FFFF00FFFFFFC0000FFC003B317EB03E>82
- XD<001FF0018000FFFF038003FFFFC78007F00FFF800F8001FF801F00007F803F00001F803E0000
- X0F807E00000F807E00000780FE00000780FE00000780FE00000380FF00000380FF00000380FF80
- X000000FFE00000007FFC0000007FFFE000007FFFFE00003FFFFFC0001FFFFFF0001FFFFFF8000F
- XFFFFFC0003FFFFFE0001FFFFFF00007FFFFF80001FFFFF800000FFFFC0000007FFC0000000FFE0
- X0000003FE00000003FE00000001FE06000001FE0E000000FE0E000000FE0E000000FE0E000000F
- XC0F000000FC0F000000FC0F800001F80FC00001F80FF00003F00FFC0007E00FFFC01FC00F1FFFF
- XF800E03FFFE000C007FF000023317BB02E>I<007FF8000003FFFF000007FFFFC0000FE01FE000
- X1FF007F0001FF003F8001FF003FC001FF001FE000FE001FE0007C001FE00010001FE00000001FE
- X00000001FE000001FFFE00003FFFFE0001FFF1FE0007FE01FE000FF001FE001FC001FE003F8001
- XFE007F8001FE00FF0001FE00FF0001FE00FF0001FE00FF0001FE00FF0003FE007F8003FE007FC0
- X0EFE003FF03CFF000FFFF87FF807FFF03FF800FF800FF825207E9F28>97
- XD<0007FF00007FFFE000FFFFF003FC03F807F007FC0FE007FC1FE007FC3FC007FC3FC003F87FC0
- X01F07F8000407F800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF
- X8000007F8000007FC000007FC000003FC0000E3FE0000E1FE0001C0FF0001C07F8007803FF01F0
- X00FFFFE0007FFF800007FC001F207D9F25>99 D<00000007E0000003FFE0000003FFE0000003FF
- XE00000003FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0000000
- X1FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0000FF81FE0007F
- XFF1FE001FFFFDFE003FE03FFE007F800FFE00FE0003FE01FE0001FE03FC0001FE03FC0001FE07F
- X80001FE07F80001FE07F80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0
- XFF80001FE0FF80001FE0FF80001FE07F80001FE07F80001FE07F80001FE03FC0001FE03FC0001F
- XE01FC0003FE00FE0007FE007F001FFE003FC07DFF001FFFF9FFF007FFE1FFF000FF01FFF28327D
- XB12E>I<0007FC0000003FFF800000FFFFE00003FC07F00007F801F8000FE000FC001FE0007E00
- X3FC0007E003FC0003F007FC0003F007F80003F007F80003F80FF80003F80FF80003F80FFFFFFFF
- X80FFFFFFFF80FFFFFFFF80FF80000000FF80000000FF800000007F800000007F800000003FC000
- X00003FC00003801FC00003801FE00007800FF0000F0007F8001E0003FE00FC0000FFFFF800003F
- XFFE0000003FF000021207E9F26>I<001FF007E000FFFE3FF001FFFF7FF807F83FF1F80FE00FE1
- XF80FE00FE0F01FC007F0601FC007F0003FC007F8003FC007F8003FC007F8003FC007F8003FC007
- XF8001FC007F0001FC007F0000FE00FE0000FE00FE00007F83FC00007FFFF000006FFFE00000E1F
- XF000000E000000001E000000001E000000001F000000001F800000001FFFFFC0000FFFFFF8000F
- XFFFFFE0007FFFFFF0003FFFFFF8007FFFFFFC01FFFFFFFE03F00007FE07E00000FF0FC000007F0
- XFC000003F0FC000003F0FC000003F0FC000003F07E000007E03F00000FC01FC0003F800FF801FF
- X0007FFFFFE0000FFFFF000001FFF8000252F7E9F29>103 D<01C00007F0000FF8000FF8001FFC
- X001FFC001FFC000FF8000FF80007F00001C0000000000000000000000000000000000000000000
- X0000000001F800FFF800FFF800FFF8000FF80007F80007F80007F80007F80007F80007F80007F8
- X0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8
- X0007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>105
- XD<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800000007F800
- X000007F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8
- X00000007F800000007F800000007F8007FFC07F8007FFC07F8007FFC07F8001FC007F8001F0007
- XF8003E0007F800780007F801F00007F803E00007F807800007F81F000007F83E000007F87C0000
- X07F9FE000007FBFF000007FFFF800007FF7FC00007FE3FE00007F81FE00007F01FF00007F00FF8
- X0007F007FC0007F003FE0007F001FF0007F000FF0007F000FF8007F0007FC007F0003FE007F000
- X3FF0FFFF80FFFFFFFF80FFFFFFFF80FFFF28327EB12C>107 D<03F007F8000FF000FFF03FFF00
- X7FFE00FFF07FFF80FFFF00FFF0F03FC1E07F800FF1C01FE3803FC007F3000FE6001FC007F6000F
- XFC001FE007FE000FFC001FE007FC000FF8001FE007FC000FF8001FE007F8000FF0001FE007F800
- X0FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8
- X000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007
- XF8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE0
- X07F8000FF0001FE007F8000FF0001FE007F8000FF0001FE0FFFFC1FFFF83FFFFFFFFC1FFFF83FF
- XFFFFFFC1FFFF83FFFF40207D9F45>109 D<03F007F80000FFF03FFF0000FFF07FFF8000FFF0F0
- X3FC0000FF1C01FE00007F3000FE00007F6000FF00007FE000FF00007FC000FF00007FC000FF000
- X07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F800
- X0FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
- X07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000FFFFC1
- XFFFF80FFFFC1FFFF80FFFFC1FFFF8029207D9F2E>I<0007FE0000003FFFC00000FFFFF00003FC
- X03FC0007F000FE000FE0007F001FC0003F803FC0003FC03FC0003FC07F80001FE07F80001FE07F
- X80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0
- XFF80001FF07F80001FE07F80001FE07F80001FE03FC0003FC03FC0003FC01FE0007F800FE0007F
- X0007F801FE0003FE07FC0001FFFFF800003FFFC0000007FE000024207E9F29>I<03F03F00FFF0
- X7FC0FFF1FFE0FFF3C7F00FF38FF807F70FF807F60FF807FE0FF807FC07F007FC03E007FC008007
- XF8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000
- X07F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000FFFFE000FFFFE0
- X00FFFFE0001D207E9F22>114 D<00FF870007FFEF001FFFFF003F007F003C001F0078000F00F8
- X000700F8000700F8000700FC000700FF000000FFF800007FFFC0003FFFF0003FFFFC000FFFFE00
- X07FFFF0001FFFF80001FFF800000FFC000001FC060000FC0E00007C0E00007C0F00007C0F80007
- X80F8000F80FE000F00FF803E00FFFFFC00F3FFF800C07FC0001A207D9F21>I<00380000380000
- X380000380000380000780000780000780000F80000F80001F80003F80007F8001FF800FFFFFEFF
- XFFFEFFFFFE07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
- XF80007F80007F80007F80007F80007F80707F80707F80707F80707F80707F80707F80703F80E03
- XFC0E01FE1C00FFF8007FF0000FE0182E7EAD20>I<01F80003F000FFF801FFF000FFF801FFF000
- XFFF801FFF0000FF8001FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F800
- X0FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
- X07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F800
- X0FF00007F8000FF00007F8001FF00007F8001FF00003F8003FF00003F8006FF00001FE03CFF800
- X00FFFF8FFF80007FFF0FFF80000FFC0FFF8029207D9F2E>I<FFFF0FFFF01FFEFFFF0FFFF01FFE
- XFFFF0FFFF01FFE0FF0007E0001F00FF8007F0001E007F8007F0001C007F8003F8003C003FC003F
- X80038003FC007FC0038003FE007FC0078001FE00FFC0070001FF00EFE00F0000FF00EFE00E0000
- XFF01C7F00E00007F81C7F01C00007F83C7F01C00007FC383F83C00003FC383F83800003FC701FC
- X3800001FE701FC7000001FEF01FC7000001FFE00FEF000000FFE00FEE000000FFC007FE0000007
- XFC007FC0000007FC007FC0000007F8003FC0000003F8003F80000003F0001F80000001F0001F00
- X000001E0000F00000000E0000E000037207E9F3C>119 D<FFFF801FFEFFFF801FFEFFFF801FFE
- X07F80003E007F80001C007FC0003C003FC00038003FE00078001FE00070001FF000F0000FF000E
- X0000FF801E00007F801C00007FC03C00003FC03800003FE03800001FE07000001FE07000000FF0
- XE000000FF0E000000FF9E0000007F9C0000007FFC0000003FF80000003FF80000001FF00000001
- XFF00000000FE00000000FE000000007C000000007C000000003800000000380000000070000000
- X007000000000F000003C00E000007E01E00000FF01C00000FF03800000FF07800000FF0F000000
- X7A3E0000007FFC0000003FF80000000FC0000000272E7E9F2C>121 D E
- Xend
- X%%EndProlog
- X%%BeginSetup
- X%%Feature: *Resolution 300
- XTeXDict begin
- X%%EndSetup
- X%%Page: 1 1
- Xbop 101 190 a Fs(Restricting)27 b(Net)n(w)n(ork)e(Access)h(to)i(System)e
- X(Daemons)734 281 y(under)h(SunOS)785 407 y Fr(William)14 b(LeF)l(eb)o(vre)778
- X511 y Fq(EECS)j(Dep)n(artment)715 567 y(Northwestern)h(University)884
- X735 y Fp(Abstract)251 811 y Fo(The)d(implemen)o(tation)d(of)j(most)f(net)o(w)
- Xo(ork)h(daemons)f(giv)o(es)h(little)f(consideration)i(to)f(the)g(im-)189
- X861 y(plications)h(of)h(w)o(orldwide)f(access.)30 b(In)18 b(some)e(cases,)j
- X(suc)o(h)f(access)h(can)f(p)q(ermit)e(the)i(w)o(orldwide)189
- X911 y(distribution)12 b(of)g(sensitiv)o(e)h(information,)c(suc)o(h)k(as)g
- X(encrypted)h(passw)o(ords.)19 b(In)12 b(other)h(cases,)h(lo)q(cal)189
- X960 y(c)o(hanges)k(can)g(b)q(e)g(e\013ected)i(b)o(y)d(pro)q(cesses)k(running)
- Xc(an)o(ywhere)h(on)g(the)g(net)o(w)o(ork.)29 b(The)18 b(shared)189
- X1010 y(library)c(mec)o(hanism)f(of)i(SunOS)h(can)f(b)q(e)h(used)g(to)f(pro)o
- X(vide)g(a)g(\\wrapp)q(er")h(around)f(certain)h(dae-)189 1060
- Xy(mons.)22 b(This)16 b(wrapp)q(er)g(tak)o(es)g(the)h(form)d(of)h(an)g
- X(alternate)i Fn(libc)d Fo(shared)j(library)m(.)22 b(Rather)16
- Xb(than)189 1110 y(linking)e(against)h(the)i(standard)f Fn(libc)p
- XFo(,)f(a)h(daemon)e(is)i(directed)h(to)f(link)f(against)g(this)h(alternate)
- X189 1160 y Fm(se)n(cur)n(e)10 b Fo(library)m(.)16 b(The)11
- Xb(secure)i(library)d(has)h(an)f(augmen)o(ted)g(form)f(of)h(certain)h(net)o(w)
- Xo(ork-related)h(sys-)189 1210 y(tem)f(calls)h(whic)o(h)g(\014rst)h(p)q
- X(erform)f(the)h(true)g(system)f(call)g(then)h(c)o(hec)o(k)g(the)g(so)q(c)o(k)
- END_OF_FILE
- if test 46421 -ne `wc -c <'securelib.ps.B'`; then
- echo shar: \"'securelib.ps.B'\" unpacked with wrong size!
- elif test -f 'securelib.ps.A' && test -f 'securelib.ps.C'; then
- echo shar: Combining \"'securelib.ps'\" \(131349 characters\)
- cat 'securelib.ps.A' 'securelib.ps.B' 'securelib.ps.C' > 'securelib.ps'
- if test 131349 -ne `wc -c <'securelib.ps'`; then
- echo shar: \"'securelib.ps'\" combined with wrong size!
- else
- rm securelib.ps.A securelib.ps.B securelib.ps.C
- fi
- fi
- # end of 'securelib.ps.B'
- fi
- if test -f 'start.X' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'start.X'\"
- else
- echo shar: Extracting \"'start.X'\" \(183 characters\)
- sed "s/^X//" >'start.X' <<'END_OF_FILE'
- X#!/bin/sh
- X#
- X# Start a daemon with the secure library.
- X#
- X# Usage: %DESTDIR%/start program args
- X#
- XSL_NAME=`basename $1`
- XLD_LIBRARY_PATH=%DESTDIR%
- Xexport LD_LIBRARY_PATH SL_NAME
- Xexec $@
- END_OF_FILE
- if test 183 -ne `wc -c <'start.X'`; then
- echo shar: \"'start.X'\" unpacked with wrong size!
- fi
- # end of 'start.X'
- fi
- echo shar: End of archive 2 \(of 3\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 3 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 3 archives.
- rm -f ark[1-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
-